@formicoidea/labre-core 0.31.0 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (637) hide show
  1. package/dist/_pkgs/affine-block-attachment/attachment-block.js +1 -1
  2. package/dist/_pkgs/affine-block-callout/callout-block.d.ts +6 -0
  3. package/dist/_pkgs/affine-block-callout/callout-block.js +26 -4
  4. package/dist/_pkgs/affine-block-callout/callout-keymap.js +59 -19
  5. package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.d.ts +20 -0
  6. package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.js +60 -0
  7. package/dist/_pkgs/affine-block-callout/commands/split-callout.d.ts +17 -0
  8. package/dist/_pkgs/affine-block-callout/commands/split-callout.js +42 -0
  9. package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +9 -6
  10. package/dist/_pkgs/affine-block-callout/emoji-margin.d.ts +9 -0
  11. package/dist/_pkgs/affine-block-callout/emoji-margin.js +36 -0
  12. package/dist/_pkgs/affine-block-callout/emoji-menu.d.ts +5 -1
  13. package/dist/_pkgs/affine-block-callout/emoji-menu.js +5 -0
  14. package/dist/_pkgs/affine-block-code/code-block-inline.js +1 -1
  15. package/dist/_pkgs/affine-block-code/code-block.d.ts +14 -0
  16. package/dist/_pkgs/affine-block-code/code-block.js +44 -6
  17. package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.d.ts +2 -0
  18. package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.js +23 -14
  19. package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.d.ts +16 -0
  20. package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.js +93 -0
  21. package/dist/_pkgs/affine-block-code/code-toolbar/config.js +54 -5
  22. package/dist/_pkgs/affine-block-code/code-toolbar/index.js +1 -1
  23. package/dist/_pkgs/affine-block-code/effects.d.ts +2 -0
  24. package/dist/_pkgs/affine-block-code/effects.js +2 -0
  25. package/dist/_pkgs/affine-block-code/highlight/affine-code-unit.js +6 -1
  26. package/dist/_pkgs/affine-block-code/index.d.ts +1 -0
  27. package/dist/_pkgs/affine-block-code/index.js +1 -0
  28. package/dist/_pkgs/affine-block-code/line-numbers.d.ts +25 -0
  29. package/dist/_pkgs/affine-block-code/line-numbers.js +27 -0
  30. package/dist/_pkgs/affine-block-code/styles.js +31 -0
  31. package/dist/_pkgs/affine-block-data-view/data-view-block.js +1 -0
  32. package/dist/_pkgs/affine-block-database/components/title/index.js +4 -1
  33. package/dist/_pkgs/affine-block-database/configs/slash-menu.js +28 -1
  34. package/dist/_pkgs/affine-block-database/data-source.js +1 -2
  35. package/dist/_pkgs/affine-block-database/database-block.js +13 -0
  36. package/dist/_pkgs/affine-block-database/external-data-source.js +1 -1
  37. package/dist/_pkgs/affine-block-database/properties/paste-url.d.ts +24 -0
  38. package/dist/_pkgs/affine-block-database/properties/paste-url.js +98 -0
  39. package/dist/_pkgs/affine-block-database/properties/rich-text/cell-renderer.js +9 -19
  40. package/dist/_pkgs/affine-block-database/properties/title/text.js +20 -25
  41. package/dist/_pkgs/affine-block-database/views/index.js +1 -0
  42. package/dist/_pkgs/affine-block-edgeless-text/edgeless-text-block.js +11 -1
  43. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.d.ts +3 -0
  44. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +48 -1
  45. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.d.ts +17 -0
  46. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.js +24 -0
  47. package/dist/_pkgs/affine-block-embed/embed-figma-block/embed-figma-service.js +1 -1
  48. package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/toolbar.js +2 -2
  49. package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.d.ts +9 -0
  50. package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.js +10 -0
  51. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/toolbar.js +1 -1
  52. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +8 -4
  53. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/utils.js +1 -1
  54. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/configs/toolbar.js +1 -1
  55. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.d.ts +4 -0
  56. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +23 -4
  57. package/dist/_pkgs/affine-block-frame/frame-manager.d.ts +13 -0
  58. package/dist/_pkgs/affine-block-frame/frame-manager.js +34 -2
  59. package/dist/_pkgs/affine-block-frame/frame-tool.js +1 -1
  60. package/dist/_pkgs/affine-block-image/components/page-image-block.js +1 -1
  61. package/dist/_pkgs/affine-block-image/image-edgeless-block.js +1 -1
  62. package/dist/_pkgs/affine-block-latex/styles.js +6 -1
  63. package/dist/_pkgs/affine-block-list/utils/forward-delete.js +1 -1
  64. package/dist/_pkgs/affine-block-note/commands/select-block.js +1 -1
  65. package/dist/_pkgs/affine-block-note/commands/select-blocks-between.js +1 -1
  66. package/dist/_pkgs/affine-block-note/move-block.js +1 -1
  67. package/dist/_pkgs/affine-block-note/note-edgeless-block.d.ts +9 -0
  68. package/dist/_pkgs/affine-block-note/note-edgeless-block.js +29 -1
  69. package/dist/_pkgs/affine-block-paragraph/utils/forward-delete.js +2 -2
  70. package/dist/_pkgs/affine-block-paragraph/utils/merge-with-prev.js +1 -1
  71. package/dist/_pkgs/affine-block-root/commands/pivot-commands.d.ts +37 -0
  72. package/dist/_pkgs/affine-block-root/commands/pivot-commands.js +168 -0
  73. package/dist/_pkgs/affine-block-root/commands/reading-commands.d.ts +23 -0
  74. package/dist/_pkgs/affine-block-root/commands/reading-commands.js +107 -0
  75. package/dist/_pkgs/affine-block-root/commands/tag-commands.d.ts +47 -0
  76. package/dist/_pkgs/affine-block-root/commands/tag-commands.js +159 -0
  77. package/dist/_pkgs/affine-block-root/configs/toolbar.d.ts +1 -0
  78. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.js +10 -3
  79. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/render-linked-doc.js +1 -1
  80. package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +27 -2
  81. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.js +11 -2
  82. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-service.js +14 -0
  83. package/dist/_pkgs/affine-block-root/edgeless/index.d.ts +1 -0
  84. package/dist/_pkgs/affine-block-root/edgeless/index.js +1 -0
  85. package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.d.ts +21 -0
  86. package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.js +34 -0
  87. package/dist/_pkgs/affine-block-root/edgeless/utils/clipboard-utils.js +1 -1
  88. package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.d.ts +7 -1
  89. package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.js +11 -2
  90. package/dist/_pkgs/affine-block-root/index.d.ts +4 -1
  91. package/dist/_pkgs/affine-block-root/index.js +4 -1
  92. package/dist/_pkgs/affine-block-root/keyboard/commands.d.ts +2 -0
  93. package/dist/_pkgs/affine-block-root/keyboard/commands.js +147 -0
  94. package/dist/_pkgs/affine-block-root/view.js +13 -4
  95. package/dist/_pkgs/affine-block-surface/adapters/markdown/element-adapter/type.js +1 -1
  96. package/dist/_pkgs/affine-block-surface/adapters/plain-text/element-adapter/type.js +1 -1
  97. package/dist/_pkgs/affine-block-surface/commands/reassociate-connectors.js +0 -1
  98. package/dist/_pkgs/affine-block-surface/effects.js +6 -0
  99. package/dist/_pkgs/affine-block-surface/element-model/index.d.ts +21 -3
  100. package/dist/_pkgs/affine-block-surface/element-model/index.js +14 -2
  101. package/dist/_pkgs/affine-block-surface/extensions/audit.d.ts +107 -0
  102. package/dist/_pkgs/affine-block-surface/extensions/audit.js +489 -0
  103. package/dist/_pkgs/affine-block-surface/extensions/crud-extension.d.ts +14 -0
  104. package/dist/_pkgs/affine-block-surface/extensions/crud-extension.js +37 -5
  105. package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.d.ts +133 -0
  106. package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.js +327 -0
  107. package/dist/_pkgs/affine-block-surface/extensions/element-renderer.js +1 -1
  108. package/dist/_pkgs/affine-block-surface/extensions/export-manager/export-manager.js +1 -1
  109. package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +17 -0
  110. package/dist/_pkgs/affine-block-surface/extensions/index.js +17 -0
  111. package/dist/_pkgs/affine-block-surface/extensions/interchange-import.d.ts +172 -0
  112. package/dist/_pkgs/affine-block-surface/extensions/interchange-import.js +393 -0
  113. package/dist/_pkgs/affine-block-surface/extensions/interchange.d.ts +306 -0
  114. package/dist/_pkgs/affine-block-surface/extensions/interchange.js +64 -0
  115. package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.d.ts +146 -0
  116. package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.js +528 -0
  117. package/dist/_pkgs/affine-block-surface/extensions/map-quality.d.ts +109 -0
  118. package/dist/_pkgs/affine-block-surface/extensions/map-quality.js +84 -0
  119. package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.d.ts +248 -0
  120. package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.js +248 -0
  121. package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.d.ts +15 -0
  122. package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.js +158 -0
  123. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +145 -0
  124. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +588 -0
  125. package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +494 -0
  126. package/dist/_pkgs/affine-block-surface/extensions/reading.js +767 -0
  127. package/dist/_pkgs/affine-block-surface/extensions/spotlight.d.ts +45 -0
  128. package/dist/_pkgs/affine-block-surface/extensions/spotlight.js +177 -0
  129. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.d.ts +107 -0
  130. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.js +958 -0
  131. package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.d.ts +10 -0
  132. package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +295 -0
  133. package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.d.ts +27 -0
  134. package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.js +361 -0
  135. package/dist/_pkgs/affine-block-surface/extensions/validation.d.ts +2129 -0
  136. package/dist/_pkgs/affine-block-surface/extensions/validation.js +4620 -0
  137. package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.d.ts +330 -0
  138. package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.js +1004 -0
  139. package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.d.ts +80 -0
  140. package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.js +123 -0
  141. package/dist/_pkgs/affine-block-surface/framework-background/def.d.ts +610 -0
  142. package/dist/_pkgs/affine-block-surface/framework-background/def.js +206 -0
  143. package/dist/_pkgs/affine-block-surface/framework-background/facts.d.ts +188 -0
  144. package/dist/_pkgs/affine-block-surface/framework-background/facts.js +284 -0
  145. package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +5 -0
  146. package/dist/_pkgs/affine-block-surface/framework-background/index.js +5 -0
  147. package/dist/_pkgs/affine-block-surface/framework-background/interaction.d.ts +12 -0
  148. package/dist/_pkgs/affine-block-surface/framework-background/interaction.js +24 -0
  149. package/dist/_pkgs/affine-block-surface/framework-background/labels.d.ts +99 -0
  150. package/dist/_pkgs/affine-block-surface/framework-background/labels.js +193 -0
  151. package/dist/_pkgs/affine-block-surface/framework-background/renderer.d.ts +8 -0
  152. package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +399 -0
  153. package/dist/_pkgs/affine-block-surface/index.d.ts +1 -0
  154. package/dist/_pkgs/affine-block-surface/index.js +1 -0
  155. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.d.ts +69 -3
  156. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.js +333 -44
  157. package/dist/_pkgs/affine-block-surface/renderer/dom-renderer.js +18 -2
  158. package/dist/_pkgs/affine-block-surface/renderer/overlay.js +1 -1
  159. package/dist/_pkgs/affine-block-surface/tool/default-tool.js +8 -0
  160. package/dist/_pkgs/affine-block-surface/utils/font.js +9 -3
  161. package/dist/_pkgs/affine-block-surface/view.d.ts +17 -0
  162. package/dist/_pkgs/affine-block-surface/view.js +57 -2
  163. package/dist/_pkgs/affine-block-surface-ref/portal/note.js +2 -2
  164. package/dist/_pkgs/affine-block-table/commands.js +1 -1
  165. package/dist/_pkgs/affine-block-table/selection-controller.d.ts +6 -0
  166. package/dist/_pkgs/affine-block-table/selection-controller.js +24 -1
  167. package/dist/_pkgs/affine-block-table/table-block.js +8 -2
  168. package/dist/_pkgs/affine-block-table/table-cell.js +5 -6
  169. package/dist/_pkgs/affine-block-table/table-keymap.d.ts +18 -0
  170. package/dist/_pkgs/affine-block-table/table-keymap.js +41 -0
  171. package/dist/_pkgs/affine-block-table/utils.d.ts +7 -0
  172. package/dist/_pkgs/affine-block-table/utils.js +12 -0
  173. package/dist/_pkgs/affine-block-table/view.js +2 -0
  174. package/dist/_pkgs/affine-components/caption/captioned-block-component.js +2 -1
  175. package/dist/_pkgs/affine-components/context-menu/button.d.ts +7 -0
  176. package/dist/_pkgs/affine-components/context-menu/button.js +7 -2
  177. package/dist/_pkgs/affine-components/context-menu/input.d.ts +4 -0
  178. package/dist/_pkgs/affine-components/context-menu/input.js +12 -0
  179. package/dist/_pkgs/affine-components/context-menu/menu-all.d.ts +2 -0
  180. package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +8 -1
  181. package/dist/_pkgs/affine-components/context-menu/sub-menu.js +3 -0
  182. package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.js +1 -1
  183. package/dist/_pkgs/affine-components/embed-card-modal/embed-card-edit-modal.js +1 -1
  184. package/dist/_pkgs/affine-components/filterable-list/styles.js +1 -1
  185. package/dist/_pkgs/affine-components/highlight-dropdown-menu/highlight-duotone-icon.js +8 -8
  186. package/dist/_pkgs/affine-components/highlight-dropdown-menu/text-duotone-icon.js +11 -11
  187. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.d.ts +28 -0
  188. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.js +231 -0
  189. package/dist/_pkgs/affine-components/icon-picker/emoji-data.d.ts +40 -0
  190. package/dist/_pkgs/affine-components/icon-picker/emoji-data.js +99 -0
  191. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.d.ts +32 -0
  192. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.js +276 -0
  193. package/dist/_pkgs/affine-components/icon-picker/icon-data.d.ts +34 -0
  194. package/dist/_pkgs/affine-components/icon-picker/icon-data.js +83 -0
  195. package/dist/_pkgs/affine-components/icon-picker/icon-picker.d.ts +39 -0
  196. package/dist/_pkgs/affine-components/icon-picker/icon-picker.js +233 -0
  197. package/dist/_pkgs/affine-components/icon-picker/index.d.ts +8 -0
  198. package/dist/_pkgs/affine-components/icon-picker/index.js +15 -0
  199. package/dist/_pkgs/affine-components/icon-picker/recent-store.d.ts +8 -0
  200. package/dist/_pkgs/affine-components/icon-picker/recent-store.js +41 -0
  201. package/dist/_pkgs/affine-components/icon-picker/styles.d.ts +5 -0
  202. package/dist/_pkgs/affine-components/icon-picker/styles.js +166 -0
  203. package/dist/_pkgs/affine-components/icon-picker/types.d.ts +22 -0
  204. package/dist/_pkgs/affine-components/icon-picker/types.js +10 -0
  205. package/dist/_pkgs/affine-components/icons/text.js +426 -426
  206. package/dist/_pkgs/affine-components/open-doc-dropdown-menu/dropdown-menu.d.ts +1 -0
  207. package/dist/_pkgs/affine-components/peek/peekable.js +1 -1
  208. package/dist/_pkgs/affine-components/portal/portal.d.ts +1 -1
  209. package/dist/_pkgs/affine-components/toolbar/index.d.ts +1 -0
  210. package/dist/_pkgs/affine-components/toolbar/index.js +1 -0
  211. package/dist/_pkgs/affine-components/toolbar/menu-button.js +2 -1
  212. package/dist/_pkgs/affine-components/toolbar/picker-menu.d.ts +55 -0
  213. package/dist/_pkgs/affine-components/toolbar/picker-menu.js +47 -0
  214. package/dist/_pkgs/affine-components/toolbar/toolbar.js +11 -10
  215. package/dist/_pkgs/affine-foundation/view.js +11 -2
  216. package/dist/_pkgs/affine-fragment-frame-panel/body/frame-panel-body.js +2 -2
  217. package/dist/_pkgs/affine-fragment-frame-panel/header/frame-panel-header.js +2 -2
  218. package/dist/_pkgs/affine-fragment-frame-panel/header/frames-setting-menu.js +1 -1
  219. package/dist/_pkgs/affine-fragment-outline/mobile-outline-panel.js +1 -1
  220. package/dist/_pkgs/affine-gfx-brush/index.d.ts +1 -0
  221. package/dist/_pkgs/affine-gfx-brush/index.js +1 -0
  222. package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.d.ts +1 -0
  223. package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.js +11 -0
  224. package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.d.ts +1 -0
  225. package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.js +11 -0
  226. package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.d.ts +2 -0
  227. package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.js +2 -0
  228. package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.d.ts +14 -0
  229. package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.js +54 -0
  230. package/dist/_pkgs/affine-gfx-brush/renderer/index.d.ts +1 -0
  231. package/dist/_pkgs/affine-gfx-brush/renderer/index.js +4 -0
  232. package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/pen-tool-button.js +1 -1
  233. package/dist/_pkgs/affine-gfx-brush/view.d.ts +14 -0
  234. package/dist/_pkgs/affine-gfx-brush/view.js +29 -3
  235. package/dist/_pkgs/affine-gfx-connector/connector-manager.js +39 -16
  236. package/dist/_pkgs/affine-gfx-connector/connector-tool.d.ts +26 -1
  237. package/dist/_pkgs/affine-gfx-connector/connector-tool.js +12 -3
  238. package/dist/_pkgs/affine-gfx-connector/connector-watcher.js +1 -4
  239. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +123 -0
  240. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +282 -0
  241. package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.d.ts +65 -0
  242. package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.js +395 -0
  243. package/dist/_pkgs/affine-gfx-connector/direction/index.d.ts +4 -0
  244. package/dist/_pkgs/affine-gfx-connector/direction/index.js +4 -0
  245. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.d.ts +72 -0
  246. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.js +185 -0
  247. package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.d.ts +69 -0
  248. package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.js +66 -0
  249. package/dist/_pkgs/affine-gfx-connector/effects.d.ts +2 -0
  250. package/dist/_pkgs/affine-gfx-connector/effects.js +2 -0
  251. package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.js +78 -41
  252. package/dist/_pkgs/affine-gfx-connector/element-renderer/index.js +1 -1
  253. package/dist/_pkgs/affine-gfx-connector/element-renderer/utils.js +1 -1
  254. package/dist/_pkgs/affine-gfx-connector/index.d.ts +1 -0
  255. package/dist/_pkgs/affine-gfx-connector/index.js +1 -0
  256. package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +50 -0
  257. package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +68 -2
  258. package/dist/_pkgs/affine-gfx-connector/view.js +16 -0
  259. package/dist/_pkgs/affine-gfx-group/command/group-api.js +150 -62
  260. package/dist/_pkgs/affine-gfx-group/text/edgeless-group-title-editor.js +4 -1
  261. package/dist/_pkgs/affine-gfx-mindmap/adapter/markdown/index.js +1 -1
  262. package/dist/_pkgs/affine-gfx-mindmap/adapter/utils.js +1 -1
  263. package/dist/_pkgs/affine-gfx-mindmap/templates/index.js +583 -4
  264. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-menu.js +23 -23
  265. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-tool-button.js +5 -1
  266. package/dist/_pkgs/affine-gfx-mindmap/view/utils.js +1 -1
  267. package/dist/_pkgs/affine-gfx-note/overlay/overlay.js +1 -1
  268. package/dist/_pkgs/affine-gfx-note/toolbar/note-senior-button.js +1 -1
  269. package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.d.ts +16 -0
  270. package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.js +102 -32
  271. package/dist/_pkgs/affine-gfx-shape/commands.d.ts +2 -0
  272. package/dist/_pkgs/affine-gfx-shape/commands.js +33 -0
  273. package/dist/_pkgs/affine-gfx-shape/consts.js +1 -1
  274. package/dist/_pkgs/affine-gfx-shape/draggable/shape-draggable.js +1 -1
  275. package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/polygon.js +17 -9
  276. package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/utils.js +8 -3
  277. package/dist/_pkgs/affine-gfx-shape/element-renderer/shape-dom/index.js +48 -19
  278. package/dist/_pkgs/affine-gfx-shape/element-view.js +19 -12
  279. package/dist/_pkgs/affine-gfx-shape/index.d.ts +1 -1
  280. package/dist/_pkgs/affine-gfx-shape/index.js +1 -1
  281. package/dist/_pkgs/affine-gfx-shape/overlay/polygon-drawing-overlay.js +1 -1
  282. package/dist/_pkgs/affine-gfx-shape/overlay/polygon-vertex-editing-overlay.js +12 -7
  283. package/dist/_pkgs/affine-gfx-shape/overlay/shape-overlay.js +1 -1
  284. package/dist/_pkgs/affine-gfx-shape/polygon-tool.js +4 -2
  285. package/dist/_pkgs/affine-gfx-shape/shape-tool.js +1 -1
  286. package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.d.ts +26 -0
  287. package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.js +124 -15
  288. package/dist/_pkgs/affine-gfx-shape/view.js +3 -3
  289. package/dist/_pkgs/affine-gfx-template/builtin/other.js +66 -17
  290. package/dist/_pkgs/affine-gfx-template/toolbar/overlay-scrollbar.js +1 -1
  291. package/dist/_pkgs/affine-gfx-template/toolbar/template-panel.js +1 -1
  292. package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.d.ts +2 -0
  293. package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.js +18 -1
  294. package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +9 -5
  295. package/dist/_pkgs/affine-gfx-text/toolbar/actions.js +1 -1
  296. package/dist/_pkgs/affine-inline-latex/command.js +46 -26
  297. package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.d.ts +10 -0
  298. package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.js +23 -0
  299. package/dist/_pkgs/affine-inline-link/command.js +1 -1
  300. package/dist/_pkgs/affine-inline-link/link-node/affine-link.js +4 -1
  301. package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.d.ts +3 -0
  302. package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.js +29 -1
  303. package/dist/_pkgs/affine-inline-preset/command/format-block.js +1 -1
  304. package/dist/_pkgs/affine-inline-preset/command/format-native.js +2 -2
  305. package/dist/_pkgs/affine-inline-preset/command/format-text.js +1 -1
  306. package/dist/_pkgs/affine-inline-preset/inline-spec.js +1 -1
  307. package/dist/_pkgs/affine-inline-reference/reference-node/reference-node.js +1 -1
  308. package/dist/_pkgs/affine-model/blocks/code/code-model.d.ts +1 -0
  309. package/dist/_pkgs/affine-model/blocks/code/code-model.js +1 -0
  310. package/dist/_pkgs/affine-model/elements/bpmn/node.d.ts +40 -7
  311. package/dist/_pkgs/affine-model/elements/bpmn/node.js +4 -2
  312. package/dist/_pkgs/affine-model/elements/bpmn/pool.d.ts +74 -17
  313. package/dist/_pkgs/affine-model/elements/bpmn/pool.js +55 -26
  314. package/dist/_pkgs/affine-model/elements/c4/board.d.ts +88 -0
  315. package/dist/_pkgs/affine-model/elements/c4/board.js +128 -0
  316. package/dist/_pkgs/affine-model/elements/c4/boundary.d.ts +63 -0
  317. package/dist/_pkgs/affine-model/elements/c4/boundary.js +134 -0
  318. package/dist/_pkgs/affine-model/elements/c4/index.d.ts +3 -0
  319. package/dist/_pkgs/affine-model/elements/c4/index.js +3 -0
  320. package/dist/_pkgs/affine-model/elements/c4/node.d.ts +97 -0
  321. package/dist/_pkgs/affine-model/elements/c4/node.js +130 -0
  322. package/dist/_pkgs/affine-model/elements/connector/connector.js +25 -1
  323. package/dist/_pkgs/affine-model/elements/context-map/context-map.d.ts +27 -0
  324. package/dist/_pkgs/affine-model/elements/context-map/context-map.js +94 -0
  325. package/dist/_pkgs/affine-model/elements/context-map/index.d.ts +1 -0
  326. package/dist/_pkgs/affine-model/elements/context-map/index.js +1 -0
  327. package/dist/_pkgs/affine-model/elements/core-domain/core-domain.d.ts +34 -17
  328. package/dist/_pkgs/affine-model/elements/core-domain/core-domain.js +28 -26
  329. package/dist/_pkgs/affine-model/elements/edgy/board.d.ts +32 -0
  330. package/dist/_pkgs/affine-model/elements/edgy/board.js +112 -0
  331. package/dist/_pkgs/affine-model/elements/edgy/facets.d.ts +12 -0
  332. package/dist/_pkgs/affine-model/elements/edgy/facets.js +25 -1
  333. package/dist/_pkgs/affine-model/elements/edgy/index.d.ts +1 -0
  334. package/dist/_pkgs/affine-model/elements/edgy/index.js +1 -0
  335. package/dist/_pkgs/affine-model/elements/event-storming/event-storming.d.ts +36 -0
  336. package/dist/_pkgs/affine-model/elements/event-storming/event-storming.js +103 -0
  337. package/dist/_pkgs/affine-model/elements/event-storming/index.d.ts +1 -0
  338. package/dist/_pkgs/affine-model/elements/event-storming/index.js +1 -0
  339. package/dist/_pkgs/affine-model/elements/framework-background/background.d.ts +42 -0
  340. package/dist/_pkgs/affine-model/elements/framework-background/background.js +42 -0
  341. package/dist/_pkgs/affine-model/elements/framework-background/index.d.ts +1 -0
  342. package/dist/_pkgs/affine-model/elements/framework-background/index.js +1 -0
  343. package/dist/_pkgs/affine-model/elements/index.d.ts +14 -1
  344. package/dist/_pkgs/affine-model/elements/index.js +4 -0
  345. package/dist/_pkgs/affine-model/elements/mindmap/mindmap.js +8 -3
  346. package/dist/_pkgs/affine-model/elements/mindmap/style.d.ts +10 -0
  347. package/dist/_pkgs/affine-model/elements/mindmap/style.js +8 -0
  348. package/dist/_pkgs/affine-model/elements/shape/api/polygon.js +2 -8
  349. package/dist/_pkgs/affine-model/elements/wardley/wardley.d.ts +21 -29
  350. package/dist/_pkgs/affine-model/elements/wardley/wardley.js +41 -48
  351. package/dist/_pkgs/affine-shared/adapters/html/block-adapter.js +1 -1
  352. package/dist/_pkgs/affine-shared/adapters/markdown/block-adapter.js +1 -1
  353. package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.d.ts +6 -1
  354. package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.js +161 -3
  355. package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -1
  356. package/dist/_pkgs/affine-shared/adapters/notion-html/block-adapter.js +1 -1
  357. package/dist/_pkgs/affine-shared/adapters/notion-html/delta-converter.js +1 -1
  358. package/dist/_pkgs/affine-shared/adapters/plain-text/block-adapter.js +1 -1
  359. package/dist/_pkgs/affine-shared/adapters/plain-text/delta-converter.js +1 -1
  360. package/dist/_pkgs/affine-shared/adapters/types/delta-converter.d.ts +1 -0
  361. package/dist/_pkgs/affine-shared/adapters/utils/color.d.ts +24 -0
  362. package/dist/_pkgs/affine-shared/adapters/utils/color.js +283 -0
  363. package/dist/_pkgs/affine-shared/adapters/utils/index.d.ts +1 -0
  364. package/dist/_pkgs/affine-shared/adapters/utils/index.js +1 -0
  365. package/dist/_pkgs/affine-shared/commands/block-crud/get-selected-blocks.js +10 -2
  366. package/dist/_pkgs/affine-shared/commands/model-crud/draft-selected-models.js +1 -1
  367. package/dist/_pkgs/affine-shared/commands/selection/focus-block-end.js +1 -1
  368. package/dist/_pkgs/affine-shared/commands/selection/focus-block-start.js +1 -1
  369. package/dist/_pkgs/affine-shared/consts/index.d.ts +10 -0
  370. package/dist/_pkgs/affine-shared/consts/index.js +10 -0
  371. package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.d.ts +55 -0
  372. package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.js +35 -0
  373. package/dist/_pkgs/affine-shared/services/audit-service.d.ts +311 -0
  374. package/dist/_pkgs/affine-shared/services/audit-service.js +228 -0
  375. package/dist/_pkgs/affine-shared/services/command-usage-service.d.ts +31 -0
  376. package/dist/_pkgs/affine-shared/services/command-usage-service.js +109 -0
  377. package/dist/_pkgs/affine-shared/services/comment-service/block-comment-manager.js +1 -1
  378. package/dist/_pkgs/affine-shared/services/doc-display-meta-service.js +1 -1
  379. package/dist/_pkgs/affine-shared/services/edit-props-store.d.ts +7 -0
  380. package/dist/_pkgs/affine-shared/services/edit-props-store.js +11 -0
  381. package/dist/_pkgs/affine-shared/services/embed-iframe/embed-iframe-config.js +1 -1
  382. package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.d.ts +26 -1
  383. package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.js +124 -7
  384. package/dist/_pkgs/affine-shared/services/index.d.ts +7 -0
  385. package/dist/_pkgs/affine-shared/services/index.js +7 -0
  386. package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.d.ts +129 -0
  387. package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +312 -0
  388. package/dist/_pkgs/affine-shared/services/pivot-properties-service.d.ts +217 -0
  389. package/dist/_pkgs/affine-shared/services/pivot-properties-service.js +114 -0
  390. package/dist/_pkgs/affine-shared/services/telemetry-service/code-block.d.ts +1 -1
  391. package/dist/_pkgs/affine-shared/services/telemetry-service/lifecycle.d.ts +255 -1
  392. package/dist/_pkgs/affine-shared/services/telemetry-service/telemetry-service.d.ts +2 -2
  393. package/dist/_pkgs/affine-shared/services/telemetry-service/types.d.ts +6 -1
  394. package/dist/_pkgs/affine-shared/services/toolbar-service/action.d.ts +10 -0
  395. package/dist/_pkgs/affine-shared/services/toolbar-service/index.d.ts +1 -0
  396. package/dist/_pkgs/affine-shared/services/toolbar-service/index.js +1 -0
  397. package/dist/_pkgs/affine-shared/services/toolbar-service/layout.d.ts +134 -0
  398. package/dist/_pkgs/affine-shared/services/toolbar-service/layout.js +146 -0
  399. package/dist/_pkgs/affine-shared/services/toolbar-service/registry.d.ts +44 -0
  400. package/dist/_pkgs/affine-shared/services/toolbar-service/registry.js +161 -3
  401. package/dist/_pkgs/affine-shared/services/translation-service/index.d.ts +68 -0
  402. package/dist/_pkgs/affine-shared/services/translation-service/index.js +39 -0
  403. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.d.ts +155 -0
  404. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.js +256 -0
  405. package/dist/_pkgs/affine-shared/test-utils/affine-template.js +1 -1
  406. package/dist/_pkgs/affine-shared/utils/dom/point-to-range.d.ts +4 -0
  407. package/dist/_pkgs/affine-shared/utils/dom/point-to-range.js +58 -2
  408. package/dist/_pkgs/affine-shared/utils/dom/viewport.d.ts +60 -0
  409. package/dist/_pkgs/affine-shared/utils/dom/viewport.js +58 -0
  410. package/dist/_pkgs/affine-shared/utils/edgeless.js +1 -1
  411. package/dist/_pkgs/affine-shared/utils/file/filesys.d.ts +34 -0
  412. package/dist/_pkgs/affine-shared/utils/file/filesys.js +48 -7
  413. package/dist/_pkgs/affine-shared/utils/print-to-pdf.d.ts +21 -0
  414. package/dist/_pkgs/affine-shared/utils/print-to-pdf.js +166 -32
  415. package/dist/_pkgs/affine-shared/utils/zod-schema.d.ts +7 -0
  416. package/dist/_pkgs/affine-shared/utils/zod-schema.js +25 -1
  417. package/dist/_pkgs/affine-widget-drag-handle/utils.js +1 -1
  418. package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.d.ts +19 -10
  419. package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.js +122 -23
  420. package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.d.ts +2 -0
  421. package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.js +25 -4
  422. package/dist/_pkgs/affine-widget-edgeless-auto-connect/index.js +1 -1
  423. package/dist/_pkgs/affine-widget-edgeless-dragging-area/edgeless-dragging-area-rect.js +1 -1
  424. package/dist/_pkgs/affine-widget-edgeless-selected-rect/auto-complete-panel.js +10 -5
  425. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.d.ts +15 -1
  426. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.js +37 -32
  427. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-element-link.js +5 -4
  428. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-selected-rect.js +19 -9
  429. package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.d.ts +16 -2
  430. package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.js +19 -2
  431. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-default.d.ts +14 -0
  432. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-default.js +40 -0
  433. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.d.ts +158 -0
  434. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.js +572 -0
  435. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.d.ts +46 -0
  436. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.js +66 -0
  437. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.d.ts +13 -0
  438. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.js +50 -0
  439. package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.d.ts +6 -0
  440. package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.js +15 -5
  441. package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.d.ts +2 -0
  442. package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.js +2 -0
  443. package/dist/_pkgs/affine-widget-edgeless-toolbar/extension/index.d.ts +7 -0
  444. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +5 -0
  445. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +5 -0
  446. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +57 -0
  447. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +140 -0
  448. package/dist/_pkgs/affine-widget-edgeless-toolbar/view.js +9 -0
  449. package/dist/_pkgs/affine-widget-frame-title/edgeless-frame-title-editor.js +4 -1
  450. package/dist/_pkgs/affine-widget-keyboard-toolbar/icons.js +98 -98
  451. package/dist/_pkgs/affine-widget-keyboard-toolbar/keyboard-tool-panel.js +1 -1
  452. package/dist/_pkgs/affine-widget-linked-doc/import-doc/import-doc.js +1 -1
  453. package/dist/_pkgs/affine-widget-linked-doc/linked-doc-popover.js +2 -15
  454. package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.d.ts +10 -1
  455. package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.js +133 -6
  456. package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.d.ts +10 -0
  457. package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.js +120 -3
  458. package/dist/_pkgs/affine-widget-linked-doc/utils.d.ts +12 -0
  459. package/dist/_pkgs/affine-widget-linked-doc/utils.js +33 -0
  460. package/dist/_pkgs/affine-widget-page-dragging-area/index.js +1 -1
  461. package/dist/_pkgs/affine-widget-remote-selection/doc/doc-remote-selection.js +1 -1
  462. package/dist/_pkgs/affine-widget-remote-selection/edgeless/index.js +6 -4
  463. package/dist/_pkgs/affine-widget-slash-menu/slash-menu-popover.js +8 -4
  464. package/dist/_pkgs/affine-widget-slash-menu/utils.d.ts +9 -0
  465. package/dist/_pkgs/affine-widget-slash-menu/utils.js +24 -0
  466. package/dist/_pkgs/affine-widget-toolbar/toolbar.d.ts +6 -0
  467. package/dist/_pkgs/affine-widget-toolbar/toolbar.js +40 -8
  468. package/dist/_pkgs/affine-widget-toolbar/utils.d.ts +146 -3
  469. package/dist/_pkgs/affine-widget-toolbar/utils.js +744 -58
  470. package/dist/_pkgs/data-view/core/common/property-menu.js +3 -16
  471. package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.d.ts +4 -0
  472. package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.js +28 -1
  473. package/dist/_pkgs/data-view/core/data-view.d.ts +3 -1
  474. package/dist/_pkgs/data-view/core/data-view.js +25 -3
  475. package/dist/_pkgs/data-view/core/detail/field.js +2 -2
  476. package/dist/_pkgs/data-view/core/detail/selection.d.ts +4 -2
  477. package/dist/_pkgs/data-view/core/detail/selection.js +23 -7
  478. package/dist/_pkgs/data-view/core/effect.js +2 -0
  479. package/dist/_pkgs/data-view/core/filter/eval.js +36 -23
  480. package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.d.ts +7 -0
  481. package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.js +12 -0
  482. package/dist/_pkgs/data-view/core/group-by/compare-date-keys.d.ts +11 -0
  483. package/dist/_pkgs/data-view/core/group-by/compare-date-keys.js +55 -0
  484. package/dist/_pkgs/data-view/core/group-by/define.d.ts +6 -0
  485. package/dist/_pkgs/data-view/core/group-by/define.js +114 -0
  486. package/dist/_pkgs/data-view/core/group-by/matcher.d.ts +7 -0
  487. package/dist/_pkgs/data-view/core/group-by/matcher.js +13 -0
  488. package/dist/_pkgs/data-view/core/group-by/renderer/boolean-group.js +11 -11
  489. package/dist/_pkgs/data-view/core/group-by/renderer/date-group.d.ts +9 -0
  490. package/dist/_pkgs/data-view/core/group-by/renderer/date-group.js +97 -0
  491. package/dist/_pkgs/data-view/core/group-by/setting.js +86 -7
  492. package/dist/_pkgs/data-view/core/group-by/trait.d.ts +34 -0
  493. package/dist/_pkgs/data-view/core/group-by/trait.js +106 -10
  494. package/dist/_pkgs/data-view/core/utils/menu-title.js +17 -17
  495. package/dist/_pkgs/data-view/property-presets/multi-select/cell-renderer.js +3 -1
  496. package/dist/_pkgs/data-view/property-presets/number/define.js +2 -1
  497. package/dist/_pkgs/data-view/property-presets/select/cell-renderer.js +3 -1
  498. package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.d.ts +70 -0
  499. package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.js +449 -0
  500. package/dist/_pkgs/data-view/view-presets/calendar/define.d.ts +10 -0
  501. package/dist/_pkgs/data-view/view-presets/calendar/define.js +27 -0
  502. package/dist/_pkgs/data-view/view-presets/calendar/effect.d.ts +1 -0
  503. package/dist/_pkgs/data-view/view-presets/calendar/effect.js +4 -0
  504. package/dist/_pkgs/data-view/view-presets/calendar/index.d.ts +6 -0
  505. package/dist/_pkgs/data-view/view-presets/calendar/index.js +6 -0
  506. package/dist/_pkgs/data-view/view-presets/calendar/layout.d.ts +37 -0
  507. package/dist/_pkgs/data-view/view-presets/calendar/layout.js +138 -0
  508. package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.d.ts +7 -0
  509. package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.js +64 -0
  510. package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.d.ts +32 -0
  511. package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.js +159 -0
  512. package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.d.ts +1 -0
  513. package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.js +7 -0
  514. package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.d.ts +1 -0
  515. package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.js +28 -0
  516. package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.d.ts +1 -0
  517. package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.js +707 -0
  518. package/dist/_pkgs/data-view/view-presets/calendar/pc/view.d.ts +89 -0
  519. package/dist/_pkgs/data-view/view-presets/calendar/pc/view.js +849 -0
  520. package/dist/_pkgs/data-view/view-presets/calendar/renderer.d.ts +2 -0
  521. package/dist/_pkgs/data-view/view-presets/calendar/renderer.js +8 -0
  522. package/dist/_pkgs/data-view/view-presets/calendar/source.d.ts +8 -0
  523. package/dist/_pkgs/data-view/view-presets/calendar/source.js +3 -0
  524. package/dist/_pkgs/data-view/view-presets/calendar/types.d.ts +79 -0
  525. package/dist/_pkgs/data-view/view-presets/calendar/types.js +1 -0
  526. package/dist/_pkgs/data-view/view-presets/convert.js +28 -0
  527. package/dist/_pkgs/data-view/view-presets/effect.js +2 -0
  528. package/dist/_pkgs/data-view/view-presets/index.d.ts +2 -0
  529. package/dist/_pkgs/data-view/view-presets/index.js +3 -0
  530. package/dist/_pkgs/data-view/view-presets/kanban/kanban-view-manager.js +3 -1
  531. package/dist/_pkgs/data-view/view-presets/kanban/mobile/cell.js +2 -2
  532. package/dist/_pkgs/data-view/view-presets/table/collapsed-state.d.ts +18 -0
  533. package/dist/_pkgs/data-view/view-presets/table/collapsed-state.js +36 -0
  534. package/dist/_pkgs/data-view/view-presets/table/mobile/cell.js +2 -2
  535. package/dist/_pkgs/data-view/view-presets/table/mobile/group.d.ts +11 -0
  536. package/dist/_pkgs/data-view/view-presets/table/mobile/group.js +89 -4
  537. package/dist/_pkgs/data-view/view-presets/table/pc/cell.d.ts +3 -0
  538. package/dist/_pkgs/data-view/view-presets/table/pc/cell.js +11 -2
  539. package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.d.ts +1 -0
  540. package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.js +39 -33
  541. package/dist/_pkgs/data-view/view-presets/table/pc/group.d.ts +10 -0
  542. package/dist/_pkgs/data-view/view-presets/table/pc/group.js +86 -5
  543. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.d.ts +1 -0
  544. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.js +39 -33
  545. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/group-title.js +18 -18
  546. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.d.ts +3 -0
  547. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.js +8 -0
  548. package/dist/_pkgs/data-view/view-presets/table/table-view-manager.js +3 -1
  549. package/dist/_pkgs/data-view/view-presets/table/utils.d.ts +3 -0
  550. package/dist/_pkgs/data-view/view-presets/table/utils.js +16 -1
  551. package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-options.js +3 -1
  552. package/dist/_pkgs/global/gfx/curve.js +4 -3
  553. package/dist/_pkgs/std/clipboard/clipboard.js +13 -3
  554. package/dist/_pkgs/std/clipboard/utils.d.ts +5 -0
  555. package/dist/_pkgs/std/clipboard/utils.js +10 -0
  556. package/dist/_pkgs/std/event/dispatcher.js +27 -1
  557. package/dist/_pkgs/std/event/keymap.js +16 -6
  558. package/dist/_pkgs/std/extension/command-registry.d.ts +475 -0
  559. package/dist/_pkgs/std/extension/command-registry.js +431 -0
  560. package/dist/_pkgs/std/extension/dnd/index.d.ts +1 -1
  561. package/dist/_pkgs/std/extension/index.d.ts +2 -0
  562. package/dist/_pkgs/std/extension/index.js +2 -0
  563. package/dist/_pkgs/std/extension/shortcut.js +2 -1
  564. package/dist/_pkgs/std/extension/translation-manifest.d.ts +49 -0
  565. package/dist/_pkgs/std/extension/translation-manifest.js +71 -0
  566. package/dist/_pkgs/std/gfx/grid.js +1 -1
  567. package/dist/_pkgs/std/gfx/index.d.ts +7 -3
  568. package/dist/_pkgs/std/gfx/index.js +6 -2
  569. package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +6 -1
  570. package/dist/_pkgs/std/gfx/interactivity/manager.d.ts +8 -0
  571. package/dist/_pkgs/std/gfx/interactivity/manager.js +18 -0
  572. package/dist/_pkgs/std/gfx/layer.d.ts +1 -1
  573. package/dist/_pkgs/std/gfx/layer.js +1 -2
  574. package/dist/_pkgs/std/gfx/model/surface/decorators/field.js +9 -0
  575. package/dist/_pkgs/std/gfx/model/surface/decorators/index.d.ts +2 -2
  576. package/dist/_pkgs/std/gfx/model/surface/decorators/index.js +2 -2
  577. package/dist/_pkgs/std/gfx/model/surface/decorators/local.d.ts +14 -0
  578. package/dist/_pkgs/std/gfx/model/surface/decorators/local.js +22 -0
  579. package/dist/_pkgs/std/gfx/model/surface/decorators/observer.d.ts +2 -0
  580. package/dist/_pkgs/std/gfx/model/surface/decorators/observer.js +40 -1
  581. package/dist/_pkgs/std/gfx/model/surface/element-model.d.ts +442 -0
  582. package/dist/_pkgs/std/gfx/model/surface/element-model.js +510 -25
  583. package/dist/_pkgs/std/gfx/model/surface/pivot.d.ts +48 -0
  584. package/dist/_pkgs/std/gfx/model/surface/pivot.js +34 -0
  585. package/dist/_pkgs/std/gfx/model/surface/role.d.ts +153 -0
  586. package/dist/_pkgs/std/gfx/model/surface/role.js +117 -0
  587. package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +70 -0
  588. package/dist/_pkgs/std/gfx/model/surface/surface-model.js +305 -17
  589. package/dist/_pkgs/std/gfx/model/surface/tags.d.ts +77 -0
  590. package/dist/_pkgs/std/gfx/model/surface/tags.js +246 -0
  591. package/dist/_pkgs/std/gfx/perf.d.ts +10 -0
  592. package/dist/_pkgs/std/gfx/perf.js +30 -0
  593. package/dist/_pkgs/std/gfx/selection.js +1 -1
  594. package/dist/_pkgs/std/gfx/tool/tool-controller.d.ts +13 -0
  595. package/dist/_pkgs/std/gfx/tool/tool-controller.js +26 -0
  596. package/dist/_pkgs/std/gfx/viewport.d.ts +12 -0
  597. package/dist/_pkgs/std/gfx/viewport.js +20 -2
  598. package/dist/_pkgs/std/inline/extensions/inline-manager.js +1 -1
  599. package/dist/_pkgs/std/inline/extensions/markdown-matcher.js +1 -1
  600. package/dist/_pkgs/std/inline/services/event.d.ts +2 -0
  601. package/dist/_pkgs/std/inline/services/event.js +96 -21
  602. package/dist/_pkgs/std/utils/layer.js +2 -6
  603. package/dist/_pkgs/std/utils/tree.d.ts +14 -0
  604. package/dist/_pkgs/std/utils/tree.js +59 -8
  605. package/dist/_pkgs/std/view/element/gfx-block-component.js +23 -13
  606. package/dist/_pkgs/store/extension/workspace/workspace-meta.d.ts +10 -0
  607. package/dist/_pkgs/store/model/block/flat-sync-controller.js +2 -12
  608. package/dist/_pkgs/store/model/store/crud.js +10 -4
  609. package/dist/_pkgs/store/reactive/flat-native-y/index.d.ts +1 -1
  610. package/dist/_pkgs/store/reactive/flat-native-y/index.js +24 -2
  611. package/dist/commands.d.ts +58 -0
  612. package/dist/commands.js +66 -0
  613. package/dist/extensions/command-telemetry.d.ts +21 -0
  614. package/dist/extensions/command-telemetry.js +89 -0
  615. package/dist/extensions/command-usage.d.ts +23 -0
  616. package/dist/extensions/command-usage.js +37 -0
  617. package/dist/extensions/store.d.ts +9 -4
  618. package/dist/extensions/store.js +27 -24
  619. package/dist/extensions/view.d.ts +9 -4
  620. package/dist/extensions/view.js +35 -8
  621. package/dist/flags.d.ts +98 -21
  622. package/dist/flags.js +103 -22
  623. package/dist/frameworks.d.ts +45 -0
  624. package/dist/frameworks.js +186 -0
  625. package/dist/schemas.d.ts +8 -5
  626. package/dist/schemas.js +28 -32
  627. package/dist/shortcuts.d.ts +16 -16
  628. package/dist/shortcuts.js +8 -36
  629. package/dist/translations.d.ts +56 -0
  630. package/dist/translations.js +200 -0
  631. package/package.json +16 -4
  632. package/dist/_pkgs/affine-block-root/keyboard/shortcuts.d.ts +0 -8
  633. package/dist/_pkgs/affine-block-root/keyboard/shortcuts.js +0 -48
  634. package/dist/_pkgs/affine-gfx-shape/shortcuts.d.ts +0 -6
  635. package/dist/_pkgs/affine-gfx-shape/shortcuts.js +0 -28
  636. package/dist/_pkgs/data-view/core/utils/cache.d.ts +0 -5
  637. package/dist/_pkgs/data-view/core/utils/cache.js +0 -28
