@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,117 @@
1
+ import { backgroundPlot, backgroundPoint } from './def.js';
2
+ /**
3
+ * The words a label actually says.
4
+ *
5
+ * The user's own text wins over the vocabulary, and the vocabulary over the
6
+ * shipped default — so a framework can be fully i18n'd while still letting the
7
+ * user rename an axis on the canvas.
8
+ *
9
+ * i18n goes through the house seam (`TranslationProvider` /
10
+ * {@link translateKey}), which the host injects and the library never bundles.
11
+ * A key the catalogue does not know falls back to the wording the declaration
12
+ * ships, and a declaration that ships none shows the RAW KEY — ugly on purpose,
13
+ * exactly as everywhere else in the library: a dangling key is a bug the host
14
+ * must see, not an excuse for us to invent somebody else's wording.
15
+ */
16
+ export function backgroundLabelText(source, model, translation) {
17
+ if (source.prop !== undefined) {
18
+ const value = model[source.prop];
19
+ if (value !== undefined && value !== null)
20
+ return String(value);
21
+ }
22
+ if (source.labelKey !== undefined) {
23
+ const resolved = translation?.t(source.labelKey);
24
+ if (resolved !== undefined && resolved !== '')
25
+ return resolved;
26
+ return source.fallback ?? source.labelKey;
27
+ }
28
+ return source.fallback ?? '';
29
+ }
30
+ /** Whether a `visibleProp` gate is open. No gate means always drawn. */
31
+ export function backgroundVisible(visibleProp, model) {
32
+ return visibleProp === undefined ? true : Boolean(model[visibleProp]);
33
+ }
34
+ /** Rough per-character advance — only used to size generous hit boxes. */
35
+ const approxTextWidth = (text, fontSize) => Math.max(fontSize, text.length * fontSize * 0.6);
36
+ /** Padding so double-clicking a label is forgiving. */
37
+ const HIT_PAD = 6;
38
+ /**
39
+ * Every text of a declaration, in PAINTING ORDER: zone labels, then each axis'
40
+ * title followed by its end labels.
41
+ *
42
+ * One walk, used by both the renderer and the hit tester, so a label can never
43
+ * be drawn in one place and clicked in another.
44
+ */
45
+ export function backgroundTexts(def) {
46
+ const texts = [];
47
+ for (const zone of def.zones ?? []) {
48
+ if (zone.label)
49
+ texts.push(zone.label);
50
+ }
51
+ for (const axis of def.axes ?? []) {
52
+ // The title shares the axis' visibility; the end labels have their own.
53
+ if (axis.title) {
54
+ texts.push(axis.visibleProp === undefined
55
+ ? axis.title
56
+ : { ...axis.title, visibleProp: axis.visibleProp });
57
+ }
58
+ texts.push(...(axis.endLabels ?? []));
59
+ }
60
+ return texts;
61
+ }
62
+ /**
63
+ * Clickable boxes of every VISIBLE, EDITABLE label — those the declaration
64
+ * binds to a model prop; a label that only names an i18n key is vocabulary,
65
+ * not user text, and is not offered for editing.
66
+ *
67
+ * Positions come from the same declaration the renderer paints from, so the
68
+ * boxes track the drawn text by construction.
69
+ */
70
+ export function backgroundLabelHits(def, model, w, h, translation) {
71
+ const plot = backgroundPlot(def, w, h);
72
+ const hits = [];
73
+ for (const text of backgroundTexts(def)) {
74
+ if (text.prop === undefined)
75
+ continue;
76
+ if (!backgroundVisible(text.visibleProp, model))
77
+ continue;
78
+ const words = backgroundLabelText(text, model, translation);
79
+ const size = text.style.size;
80
+ const tw = approxTextWidth(words, size);
81
+ const [ax, ay] = backgroundPoint(text.anchor, plot);
82
+ if (text.vertical) {
83
+ hits.push({
84
+ id: text.id,
85
+ prop: text.prop,
86
+ text: words,
87
+ minX: ax - size - HIT_PAD,
88
+ maxX: ax + size * 0.4 + HIT_PAD,
89
+ minY: ay - tw / 2 - HIT_PAD,
90
+ maxY: ay + tw / 2 + HIT_PAD,
91
+ });
92
+ continue;
93
+ }
94
+ const align = text.align ?? 'left';
95
+ const minX = align === 'right' ? ax - tw : align === 'center' ? ax - tw / 2 : ax;
96
+ const maxX = align === 'right' ? ax : align === 'center' ? ax + tw / 2 : ax + tw;
97
+ hits.push({
98
+ id: text.id,
99
+ prop: text.prop,
100
+ text: words,
101
+ minX: minX - HIT_PAD,
102
+ maxX: maxX + HIT_PAD,
103
+ minY: ay - size - HIT_PAD,
104
+ maxY: ay + size * 0.3 + HIT_PAD,
105
+ });
106
+ }
107
+ return hits;
108
+ }
109
+ /** First label whose padded box contains the element-local point, or null. */
110
+ export function hitTestBackgroundLabel(hits, lx, ly) {
111
+ for (const hit of hits) {
112
+ if (lx >= hit.minX && lx <= hit.maxX && ly >= hit.minY && ly <= hit.maxY) {
113
+ return hit;
114
+ }
115
+ }
116
+ return null;
117
+ }
@@ -0,0 +1,8 @@
1
+ import type { GfxPrimitiveElementModel } from '../../std/gfx/index.js';
2
+ import type { ElementRenderer } from '../renderer/elements/index.js';
3
+ import type { FrameworkBackgroundDef } from './def.js';
4
+ /**
5
+ * Build the canvas renderer of one declaration. Pure: the same declaration
6
+ * always paints the same picture for the same model and size.
7
+ */
8
+ export declare function createFrameworkBackgroundRenderer<T extends GfxPrimitiveElementModel>(def: FrameworkBackgroundDef): ElementRenderer<T>;
@@ -0,0 +1,238 @@
1
+ import { TranslationProvider } from '../../affine-shared/services/index.js';
2
+ import { backgroundColor, backgroundPlot, backgroundPoint, BROKEN_BACKGROUND_COLOR, DEFAULT_BACKGROUND_SURFACE, warnBrokenBackgroundColor, } from './def.js';
3
+ import { backgroundLabelText, backgroundTexts, backgroundVisible, } from './labels.js';
4
+ /**
5
+ * The framework-background PRIMITIVE (PF2.1): one renderer, driven entirely by
6
+ * a {@link FrameworkBackgroundDef}. A framework gets its background by
7
+ * declaring it — not one line of drawing code per framework.
8
+ *
9
+ * ## The painting pipeline
10
+ *
11
+ * Fixed, and the whole of it. Order is the only thing a declaration cannot
12
+ * change, because order is what makes two backgrounds look like the same
13
+ * product rather than two drawings:
14
+ *
15
+ * 1. the card — the element rectangle;
16
+ * 2. the washes, over the plot;
17
+ * 3. the zone tints;
18
+ * 4. the graduations of every axis;
19
+ * 5. the axis lines and their arrowheads;
20
+ * 6. every text — zone names, then per axis its title and its end labels.
21
+ *
22
+ * A declaration that says nothing but its size therefore paints a plain white
23
+ * rectangle: no axis, no zone, no decoration.
24
+ *
25
+ * ## Units
26
+ *
27
+ * Ratios scale with the element; everything beside them — margins, font sizes,
28
+ * stroke widths, label offsets — is FIXED model units, so the furniture stays
29
+ * legible however large the background is stretched. Only the plot interior
30
+ * moves.
31
+ */
32
+ function roundRectPath(ctx, x, y, w, h, r) {
33
+ const rr = Math.min(r, w / 2, h / 2);
34
+ ctx.beginPath();
35
+ ctx.moveTo(x + rr, y);
36
+ ctx.arcTo(x + w, y, x + w, y + h, rr);
37
+ ctx.arcTo(x + w, y + h, x, y + h, rr);
38
+ ctx.arcTo(x, y + h, x, y, rr);
39
+ ctx.arcTo(x, y, x + w, y, rr);
40
+ ctx.closePath();
41
+ }
42
+ const HEX6 = /^#[0-9a-fA-F]{6}$/;
43
+ /**
44
+ * A wash stop, as `rgba(...)`.
45
+ *
46
+ * Only `#rrggbb` can carry an alpha this way. Anything else — a named CSS
47
+ * colour, a short hex, a palette entry that did not resolve — used to reach
48
+ * `parseInt` and produce `rgba(NaN,NaN,NaN,0.4)`, which paints nothing at all
49
+ * and says nothing about why. It now warns and paints
50
+ * {@link BROKEN_BACKGROUND_COLOR}.
51
+ */
52
+ function rgba(hex, alpha) {
53
+ if (!HEX6.test(hex)) {
54
+ warnBrokenBackgroundColor(`wash colour "${hex}" is not a #rrggbb literal, so it cannot take an alpha`);
55
+ hex = BROKEN_BACKGROUND_COLOR;
56
+ }
57
+ const r = parseInt(hex.slice(1, 3), 16);
58
+ const g = parseInt(hex.slice(3, 5), 16);
59
+ const b = parseInt(hex.slice(5, 7), 16);
60
+ return `rgba(${r},${g},${b},${alpha})`;
61
+ }
62
+ function fontOf(style, fallbackFamily) {
63
+ const italic = style.italic ? 'italic ' : '';
64
+ const weight = style.weight ? `${style.weight} ` : '';
65
+ return `${italic}${weight}${style.size}px ${style.family ?? fallbackFamily}`;
66
+ }
67
+ /** The family a declaration that names none falls back to. */
68
+ const DEFAULT_FONT_FAMILY = 'Inter, sans-serif';
69
+ /**
70
+ * Build the canvas renderer of one declaration. Pure: the same declaration
71
+ * always paints the same picture for the same model and size.
72
+ */
73
+ export function createFrameworkBackgroundRenderer(def) {
74
+ const palette = def.chrome?.palette;
75
+ const family = def.chrome?.fontFamily ?? DEFAULT_FONT_FAMILY;
76
+ const surface = def.chrome?.surface ?? DEFAULT_BACKGROUND_SURFACE;
77
+ const color = (c) => backgroundColor(c, palette);
78
+ const texts = backgroundTexts(def);
79
+ return (model, ctx, matrix, renderer) => {
80
+ const props = model;
81
+ const visible = (prop) => backgroundVisible(prop, props);
82
+ // The host's catalogue, resolved once per paint. Absent in a bare unit
83
+ // test (the renderer is called with three arguments) and absent in a host
84
+ // that ships no locale pack — both fall back to the declared wording.
85
+ const translation = renderer?.std.getOptional(TranslationProvider) ?? null;
86
+ const [, , w, h] = model.deserializedXYWH;
87
+ const cx = w / 2;
88
+ const cy = h / 2;
89
+ ctx.setTransform(matrix
90
+ .translateSelf(cx, cy)
91
+ .rotateSelf(model.rotate)
92
+ .translateSelf(-cx, -cy));
93
+ const plot = backgroundPlot(def, w, h);
94
+ const { x0, y0, x1, y1 } = plot;
95
+ const pw = plot.width;
96
+ const ph = plot.height;
97
+ const line = (ax, ay, bx, by) => {
98
+ ctx.beginPath();
99
+ ctx.moveTo(ax, ay);
100
+ ctx.lineTo(bx, by);
101
+ ctx.stroke();
102
+ };
103
+ const drawText = (words, ax, ay, style, align, vertical) => {
104
+ if (!words)
105
+ return;
106
+ if (vertical) {
107
+ ctx.save();
108
+ ctx.translate(ax, ay);
109
+ ctx.rotate(-Math.PI / 2);
110
+ ctx.font = fontOf(style, family);
111
+ ctx.fillStyle = color(style.color);
112
+ ctx.textAlign = align ?? 'center';
113
+ ctx.textBaseline = 'alphabetic';
114
+ ctx.fillText(words, 0, 0);
115
+ ctx.restore();
116
+ return;
117
+ }
118
+ ctx.font = fontOf(style, family);
119
+ ctx.fillStyle = color(style.color);
120
+ ctx.textAlign = align ?? 'left';
121
+ ctx.textBaseline = 'alphabetic';
122
+ ctx.fillText(words, ax, ay);
123
+ };
124
+ // ── 1. The card ─────────────────────────────────────────────────────
125
+ const border = surface.border;
126
+ const inset = border ? border.width / 2 : 0;
127
+ roundRectPath(ctx, inset, inset, w - inset * 2, h - inset * 2, border?.radius ?? 0);
128
+ if (surface.fill) {
129
+ ctx.fillStyle = color(surface.fill);
130
+ ctx.fill();
131
+ }
132
+ if (border) {
133
+ ctx.strokeStyle = color(border.color);
134
+ ctx.lineWidth = border.width;
135
+ ctx.stroke();
136
+ }
137
+ // ── 2. Washes over the plot ─────────────────────────────────────────
138
+ const washes = def.chrome?.washes;
139
+ if (washes?.length) {
140
+ const variant = def.variantProp === undefined ? undefined : props[def.variantProp];
141
+ for (const wash of washes) {
142
+ if (wash.variants && !wash.variants.includes(String(variant)))
143
+ continue;
144
+ if (!visible(wash.visibleProp))
145
+ continue;
146
+ const gradient = ctx.createLinearGradient(x0, 0, x1, 0);
147
+ const hex = color(wash.color);
148
+ for (const [offset, alpha] of wash.stops) {
149
+ gradient.addColorStop(offset, rgba(hex, alpha));
150
+ }
151
+ ctx.fillStyle = gradient;
152
+ ctx.fillRect(x0, y0, pw, ph);
153
+ }
154
+ }
155
+ // ── 3. Zone tints ───────────────────────────────────────────────────
156
+ for (const zone of def.zones ?? []) {
157
+ if (!zone.fill)
158
+ continue;
159
+ if (!visible(zone.fillVisibleProp))
160
+ continue;
161
+ ctx.fillStyle = color(zone.fill);
162
+ ctx.fillRect(x0 + zone.rect.x * pw, y0 + zone.rect.y * ph, zone.rect.w * pw, zone.rect.h * ph);
163
+ }
164
+ // ── 4. Graduations ──────────────────────────────────────────────────
165
+ for (const axis of def.axes ?? []) {
166
+ const graduations = axis.ticks;
167
+ if (!graduations || !visible(graduations.visibleProp))
168
+ continue;
169
+ ctx.strokeStyle = color(graduations.stroke.color);
170
+ ctx.lineWidth = graduations.stroke.width;
171
+ ctx.setLineDash(graduations.stroke.dash ? [...graduations.stroke.dash] : []);
172
+ for (const tick of graduations.ticks) {
173
+ if (axis.orientation === 'horizontal') {
174
+ const tx = x0 + tick.at * pw;
175
+ line(tx, y0, tx, y1);
176
+ }
177
+ else {
178
+ // A vertical axis is graduated from the BOTTOM up: `at: 0` is the
179
+ // origin of the value it measures, not the top of the screen.
180
+ const ty = y1 - tick.at * ph;
181
+ line(x0, ty, x1, ty);
182
+ }
183
+ }
184
+ ctx.setLineDash([]);
185
+ }
186
+ // ── 5. Axis lines and arrowheads ────────────────────────────────────
187
+ for (const axis of def.axes ?? []) {
188
+ if (!visible(axis.visibleProp))
189
+ continue;
190
+ drawAxis(ctx, axis, plot, color, line);
191
+ }
192
+ // ── 6. Every text, in declaration order ─────────────────────────────
193
+ for (const text of texts) {
194
+ if (!visible(text.visibleProp))
195
+ continue;
196
+ const [tx, ty] = backgroundPoint(text.anchor, plot);
197
+ drawText(backgroundLabelText(text, props, translation), tx, ty, text.style, text.align, text.vertical === true);
198
+ }
199
+ };
200
+ }
201
+ /**
202
+ * One axis: its line, stopping one unit inside the base of each arrowhead so
203
+ * the stroke never pokes past the tip at any zoom, then the filled triangles.
204
+ */
205
+ function drawAxis(ctx, axis, plot, color, line) {
206
+ const { x0, y0, x1, y1 } = plot;
207
+ const arrow = axis.arrow ?? 'none';
208
+ const a = axis.arrowSize ?? 10;
209
+ const forward = arrow === 'forward' || arrow === 'both';
210
+ const backward = arrow === 'backward' || arrow === 'both';
211
+ ctx.strokeStyle = color(axis.stroke.color);
212
+ ctx.lineWidth = axis.stroke.width;
213
+ ctx.fillStyle = color(axis.stroke.color);
214
+ const triangle = (tipX, tipY, baseX, baseY, spreadX, spreadY) => {
215
+ ctx.beginPath();
216
+ ctx.moveTo(tipX, tipY);
217
+ ctx.lineTo(baseX - spreadX, baseY - spreadY);
218
+ ctx.lineTo(baseX + spreadX, baseY + spreadY);
219
+ ctx.closePath();
220
+ ctx.fill();
221
+ };
222
+ if (axis.orientation === 'horizontal') {
223
+ const y = y0 + axis.at * plot.height;
224
+ line(backward ? x0 + a - 1 : x0, y, forward ? x1 - a + 1 : x1, y);
225
+ if (forward)
226
+ triangle(x1, y, x1 - a, y, 0, a / 2);
227
+ if (backward)
228
+ triangle(x0, y, x0 + a, y, 0, a / 2);
229
+ return;
230
+ }
231
+ // Vertical: `forward` points UP — where a reader expects "more" to be.
232
+ const x = x0 + axis.at * plot.width;
233
+ line(x, backward ? y1 - a + 1 : y1, x, forward ? y0 + a - 1 : y0);
234
+ if (forward)
235
+ triangle(x, y0, x, y0 + a, a / 2, 0);
236
+ if (backward)
237
+ triangle(x, y1, x, y1 - a, a / 2, 0);
238
+ }
@@ -11,6 +11,7 @@ export { ToolOverlay } from './renderer/tool-overlay.js';
11
11
  import { getFontFacesByFontFamily, wrapFontFamily } from './utils/font.js';
