@formicoidea/labre-core 0.31.0 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/dist/_pkgs/affine-block-callout/callout-block.d.ts +6 -0
  2. package/dist/_pkgs/affine-block-callout/callout-block.js +25 -3
  3. package/dist/_pkgs/affine-block-callout/callout-keymap.js +59 -19
  4. package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.d.ts +20 -0
  5. package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.js +60 -0
  6. package/dist/_pkgs/affine-block-callout/commands/split-callout.d.ts +17 -0
  7. package/dist/_pkgs/affine-block-callout/commands/split-callout.js +42 -0
  8. package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +9 -6
  9. package/dist/_pkgs/affine-block-callout/emoji-margin.d.ts +9 -0
  10. package/dist/_pkgs/affine-block-callout/emoji-margin.js +36 -0
  11. package/dist/_pkgs/affine-block-callout/emoji-menu.d.ts +5 -1
  12. package/dist/_pkgs/affine-block-callout/emoji-menu.js +5 -0
  13. package/dist/_pkgs/affine-block-code/code-block.d.ts +14 -0
  14. package/dist/_pkgs/affine-block-code/code-block.js +44 -6
  15. package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.d.ts +2 -0
  16. package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.js +23 -14
  17. package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.d.ts +16 -0
  18. package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.js +93 -0
  19. package/dist/_pkgs/affine-block-code/code-toolbar/config.js +52 -5
  20. package/dist/_pkgs/affine-block-code/effects.d.ts +2 -0
  21. package/dist/_pkgs/affine-block-code/effects.js +2 -0
  22. package/dist/_pkgs/affine-block-code/highlight/affine-code-unit.js +6 -1
  23. package/dist/_pkgs/affine-block-code/index.d.ts +1 -0
  24. package/dist/_pkgs/affine-block-code/index.js +1 -0
  25. package/dist/_pkgs/affine-block-code/line-numbers.d.ts +25 -0
  26. package/dist/_pkgs/affine-block-code/line-numbers.js +27 -0
  27. package/dist/_pkgs/affine-block-code/styles.js +31 -0
  28. package/dist/_pkgs/affine-block-data-view/data-view-block.js +1 -0
  29. package/dist/_pkgs/affine-block-database/components/title/index.js +4 -1
  30. package/dist/_pkgs/affine-block-database/configs/slash-menu.js +28 -1
  31. package/dist/_pkgs/affine-block-database/database-block.js +13 -0
  32. package/dist/_pkgs/affine-block-database/properties/paste-url.d.ts +24 -0
  33. package/dist/_pkgs/affine-block-database/properties/paste-url.js +98 -0
  34. package/dist/_pkgs/affine-block-database/properties/rich-text/cell-renderer.js +9 -19
  35. package/dist/_pkgs/affine-block-database/properties/title/text.js +20 -25
  36. package/dist/_pkgs/affine-block-database/views/index.js +1 -0
  37. package/dist/_pkgs/affine-block-edgeless-text/edgeless-text-block.js +10 -0
  38. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.d.ts +3 -0
  39. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +48 -1
  40. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.d.ts +17 -0
  41. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.js +24 -0
  42. package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.d.ts +9 -0
  43. package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.js +10 -0
  44. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +8 -4
  45. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.d.ts +4 -0
  46. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +22 -3
  47. package/dist/_pkgs/affine-block-frame/frame-manager.d.ts +13 -0
  48. package/dist/_pkgs/affine-block-frame/frame-manager.js +32 -2
  49. package/dist/_pkgs/affine-block-latex/styles.js +6 -1
  50. package/dist/_pkgs/affine-block-note/note-edgeless-block.d.ts +9 -0
  51. package/dist/_pkgs/affine-block-note/note-edgeless-block.js +29 -1
  52. package/dist/_pkgs/affine-block-root/commands/pivot-commands.d.ts +37 -0
  53. package/dist/_pkgs/affine-block-root/commands/pivot-commands.js +168 -0
  54. package/dist/_pkgs/affine-block-root/commands/reading-commands.d.ts +23 -0
  55. package/dist/_pkgs/affine-block-root/commands/reading-commands.js +107 -0
  56. package/dist/_pkgs/affine-block-root/commands/tag-commands.d.ts +47 -0
  57. package/dist/_pkgs/affine-block-root/commands/tag-commands.js +159 -0
  58. package/dist/_pkgs/affine-block-root/configs/toolbar.d.ts +1 -0
  59. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.js +9 -2
  60. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/render-linked-doc.js +1 -1
  61. package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +26 -1
  62. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.js +11 -2
  63. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-service.js +14 -0
  64. package/dist/_pkgs/affine-block-root/edgeless/index.d.ts +1 -0
  65. package/dist/_pkgs/affine-block-root/edgeless/index.js +1 -0
  66. package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.d.ts +21 -0
  67. package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.js +34 -0
  68. package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.d.ts +7 -1
  69. package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.js +11 -2
  70. package/dist/_pkgs/affine-block-root/index.d.ts +4 -1
  71. package/dist/_pkgs/affine-block-root/index.js +4 -1
  72. package/dist/_pkgs/affine-block-root/keyboard/commands.d.ts +2 -0
  73. package/dist/_pkgs/affine-block-root/keyboard/commands.js +147 -0
  74. package/dist/_pkgs/affine-block-root/view.js +13 -4
  75. package/dist/_pkgs/affine-block-surface/commands/reassociate-connectors.js +0 -1
  76. package/dist/_pkgs/affine-block-surface/effects.js +6 -0
  77. package/dist/_pkgs/affine-block-surface/element-model/index.d.ts +5 -2
  78. package/dist/_pkgs/affine-block-surface/element-model/index.js +4 -2
  79. package/dist/_pkgs/affine-block-surface/extensions/audit.d.ts +107 -0
  80. package/dist/_pkgs/affine-block-surface/extensions/audit.js +472 -0
  81. package/dist/_pkgs/affine-block-surface/extensions/crud-extension.d.ts +14 -0
  82. package/dist/_pkgs/affine-block-surface/extensions/crud-extension.js +27 -0
  83. package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.d.ts +133 -0
  84. package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.js +326 -0
  85. package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +13 -0
  86. package/dist/_pkgs/affine-block-surface/extensions/index.js +13 -0
  87. package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.d.ts +146 -0
  88. package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.js +528 -0
  89. package/dist/_pkgs/affine-block-surface/extensions/map-quality.d.ts +109 -0
  90. package/dist/_pkgs/affine-block-surface/extensions/map-quality.js +84 -0
  91. package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.d.ts +15 -0
  92. package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.js +158 -0
  93. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +145 -0
  94. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +590 -0
  95. package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +494 -0
  96. package/dist/_pkgs/affine-block-surface/extensions/reading.js +767 -0
  97. package/dist/_pkgs/affine-block-surface/extensions/spotlight.d.ts +45 -0
  98. package/dist/_pkgs/affine-block-surface/extensions/spotlight.js +177 -0
  99. package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.d.ts +10 -0
  100. package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +295 -0
  101. package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.d.ts +27 -0
  102. package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.js +361 -0
  103. package/dist/_pkgs/affine-block-surface/extensions/validation.d.ts +1340 -0
  104. package/dist/_pkgs/affine-block-surface/extensions/validation.js +3009 -0
  105. package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.d.ts +286 -0
  106. package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.js +907 -0
  107. package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.d.ts +80 -0
  108. package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.js +123 -0
  109. package/dist/_pkgs/affine-block-surface/framework-background/def.d.ts +321 -0
  110. package/dist/_pkgs/affine-block-surface/framework-background/def.js +81 -0
  111. package/dist/_pkgs/affine-block-surface/framework-background/facts.d.ts +188 -0
  112. package/dist/_pkgs/affine-block-surface/framework-background/facts.js +284 -0
  113. package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +5 -0
  114. package/dist/_pkgs/affine-block-surface/framework-background/index.js +5 -0
  115. package/dist/_pkgs/affine-block-surface/framework-background/interaction.d.ts +12 -0
  116. package/dist/_pkgs/affine-block-surface/framework-background/interaction.js +24 -0
  117. package/dist/_pkgs/affine-block-surface/framework-background/labels.d.ts +59 -0
  118. package/dist/_pkgs/affine-block-surface/framework-background/labels.js +117 -0
  119. package/dist/_pkgs/affine-block-surface/framework-background/renderer.d.ts +8 -0
  120. package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +238 -0
  121. package/dist/_pkgs/affine-block-surface/index.d.ts +1 -0
  122. package/dist/_pkgs/affine-block-surface/index.js +1 -0
  123. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.d.ts +69 -3
  124. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.js +333 -44
  125. package/dist/_pkgs/affine-block-surface/renderer/dom-renderer.js +18 -2
  126. package/dist/_pkgs/affine-block-surface/tool/default-tool.js +8 -0
  127. package/dist/_pkgs/affine-block-surface/utils/font.js +9 -3
  128. package/dist/_pkgs/affine-block-surface/view.d.ts +17 -0
  129. package/dist/_pkgs/affine-block-surface/view.js +57 -2
  130. package/dist/_pkgs/affine-block-table/selection-controller.d.ts +6 -0
  131. package/dist/_pkgs/affine-block-table/selection-controller.js +24 -1
  132. package/dist/_pkgs/affine-block-table/table-block.js +8 -2
  133. package/dist/_pkgs/affine-block-table/table-cell.js +5 -6
  134. package/dist/_pkgs/affine-block-table/table-keymap.d.ts +18 -0
  135. package/dist/_pkgs/affine-block-table/table-keymap.js +41 -0
  136. package/dist/_pkgs/affine-block-table/utils.d.ts +7 -0
  137. package/dist/_pkgs/affine-block-table/utils.js +12 -0
  138. package/dist/_pkgs/affine-block-table/view.js +2 -0
  139. package/dist/_pkgs/affine-components/caption/captioned-block-component.js +2 -1
  140. package/dist/_pkgs/affine-components/context-menu/button.d.ts +7 -0
  141. package/dist/_pkgs/affine-components/context-menu/button.js +7 -2
  142. package/dist/_pkgs/affine-components/context-menu/input.d.ts +4 -0
  143. package/dist/_pkgs/affine-components/context-menu/input.js +12 -0
  144. package/dist/_pkgs/affine-components/context-menu/menu-all.d.ts +2 -0
  145. package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +8 -1
  146. package/dist/_pkgs/affine-components/context-menu/sub-menu.js +3 -0
  147. package/dist/_pkgs/affine-components/highlight-dropdown-menu/highlight-duotone-icon.js +8 -8
  148. package/dist/_pkgs/affine-components/highlight-dropdown-menu/text-duotone-icon.js +11 -11
  149. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.d.ts +28 -0
  150. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.js +231 -0
  151. package/dist/_pkgs/affine-components/icon-picker/emoji-data.d.ts +40 -0
  152. package/dist/_pkgs/affine-components/icon-picker/emoji-data.js +99 -0
  153. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.d.ts +32 -0
  154. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.js +276 -0
  155. package/dist/_pkgs/affine-components/icon-picker/icon-data.d.ts +34 -0
  156. package/dist/_pkgs/affine-components/icon-picker/icon-data.js +83 -0
  157. package/dist/_pkgs/affine-components/icon-picker/icon-picker.d.ts +39 -0
  158. package/dist/_pkgs/affine-components/icon-picker/icon-picker.js +233 -0
  159. package/dist/_pkgs/affine-components/icon-picker/index.d.ts +8 -0
  160. package/dist/_pkgs/affine-components/icon-picker/index.js +15 -0
  161. package/dist/_pkgs/affine-components/icon-picker/recent-store.d.ts +8 -0
  162. package/dist/_pkgs/affine-components/icon-picker/recent-store.js +41 -0
  163. package/dist/_pkgs/affine-components/icon-picker/styles.d.ts +5 -0
  164. package/dist/_pkgs/affine-components/icon-picker/styles.js +166 -0
  165. package/dist/_pkgs/affine-components/icon-picker/types.d.ts +22 -0
  166. package/dist/_pkgs/affine-components/icon-picker/types.js +10 -0
  167. package/dist/_pkgs/affine-components/icons/text.js +426 -426
  168. package/dist/_pkgs/affine-components/open-doc-dropdown-menu/dropdown-menu.d.ts +1 -0
  169. package/dist/_pkgs/affine-components/portal/portal.d.ts +1 -1
  170. package/dist/_pkgs/affine-components/toolbar/menu-button.js +1 -0
  171. package/dist/_pkgs/affine-components/toolbar/toolbar.js +11 -10
  172. package/dist/_pkgs/affine-foundation/view.js +11 -2
  173. package/dist/_pkgs/affine-gfx-brush/index.d.ts +1 -0
  174. package/dist/_pkgs/affine-gfx-brush/index.js +1 -0
  175. package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.d.ts +1 -0
  176. package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.js +11 -0
  177. package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.d.ts +1 -0
  178. package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.js +11 -0
  179. package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.d.ts +2 -0
  180. package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.js +2 -0
  181. package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.d.ts +14 -0
  182. package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.js +54 -0
  183. package/dist/_pkgs/affine-gfx-brush/renderer/index.d.ts +1 -0
  184. package/dist/_pkgs/affine-gfx-brush/renderer/index.js +4 -0
  185. package/dist/_pkgs/affine-gfx-brush/view.d.ts +14 -0
  186. package/dist/_pkgs/affine-gfx-brush/view.js +29 -3
  187. package/dist/_pkgs/affine-gfx-connector/connector-manager.js +32 -6
  188. package/dist/_pkgs/affine-gfx-connector/connector-tool.d.ts +7 -0
  189. package/dist/_pkgs/affine-gfx-connector/connector-tool.js +2 -1
  190. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +123 -0
  191. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +281 -0
  192. package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.d.ts +65 -0
  193. package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.js +395 -0
  194. package/dist/_pkgs/affine-gfx-connector/direction/index.d.ts +4 -0
  195. package/dist/_pkgs/affine-gfx-connector/direction/index.js +4 -0
  196. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.d.ts +72 -0
  197. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.js +187 -0
  198. package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.d.ts +69 -0
  199. package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.js +66 -0
  200. package/dist/_pkgs/affine-gfx-connector/effects.d.ts +2 -0
  201. package/dist/_pkgs/affine-gfx-connector/effects.js +2 -0
  202. package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.js +78 -41
  203. package/dist/_pkgs/affine-gfx-connector/index.d.ts +1 -0
  204. package/dist/_pkgs/affine-gfx-connector/index.js +1 -0
  205. package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +50 -0
  206. package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +67 -1
  207. package/dist/_pkgs/affine-gfx-connector/view.js +16 -0
  208. package/dist/_pkgs/affine-gfx-group/command/group-api.js +150 -62
  209. package/dist/_pkgs/affine-gfx-group/text/edgeless-group-title-editor.js +4 -1
  210. package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.d.ts +16 -0
  211. package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.js +102 -32
  212. package/dist/_pkgs/affine-gfx-shape/commands.d.ts +2 -0
  213. package/dist/_pkgs/affine-gfx-shape/commands.js +33 -0
  214. package/dist/_pkgs/affine-gfx-shape/element-renderer/shape-dom/index.js +48 -19
  215. package/dist/_pkgs/affine-gfx-shape/index.d.ts +1 -1
  216. package/dist/_pkgs/affine-gfx-shape/index.js +1 -1
  217. package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.d.ts +26 -0
  218. package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.js +124 -13
  219. package/dist/_pkgs/affine-gfx-shape/view.js +3 -3
  220. package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.d.ts +2 -0
  221. package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.js +18 -1
  222. package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +9 -5
  223. package/dist/_pkgs/affine-inline-latex/command.js +46 -26
  224. package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.d.ts +10 -0
  225. package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.js +23 -0
  226. package/dist/_pkgs/affine-inline-link/link-node/affine-link.js +4 -1
  227. package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.d.ts +3 -0
  228. package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.js +29 -1
  229. package/dist/_pkgs/affine-model/blocks/code/code-model.d.ts +1 -0
  230. package/dist/_pkgs/affine-model/blocks/code/code-model.js +1 -0
  231. package/dist/_pkgs/affine-model/elements/connector/connector.js +24 -0
  232. package/dist/_pkgs/affine-model/elements/edgy/board.d.ts +32 -0
  233. package/dist/_pkgs/affine-model/elements/edgy/board.js +112 -0
  234. package/dist/_pkgs/affine-model/elements/edgy/facets.d.ts +12 -0
  235. package/dist/_pkgs/affine-model/elements/edgy/facets.js +25 -1
  236. package/dist/_pkgs/affine-model/elements/edgy/index.d.ts +1 -0
  237. package/dist/_pkgs/affine-model/elements/edgy/index.js +1 -0
  238. package/dist/_pkgs/affine-model/elements/framework-background/background.d.ts +42 -0
  239. package/dist/_pkgs/affine-model/elements/framework-background/background.js +42 -0
  240. package/dist/_pkgs/affine-model/elements/framework-background/index.d.ts +1 -0
  241. package/dist/_pkgs/affine-model/elements/framework-background/index.js +1 -0
  242. package/dist/_pkgs/affine-model/elements/index.d.ts +3 -1
  243. package/dist/_pkgs/affine-model/elements/index.js +1 -0
  244. package/dist/_pkgs/affine-model/elements/mindmap/mindmap.js +8 -3
  245. package/dist/_pkgs/affine-model/elements/mindmap/style.d.ts +10 -0
  246. package/dist/_pkgs/affine-model/elements/mindmap/style.js +8 -0
  247. package/dist/_pkgs/affine-model/elements/wardley/wardley.d.ts +21 -29
  248. package/dist/_pkgs/affine-model/elements/wardley/wardley.js +41 -48
  249. package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.d.ts +6 -1
  250. package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.js +160 -2
  251. package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -1
  252. package/dist/_pkgs/affine-shared/adapters/types/delta-converter.d.ts +1 -0
  253. package/dist/_pkgs/affine-shared/adapters/utils/color.d.ts +24 -0
  254. package/dist/_pkgs/affine-shared/adapters/utils/color.js +280 -0
  255. package/dist/_pkgs/affine-shared/adapters/utils/index.d.ts +1 -0
  256. package/dist/_pkgs/affine-shared/adapters/utils/index.js +1 -0
  257. package/dist/_pkgs/affine-shared/commands/block-crud/get-selected-blocks.js +10 -2
  258. package/dist/_pkgs/affine-shared/services/audit-service.d.ts +300 -0
  259. package/dist/_pkgs/affine-shared/services/audit-service.js +228 -0
  260. package/dist/_pkgs/affine-shared/services/edit-props-store.d.ts +7 -0
  261. package/dist/_pkgs/affine-shared/services/edit-props-store.js +11 -0
  262. package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.d.ts +26 -1
  263. package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.js +124 -7
  264. package/dist/_pkgs/affine-shared/services/index.d.ts +5 -0
  265. package/dist/_pkgs/affine-shared/services/index.js +5 -0
  266. package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.d.ts +129 -0
  267. package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +311 -0
  268. package/dist/_pkgs/affine-shared/services/pivot-properties-service.d.ts +217 -0
  269. package/dist/_pkgs/affine-shared/services/pivot-properties-service.js +114 -0
  270. package/dist/_pkgs/affine-shared/services/telemetry-service/code-block.d.ts +1 -1
  271. package/dist/_pkgs/affine-shared/services/telemetry-service/lifecycle.d.ts +182 -0
  272. package/dist/_pkgs/affine-shared/services/telemetry-service/telemetry-service.d.ts +2 -2
  273. package/dist/_pkgs/affine-shared/services/telemetry-service/types.d.ts +6 -1
  274. package/dist/_pkgs/affine-shared/services/toolbar-service/action.d.ts +10 -0
  275. package/dist/_pkgs/affine-shared/services/toolbar-service/index.d.ts +1 -0
  276. package/dist/_pkgs/affine-shared/services/toolbar-service/index.js +1 -0
  277. package/dist/_pkgs/affine-shared/services/toolbar-service/layout.d.ts +134 -0
  278. package/dist/_pkgs/affine-shared/services/toolbar-service/layout.js +146 -0
  279. package/dist/_pkgs/affine-shared/services/translation-service/index.d.ts +68 -0
  280. package/dist/_pkgs/affine-shared/services/translation-service/index.js +39 -0
  281. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.d.ts +155 -0
  282. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.js +254 -0
  283. package/dist/_pkgs/affine-shared/utils/dom/point-to-range.d.ts +4 -0
  284. package/dist/_pkgs/affine-shared/utils/dom/point-to-range.js +58 -2
  285. package/dist/_pkgs/affine-shared/utils/dom/viewport.d.ts +60 -0
  286. package/dist/_pkgs/affine-shared/utils/dom/viewport.js +58 -0
  287. package/dist/_pkgs/affine-shared/utils/print-to-pdf.d.ts +21 -0
  288. package/dist/_pkgs/affine-shared/utils/print-to-pdf.js +166 -32
  289. package/dist/_pkgs/affine-shared/utils/zod-schema.d.ts +7 -0
  290. package/dist/_pkgs/affine-shared/utils/zod-schema.js +27 -1
  291. package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.d.ts +19 -10
  292. package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.js +122 -23
  293. package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.d.ts +2 -0
  294. package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.js +25 -4
  295. package/dist/_pkgs/affine-widget-edgeless-selected-rect/auto-complete-panel.js +10 -5
  296. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.d.ts +15 -1
  297. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.js +37 -32
  298. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-element-link.js +5 -4
  299. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-selected-rect.js +19 -9
  300. package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.d.ts +16 -2
  301. package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.js +19 -2
  302. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +1 -0
  303. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +1 -0
  304. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +38 -0
  305. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +99 -0
  306. package/dist/_pkgs/affine-widget-frame-title/edgeless-frame-title-editor.js +4 -1
  307. package/dist/_pkgs/affine-widget-keyboard-toolbar/icons.js +98 -98
  308. package/dist/_pkgs/affine-widget-linked-doc/linked-doc-popover.js +2 -15
  309. package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.d.ts +10 -1
  310. package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.js +133 -6
  311. package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.d.ts +10 -0
  312. package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.js +120 -3
  313. package/dist/_pkgs/affine-widget-linked-doc/utils.d.ts +12 -0
  314. package/dist/_pkgs/affine-widget-linked-doc/utils.js +33 -0
  315. package/dist/_pkgs/affine-widget-remote-selection/edgeless/index.js +6 -4
  316. package/dist/_pkgs/affine-widget-slash-menu/slash-menu-popover.js +8 -4
  317. package/dist/_pkgs/affine-widget-slash-menu/utils.d.ts +9 -0
  318. package/dist/_pkgs/affine-widget-slash-menu/utils.js +24 -0
  319. package/dist/_pkgs/affine-widget-toolbar/toolbar.d.ts +6 -0
  320. package/dist/_pkgs/affine-widget-toolbar/toolbar.js +34 -6
  321. package/dist/_pkgs/affine-widget-toolbar/utils.d.ts +146 -3
  322. package/dist/_pkgs/affine-widget-toolbar/utils.js +738 -56
  323. package/dist/_pkgs/data-view/core/common/property-menu.js +3 -16
  324. package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.d.ts +4 -0
  325. package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.js +28 -1
  326. package/dist/_pkgs/data-view/core/data-view.d.ts +3 -1
  327. package/dist/_pkgs/data-view/core/data-view.js +25 -3
  328. package/dist/_pkgs/data-view/core/detail/field.js +2 -2
  329. package/dist/_pkgs/data-view/core/detail/selection.d.ts +4 -2
  330. package/dist/_pkgs/data-view/core/detail/selection.js +23 -7
  331. package/dist/_pkgs/data-view/core/effect.js +2 -0
  332. package/dist/_pkgs/data-view/core/filter/eval.js +36 -23
  333. package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.d.ts +7 -0
  334. package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.js +12 -0
  335. package/dist/_pkgs/data-view/core/group-by/compare-date-keys.d.ts +11 -0
  336. package/dist/_pkgs/data-view/core/group-by/compare-date-keys.js +55 -0
  337. package/dist/_pkgs/data-view/core/group-by/define.d.ts +6 -0
  338. package/dist/_pkgs/data-view/core/group-by/define.js +114 -0
  339. package/dist/_pkgs/data-view/core/group-by/matcher.d.ts +7 -0
  340. package/dist/_pkgs/data-view/core/group-by/matcher.js +13 -0
  341. package/dist/_pkgs/data-view/core/group-by/renderer/boolean-group.js +11 -11
  342. package/dist/_pkgs/data-view/core/group-by/renderer/date-group.d.ts +9 -0
  343. package/dist/_pkgs/data-view/core/group-by/renderer/date-group.js +97 -0
  344. package/dist/_pkgs/data-view/core/group-by/setting.js +86 -7
  345. package/dist/_pkgs/data-view/core/group-by/trait.d.ts +34 -0
  346. package/dist/_pkgs/data-view/core/group-by/trait.js +106 -10
  347. package/dist/_pkgs/data-view/core/utils/menu-title.js +17 -17
  348. package/dist/_pkgs/data-view/property-presets/multi-select/cell-renderer.js +3 -1
  349. package/dist/_pkgs/data-view/property-presets/number/define.js +2 -1
  350. package/dist/_pkgs/data-view/property-presets/select/cell-renderer.js +3 -1
  351. package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.d.ts +70 -0
  352. package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.js +449 -0
  353. package/dist/_pkgs/data-view/view-presets/calendar/define.d.ts +10 -0
  354. package/dist/_pkgs/data-view/view-presets/calendar/define.js +27 -0
  355. package/dist/_pkgs/data-view/view-presets/calendar/effect.d.ts +1 -0
  356. package/dist/_pkgs/data-view/view-presets/calendar/effect.js +4 -0
  357. package/dist/_pkgs/data-view/view-presets/calendar/index.d.ts +6 -0
  358. package/dist/_pkgs/data-view/view-presets/calendar/index.js +6 -0
  359. package/dist/_pkgs/data-view/view-presets/calendar/layout.d.ts +37 -0
  360. package/dist/_pkgs/data-view/view-presets/calendar/layout.js +138 -0
  361. package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.d.ts +7 -0
  362. package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.js +68 -0
  363. package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.d.ts +32 -0
  364. package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.js +159 -0
  365. package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.d.ts +1 -0
  366. package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.js +7 -0
  367. package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.d.ts +1 -0
  368. package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.js +28 -0
  369. package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.d.ts +1 -0
  370. package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.js +707 -0
  371. package/dist/_pkgs/data-view/view-presets/calendar/pc/view.d.ts +89 -0
  372. package/dist/_pkgs/data-view/view-presets/calendar/pc/view.js +837 -0
  373. package/dist/_pkgs/data-view/view-presets/calendar/renderer.d.ts +2 -0
  374. package/dist/_pkgs/data-view/view-presets/calendar/renderer.js +8 -0
  375. package/dist/_pkgs/data-view/view-presets/calendar/source.d.ts +8 -0
  376. package/dist/_pkgs/data-view/view-presets/calendar/source.js +3 -0
  377. package/dist/_pkgs/data-view/view-presets/calendar/types.d.ts +79 -0
  378. package/dist/_pkgs/data-view/view-presets/calendar/types.js +1 -0
  379. package/dist/_pkgs/data-view/view-presets/convert.js +28 -0
  380. package/dist/_pkgs/data-view/view-presets/effect.js +2 -0
  381. package/dist/_pkgs/data-view/view-presets/index.d.ts +2 -0
  382. package/dist/_pkgs/data-view/view-presets/index.js +3 -0
  383. package/dist/_pkgs/data-view/view-presets/kanban/kanban-view-manager.js +3 -1
  384. package/dist/_pkgs/data-view/view-presets/kanban/mobile/cell.js +2 -2
  385. package/dist/_pkgs/data-view/view-presets/table/collapsed-state.d.ts +18 -0
  386. package/dist/_pkgs/data-view/view-presets/table/collapsed-state.js +36 -0
  387. package/dist/_pkgs/data-view/view-presets/table/mobile/cell.js +2 -2
  388. package/dist/_pkgs/data-view/view-presets/table/mobile/group.d.ts +11 -0
  389. package/dist/_pkgs/data-view/view-presets/table/mobile/group.js +87 -4
  390. package/dist/_pkgs/data-view/view-presets/table/pc/cell.d.ts +3 -0
  391. package/dist/_pkgs/data-view/view-presets/table/pc/cell.js +11 -2
  392. package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.d.ts +1 -0
  393. package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.js +39 -33
  394. package/dist/_pkgs/data-view/view-presets/table/pc/group.d.ts +10 -0
  395. package/dist/_pkgs/data-view/view-presets/table/pc/group.js +84 -5
  396. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.d.ts +1 -0
  397. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.js +39 -33
  398. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/group-title.js +18 -18
  399. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.d.ts +3 -0
  400. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.js +8 -0
  401. package/dist/_pkgs/data-view/view-presets/table/table-view-manager.js +3 -1
  402. package/dist/_pkgs/data-view/view-presets/table/utils.d.ts +3 -0
  403. package/dist/_pkgs/data-view/view-presets/table/utils.js +16 -1
  404. package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-options.js +3 -1
  405. package/dist/_pkgs/global/gfx/curve.js +4 -3
  406. package/dist/_pkgs/std/clipboard/clipboard.js +13 -3
  407. package/dist/_pkgs/std/clipboard/utils.d.ts +5 -0
  408. package/dist/_pkgs/std/clipboard/utils.js +7 -0
  409. package/dist/_pkgs/std/event/dispatcher.js +27 -1
  410. package/dist/_pkgs/std/event/keymap.js +16 -6
  411. package/dist/_pkgs/std/extension/command-registry.d.ts +321 -0
  412. package/dist/_pkgs/std/extension/command-registry.js +233 -0
  413. package/dist/_pkgs/std/extension/dnd/index.d.ts +1 -1
  414. package/dist/_pkgs/std/extension/index.d.ts +2 -0
  415. package/dist/_pkgs/std/extension/index.js +2 -0
  416. package/dist/_pkgs/std/extension/translation-manifest.d.ts +49 -0
  417. package/dist/_pkgs/std/extension/translation-manifest.js +71 -0
  418. package/dist/_pkgs/std/gfx/index.d.ts +7 -3
  419. package/dist/_pkgs/std/gfx/index.js +6 -2
  420. package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +6 -1
  421. package/dist/_pkgs/std/gfx/interactivity/manager.d.ts +8 -0
  422. package/dist/_pkgs/std/gfx/interactivity/manager.js +18 -0
  423. package/dist/_pkgs/std/gfx/layer.d.ts +1 -1
  424. package/dist/_pkgs/std/gfx/layer.js +1 -2
  425. package/dist/_pkgs/std/gfx/model/surface/decorators/field.js +9 -0
  426. package/dist/_pkgs/std/gfx/model/surface/decorators/index.d.ts +2 -2
  427. package/dist/_pkgs/std/gfx/model/surface/decorators/index.js +2 -2
  428. package/dist/_pkgs/std/gfx/model/surface/decorators/local.d.ts +14 -0
  429. package/dist/_pkgs/std/gfx/model/surface/decorators/local.js +22 -0
  430. package/dist/_pkgs/std/gfx/model/surface/decorators/observer.d.ts +2 -0
  431. package/dist/_pkgs/std/gfx/model/surface/decorators/observer.js +40 -1
  432. package/dist/_pkgs/std/gfx/model/surface/element-model.d.ts +282 -0
  433. package/dist/_pkgs/std/gfx/model/surface/element-model.js +436 -25
  434. package/dist/_pkgs/std/gfx/model/surface/pivot.d.ts +48 -0
  435. package/dist/_pkgs/std/gfx/model/surface/pivot.js +34 -0
  436. package/dist/_pkgs/std/gfx/model/surface/role.d.ts +153 -0
  437. package/dist/_pkgs/std/gfx/model/surface/role.js +115 -0
  438. package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +70 -0
  439. package/dist/_pkgs/std/gfx/model/surface/surface-model.js +304 -17
  440. package/dist/_pkgs/std/gfx/model/surface/tags.d.ts +77 -0
  441. package/dist/_pkgs/std/gfx/model/surface/tags.js +246 -0
  442. package/dist/_pkgs/std/gfx/perf.d.ts +10 -0
  443. package/dist/_pkgs/std/gfx/perf.js +30 -0
  444. package/dist/_pkgs/std/gfx/tool/tool-controller.d.ts +13 -0
  445. package/dist/_pkgs/std/gfx/tool/tool-controller.js +26 -0
  446. package/dist/_pkgs/std/gfx/viewport.d.ts +12 -0
  447. package/dist/_pkgs/std/gfx/viewport.js +19 -1
  448. package/dist/_pkgs/std/inline/services/event.d.ts +2 -0
  449. package/dist/_pkgs/std/inline/services/event.js +96 -21
  450. package/dist/_pkgs/std/utils/layer.js +2 -6
  451. package/dist/_pkgs/std/utils/tree.d.ts +14 -0
  452. package/dist/_pkgs/std/utils/tree.js +59 -8
  453. package/dist/_pkgs/std/view/element/gfx-block-component.js +23 -13
  454. package/dist/_pkgs/store/extension/workspace/workspace-meta.d.ts +10 -0
  455. package/dist/_pkgs/store/model/block/flat-sync-controller.js +2 -12
  456. package/dist/_pkgs/store/model/store/crud.js +7 -4
  457. package/dist/_pkgs/store/reactive/flat-native-y/index.d.ts +1 -1
  458. package/dist/_pkgs/store/reactive/flat-native-y/index.js +24 -2
  459. package/dist/commands.d.ts +58 -0
  460. package/dist/commands.js +66 -0
  461. package/dist/extensions/command-telemetry.d.ts +21 -0
  462. package/dist/extensions/command-telemetry.js +89 -0
  463. package/dist/extensions/store.d.ts +9 -4
  464. package/dist/extensions/store.js +27 -24
  465. package/dist/extensions/view.d.ts +9 -4
  466. package/dist/extensions/view.js +23 -8
  467. package/dist/flags.d.ts +98 -21
  468. package/dist/flags.js +103 -22
  469. package/dist/frameworks.d.ts +45 -0
  470. package/dist/frameworks.js +154 -0
  471. package/dist/schemas.d.ts +8 -5
  472. package/dist/schemas.js +28 -32
  473. package/dist/shortcuts.d.ts +16 -16
  474. package/dist/shortcuts.js +8 -36
  475. package/dist/translations.d.ts +56 -0
  476. package/dist/translations.js +112 -0
  477. package/package.json +16 -4
  478. package/dist/_pkgs/affine-block-root/keyboard/shortcuts.d.ts +0 -8
  479. package/dist/_pkgs/affine-block-root/keyboard/shortcuts.js +0 -48
  480. package/dist/_pkgs/affine-gfx-shape/shortcuts.d.ts +0 -6
  481. package/dist/_pkgs/affine-gfx-shape/shortcuts.js +0 -28
  482. package/dist/_pkgs/data-view/core/utils/cache.d.ts +0 -5
  483. package/dist/_pkgs/data-view/core/utils/cache.js +0 -28