@@ -1,4 +1,5 @@
1
1
  import { Overlay } from '../affine-block-surface/index.js';
2
+ import { FrameworkBackgroundElementModel } from '../affine-model/index.js';
2
3
  import { EditPropsStore } from '../affine-shared/services/index.js';
3
4
  import { DisposableGroup } from '../global/disposable/index.js';
4
5
  import { BlockSuiteError, ErrorCode } from '../global/exceptions/index.js';
@@ -186,8 +187,12 @@ export class EdgelessFrameManager extends GfxExtension {
186
187
  element.hasChild(frame)) {
187
188
  return;
188
189
  }
189
- // Only add elements that aren't already grouped and have a valid frame
190
- if (!element.group && frame) {
190
+ // Only add elements that aren't already grouped and have a valid
191
+ // frame, and never let the frame swallow a backdrop that encloses
192
+ // it (e.g. a Wardley map background the frame was drawn on top of).
193
+ if (!element.group &&
194
+ frame &&
195
+ !this._enclosesFrame(element, frame)) {
191
196
  this._adoptNewlyCreatedElement(frame, element);
192
197
  }
193
198
  });
@@ -204,6 +209,12 @@ export class EdgelessFrameManager extends GfxExtension {
204
209
  payload.model.containsBound(frame.elementBound)) {
205
210
  return;
206
211
  }