12
12
  export * from './adapters/index.js';
13
13
  export * from './extensions/index.js';
14
+ export * from './framework-background/index.js';
14
15
  export type { SurfaceContext } from './surface-block.js';
15
16
  export { SurfaceBlockComponent } from './surface-block.js';
16
17
  export { SurfaceBlockModel, SurfaceBlockSchema, SurfaceBlockSchemaExtension, } from './surface-model.js';
@@ -12,6 +12,7 @@ export { ToolOverlay } from './renderer/tool-overlay.js';
12
12
  import { getFontFaces, getFontFacesByFontFamily, isSameFontFamily, wrapFontFamily, } from './utils/font.js';
13
13
  export * from './adapters/index.js';
14
14
  export * from './extensions/index.js';
15
+ export * from './framework-background/index.js';
15
16
  export { SurfaceBlockComponent } from './surface-block.js';
16
17
  export { SurfaceBlockModel, SurfaceBlockSchema, SurfaceBlockSchemaExtension, } from './surface-model.js';
17
18
  export { SurfaceBlockTransformer } from './surface-transformer.js';
@@ -1,7 +1,7 @@
1
1
  import { type Color, ColorScheme } from '../../affine-model/index.js';
2
- import type { IBound } from '../../global/gfx/index.js';
2
+ import { type IBound } from '../../global/gfx/index.js';
3
3
  import type { BlockStdScope } from '../../std/index.js';
