@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
@@ -0,0 +1,311 @@
1
+ import type { BlockStdScope } from '../../std/index.js';
2
+ import type { ExtensionType } from '../../store/index.js';
3
+ /**
4
+ * One audit criterion, as DATA owned by its framework and versioned like a
5
+ * validation rule.
6
+ *
7
+ * The criterion carries its own PROSE, in {@link prompt} — and that is a
8
+ * deliberate exception to the library's "no sentences" rule, not an oversight.
9
+ * A rule's message is addressed to a USER and therefore belongs to a host
10
+ * catalogue (hence `messageKey` + `messageFallback`); a criterion's prompt is
11
+ * addressed to an ASSISTANT, is not displayed anywhere, and is exactly the kind
12
+ * of thing that must be reviewable, diffable and versioned in the repository
13
+ * rather than retyped in an app. The user-facing half still goes through
14
+ * {@link labelKey} + {@link fallback}, unchanged.
15
+ */
16
+ export interface AuditCriterion {
17
+ /** Stable id, namespaced by framework: `wardley.A1`. */
18
+ id: string;
19
+ /** Owning framework, e.g. `wardley`. A criterion never crosses frameworks. */
20
+ framework: string;
21
+ /** i18n key of the human name; resolved by the host. */
22
+ labelKey: string;
23
+ /** The framework's own wording when the host ships no catalogue for the key. */
24
+ fallback: string;
25
+ /**
26
+ * The criterion itself, in words, for the assistant. Never rendered.
27
+ *
28
+ * Written as an instruction to a reviewer, not as a message to a user: it
29
+ * states what to look for and what would make the map fail it.
30
+ */
31
+ prompt: string;
32
+ /** Bumped when the criterion's meaning changes, so a host can pin behaviour. */
33
+ version: number;
34
+ }
35
+ /** A role, as the assistant sees it. Vocabulary only, no geometry. */
36
+ export interface AuditRoleFact {
37
+ id: string;
38
+ /**
39
+ * Mirrors `RoleKind` structurally rather than importing it: this package sits
40
+ * below `@labre/std/gfx` in the seam, and the DTO must stay a plain shape a
41
+ * host can implement. Kept in sync by the collector, which fails to compile
42
+ * if `RoleKind` gains a member this union does not have — which is exactly
43
+ * how `'text'` arrived here (MF3).
44
+ */
45
+ kind: 'node' | 'edge' | 'text';
46
+ /** Data hierarchy: `wardley:market` specialises `wardley:component`. */
47
+ parent?: string;
48
+ /** Optional, mirroring `RoleDef.labelKey`: a role may ship without one. */
49
+ labelKey?: string;
50
+ }
51
+ /** An axis of a framework frame. Same facts the rule families read. */
52
+ export interface AuditAxisFact {
53
+ id: string;
54
+ orientation: 'horizontal' | 'vertical';
55
+ /** Unit vector of increasing value, model space (`y` grows downwards). */
56
+ forward: readonly [number, number];
57
+ }
58
+ /**
59
+ * A named zone of a framework frame, as PLOT RATIOS.
60
+ *
61
+ * Ratios, never model coordinates: a zone is a statement about the frame, and
62
+ * expressing it in model units would make it a statement about how big the user
63
+ * happened to draw the map. `{ x: 0.4, w: 0.3 }` is "Product" on every Wardley
64
+ * map ever drawn.
65
+ */
66
+ export interface AuditZoneFact {
67
+ id: string;
68
+ /**
69
+ * The user's own wording, when the zone is one THIS frame declares rather
70
+ * than one the framework does — a BPMN pool's lanes. Namespaced ids keep the
71
+ * two apart (`lane:sales` against `product`), and the name is what makes an
72
+ * instance zone worth reporting at all: `lane:2` says nothing to an assistant,
73
+ * "Facturation" says what the band is for.
74
+ *
75
+ * Absent on every framework zone, whose meaning is the framework's and whose
76
+ * wording is the host's to translate.
77
+ */
78
+ name?: string;
79
+ rect: {
80
+ x: number;
81
+ y: number;
82
+ w: number;
83
+ h: number;
84
+ };
85
+ }
86
+ /** One framework frame on the board — a Wardley map, a Cynefin grid. */
87
+ export interface AuditFrameFact {
88
+ elementId: string;
89
+ framework: string;
90
+ /** Background declaration type, e.g. `'wardley'`. */
91
+ type: string;
92
+ /** The level of requirement in force, when the frame names one. */
93
+ profileId?: string;
94
+ axes: readonly AuditAxisFact[];
95
+ zones: readonly AuditZoneFact[];
96
+ }
97
+ /** One element measured against a frame. */
98
+ export interface AuditElementFact {
99
+ id: string;
100
+ /** Role id, e.g. `wardley:component`. Neutral elements are never collected. */
101
+ role: string;
102
+ /** The frame it was attributed to, when it sits on one. */
103
+ frameId?: string;
104
+ /**
105
+ * Where it sits INSIDE that frame's plot, as ratios — `[0.62, 0.31]` reads as
106
+ * "in Product, fairly high up the value chain" on any Wardley map, at any
107
+ * size. Absent when the element is on no frame.
108
+ */
109
+ at?: readonly [number, number];
110
+ /** The zone its centre falls in, when the frame declares zones. */
111
+ zone?: string;
112
+ }
113
+ /**
114
+ * A level 1 / level 2 finding, handed to the assistant as a FACT about the map.
115
+ *
116
+ * The deterministic engine's output is an input to the audit and never the
117
+ * other way round. Structurally a subset of the engine's `Violation`, so the
118
+ * collector copies rather than converts — and so this package needs no
119
+ * dependency on `@labre/affine-block-surface`, which depends on it.
120
+ */
121
+ export interface AuditViolationFact {
122
+ ruleId: string;
123
+ /** Never `'audit'`: an audit finding is not a fact about the map. */
124
+ severity: 'blocking-overridable' | 'warning';
125
+ elementIds: string[];
126
+ messageKey: string;
127
+ backgroundId?: string;
128
+ /** Set when a user already arbitrated this finding away (PF8). */
129
+ exemption?: 'element' | 'map';
130
+ }
131
+ /**
132
+ * Everything the assistant is told about the board. **Render-free** (ADR 0006
133
+ * § 5): no `TemplateResult`, no element model, no function, no DOM — a plain
134
+ * object that survives `structuredClone` and a `postMessage`.
135
+ */
136
+ export interface AuditFacts {
137
+ /** The role vocabulary in play, so an id is never an opaque string. */
138
+ roles: readonly AuditRoleFact[];
139
+ frames: readonly AuditFrameFact[];
140
+ elements: readonly AuditElementFact[];
141
+ /** Levels 1 and 2, as computed by the deterministic engine. */
142
+ violations: readonly AuditViolationFact[];
143
+ }
144
+ /** What the assistant is asked to do. */
145
+ export interface AuditRequest {
146
+ criteria: readonly AuditCriterion[];
147
+ facts: AuditFacts;
148
+ }
149
+ /** How far along a run is. Reported, never awaited. */
150
+ export interface AuditProgress {
151
+ /** Criteria settled so far. */
152
+ done: number;
153
+ /** Criteria in the request — `request.criteria.length`. */
154
+ total: number;
155
+ /** The criterion currently being evaluated, when the provider says. */
156
+ criterionId?: string;
157
+ }
158
+ /**
159
+ * One audit result, in the shape of a violation object at `audit` severity.
160
+ *
161
+ * Structurally assignable to the engine's `Violation` (a test pins that), which
162
+ * is what lets a host panel render an audit finding with the very same code it
163
+ * renders a rule finding with — while `userFacingViolations` keeps it off the
164
+ * canvas, because that is what `audit` severity means.
165
+ */
166
+ export interface AuditFinding {
167
+ /**
168
+ * Namespaced as `audit:<criterionId>` so it can never collide with a
169
+ * registered rule id, and so `ValidationManager.ruleOf` returns nothing for it
170
+ * — an audit finding is not arbitrable with a user exception. It is an
171
+ * opinion, and an opinion is not a rule to be waived.
172
+ */
173
+ ruleId: string;
174
+ /**
175
+ * The elements the finding is about — **not validated against the surface**.
176
+ *
177
+ * The library checks that these are strings and nothing more. An id naming an
178
+ * element that no longer exists, or one from another document, is published
179
+ * as-is: validating would cost a lookup per id, and a missing id is not
180
+ * *wrong* so much as *stale* — the board moves on while an audit is in
181
+ * flight, which is the normal case for a call that takes seconds.
182
+ *
183
+ * **A host panel must therefore tolerate absent ids**: resolve them
184
+ * defensively and render what it can, rather than assuming every id is a live
185
+ * element. This is the one place the "render it with the code you already
186
+ * have" claim needs a caveat.
187
+ */
188
+ elementIds: string[];
189
+ /** Always `'audit'`. Forced by {@link normalizeFinding}, never trusted. */
190
+ severity: 'audit';
191
+ messageKey: string;
192
+ messageFallback?: string;
193
+ suggestion?: string;
194
+ suggestionFallback?: string;
195
+ backgroundId?: string;
196
+ /** The criterion this came from. */
197
+ criterionId: string;
198
+ /** The criterion's `version` at the time of the run. */
199
+ criterionVersion: number;
200
+ /** When the run that produced it finished, `Date.now()`. */
201
+ at: number;
202
+ }
203
+ /**
204
+ * How a run ended.
205
+ *
206
+ * - `complete` — the provider settled every criterion.
207
+ * - `aborted` — the caller's `AbortSignal` fired. Findings produced before the
208
+ * abort are KEPT: an audit interrupted halfway has still said something true.
209
+ * - `error` — the provider threw or rejected. A host's broken build must not
210
+ * become a crash on a keystroke.
211
+ * - `unavailable` — nothing could answer. Either no provider is registered in
212
+ * this assembly (the standalone playground, where the whole of levels 1 and 2
213
+ * still works), or a registered one **declared itself unavailable** — an
214
+ * assistant behind an app-side feature flag, an exhausted quota, no model
215
+ * configured. The second case is passed through rather than folded into
216
+ * `complete`: `unavailable` is the count of users reaching for an audit this
217
+ * build cannot deliver, and it is worthless if a provider can opt out of it
218
+ * by answering politely.
219
+ * - `superseded` — a NEWER run for the same editor started while this one was
220
+ * in flight. Its `findings` are **always empty**: the answer described a
221
+ * board the user has already moved past, so it is dropped from the return
222
+ * value as well as from the signal, and a host that awaits without checking
223
+ * the status cannot render it. Never returned by {@link requestAudit}:
224
+ * superseding is the library's arbitration between two of its own calls, not
225
+ * something a provider can declare (one that returns it is read as
226
+ * `complete`).
227
+ */
228
+ export type AuditStatus = 'complete' | 'aborted' | 'error' | 'unavailable' | 'superseded';
229
+ export interface AuditResult {
230
+ status: AuditStatus;
231
+ findings: readonly AuditFinding[];
232
+ /** Free-form diagnostic for `error`. Never rendered. */
233
+ reason?: string;
234
+ }
235
+ export interface AuditRunOptions {
236
+ onProgress?: (progress: AuditProgress) => void;
237
+ signal?: AbortSignal;
238
+ }
239
+ export interface AuditService {
240
+ /**
241
+ * Run the audit. The ONE method of this seam.
242
+ *
243
+ * Contract for hosts:
244
+ * - MUST honour `signal`: stop work and either resolve with what it has or
245
+ * reject with an `AbortError`. Both are accepted — {@link requestAudit}
246
+ * normalises them into `status: 'aborted'`.
247
+ * - MUST NOT mutate anything it is handed. `request` is the library's data.
248
+ * - SHOULD call `onProgress` as criteria settle. Purely advisory: a provider
249
+ * that never calls it is correct, just silent.
250
+ * - MAY reject. The library guards it anyway — see {@link requestAudit}.
251
+ */
252
+ runAudit(request: AuditRequest, options: AuditRunOptions): Promise<AuditResult>;
253
+ }
254
+ export declare const AuditProvider: import("../../global/di/types.js").ServiceIdentifier<AuditService> & (<U extends AuditService = AuditService>(variant: import("../../global/di/types.js").ServiceVariant) => import("../../global/di/types.js").ServiceIdentifier<U>);
255
+ /**
256
+ * The ONLY way in. **No noop default is registered**, exactly as for
257
+ * `PivotPropertiesProvider`: absence is a *meaningful* state (standalone
258
+ * playground, unit tests, a labreapp build that has not wired its assistant),
259
+ * and making it the tested default is what keeps the degraded path honest.
260
+ */
261
+ export declare function AuditExtension(service: AuditService): ExtensionType;
262
+ /** Multi-instance: one registered {@link AuditCriterion} per impl. */
263
+ export declare const AuditCriterionIdentifier: import("../../global/di/types.js").ServiceIdentifier<AuditCriterion> & (<U extends AuditCriterion = AuditCriterion>(variant: import("../../global/di/types.js").ServiceVariant) => import("../../global/di/types.js").ServiceIdentifier<U>);
264
+ /**
265
+ * Register a framework's audit criteria. Call it from the FLAG-GATED view
266
+ * extension, beside `ValidationRuleExtension`: criteria are tooling, so a
267
+ * disabled framework contributes none and an audit of its maps has nothing to
268
+ * ask about.
269
+ *
270
+ * ```ts
271
+ * context.register(AuditCriterionExtension(WARDLEY_AUDIT_CRITERIA));
272
+ * ```
273
+ */
274
+ export declare function AuditCriterionExtension(criteria: readonly AuditCriterion[]): ExtensionType;
275
+ /** Every criterion registered in this editor assembly. */
276
+ export declare function getAuditCriteria(std: BlockStdScope): AuditCriterion[];
277
+ /**
278
+ * The guarded call every in-library consumer uses — the one place the provider
279
+ * contract is enforced rather than trusted.
280
+ *
281
+ * - **No provider registered** → `{ status: 'unavailable', findings: [] }`. A
282
+ * clean refusal, not a throw and not a crash: levels 1 and 2 are untouched
283
+ * and the caller reports nothing.
284
+ * - **The provider throws or rejects** → `{ status: 'error' }`, with the reason
285
+ * kept for logs and never rendered.
286
+ * - **The caller aborted** → `{ status: 'aborted' }`, keeping whatever findings
287
+ * the provider had already returned.
288
+ * - **`onProgress` throws** → swallowed. A broken progress bar must not kill
289
+ * the run that feeds it.
290
+ *
291
+ * ## The request is ISOLATED before it crosses (the outbound half)
292
+ *
293
+ * `normalizeFinding` exists because a provider is not believed on the way back.
294
+ * This is the same statement on the way out, and it was missing: the facts a
295
+ * collector assembles are not all fresh objects. `backgroundAxisFacts` returns
296
+ * `forward` straight from a module constant (`FORWARD` in
297
+ * `framework-background/facts.ts`) — `as const` is compile-time only and
298
+ * nothing is frozen — so every `frames[].axes[].forward` handed over WAS the
299
+ * very array the engine multiplies against in `evaluateOrientationAgainstAxis`.
300
+ * A provider writing into the facts it is given (normalising a vector in place,
301
+ * say) flipped the axis convention for the whole process, and correct arrows
302
+ * started reporting as violations on the canvas. That is precisely what this
303
+ * file's header declares impossible.
304
+ *
305
+ * `structuredClone` at the boundary fixes the whole class rather than that one
306
+ * field: no future fact can leak identity either, and the cost is a constraint
307
+ * the seam already claims (ADR 0006 § 5 — the request must be serializable, and
308
+ * a test round-trips it). Value-comparing tests were structurally blind to it;
309
+ * an identity assertion (`.toBe`) now guards it.
310
+ */
311
+ export declare function requestAudit(std: BlockStdScope, request: AuditRequest, options?: AuditRunOptions): Promise<AuditResult>;
@@ -0,0 +1,228 @@
1
+ /**
2
+ * `AuditProvider` — the injectable seam the **Labre Assistant** plugs into
3
+ * (PF14.1, ADR 0008 § surface `'agent'`, ADR 0006 § render-free host seam).
4
+ *
5
+ * ## What this is, and above all what it is not
6
+ *
7
+ * The executor is the Labre Assistant, app-side (PO decision, 01/08/2026). The
8
+ * library embarks **no model, no prompt runner and no dependency on one**. What
9
+ * it owns is the seam and only the seam:
10
+ *
11
+ * - the criteria, as versioned DATA a framework declares
12
+ * ({@link AuditCriterion}) — the same declarative, host-shippable shape a
13
+ * validation rule, a role or a background already has;
14
+ * - the FACTS of a map, collected render-free ({@link AuditFacts});
15
+ * - a channel out: {@link AuditFinding}s in `audit` severity, timestamped and
16
+ * carrying the criterion they came from.
17
+ *
18
+ * ## The one invariant everything else defends
19
+ *
20
+ * **The deterministic engine never depends on the AI.** Levels 1 and 2 —
21
+ * `blocking-overridable` and `warning`, evaluated by `evaluateRules` inside the
22
+ * 16 ms budget — are computed, rendered and arbitrated with no knowledge that
23
+ * this file exists. An audit READS their output as a fact and writes into a
24
+ * separate signal. There is no path by which a provider (slow, absent, hostile
25
+ * or simply wrong) can change a verdict, delay a frame or move a mark on the
26
+ * canvas.
27
+ *
28
+ * That is why {@link normalizeFinding} FORCES `severity: 'audit'` rather than
29
+ * trusting the provider: `audit` is the severity that is invisible to the
30
+ * drawing user (`userFacingViolations`), so a provider returning `'warning'`
31
+ * would otherwise put an AI opinion behind a canvas bracket.
32
+ */
33
+ import { createIdentifier } from '../../global/di/index.js';
34
+ export const AuditProvider = createIdentifier('LabreAuditService');
35
+ /**
36
+ * The ONLY way in. **No noop default is registered**, exactly as for
37
+ * `PivotPropertiesProvider`: absence is a *meaningful* state (standalone
38
+ * playground, unit tests, a labreapp build that has not wired its assistant),
39
+ * and making it the tested default is what keeps the degraded path honest.
40
+ */
41
+ export function AuditExtension(service) {
42
+ return {
43
+ setup: di => {
44
+ di.override(AuditProvider, () => service);
45
+ },
46
+ };
47
+ }
48
+ /** Multi-instance: one registered {@link AuditCriterion} per impl. */
49
+ export const AuditCriterionIdentifier = createIdentifier('AuditCriterion');
50
+ /**
51
+ * Register a framework's audit criteria. Call it from the FLAG-GATED view
52
+ * extension, beside `ValidationRuleExtension`: criteria are tooling, so a
53
+ * disabled framework contributes none and an audit of its maps has nothing to
54
+ * ask about.
55
+ *
56
+ * ```ts
57
+ * context.register(AuditCriterionExtension(WARDLEY_AUDIT_CRITERIA));
58
+ * ```
59
+ */
60
+ export function AuditCriterionExtension(criteria) {
61
+ return {
62
+ setup: di => {
63
+ for (const criterion of criteria) {
64
+ di.addImpl(AuditCriterionIdentifier(criterion.id), () => criterion);
65
+ }
66
+ },
67
+ };
68
+ }
69
+ /** Every criterion registered in this editor assembly. */
70
+ export function getAuditCriteria(std) {
71
+ return [...std.provider.getAll(AuditCriterionIdentifier).values()];
72
+ }
73
+ /** Whether a rejection is the caller's own abort rather than a failure. */
74
+ function isAbort(error, signal) {
75
+ if (signal?.aborted)
76
+ return true;
77
+ return error instanceof Error && error.name === 'AbortError';
78
+ }
79
+ /**
80
+ * Force a provider's answer into the ONE shape the library is willing to
81
+ * publish. Nothing here is a formality:
82
+ *
83
+ * - `severity` is OVERWRITTEN, never read. `'audit'` is the severity that stays
84
+ * off the canvas; a provider returning `'blocking-overridable'` would
85
+ * otherwise raise a bracket on an element over a sentence a model wrote.
86
+ * - `ruleId` is re-derived from the criterion, so a provider cannot attach its
87
+ * finding to a registered rule id and inherit that rule's exceptions,
88
+ * profile or toolbar arbitration.
89
+ * - a finding naming a criterion that was not in the request is DROPPED. The
90
+ * library asked three questions; an answer to a fourth is not an answer.
91
+ * - `at` is stamped library-side from one clock, so every finding of one run
92
+ * carries the same timestamp whatever the provider believes the time is.
93
+ */
94
+ function normalizeFinding(raw, criteria, at) {
95
+ const criterion = criteria.get(raw.criterionId);
96
+ if (!criterion)
97
+ return null;
98
+ return {
99
+ ...raw,
100
+ ruleId: `audit:${criterion.id}`,
101
+ // Whatever came back: an id list is the only part a provider authors, and
102
+ // it must be an array of strings or nothing at all.
103
+ elementIds: Array.isArray(raw.elementIds)
104
+ ? raw.elementIds.filter((id) => typeof id === 'string')
105
+ : [],
106
+ severity: 'audit',
107
+ criterionId: criterion.id,
108
+ criterionVersion: criterion.version,
109
+ at,
110
+ };
111
+ }
112
+ /**
113
+ * The guarded call every in-library consumer uses — the one place the provider
114
+ * contract is enforced rather than trusted.
115
+ *
116
+ * - **No provider registered** → `{ status: 'unavailable', findings: [] }`. A
117
+ * clean refusal, not a throw and not a crash: levels 1 and 2 are untouched
118
+ * and the caller reports nothing.
119
+ * - **The provider throws or rejects** → `{ status: 'error' }`, with the reason
120
+ * kept for logs and never rendered.
121
+ * - **The caller aborted** → `{ status: 'aborted' }`, keeping whatever findings
122
+ * the provider had already returned.
123
+ * - **`onProgress` throws** → swallowed. A broken progress bar must not kill
124
+ * the run that feeds it.
125
+ *
126
+ * ## The request is ISOLATED before it crosses (the outbound half)
127
+ *
128
+ * `normalizeFinding` exists because a provider is not believed on the way back.
129
+ * This is the same statement on the way out, and it was missing: the facts a
130
+ * collector assembles are not all fresh objects. `backgroundAxisFacts` returns
131
+ * `forward` straight from a module constant (`FORWARD` in
132
+ * `framework-background/facts.ts`) — `as const` is compile-time only and
133
+ * nothing is frozen — so every `frames[].axes[].forward` handed over WAS the
134
+ * very array the engine multiplies against in `evaluateOrientationAgainstAxis`.
135
+ * A provider writing into the facts it is given (normalising a vector in place,
136
+ * say) flipped the axis convention for the whole process, and correct arrows
137
+ * started reporting as violations on the canvas. That is precisely what this
138
+ * file's header declares impossible.
139
+ *
140
+ * `structuredClone` at the boundary fixes the whole class rather than that one
141
+ * field: no future fact can leak identity either, and the cost is a constraint
142
+ * the seam already claims (ADR 0006 § 5 — the request must be serializable, and
143
+ * a test round-trips it). Value-comparing tests were structurally blind to it;
144
+ * an identity assertion (`.toBe`) now guards it.
145
+ */
146
+ export async function requestAudit(std, request, options = {}) {
147
+ const provider = std.getOptional(AuditProvider);
148
+ if (!provider)
149
+ return { status: 'unavailable', findings: [] };
150
+ const criteria = new Map(request.criteria.map(c => [c.id, c]));
151
+ const { signal } = options;
152
+ // Asked before the call as well as after: a caller that aborts between
153
+ // building the request and issuing it must not start a run at all.
154
+ if (signal?.aborted)
155
+ return { status: 'aborted', findings: [] };
156
+ const onProgress = options.onProgress
157
+ ? (progress) => {
158
+ try {
159
+ options.onProgress?.(progress);
160
+ }
161
+ catch (error) {
162
+ console.error('AuditProvider onProgress threw', error);
163
+ }
164
+ }
165
+ : undefined;
166
+ // The outbound half of "a provider is not believed" — see the note above.
167
+ // A throw here means the facts stopped being serializable, which is a library
168
+ // bug and not a host one; it is reported loudly and degraded rather than
169
+ // allowed to become a crash in front of a user.
170
+ let isolated;
171
+ try {
172
+ isolated = structuredClone(request);
173
+ }
174
+ catch (error) {
175
+ console.error('audit facts are not structured-cloneable — the request cannot be ' +
176
+ 'isolated, so it is not sent (ADR 0006 § 5)', error);
177
+ return {
178
+ status: 'error',
179
+ findings: [],
180
+ reason: error instanceof Error ? error.message : String(error),
181
+ };
182
+ }
183
+ let raw;
184
+ try {
185
+ raw = await provider.runAudit(isolated, {
186
+ ...(onProgress ? { onProgress } : {}),
187
+ ...(signal ? { signal } : {}),
188
+ });
189
+ }
190
+ catch (error) {
191
+ if (isAbort(error, signal))
192
+ return { status: 'aborted', findings: [] };
193
+ console.error('AuditProvider.runAudit threw', error);
194
+ return {
195
+ status: 'error',
196
+ findings: [],
197
+ reason: error instanceof Error ? error.message : String(error),
198
+ };
199
+ }
200
+ const at = Date.now();
201
+ const findings = (raw?.findings ?? [])
202
+ .map(finding => normalizeFinding(finding, criteria, at))
203
+ .filter((finding) => finding !== null);
204
+ // A provider that resolved normally while the caller was aborting is still an
205
+ // abort: the caller asked to stop, and honouring that is not the provider's
206
+ // decision to make.
207
+ //
208
+ // `unavailable` passes through with `aborted` and `error`. A registered
209
+ // provider CAN be unable to answer — assistant behind an app-side feature
210
+ // flag, quota exhausted, no model configured — and folding that into
211
+ // `complete` would both inflate the completion series and empty the one
212
+ // number that says how often users reach for an audit this build cannot
213
+ // deliver. `superseded` is deliberately absent: it is the library's own
214
+ // arbitration between two of its calls, so a provider claiming it is read as
215
+ // `complete` and the arbitration stays where it belongs.
216
+ const status = signal?.aborted
217
+ ? 'aborted'
218
+ : raw?.status === 'aborted' ||
219
+ raw?.status === 'error' ||
220
+ raw?.status === 'unavailable'
221
+ ? raw.status
222
+ : 'complete';
223
+ return {
224
+ status,
225
+ findings,
226
+ ...(raw?.reason !== undefined ? { reason: raw.reason } : {}),
227
+ };
228
+ }
@@ -0,0 +1,31 @@
1
+ import { type CommandUsageStore } from '../../std/index.js';
2
+ import type { ExtensionType } from '../../store/index.js';
3
+ /**
4
+ * Where `createLocalCommandUsageStore` persists. Namespaced like the rest of
5
+ * Labre's browser-local state, and versionless on purpose: the shape is two
6
+ * numbers per command, and a reader that does not recognise an entry drops it.
7
+ */
8
+ export declare const COMMAND_USAGE_KEY = "labre:command-usage";
9
+ /**
10
+ * The default {@link CommandUsageStore}: recency and frequency in this
11
+ * browser's `localStorage`, per command id.
12
+ *
13
+ * It measures only. Nothing ranks anything here — PF6's "seven most-recent +
14
+ * six most-used" sub-menu reads these numbers, and a host that
15
+ * wants the measure to follow the user across devices replaces the whole store
16
+ * through {@link CommandUsageExtension}.
17
+ */
18
+ export declare function createLocalCommandUsageStore(): CommandUsageStore;
19
+ /**
20
+ * Host override seam: replace the browser-local measure with the host's own.
21
+ *
22
+ * This is where a host persists command usage in ITS database — so the ranking
23
+ * follows the user from laptop to browser to tablet instead of restarting at
24
+ * zero, which is exactly what a "most-used" sub-menu is judged on. The library
25
+ * ships the local store as the default (`CommandUsageViewExtension`) and never
26
+ * requires a host to care.
27
+ *
28
+ * Mirrors `EditorSettingExtension` / `KeymapOverrideExtension`: `di.override`,
29
+ * so a host registering after the library's own extensions always wins.
30
+ */
31
+ export declare function CommandUsageExtension(store: CommandUsageStore): ExtensionType;
@@ -0,0 +1,109 @@
1
+ import { CommandUsageIdentifier, } from '../../std/index.js';
2
+ /**
3
+ * Where `createLocalCommandUsageStore` persists. Namespaced like the rest of
4
+ * Labre's browser-local state, and versionless on purpose: the shape is two
5
+ * numbers per command, and a reader that does not recognise an entry drops it.
6
+ */
7
+ export const COMMAND_USAGE_KEY = 'labre:command-usage';
8
+ /**
9
+ * Enough for every command of every framework several times over (the registry
10
+ * holds 76 today), small enough that the JSON stays a few kilobytes. Overflow
11
+ * evicts the least recently used entry, so the measure a ranking cares about —
12
+ * what this user reached for lately — is the last thing lost.
13
+ */
14
+ const MAX_ENTRIES = 200;
15
+ /**
16
+ * `localStorage` throws outright in a few environments (private mode quotas,
17
+ * sandboxed frames, some test runners), and a usage measure is never important
18
+ * enough to take a command down with it — every access is therefore
19
+ * best-effort. Same rule and same shape as the icon picker's recent store.
20
+ */
21
+ const storage = () => {
22
+ try {
23
+ return globalThis.localStorage ?? null;
24
+ }
25
+ catch {
26
+ return null;
27
+ }
28
+ };
29
+ const readUsage = () => {
30
+ try {
31
+ const raw = storage()?.getItem(COMMAND_USAGE_KEY);
32
+ if (!raw)
33
+ return {};
34
+ const parsed = JSON.parse(raw);
35
+ if (!parsed || typeof parsed !== 'object')
36
+ return {};
37
+ // Entry by entry: one corrupted record must not discard the whole table.
38
+ const usage = {};
39
+ for (const [id, value] of Object.entries(parsed)) {
40
+ const { c, t } = (value ?? {});
41
+ if (typeof c === 'number' && typeof t === 'number')
42
+ usage[id] = { c, t };
43
+ }
44
+ return usage;
45
+ }
46
+ catch {
47
+ return {};
48
+ }
49
+ };
50
+ const writeUsage = (usage) => {
51
+ try {
52
+ storage()?.setItem(COMMAND_USAGE_KEY, JSON.stringify(usage));
53
+ }
54
+ catch {
55
+ // best-effort: this session keeps working, the measure just misses a run
56
+ }
57
+ };
58
+ /** Keeps the {@link MAX_ENTRIES} most recently used entries, nothing else. */
59
+ const evictOverflow = (usage) => {
60
+ const ids = Object.keys(usage);
61
+ if (ids.length <= MAX_ENTRIES)
62
+ return usage;
63
+ const kept = ids
64
+ .sort((a, b) => usage[b].t - usage[a].t)
65
+ .slice(0, MAX_ENTRIES);
66
+ return Object.fromEntries(kept.map(id => [id, usage[id]]));
67
+ };
68
+ /**
69
+ * The default {@link CommandUsageStore}: recency and frequency in this
70
+ * browser's `localStorage`, per command id.
71
+ *
72
+ * It measures only. Nothing ranks anything here — PF6's "seven most-recent +
73
+ * six most-used" sub-menu reads these numbers, and a host that
74
+ * wants the measure to follow the user across devices replaces the whole store
75
+ * through {@link CommandUsageExtension}.
76
+ */
77
+ export function createLocalCommandUsageStore() {
78
+ return {
79
+ record: (command) => {
80
+ const usage = readUsage();
81
+ const previous = usage[command.id];
82
+ usage[command.id] = { c: (previous?.c ?? 0) + 1, t: Date.now() };
83
+ writeUsage(evictOverflow(usage));
84
+ },
85
+ statsOf: (commandId) => {
86
+ const entry = readUsage()[commandId];
87
+ return entry ? { count: entry.c, lastUsedAt: entry.t } : undefined;
88
+ },
89
+ };
90
+ }
91
+ /**
92
+ * Host override seam: replace the browser-local measure with the host's own.
93
+ *
94
+ * This is where a host persists command usage in ITS database — so the ranking
95
+ * follows the user from laptop to browser to tablet instead of restarting at
96
+ * zero, which is exactly what a "most-used" sub-menu is judged on. The library
97
+ * ships the local store as the default (`CommandUsageViewExtension`) and never
98
+ * requires a host to care.
99
+ *
100
+ * Mirrors `EditorSettingExtension` / `KeymapOverrideExtension`: `di.override`,
101
+ * so a host registering after the library's own extensions always wins.
102
+ */
103
+ export function CommandUsageExtension(store) {
104
+ return {
105
+ setup: di => {
106
+ di.override(CommandUsageIdentifier, () => store);
107
+ },
108
+ };
109
+ }