212
+ // A block that encloses the frame is a backdrop, not frame content —
213
+ // adopting it would bury the frame behind its own child (see
214
+ // `_enclosesFrame`).
215
+ if (this._enclosesFrame(payload.model, frame)) {
216
+ return;
217
+ }
207
218
  if (payload.isLocal) {
208
219
  this._adoptNewlyCreatedElement(frame, payload.model);
209
220
  }
@@ -216,6 +227,27 @@ export class EdgelessFrameManager extends GfxExtension {
216
227
  }
217
228
  }));
218
229
  }
230
+ /**
231
+ * Whether `element` fully encloses `frame`.
232
+ *
233
+ * A frame always renders behind everything it owns (`compare` short-circuits
234
+ * on the ancestor relationship, ignoring indexes) and "bring to front" only
235
+ * reorders top-level siblings — a grouped child is no longer one. So if a
236
+ * frame auto-adopted an element that encloses it (a Wardley map background
237
+ * the frame was drawn on top of, matched only because its center happened to
238
+ * fall inside the frame), the frame would be permanently buried behind its
239
+ * own child with no way to raise it. Such a backdrop must never become frame
240
+ * content. Mirrors the existing frame-inside-frame guard for canvas elements.
241
+ */
242
+ _enclosesFrame(element, frame) {
243
+ // A framework background is never frame content, whatever its geometry:
244
+ // the geometric test below has a hole (a frame TALLER than the map
245
+ // satisfies center-in-frame adoption without being fully enclosed), and
246
+ // since PF2 the model says outright what the geometry only hinted at.
247
+ if (element instanceof FrameworkBackgroundElementModel)
248
+ return true;
249
+ return element.elementBound.contains(frame.elementBound);
250
+ }
219
251
  /**
220
252
  * Adopt an element that was just created inside the frame's bounds.
221
253
  *
@@ -1,4 +1,4 @@
1
- import { DefaultTool, OverlayIdentifier, } from '../affine-block-surface/index.js';
1
+ import { DefaultTool, OverlayIdentifier } from '../affine-block-surface/index.js';
2
2
  import { EditPropsStore, TelemetryProvider, } from '../affine-shared/services/index.js';
3
3
  import { Bound, Vec } from '../global/gfx/index.js';
4
4
  import { BaseTool, getTopElements } from '../std/gfx/index.js';
@@ -36,7 +36,7 @@ import { focusBlockEnd, focusBlockStart, getNextBlockCommand, getPrevBlockComman
36
36
  import { ImageSelection } from '../../affine-shared/selection/index.js';
37
37
  import { unsafeCSSVarV2 } from '../../affine-shared/theme/index.js';
38
38
  import { SignalWatcher, WithDisposable } from '../../global/lit/index.js';
39
- import { BlockSelection, ShadowlessElement, TextSelection, } from '../../std/index.js';
39
+ import { BlockSelection, ShadowlessElement, TextSelection } from '../../std/index.js';
40
40
  import { computed } from '@preact/signals-core';
41
41
  import { css, html } from 'lit';
42
42
  import { property, query } from 'lit/decorators.js';
@@ -35,7 +35,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
35
35
  import { LoadingIcon } from '../affine-components/icons/index.js';
36
36
  import { Peekable } from '../affine-components/peek/index.js';
37
37
  import { ResourceController } from '../affine-components/resource/index.js';
38
- import { ImageBlockSchema, } from '../affine-model/index.js';
38
+ import { ImageBlockSchema } from '../affine-model/index.js';
39
39
  import { cssVarV2, unsafeCSSVarV2 } from '../affine-shared/theme/index.js';
40
40
  import { formatSize } from '../affine-shared/utils/index.js';
41
41
  import { BrokenImageIcon, ImageIcon } from '@blocksuite/icons/lit';
@@ -8,7 +8,12 @@ export const latexBlockStyles = css `
8
8
  height: 100%;
9
9
  padding: 10px 24px;
10
10
  flex-direction: column;
11
- align-items: center;
11
+ /**
12
+ * The rendered formula must span the container so a wide equation can be
13
+ * scrolled through (overflow-x below); centring shrank it to its content
14
+ * and pushed the overflow out of reach.
15
+ */
16
+ align-items: stretch;
12
17
  justify-content: center;