@@ -0,0 +1,188 @@
1
+ import type { Bound } from '../../global/gfx/index.js';
2
+ import { type FrameworkBackgroundDef, type Ratio } from './def.js';
3
+ import type { BackgroundModelLike } from './labels.js';
4
+ /**
5
+ * The framework-background declaration read as EVALUATION FACTS (PF5.15/PF5.16).
6
+ *
7
+ * `def.ts` describes a background so it can be PAINTED. The same declaration
8
+ * already says everything a rule needs to know about the frame of reference —
9
+ * which axes exist, which way they run, where one zone ends and the next
10
+ * begins — and this file is the semantic accessor onto that, so the validation
11
+ * engine never re-derives geometry a framework already declared, and never
12
+ * imports a renderer to find out.
13
+ *
14
+ * Pure data in, pure data out: no canvas, no element model, no DI. Everything
15
+ * here is a function of the declaration (plus, for the model-space helpers, the
16
+ * bounds of ONE instance of it, and — for the transition bands — the bag of
17
+ * props that instance carries, which is data too).
18
+ */
19
+ /**
20
+ * An axis, as a rule sees it.
21
+ *
22
+ * {@link forward} is the unit vector of INCREASING value in MODEL space, where
23
+ * `y` grows DOWNWARDS. So a horizontal axis runs `[1, 0]` and a vertical one
24
+ * `[0, -1]` — "more" is up, which is the opposite of increasing screen `y` and
25
+ * exactly what {@link BackgroundAxisDef} documents.
26
+ *
27
+ * Derived from `orientation` rather than from a new declared field: the
28
+ * direction of progression is not a free choice a framework makes, it is the
29
+ * convention every axis in `def.ts` is already written against ("`forward` is
30
+ * the direction of increasing value"). A framework that one day needs a
31
+ * reversed axis adds a field there and this reads it — until then, inventing
32
+ * one would be a knob nobody turns.
33
+ *
34
+ * ponytail: a ROTATED instance is not accounted for. `forward` is a function of
35
+ * the declaration alone, so it describes an upright background — turn a map
36
+ * 180° on the canvas and W1 reads a correct change arrow as pointing backwards
37
+ * (and a correct one as fine), because the axis it is compared against never
38
+ * turned with it. Distinct from the reversed-axis case above: that one is a
39
+ * framework declaring a different convention, this one is a user rotating one
40
+ * instance of the same convention. Left as is because nothing rotates a
41
+ * framework background today and no user has asked to. Upgrade: fold the
42
+ * instance's `rotate` into the vector — a rotation of `forward` by the
43
+ * instance's angle at the one call site that has the element in hand, not a new
44
+ * declared field.
45
+ */
46
+ export interface BackgroundAxisFact {
47
+ id: string;
48
+ orientation: 'horizontal' | 'vertical';
49
+ /** Unit vector of increasing value, in model space (`y` grows downwards). */
50
+ forward: readonly [number, number];
51
+ /**
52
+ * The model prop that SHOWS this axis' graduations — the dividers a reader
53
+ * sees the zone transitions BY.
54
+ *
55
+ * `undefined` when the axis declares no graduations, or declares them
56
+ * ungated, i.e. always drawn. Read straight off
57
+ * {@link BackgroundTicksDef.visibleProp}: the line that paints the frontier
58
+ * is the line that names its own toggle, so a rule judging against that
59
+ * frontier and the renderer drawing it can never disagree about whether it
60
+ * is there.
61
+ */
62
+ transitionsVisibleProp?: string;
63
+ }
64
+ /** The declared axes, as facts. Empty for a background that declares none. */
65
+ export declare function backgroundAxisFacts(def: FrameworkBackgroundDef): readonly BackgroundAxisFact[];
66
+ /** The declared axis with this id, as a fact. */
67
+ export declare function backgroundAxisFact(def: FrameworkBackgroundDef, axisId: string): BackgroundAxisFact | undefined;
68
+ /**
69
+ * Where one zone ends and the next begins, as PLOT RATIOS, split by the plot
70
+ * axis the transition runs across.
71
+ *
72
+ * `x` holds the ratios of the vertical lines separating zones left to right —
73
+ * on a Wardley map, the three phase transitions (`0.175`, `0.4`, `0.7`). `y`
74
+ * holds the horizontal ones.
75
+ *
76
+ * INTERIOR edges only: `0` and `1` are the borders of the plot, not transitions
77
+ * between two zones, and a rule saying "sit on a transition" must not accept
78
+ * the left edge of the map as one. Sorted and de-duplicated, so adjacent zones
79
+ * sharing an edge contribute it once.
80
+ */
81
+ export declare function backgroundZoneBoundaries(def: FrameworkBackgroundDef): {
82
+ x: readonly Ratio[];
83
+ y: readonly Ratio[];
84
+ };
85
+ /**
86
+ * The same transitions in MODEL coordinates, for ONE instance of the
87
+ * background occupying `bound`.
88
+ *
89
+ * Ratios are of the PLOT, i.e. the element box minus the declared margin — so
90
+ * this is the only place that knows a transition drawn at `0.175` does not sit
91
+ * at 17.5% of the element's width. A rule asking "is this element on a phase
92
+ * transition" compares against these numbers and nothing else.
93
+ */
94
+ export declare function backgroundBoundaryCoords(def: FrameworkBackgroundDef, bound: Bound): {
95
+ x: number[];
96
+ y: number[];
97
+ };
98
+ /**
99
+ * One transition, taken as the BAND it really is, in model coordinates.
100
+ *
101
+ * The line a renderer draws is where two zones meet; the band is the region in
102
+ * which a reader would say something is "at" that frontier. Wardley calls it
103
+ * the zone of PUNCTUATED EQUILIBRIUM — inertia lives at the transition, not on
104
+ * a coordinate — and it is the shape any rule asking "is this on the boundary"
105
+ * has to measure against.
106
+ */
107
+ export interface BackgroundTransitionBand {
108
+ /**
109
+ * The two zones the transition separates, `custom-built|product`. A name, not
110
+ * an index: it comes from the declaration, so it survives a zone being added
111
+ * between two others and says which frontier a finding is about.
112
+ */
113
+ id: string;
114
+ /** The transition line itself. The band's centre. */
115
+ at: number;
116
+ /** The band, in model coordinates: `at` ± half the declared width. */
117
+ min: number;
118
+ max: number;
119
+ }
120
+ /**
121
+ * Whether the part of ONE instance that DRAWS the transitions across a plot
122
+ * axis is currently shown.
123
+ *
124
+ * The frontier a rule measures against is only a frontier the user can see
125
+ * while the graduations that draw it are on the canvas. A framework says which
126
+ * prop shows them — `axes[].ticks.visibleProp`, the very line the renderer
127
+ * reads — and this resolves it against the instance's own props.
128
+ *
129
+ * `true` when nothing gates them: an axis with ungated graduations, an axis
130
+ * with none at all, a framework declaring no axis. A background that never
131
+ * offered the toggle is a background whose frontiers are always there, which is
132
+ * exactly the behaviour every framework had before this existed.
133
+ */
134
+ export declare function backgroundTransitionsShown(def: FrameworkBackgroundDef, plotAxis: 'x' | 'y', model: BackgroundModelLike | undefined): boolean;
135
+ /**
136
+ * Every model prop that can make a transition appear or disappear on this
137
+ * background.
138
+ *
139
+ * The reactive half of {@link backgroundTransitionsShown}: whoever recomputes
140
+ * verdicts has to know which props change one. Data, so the engine learns the
141
+ * list from the declarations it was handed and names no framework.
142
+ */
143
+ export declare function backgroundTransitionVisibleProps(def: FrameworkBackgroundDef): readonly string[];
144
+ /**
145
+ * Every transition of ONE instance of the background, as named BANDS in model
146
+ * coordinates.
147
+ *
148
+ * The width comes from {@link FrameworkBackgroundDef.transitionBandWidth},
149
+ * which is a ratio of the plot — so a map stretched to twice its size keeps a
150
+ * band twice as wide in model units and exactly as wide to the eye. That is the
151
+ * whole point of declaring it there rather than as a number of units in a rule:
152
+ * an absolute slack is four times as strict on a map four times as big, and a
153
+ * user who drops a symbol on the drawn line has no way of knowing which.
154
+ *
155
+ * Empty on a background that declares no width: silence, not a guessed one.
156
+ *
157
+ * ## Two shapes a band may not silently take
158
+ *
159
+ * A declaration is data, and data gets typos. Both are caught here rather than
160
+ * downstream, because the failure modes are invisible on the canvas:
161
+ *
162
+ * - a width of `0` or less would make an INVERTED band (`min > max`) that
163
+ * nothing can be inside — a rule requiring one would indict every subject on
164
+ * the board, over a number nobody meant. The requirement is dropped instead;
165
+ * - a width wider than the gap between two transitions would make OVERLAPPING
166
+ * bands, so a point could be "at" two frontiers at once and the middle of a
167
+ * phase would qualify as a boundary. The width is narrowed to that gap.
168
+ *
169
+ * Both warn once in the console: a declaration that quietly means something
170
+ * other than what it says is worse than one that fails loudly.
171
+ *
172
+ * ## A hidden frontier is not a frontier
173
+ *
174
+ * `model` is the bag of props of the instance being measured. Given one, an
175
+ * axis whose graduations the user has switched off contributes NO band along
176
+ * its plot axis (see {@link backgroundTransitionsShown}) — a caller asking "is
177
+ * this at a transition" gets the same silence as on a frame that declares no
178
+ * transition at all. Nothing is judged against a line nobody can see.
179
+ *
180
+ * Omitting `model` asks the question of the DECLARATION alone: every declared
181
+ * transition, whatever any instance shows. That is what a caller describing the
182
+ * map's meaning rather than judging its drawing wants, and it is what every
183
+ * caller got before this argument existed.
184
+ */
185
+ export declare function backgroundTransitionBands(def: FrameworkBackgroundDef, bound: Bound, model?: BackgroundModelLike): {
186
+ x: BackgroundTransitionBand[];
187
+ y: BackgroundTransitionBand[];
188
+ };
@@ -0,0 +1,284 @@
1
+ import { backgroundPlot, } from './def.js';
2
+ const FORWARD = {
3
+ horizontal: [1, 0],
4
+ vertical: [0, -1],
5
+ };
6
+ /**
7
+ * Frozen at module load, and not as a formality.
8
+ *
9
+ * `as const` is a COMPILE-TIME claim: it stops `FORWARD.horizontal[0] = -1`
10
+ * from type-checking and does nothing whatsoever at runtime. These vectors are
11
+ * handed out by reference — {@link backgroundAxisFacts} returns the constant
12
+ * itself, not a copy — and they are what
13
+ * `evaluateOrientationAgainstAxis` multiplies a subject's direction against. A
14
+ * single write into one of them flips the axis convention for the whole
15
+ * process: correct arrows start reporting as violations, on every map, for the
16
+ * rest of the session.
17
+ *
18
+ * `AuditProvider` made that reachable — the audit seam hands the facts to a
19
+ * host-supplied assistant (PF14.1). `requestAudit` clones the whole request, so
20
+ * that path is closed at the boundary; this closes the class at the SOURCE, for
21
+ * every other caller of {@link collectAuditFacts} and of these accessors,
22
+ * present and future. Two defences, and the cheap one is the one that cannot be
23
+ * forgotten by a caller who has not read the boundary.
24
+ *
25
+ * Cost: three `Object.freeze` calls, once, at module load. Effect: a mutation
26
+ * throws in strict mode (every ES module) instead of silently corrupting the
27
+ * engine three frames later.
28
+ */
29
+ Object.freeze(FORWARD.horizontal);
30
+ Object.freeze(FORWARD.vertical);
31
+ Object.freeze(FORWARD);
32
+ /** The declared axes, as facts. Empty for a background that declares none. */
33
+ export function backgroundAxisFacts(def) {
34
+ return (def.axes ?? []).map(axis => ({
35
+ id: axis.id,
36
+ orientation: axis.orientation,
37
+ forward: FORWARD[axis.orientation],
38
+ ...(axis.ticks?.visibleProp !== undefined
39
+ ? { transitionsVisibleProp: axis.ticks.visibleProp }
40
+ : {}),
41
+ }));
42
+ }
43
+ /** The declared axis with this id, as a fact. */
44
+ export function backgroundAxisFact(def, axisId) {
45
+ return backgroundAxisFacts(def).find(axis => axis.id === axisId);
46
+ }
47
+ /**
48
+ * Where one zone ends and the next begins, as PLOT RATIOS, split by the plot
49
+ * axis the transition runs across.
50
+ *
51
+ * `x` holds the ratios of the vertical lines separating zones left to right —
52
+ * on a Wardley map, the three phase transitions (`0.175`, `0.4`, `0.7`). `y`
53
+ * holds the horizontal ones.
54
+ *
55
+ * INTERIOR edges only: `0` and `1` are the borders of the plot, not transitions
56
+ * between two zones, and a rule saying "sit on a transition" must not accept
57
+ * the left edge of the map as one. Sorted and de-duplicated, so adjacent zones
58
+ * sharing an edge contribute it once.
59
+ */
60
+ export function backgroundZoneBoundaries(def) {
61
+ const x = new Set();
62
+ const y = new Set();
63
+ for (const zone of def.zones ?? []) {
64
+ const { rect } = zone;
65
+ for (const [set, edge] of [
66
+ [x, rect.x],
67
+ [x, rect.x + rect.w],
68
+ [y, rect.y],
69
+ [y, rect.y + rect.h],
70
+ ]) {
71
+ if (edge > 0 && edge < 1)
72
+ set.add(edge);
73
+ }
74
+ }
75
+ const sorted = (set) => Array.from(set).sort((a, b) => a - b);
76
+ return { x: sorted(x), y: sorted(y) };
77
+ }
78
+ /**
79
+ * The same transitions in MODEL coordinates, for ONE instance of the
80
+ * background occupying `bound`.
81
+ *
82
+ * Ratios are of the PLOT, i.e. the element box minus the declared margin — so
83
+ * this is the only place that knows a transition drawn at `0.175` does not sit
84
+ * at 17.5% of the element's width. A rule asking "is this element on a phase
85
+ * transition" compares against these numbers and nothing else.
86
+ */
87
+ export function backgroundBoundaryCoords(def, bound) {
88
+ const plot = backgroundPlot(def, bound.w, bound.h);
89
+ const ratios = backgroundZoneBoundaries(def);
90
+ return {
91
+ x: ratios.x.map(at => bound.x + plot.x0 + at * plot.width),
92
+ y: ratios.y.map(at => bound.y + plot.y0 + at * plot.height),
93
+ };
94
+ }
95
+ /** The plot axis a transition drawn by this axis' graduations runs across. */
96
+ function plotAxisOf(orientation) {
97
+ // A HORIZONTAL axis is graduated by VERTICAL lines, which sit at `x` ratios.
98
+ return orientation === 'horizontal' ? 'x' : 'y';
99
+ }
100
+ /**
101
+ * Whether a visibility gate is open, asked ON BEHALF OF A RULE.
102
+ *
103
+ * Deliberately not `backgroundVisible`, which the renderer uses. Painting asks
104
+ * "do I draw this", and a prop the model does not carry means there is nothing
105
+ * to draw. A rule asks the opposite question — "has the user HIDDEN the line I
106
+ * am about to judge against" — and a prop the model does not carry is not the
107
+ * user hiding anything. So the gate closes only on a value the instance
108
+ * actually carries and that reads false; an instance that has never heard of
109
+ * the prop keeps the rule it has always had.
110
+ *
111
+ * In a real document the two never diverge: a visibility toggle is declared
112
+ * `@field(true)`, so every element carries it from the moment it is created.
113
+ */
114
+ function gateOpen(prop, model) {
115
+ if (model === undefined)
116
+ return true;
117
+ const value = model[prop];
118
+ return value === undefined ? true : Boolean(value);
119
+ }
120
+ /**
121
+ * Whether the part of ONE instance that DRAWS the transitions across a plot
122
+ * axis is currently shown.
123
+ *
124
+ * The frontier a rule measures against is only a frontier the user can see
125
+ * while the graduations that draw it are on the canvas. A framework says which
126
+ * prop shows them — `axes[].ticks.visibleProp`, the very line the renderer
127
+ * reads — and this resolves it against the instance's own props.
128
+ *
129
+ * `true` when nothing gates them: an axis with ungated graduations, an axis
130
+ * with none at all, a framework declaring no axis. A background that never
131
+ * offered the toggle is a background whose frontiers are always there, which is
132
+ * exactly the behaviour every framework had before this existed.
133
+ */
134
+ export function backgroundTransitionsShown(def, plotAxis, model) {
135
+ let gated = false;
136
+ for (const axis of def.axes ?? []) {
137
+ const prop = axis.ticks?.visibleProp;
138
+ if (prop === undefined)
139
+ continue;
140
+ if (plotAxisOf(axis.orientation) !== plotAxis)
141
+ continue;
142
+ gated = true;
143
+ // Several axes may graduate the same plot axis; one of them being drawn is
144
+ // enough for the frontier to be on the canvas.
145
+ if (gateOpen(prop, model))
146
+ return true;
147
+ }
148
+ return !gated;
149
+ }
150
+ /**
151
+ * Every model prop that can make a transition appear or disappear on this
152
+ * background.
153
+ *
154
+ * The reactive half of {@link backgroundTransitionsShown}: whoever recomputes
155
+ * verdicts has to know which props change one. Data, so the engine learns the
156
+ * list from the declarations it was handed and names no framework.
157
+ */
158
+ export function backgroundTransitionVisibleProps(def) {
159
+ const props = [];
160
+ for (const axis of def.axes ?? []) {
161
+ const prop = axis.ticks?.visibleProp;
162
+ if (prop !== undefined && !props.includes(prop))
163
+ props.push(prop);
164
+ }
165
+ return props;
166
+ }
167
+ /**
168
+ * Complain once per distinct problem. These accessors run on every evaluation,
169
+ * so a bare `console.warn` about a malformed declaration would fill the console
170
+ * at 8 Hz while somebody drags.
171
+ */
172
+ const warned = new Set();
173
+ function warnOnce(reason) {
174
+ if (warned.has(reason))
175
+ return;
176
+ warned.add(reason);
177
+ console.warn(`[framework-background] ${reason}`);
178
+ }
179
+ /** The ids of the zones meeting at `edge`, along one plot axis. */
180
+ function zonesMeetingAt(def, axis, edge) {
181
+ let before = '';
182
+ let after = '';
183
+ for (const { id, rect } of def.zones ?? []) {
184
+ const start = axis === 'x' ? rect.x : rect.y;
185
+ const span = axis === 'x' ? rect.w : rect.h;
186
+ if (start + span === edge)
187
+ before = id;
188
+ if (start === edge)
189
+ after = id;
190
+ }
191
+ return `${before}|${after}`;
192
+ }
193
+ /**
194
+ * Every transition of ONE instance of the background, as named BANDS in model
195
+ * coordinates.
196
+ *
197
+ * The width comes from {@link FrameworkBackgroundDef.transitionBandWidth},
198
+ * which is a ratio of the plot — so a map stretched to twice its size keeps a
199
+ * band twice as wide in model units and exactly as wide to the eye. That is the
200
+ * whole point of declaring it there rather than as a number of units in a rule:
201
+ * an absolute slack is four times as strict on a map four times as big, and a
202
+ * user who drops a symbol on the drawn line has no way of knowing which.
203
+ *
204
+ * Empty on a background that declares no width: silence, not a guessed one.
205
+ *
206
+ * ## Two shapes a band may not silently take
207
+ *
208
+ * A declaration is data, and data gets typos. Both are caught here rather than
209
+ * downstream, because the failure modes are invisible on the canvas:
210
+ *
211
+ * - a width of `0` or less would make an INVERTED band (`min > max`) that
212
+ * nothing can be inside — a rule requiring one would indict every subject on
213
+ * the board, over a number nobody meant. The requirement is dropped instead;
214
+ * - a width wider than the gap between two transitions would make OVERLAPPING
215
+ * bands, so a point could be "at" two frontiers at once and the middle of a
216
+ * phase would qualify as a boundary. The width is narrowed to that gap.
217
+ *
218
+ * Both warn once in the console: a declaration that quietly means something
219
+ * other than what it says is worse than one that fails loudly.
220
+ *
221
+ * ## A hidden frontier is not a frontier
222
+ *
223
+ * `model` is the bag of props of the instance being measured. Given one, an
224
+ * axis whose graduations the user has switched off contributes NO band along
225
+ * its plot axis (see {@link backgroundTransitionsShown}) — a caller asking "is
226
+ * this at a transition" gets the same silence as on a frame that declares no
227
+ * transition at all. Nothing is judged against a line nobody can see.
228
+ *
229
+ * Omitting `model` asks the question of the DECLARATION alone: every declared
230
+ * transition, whatever any instance shows. That is what a caller describing the
231
+ * map's meaning rather than judging its drawing wants, and it is what every
232
+ * caller got before this argument existed.
233
+ */
234
+ export function backgroundTransitionBands(def, bound, model) {
235
+ const declared = def.transitionBandWidth;
236
+ if (declared === undefined)
237
+ return { x: [], y: [] };
238
+ if (!(declared > 0)) {
239
+ warnOnce(`"${def.type}" declares a transitionBandWidth of ${declared} — a band ` +
240
+ `with no width is a band nothing can be inside, so the requirement is ` +
241
+ `dropped rather than refusing every subject on the board.`);
242
+ return { x: [], y: [] };
243
+ }
244
+ const plot = backgroundPlot(def, bound.w, bound.h);
245
+ const ratios = backgroundZoneBoundaries(def);
246
+ const bands = (axis, along, origin, span) => {
247
+ const width = fittedWidth(def, declared, along);
248
+ return along.map(at => {
249
+ const centre = origin + at * span;
250
+ const half = (width * span) / 2;
251
+ return {
252
+ id: zonesMeetingAt(def, axis, at),
253
+ at: centre,
254
+ min: centre - half,
255
+ max: centre + half,
256
+ };
257
+ });
258
+ };
259
+ const shown = (plotAxis) => model === undefined || backgroundTransitionsShown(def, plotAxis, model);
260
+ return {
261
+ x: shown('x') ? bands('x', ratios.x, bound.x + plot.x0, plot.width) : [],
262
+ y: shown('y') ? bands('y', ratios.y, bound.y + plot.y0, plot.height) : [],
263
+ };
264
+ }
265
+ /**
266
+ * The declared width, narrowed so that two adjacent bands cannot overlap.
267
+ *
268
+ * Clamped to the smallest gap between two transitions, which is the widest a
269
+ * band can be while every point still belongs to at most one frontier (the two
270
+ * neighbours then meet at a single point). Nothing to clamp when the axis
271
+ * carries fewer than two transitions.
272
+ */
273
+ function fittedWidth(def, declared, along) {
274
+ let gap = Infinity;
275
+ for (let i = 1; i < along.length; i++) {
276
+ gap = Math.min(gap, along[i] - along[i - 1]);
277
+ }
278
+ if (declared <= gap)
279
+ return declared;
280
+ warnOnce(`"${def.type}" declares a transitionBandWidth of ${declared}, wider than ` +
281
+ `the ${gap} between two of its transitions — the bands would overlap and ` +
282
+ `a point would sit at two frontiers at once. Narrowed to ${gap}.`);
283
+ return gap;
284
+ }
@@ -0,0 +1,5 @@
1
+ export * from './def.js';
2
+ export * from './facts.js';
3
+ export * from './interaction.js';
4
+ export * from './labels.js';
5
+ export * from './renderer.js';
@@ -0,0 +1,5 @@
1
+ export * from './def.js';
2
+ export * from './facts.js';
3
+ export * from './interaction.js';
4
+ export * from './labels.js';
5
+ export * from './renderer.js';
@@ -0,0 +1,12 @@
1
+ import type { ExtensionType } from '../../store/index.js';
2
+ import type { FrameworkBackgroundDef } from './def.js';
3
+ /**
4
+ * Resize gating for a framework background, driven by its declaration.
5
+ *
6
+ * `beforeResize` is re-evaluated every time the allowed handles are computed,
7
+ * so toggling `resizeEnabled` from the toolbar updates the handles reactively.
8
+ * An element carrying no such prop falls back to the declaration's
9
+ * `geometry.resizable` — which is what makes that field live data rather than
10
+ * documentation. Moving and selecting stay available throughout.
11
+ */
12
+ export declare function FrameworkBackgroundInteractionExtension(def: FrameworkBackgroundDef): ExtensionType;
@@ -0,0 +1,24 @@
1
+ import { GfxViewInteractionExtension } from '../../std/gfx/index.js';
2
+ import { backgroundResizeAllowed } from './def.js';
3
+ /**
4
+ * Resize gating for a framework background, driven by its declaration.
5
+ *
6
+ * `beforeResize` is re-evaluated every time the allowed handles are computed,
7
+ * so toggling `resizeEnabled` from the toolbar updates the handles reactively.
8
+ * An element carrying no such prop falls back to the declaration's
9
+ * `geometry.resizable` — which is what makes that field live data rather than
10
+ * documentation. Moving and selecting stay available throughout.
11
+ */
12
+ export function FrameworkBackgroundInteractionExtension(def) {
13
+ return GfxViewInteractionExtension(def.type, {
14
+ handleResize({ model }) {
15
+ return {
16
+ beforeResize({ set }) {
17
+ const allowed = backgroundResizeAllowed(def, model);
18
+ if (!allowed)
19
+ set({ allowedHandlers: [] });
20
+ },
21
+ };
22
+ },
23
+ });
24
+ }
@@ -0,0 +1,59 @@
1
+ import type { TranslationService } from '../../affine-shared/services/index.js';
2
+ import type { BackgroundLabelSource, BackgroundTextDef, FrameworkBackgroundDef } from './def.js';
3
+ /** A background element, seen from the primitive: a bag of declared props. */
4
+ export type BackgroundModelLike = Record<string, unknown>;
5
+ /**
6
+ * The words a label actually says.
7
+ *
8
+ * The user's own text wins over the vocabulary, and the vocabulary over the
9
+ * shipped default — so a framework can be fully i18n'd while still letting the
10
+ * user rename an axis on the canvas.
11
+ *
12
+ * i18n goes through the house seam (`TranslationProvider` /
13
+ * {@link translateKey}), which the host injects and the library never bundles.
14
+ * A key the catalogue does not know falls back to the wording the declaration
15
+ * ships, and a declaration that ships none shows the RAW KEY — ugly on purpose,
16
+ * exactly as everywhere else in the library: a dangling key is a bug the host
17
+ * must see, not an excuse for us to invent somebody else's wording.
18
+ */
19
+ export declare function backgroundLabelText(source: BackgroundLabelSource, model: BackgroundModelLike, translation?: TranslationService | null): string;
20
+ /** Whether a `visibleProp` gate is open. No gate means always drawn. */
21
+ export declare function backgroundVisible(visibleProp: string | undefined, model: BackgroundModelLike): boolean;
22
+ /** A label's clickable box in element-local coordinates (axis-aligned, padded). */
23
+ export interface BackgroundLabelHit {
24
+ /** The declaration id of the text. */
25
+ id: string;
26
+ /** The model prop the in-place editor must write back to. */
27
+ prop: string;
28
+ /**
29
+ * The words currently DRAWN there.
30
+ *
31
+ * The editor must open on this, not on `model[prop]`: a label whose prop has
32
+ * never been written shows its vocabulary, and opening an empty box on it
33
+ * would silently offer to erase a name the user can see.
34
+ */
35
+ text: string;
36
+ minX: number;
37
+ minY: number;
38
+ maxX: number;
39
+ maxY: number;
40
+ }
41
+ /**
42
+ * Every text of a declaration, in PAINTING ORDER: zone labels, then each axis'
43
+ * title followed by its end labels.
44
+ *
45
+ * One walk, used by both the renderer and the hit tester, so a label can never
46
+ * be drawn in one place and clicked in another.
47
+ */
48
+ export declare function backgroundTexts(def: FrameworkBackgroundDef): BackgroundTextDef[];
49
+ /**
50
+ * Clickable boxes of every VISIBLE, EDITABLE label — those the declaration
51
+ * binds to a model prop; a label that only names an i18n key is vocabulary,
52
+ * not user text, and is not offered for editing.
53
+ *
54
+ * Positions come from the same declaration the renderer paints from, so the
55
+ * boxes track the drawn text by construction.
56
+ */
57
+ export declare function backgroundLabelHits(def: FrameworkBackgroundDef, model: BackgroundModelLike, w: number, h: number, translation?: TranslationService | null): BackgroundLabelHit[];
58
+ /** First label whose padded box contains the element-local point, or null. */
59
+ export declare function hitTestBackgroundLabel(hits: readonly BackgroundLabelHit[], lx: number, ly: number): BackgroundLabelHit | null;