4
- import type { GridManager, LayerManager, SurfaceBlockModel, Viewport } from '../../std/gfx/index.js';
4
+ import type { GfxLocalElementModel, GridManager, LayerManager, SurfaceBlockModel, Viewport } from '../../std/gfx/index.js';
5
5
  import { Subject } from 'rxjs';
6
6
  import type { SurfaceElementModel } from '../element-model/base.js';
7
7
  import type { Overlay } from './overlay.js';
@@ -22,13 +22,66 @@ type RendererOptions = {
22
22
  gridManager: GridManager;
23
23
  surfaceModel: SurfaceBlockModel;
24
24
  };
25
+ export type CanvasRenderPassMetrics = {
26
+ overlayCount: number;
27
+ placeholderElementCount: number;
28
+ renderByBoundCallCount: number;
29
+ renderedElementCount: number;
30
+ visibleElementCount: number;
31
+ };
32
+ export type CanvasMemorySnapshot = {
33
+ bytes: number;
34
+ datasetLayerId: string | null;
35
+ height: number;
36
+ kind: 'main' | 'stacking';
37
+ width: number;
38
+ zIndex: string;
39
+ };
40
+ export type CanvasRendererDebugMetrics = {
41
+ canvasLayerCount: number;
42
+ canvasMemoryBytes: number;
43
+ canvasMemorySnapshots: CanvasMemorySnapshot[];
44
+ canvasMemoryMegabytes: number;
45
+ canvasPixelCount: number;
46
+ coalescedRefreshCount: number;
47
+ dirtyLayerRenderCount: number;
48
+ fallbackElementCount: number;
49
+ lastRenderDurationMs: number;
50
+ lastRenderMetrics: CanvasRenderPassMetrics;
51
+ maxRenderDurationMs: number;
52
+ pooledStackingCanvasCount: number;
53
+ refreshCount: number;
54
+ renderCount: number;
55
+ stackingCanvasCount: number;
56
+ totalLayerCount: number;
57
+ totalRenderDurationMs: number;
58
+ visibleStackingCanvasCount: number;
59
+ };
60
+ type RefreshTarget = {
61
+ type: 'all';
62
+ } | {
63
+ type: 'main';
64
+ } | {
65
+ type: 'element';
66
+ element: SurfaceElementModel | GfxLocalElementModel;
67
+ } | {
68
+ type: 'elements';
69
+ elements: Array<SurfaceElementModel | GfxLocalElementModel>;
70
+ };
25
71
  export declare class CanvasRenderer {
26
72
  private _container;
27
73
  private readonly _disposables;
74
+ private readonly _gfx;
28
75
  private readonly _turboEnabled;
29
76
  private readonly _overlays;
30
77
  private _refreshRafId;
31
78
  private _stackingCanvas;
79
+ private readonly _stackingCanvasPool;
80
+ private readonly _stackingCanvasState;
81
+ private readonly _dirtyStackingCanvasIndexes;
82
+ private _mainCanvasDirty;
83
+ private _needsFullRender;
84
+ private _debugMetrics;
32
85
  canvas: HTMLCanvasElement;
33
86
  ctx: CanvasRenderingContext2D;
34
87
  std: BlockStdScope;
@@ -52,9 +105,20 @@ export declare class CanvasRenderer {
52
105
  * It is not recommended to set width and height to 100%.
53
106
  */
54
107
  private _canvasSizeUpdater;
108
+ private _applyStackingCanvasLayout;
109
+ private _clampBoundToViewport;
110
+ private _createCanvasForLayer;
111
+ private _findLayerIndexByElement;
112
+ private _getLayerRenderBound;
113
+ private _getResolvedStackingCanvasBound;
114
+ private _invalidate;
115
+ private _resetPooledCanvas;
55
116
  private _initStackingCanvas;
56
117
  private _initViewport;
118
+ private _createRenderPassStats;
119
+ private _getCanvasMemorySnapshots;
57
120
  private _render;
121
+ private _lastDebugSnapshot;
58
122
  private _renderByBound;
59
123
  private _resetSize;
60
124
  private _watchSurface;
@@ -70,7 +134,9 @@ export declare class CanvasRenderer {
70
134
  getColorScheme(): ColorScheme;
71
135
  getColorValue(color: Color, fallback?: Color, real?: boolean): string;
72
136
  getPropertyValue(property: string): string;
73
- refresh(): void;
137
+ getDebugMetrics(): CanvasRendererDebugMetrics;
138
+ resetDebugMetrics(): void;
139
+ refresh(target?: RefreshTarget): void;
74
140
  removeOverlay(overlay: Overlay): void;
75
141
  }
76
142
  export {};