13
18
  border-radius: 4px;
14
19
  overflow-x: auto;
@@ -1,5 +1,5 @@
1
1
  import { ListBlockModel } from '../../affine-model/index.js';
2
- import { getNextContentBlock, matchModels, } from '../../affine-shared/utils/index.js';
2
+ import { getNextContentBlock, matchModels } from '../../affine-shared/utils/index.js';
3
3
  import { TextSelection } from '../../std/index.js';
4
4
  // When deleting at line end of a list block,
5
5
  // check current block's children and siblings
@@ -1,4 +1,4 @@
1
- import { BlockSelection, } from '../../std/index.js';
1
+ import { BlockSelection } from '../../std/index.js';
2
2
  export const selectBlock = (ctx, next) => {
3
3
  const { focusBlock, std } = ctx;
4
4
  if (!focusBlock) {
@@ -1,4 +1,4 @@
1
- import { BlockSelection, } from '../../std/index.js';
1
+ import { BlockSelection } from '../../std/index.js';
2
2
  export const selectBlocksBetween = (ctx, next) => {
3
3
  const { focusBlock, anchorBlock, tail } = ctx;
4
4
  if (!focusBlock || !anchorBlock) {
@@ -1,4 +1,4 @@
1
- import { BlockSelection, TextSelection, } from '../std/index.js';
1
+ import { BlockSelection, TextSelection } from '../std/index.js';
2
2
  const getSelection = (std) => std.selection;
3
3
  function getBlockSelectionBySide(std, tail) {
4
4
  const selection = getSelection(std);
@@ -30,6 +30,15 @@ export declare class EdgelessNoteBlockComponent extends EdgelessNoteBlockCompone
30
30
  };
31
31
  firstUpdated(): void;
32
32
  updated(changedProperties: PropertyValues): void;
33
+ /**
34
+ * A note carries its own `scale` on top of the viewport zoom. That scale
35
+ * belongs to the host element's transform, not to an inner wrapper: the
36
+ * element is laid out from the *unscaled* bound (see `getRenderingRect`), so
37
+ * scaling only the content would leave the element's box — the thing hit
38
+ * tests, the selection rect and the toolbar anchor read — out of step with
39
+ * what is painted at any scale other than 100%.
40
+ */
41
+ getCSSTransform(): string;
33
42
  getRenderingRect(): {
34
43
  x: number;
35
44
  y: number;
@@ -246,6 +246,18 @@ let EdgelessNoteBlockComponent = (() => {
246
246
  });
247
247
  }
248
248
  }
249
+ /**
250
+ * A note carries its own `scale` on top of the viewport zoom. That scale
251
+ * belongs to the host element's transform, not to an inner wrapper: the
252
+ * element is laid out from the *unscaled* bound (see `getRenderingRect`), so
253
+ * scaling only the content would leave the element's box — the thing hit
254
+ * tests, the selection rect and the toolbar anchor read — out of step with
255
+ * what is painted at any scale other than 100%.
256
+ */
257
+ getCSSTransform() {
258
+ const extraScale = this.model.props.edgeless?.scale ?? 1;
259
+ return `${super.getCSSTransform()} scale(${extraScale})`;
260
+ }
249
261
  getRenderingRect() {
250
262
  const { xywh, edgeless } = this.model.props;
251
263
  const { collapse, scale = 1 } = edgeless;
@@ -273,7 +285,6 @@ let EdgelessNoteBlockComponent = (() => {
273
285
  const height = bound.h / scale;
274
286
  const style = {
275
287
  borderRadius: borderRadius + 'px',
276
- transform: `scale(${scale})`,
277
288
  };
278
289
  const extra = this._editing ? ACTIVE_NOTE_EXTRA_PADDING : 0;
279
290
  const isCollapsable = collapse != null &&
@@ -458,6 +469,17 @@ export const EdgelessNoteInteraction = GfxViewInteractionExtension(NoteBlockSche
458
469
  if (!view.isConnected) {
459
470
  return;
460
471
  }
472
+ // A click landing on the note title belongs to the title:
473
+ // routing it through the children container below would
474
+ // clamp it into the first paragraph instead.
475
+ const titleRect = view
476
+ .querySelector('edgeless-page-block-title')
477
+ ?.getBoundingClientRect();
478
+ if (titleRect &&
479
+ new Bound(titleRect.x, titleRect.y, titleRect.width, titleRect.height).isPointInBound([e.clientX, e.clientY])) {
480
+ handleNativeRangeAtPoint(e.clientX, e.clientY);
481
+ return;
482
+ }
461
483
  if (model.children.length === 0) {
462
484
  const blockId = std.store.addBlock('affine:paragraph', { type: 'text' }, model.id);
463
485
  if (blockId) {
@@ -482,6 +504,12 @@ export const EdgelessNoteInteraction = GfxViewInteractionExtension(NoteBlockSche
482
504
  })
483
505
  .catch(console.error);
484
506
  }
507
+ else if (multiSelect && alreadySelected && editing) {
508
+ // Shift-clicking inside a note being edited extends the text
509
+ // range; the default multi-select would drop the editing state
510
+ // and take the range with it.
511
+ return;
512
+ }
485
513
  else {
486
514
  context.default(context);
487
515
  }
@@ -1,7 +1,7 @@
1
1
  import { AttachmentBlockModel, BookmarkBlockModel, CalloutBlockModel, CodeBlockModel, DatabaseBlockModel, DividerBlockModel, ImageBlockModel, ListBlockModel, ParagraphBlockModel, } from '../../affine-model/index.js';
2
2
  import { EMBED_BLOCK_MODEL_LIST } from '../../affine-shared/consts/index.js';
3
- import { getNextContentBlock, matchModels, } from '../../affine-shared/utils/index.js';
4
- import { BlockSelection, TextSelection, } from '../../std/index.js';
3
+ import { getNextContentBlock, matchModels } from '../../affine-shared/utils/index.js';
4
+ import { BlockSelection, TextSelection } from '../../std/index.js';
5
5
  export function forwardDelete(std) {
6
6
  const { store, host } = std;
7
7
  const text = std.selection.find(TextSelection);
@@ -1,5 +1,5 @@
1
1
  import { AttachmentBlockModel, BookmarkBlockModel, CalloutBlockModel, CodeBlockModel, DatabaseBlockModel, DividerBlockModel, EdgelessTextBlockModel, ImageBlockModel, ListBlockModel, NoteBlockModel, ParagraphBlockModel, } from '../../affine-model/index.js';
2
- import { asyncSetInlineRange, focusTextModel, } from '../../affine-rich-text/index.js';
2
+ import { asyncSetInlineRange, focusTextModel } from '../../affine-rich-text/index.js';
3
3
  import { EMBED_BLOCK_MODEL_LIST } from '../../affine-shared/consts/index.js';
4
4
  import { focusTitle, getDocTitleInlineEditor, getPrevContentBlock, matchModels, } from '../../affine-shared/utils/index.js';
5
5
  import { BlockSelection } from '../../std/index.js';
@@ -0,0 +1,37 @@
1
+ import { type AnyCommandDescriptor } from '../../std/index.js';
2
+ import { z } from 'zod';
3
+ /**
4
+ * `pivotDocId: null` unbinds. The key is REQUIRED on purpose: an optional one
5
+ * would make a forgotten argument silently destroy a binding, which is exactly
6
+ * the failure mode an agent-invocable command must not have.
7
+ */
8
+ export declare const bindPivotParams: z.ZodObject<{
9
+ pivotDocId: z.ZodNullable<z.ZodString>;
10
+ /**
11
+ * Explicit targets, for a host or an agent acting on something other than the
12
+ * live selection. **Omitted** — the key absent — the command acts on the
13
+ * current canvas selection.
14
+ *
15
+ * An EMPTY array is not the same thing: it means "these zero elements", so
16
+ * the command does nothing and does not fall back to the selection. That is
17
+ * the safe reading — an agent that computed a target list and came up empty
18
+ * must not have the gesture redirected onto whatever the user happened to
19
+ * have selected — but it is silent, so callers filtering a list should check
20
+ * it before invoking.
21
+ */
22
+ elementIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
23
+ }, "strip", z.ZodTypeAny, {
24
+ pivotDocId: string | null;
25
+ elementIds?: string[] | undefined;
26
+ }, {
27
+ pivotDocId: string | null;
28
+ elementIds?: string[] | undefined;
29
+ }>;
30
+ export type BindPivotParams = z.infer<typeof bindPivotParams>;
31
+ /**
32
+ * The registry's element type erases the parameter contract
33
+ * ({@link AnyCommandDescriptor}) — this is the first command to have one, and
34
+ * `run` re-validates with {@link bindPivotParams} rather than trusting the
35
+ * static type, which is what an agent-invocable command has to do anyway.
36
+ */
37
+ export declare const pivotCommands: AnyCommandDescriptor[];
@@ -0,0 +1,168 @@
1
+ /**
2
+ * The promotion rung "role → component": bind a surface element to a host-owned
3
+ * **pivot record** (MF1, ADR 0005 § 3, ladder in ADR 0007 § 6).
4
+ *
5
+ * The library cannot choose a document — it does not know what a pivot record
6
+ * is. So the record id is a PARAMETER: the host's picker (labreapp, MF2) runs
7
+ * the selection UI and invokes the command with the answer. That is also what
8
+ * makes the command usable by the agent surface with no UI at all.
9
+ */
10
+ import { TelemetryProvider } from '../../affine-shared/services/index.js';
11
+ import { FRAMEWORK_IDS, } from '../../std/index.js';
12
+ import { GfxControllerIdentifier, GfxPrimitiveElementModel, } from '../../std/gfx/index.js';
13
+ import { z } from 'zod';
14
+ const PIVOT_DOC_ID = 'pivotDocId';
15
+ /**
16
+ * `pivotDocId: null` unbinds. The key is REQUIRED on purpose: an optional one
17
+ * would make a forgotten argument silently destroy a binding, which is exactly
18
+ * the failure mode an agent-invocable command must not have.
19
+ */
20
+ export const bindPivotParams = z.object({
21
+ pivotDocId: z.string().min(1).nullable(),
22
+ /**
23
+ * Explicit targets, for a host or an agent acting on something other than the
24
+ * live selection. **Omitted** — the key absent — the command acts on the
25
+ * current canvas selection.
26
+ *
27
+ * An EMPTY array is not the same thing: it means "these zero elements", so
28
+ * the command does nothing and does not fall back to the selection. That is
29
+ * the safe reading — an agent that computed a target list and came up empty
30
+ * must not have the gesture redirected onto whatever the user happened to
31
+ * have selected — but it is silent, so callers filtering a list should check
32
+ * it before invoking.
33
+ */
34
+ elementIds: z.array(z.string()).optional(),
35
+ });
36
+ /**
37
+ * The elements this gesture would write to. Surface elements only: canvas
38
+ * BLOCKS carry a versioned schema, so binding them would be a `version` bump in
39
+ * `packages/affine/model` and is out of scope (ADR 0005 § 6).
40
+ */
41
+ function pivotTargets(std, elementIds) {
42
+ const gfx = std.get(GfxControllerIdentifier);
43
+ const models = elementIds
44
+ ? elementIds.map(id => gfx.surface?.getElementById(id))
45
+ : gfx.selection.selectedElements;
46
+ return models.filter((model) => model instanceof GfxPrimitiveElementModel);
47
+ }
48
+ /**
49
+ * Whether this document may be written to at all.
50
+ *
51
+ * Checked in `run` and not only in `when`, because `when` is consulted by the
52
+ * SURFACES and `runCommand` consults neither it nor `availability` — the
53
+ * palette and the agent reach `run` directly. Without this guard, unbinding
54
+ * succeeds in a read-only document: `clearField` goes through `Store.transact`,
55
+ * which (unlike `addBlock` / `updateBlock` / `deleteBlock`) carries no
56
+ * read-only guard, so the key is deleted and the promotion event is emitted for
57
+ * a document the user cannot edit. Binding merely throws out of `runCommand`,
58
+ * which is bad in a different way.
59
+ */
60
+ const isBindable = (std) => !std.store.readonly;
61
+ /** `'wardley:component'` → `'wardley'`, when that names a real framework. */
62
+ function frameworkOfRole(role) {
63
+ const namespace = role?.split(':')[0];
64
+ return FRAMEWORK_IDS.includes(namespace ?? '')
65
+ ? namespace
66
+ : undefined;
67
+ }
68
+ /** The single value shared by every target, or `undefined` if they disagree. */
69
+ function unanimous(values) {
70
+ const distinct = new Set(values);
71
+ return distinct.size === 1 ? values[0] : undefined;
72
+ }
73
+ const bindPivot = {
74
+ id: 'pivot.bind',
75
+ owner: 'core',
76
+ kind: 'action',
77
+ // NOT `com.labre.keyboardShortcuts.*` like every labelKey before it: those
78
+ // all belong to commands that ship a default chord. This one is keyless by
79
+ // intent and lives in the palette and the agent, so filing it under
80
+ // "keyboard shortcuts" would mislead a translator.
81
+ labelKey: 'com.labre.command.pivot.bind',
82
+ labelFallback: 'Link to record',
83
+ descriptionKey: 'com.labre.command.pivot.bind.description',
84
+ surfaces: ['palette', 'agent'],
85
+ scope: 'edgeless',
86
+ // Keyless by intent — still bindable from Settings › Shortcuts, which is
87
+ // what `toShortcutDescriptor` being total buys.
88
+ defaultKeys: { mac: [], other: [] },
89
+ availability: 'selection',
90
+ // Narrows `'selection'`, never contradicts it: a read-only document, and a
91
+ // selection of nothing but canvas blocks, both have no bindable target.
92
+ //
93
+ // Read-only rides on `when` rather than on `availability` because the union
94
+ // does not COMPOSE: it is one value per command (`command-registry.ts`
95
+ // `isCommandAvailable`), so declaring `'editable'` would buy the read-only
96
+ // gate by dropping the selection gate a host panel needs far more often.
97
+ // `'selection'` stays the serializable answer — it is the precondition a
98
+ // catalogue must show — and the state precondition is enforced below.
99
+ // The missing composition is recorded as an amendment trigger in ADR 0008.
100
+ when: std => isBindable(std) && pivotTargets(std).length > 0,
101
+ params: bindPivotParams,
102
+ run: (std, invocation, params) => {
103
+ const parsed = bindPivotParams.safeParse(params);
104
+ if (!parsed.success) {
105
+ console.error('pivot.bind: invalid params', parsed.error.issues);
106
+ return;
107
+ }
108
+ const { pivotDocId, elementIds } = parsed.data;
109
+ // The load-bearing half of the read-only gate: see `isBindable`.
110
+ if (!isBindable(std))
111
+ return;
112
+ const targets = pivotTargets(std, elementIds);
113
+ if (!targets.length)
114
+ return;
115
+ // A gesture that changes nothing emits nothing and costs no undo step.
116
+ const changing = targets.filter(el => el.pivotDocId !== (pivotDocId ?? undefined));
117
+ if (!changing.length)
118
+ return;
119
+ // BEFORE the write, not after. `store.transact()` is not an undo
120
+ // boundary: the `Y.UndoManager` is built with no `captureTimeout`, so
121
+ // Yjs's 500 ms default merges consecutive transactions — and a bind
122
+ // issued within 500 ms of a drag would be undone TOGETHER with the drag,
123
+ // making the promotion look like it moved geometry. `stopCapturing()`
124
+ // opens a new stack item for what comes NEXT, so it has to precede the
125
+ // write (`Store.captureSync` docstring; same order as `applyLastStyle`).
126
+ //
127
+ // The ADRs' snippets (0005 § 3, 0007 § 6) show it after the write; that
128
+ // contradicts their own stated rationale and is treated as an editorial
129
+ // slip — see the PR description.
130
+ std.store.captureSync();
131
+ for (const element of changing) {
132
+ if (pivotDocId === null) {
133
+ // Not `updateElement(id, { pivotDocId: undefined })`: the `@field()`
134
+ // setter is unconditional, so that would leave the key behind as a
135
+ // tombstone. `clearField` removes it, and accepts this field because
136
+ // it is a declared, non-structural `@field()`.
137
+ element.clearField(PIVOT_DOC_ID);
138
+ }
139
+ else {
140
+ element.surface.updateElement(element.id, { pivotDocId });
141
+ }
142
+ }
143
+ // The ONE emission for this gesture. Not routed through `runCommand`'s
144
+ // bottleneck: that emitter maps `CommandKind` onto the three creation
145
+ // events from a STATIC `{ framework, element }` on the descriptor, and a
146
+ // promotion is neither a creation nor static — `rung`, `direction` and
147
+ // `role` are facts of the invocation. See ADR 0007 § 7.
148
+ const roles = changing.map(el => el.role);
149
+ const role = unanimous(roles);
150
+ std.getOptional(TelemetryProvider)?.track('FrameworkElementPromoted', {
151
+ page: 'whiteboard editor',
152
+ framework: frameworkOfRole(role),
153
+ rung: 'pivot',
154
+ direction: pivotDocId === null ? 'demote' : 'promote',
155
+ role,
156
+ elementCount: changing.length,
157
+ control: invocation.source,
158
+ module: invocation.surface,
159
+ });
160
+ },
161
+ };
162
+ /**
163
+ * The registry's element type erases the parameter contract
164
+ * ({@link AnyCommandDescriptor}) — this is the first command to have one, and
165
+ * `run` re-validates with {@link bindPivotParams} rather than trusting the
166
+ * static type, which is what an agent-invocable command has to do anyway.
167
+ */
168
+ export const pivotCommands = [bindPivot];
@@ -0,0 +1,23 @@
1
+ import { type AnyCommandDescriptor } from '../../std/index.js';
2
+ import { z } from 'zod';
3
+ /**
4
+ * `elementId` omitted, the command reads the current canvas selection. Passing
5
+ * it explicitly is what lets the element's own toolbar name the element that
6
+ * CARRIES the role rather than the group the user clicked (the same reason
7
+ * `tags-toolbar.ts` passes `elementIds` to `tag.set`), and what makes the
8
+ * command usable by the agent with no selection at all.
9
+ */
10
+ export declare const readElementParams: z.ZodObject<{
11
+ elementId: z.ZodOptional<z.ZodString>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ elementId?: string | undefined;
14
+ }, {
15
+ elementId?: string | undefined;
16
+ }>;
17
+ export type ReadElementParams = z.infer<typeof readElementParams>;
18
+ /**
19
+ * The registry's element type erases the parameter contract; `run` re-validates
20
+ * with {@link readElementParams} rather than trusting the static type, which is
21
+ * what an agent-invocable command has to do anyway.
22
+ */
23
+ export declare const readingCommands: AnyCommandDescriptor[];
@@ -0,0 +1,107 @@
1
+ /**
2
+ * `element.read` — the CLICK that asks the tool what it reads of a component
3
+ * (MF3, "reversed reading").
4
+ *
5
+ * The PO's arbitration of 01/08/2026, verbatim: the reversed reading is
6
+ * triggered **on a click, never by automatic validation**, and **writes nothing
7
+ * without confirmation**. This command is the click. It opens a proposal and
8
+ * that is the whole of its effect — no tag, no binding, no property, nothing
9
+ * touched in the document, on any path, ever.
10
+ *
11
+ * Which is also why it is NOT read-only gated: reading a board one cannot edit
12
+ * is exactly as legitimate as reading one you can. The gate lives on the
13
+ * CONFIRMATIONS, which are `tag.set` and `pivot.bind` — two commands that
14
+ * already refuse a read-only store.
15
+ */
16
+ import { ReadingManager } from '../../affine-block-surface/index.js';
17
+ import {} from '../../std/index.js';
18
+ import { GfxControllerIdentifier, GfxPrimitiveElementModel, } from '../../std/gfx/index.js';
19
+ import { z } from 'zod';
20
+ /**
21
+ * `elementId` omitted, the command reads the current canvas selection. Passing
22
+ * it explicitly is what lets the element's own toolbar name the element that
23
+ * CARRIES the role rather than the group the user clicked (the same reason
24
+ * `tags-toolbar.ts` passes `elementIds` to `tag.set`), and what makes the
25
+ * command usable by the agent with no selection at all.
26
+ */
27
+ export const readElementParams = z.object({
28
+ elementId: z.string().min(1).optional(),
29
+ });
30
+ /**
31
+ * The element this reading is about: the one named, or the single selected
32
+ * surface element.
33
+ *
34
+ * ONE element, never a multi-selection: a proposal is one fiche about one
35
+ * thing, and two components have two readings that no single panel could
36
+ * honestly show at once.
37
+ */
38
+ function readTarget(std, elementId) {
39
+ const gfx = std.get(GfxControllerIdentifier);
40
+ if (elementId) {
41
+ const model = gfx.surface?.getElementById(elementId);
42
+ return model instanceof GfxPrimitiveElementModel ? model : null;
43
+ }
44
+ const selected = gfx.selection.selectedElements.filter((model) => model instanceof GfxPrimitiveElementModel);
45
+ return selected.length === 1 ? selected[0] : null;
46
+ }
47
+ /**
48
+ * Whether anything registered can read this element.
49
+ *
50
+ * Asked through the manager rather than re-implemented here: the profiles are
51
+ * registered by a framework's FLAG-GATED view extension, so a board whose
52
+ * framework is off has no reading and the command stands down — in the palette,
53
+ * on the toolbar and for the agent alike, from one answer.
54
+ */
55
+ function readable(std, elementId) {
56
+ const manager = std.getOptional(ReadingManager);
57
+ if (!manager)
58
+ return false;
59
+ const target = readTarget(std, elementId);
60
+ return target !== null && manager.profileOf(target.id) !== null;
61
+ }
62
+ const readElementCommand = {
63
+ id: 'element.read',
64
+ owner: 'core',
65
+ kind: 'action',
66
+ // Not under `com.labre.keyboardShortcuts.*`: keyless by intent, like
67
+ // `pivot.bind` and `tag.set`, and filing it there would mislead a translator.
68
+ labelKey: 'com.labre.command.element.read',
69
+ labelFallback: 'Read this component',
70
+ descriptionKey: 'com.labre.command.element.read.description',
71
+ // The three surfaces the reading is reachable from. `'contextual-toolbar'`
72
+ // is where it is actually used — one click on the component — and declaring
73
+ // it is what keeps the telemetry honest about where a gesture came from
74
+ // (ADR 0008: the invocation names the surface, and the surface must exist).
75
+ surfaces: ['palette', 'contextual-toolbar', 'agent'],
76
+ scope: 'edgeless',
77
+ defaultKeys: { mac: [], other: [] },
78
+ availability: 'selection',
79
+ // Narrows `'selection'`, never contradicts it. Note what is NOT here: a
80
+ // read-only guard. Reading writes nothing, so there is nothing to refuse.
81
+ when: std => readable(std),
82
+ params: readElementParams,
83
+ run: (std, _invocation, params) => {
84
+ const parsed = readElementParams.safeParse(params);
85
+ if (!parsed.success) {
86
+ console.error('element.read: invalid params', parsed.error.issues);
87
+ return;
88
+ }
89
+ const manager = std.getOptional(ReadingManager);
90
+ if (!manager)
91
+ return;
92
+ const target = readTarget(std, parsed.data.elementId);
93
+ if (!target)
94
+ return;
95
+ // A neutral element, or one whose framework is flagged off, has no reading
96
+ // and must not open an empty panel.
97
+ if (!manager.profileOf(target.id))
98
+ return;
99
+ manager.open(target.id);
100
+ },
101
+ };
102
+ /**
103
+ * The registry's element type erases the parameter contract; `run` re-validates
104
+ * with {@link readElementParams} rather than trusting the static type, which is
105
+ * what an agent-invocable command has to do anyway.
106
+ */
107
+ export const readingCommands = [readElementCommand];
@@ -0,0 +1,47 @@
1
+ import { type AnyCommandDescriptor } from '../../std/index.js';
2
+ import { z } from 'zod';
3
+ /**
4
+ * `values: []` removes the tag. Both keys are REQUIRED on purpose: an optional
5
+ * `values` would make a forgotten argument silently destroy a qualification,
6
+ * which is exactly the failure mode an agent-invocable command must not have.
7
+ */
8
+ export declare const setTagParams: z.ZodObject<{
9
+ /** Namespaced tag def id, e.g. `'wardley:nature'`. */
10
+ tag: z.ZodString;
11
+ /**
12
+ * The value ids selected for that tag, e.g. `['wardley:nature/data']`.
13
+ * `[]` clears it.
14
+ *
15
+ * NOT validated against the registered defs. A document may legitimately
16
+ * carry an id whose def was removed, renamed or never seeded in this
17
+ * deployment, and the persisted value must accept any string — narrowing it
18
+ * here would push that case toward a load-time failure. The picker offers
19
+ * only defined values; the command does not police them.
20
+ */
21
+ values: z.ZodArray<z.ZodString, "many">;
22
+ /**
23
+ * Explicit targets, for a host or an agent acting on something other than the
24
+ * live selection. **Omitted** — the key absent — the command acts on the
25
+ * current canvas selection.
26
+ *
27
+ * An EMPTY array is not the same thing: it means "these zero elements", so
28
+ * the command does nothing and does not fall back to the selection.
29
+ */
30
+ elementIds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
31
+ }, "strip", z.ZodTypeAny, {
32
+ values: string[];
33
+ tag: string;
34
+ elementIds?: string[] | undefined;
35
+ }, {
36
+ values: string[];
37
+ tag: string;
38
+ elementIds?: string[] | undefined;
39
+ }>;
40
+ export type SetTagParams = z.infer<typeof setTagParams>;
41
+ /**
42
+ * The registry's element type erases the parameter contract
43
+ * ({@link AnyCommandDescriptor}); `run` re-validates with {@link setTagParams}
44
+ * rather than trusting the static type, which is what an agent-invocable
45
+ * command has to do anyway.
46
+ */
47
+ export declare const tagCommands: AnyCommandDescriptor[];