@formicoidea/labre-core 0.31.0 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (637) hide show
  1. package/dist/_pkgs/affine-block-attachment/attachment-block.js +1 -1
  2. package/dist/_pkgs/affine-block-callout/callout-block.d.ts +6 -0
  3. package/dist/_pkgs/affine-block-callout/callout-block.js +26 -4
  4. package/dist/_pkgs/affine-block-callout/callout-keymap.js +59 -19
  5. package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.d.ts +20 -0
  6. package/dist/_pkgs/affine-block-callout/commands/callout-to-paragraph.js +60 -0
  7. package/dist/_pkgs/affine-block-callout/commands/split-callout.d.ts +17 -0
  8. package/dist/_pkgs/affine-block-callout/commands/split-callout.js +42 -0
  9. package/dist/_pkgs/affine-block-callout/configs/slash-menu.js +9 -6
  10. package/dist/_pkgs/affine-block-callout/emoji-margin.d.ts +9 -0
  11. package/dist/_pkgs/affine-block-callout/emoji-margin.js +36 -0
  12. package/dist/_pkgs/affine-block-callout/emoji-menu.d.ts +5 -1
  13. package/dist/_pkgs/affine-block-callout/emoji-menu.js +5 -0
  14. package/dist/_pkgs/affine-block-code/code-block-inline.js +1 -1
  15. package/dist/_pkgs/affine-block-code/code-block.d.ts +14 -0
  16. package/dist/_pkgs/affine-block-code/code-block.js +44 -6
  17. package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.d.ts +2 -0
  18. package/dist/_pkgs/affine-block-code/code-toolbar/components/code-toolbar.js +23 -14
  19. package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.d.ts +16 -0
  20. package/dist/_pkgs/affine-block-code/code-toolbar/components/more-menu.js +93 -0
  21. package/dist/_pkgs/affine-block-code/code-toolbar/config.js +54 -5
  22. package/dist/_pkgs/affine-block-code/code-toolbar/index.js +1 -1
  23. package/dist/_pkgs/affine-block-code/effects.d.ts +2 -0
  24. package/dist/_pkgs/affine-block-code/effects.js +2 -0
  25. package/dist/_pkgs/affine-block-code/highlight/affine-code-unit.js +6 -1
  26. package/dist/_pkgs/affine-block-code/index.d.ts +1 -0
  27. package/dist/_pkgs/affine-block-code/index.js +1 -0
  28. package/dist/_pkgs/affine-block-code/line-numbers.d.ts +25 -0
  29. package/dist/_pkgs/affine-block-code/line-numbers.js +27 -0
  30. package/dist/_pkgs/affine-block-code/styles.js +31 -0
  31. package/dist/_pkgs/affine-block-data-view/data-view-block.js +1 -0
  32. package/dist/_pkgs/affine-block-database/components/title/index.js +4 -1
  33. package/dist/_pkgs/affine-block-database/configs/slash-menu.js +28 -1
  34. package/dist/_pkgs/affine-block-database/data-source.js +1 -2
  35. package/dist/_pkgs/affine-block-database/database-block.js +13 -0
  36. package/dist/_pkgs/affine-block-database/external-data-source.js +1 -1
  37. package/dist/_pkgs/affine-block-database/properties/paste-url.d.ts +24 -0
  38. package/dist/_pkgs/affine-block-database/properties/paste-url.js +98 -0
  39. package/dist/_pkgs/affine-block-database/properties/rich-text/cell-renderer.js +9 -19
  40. package/dist/_pkgs/affine-block-database/properties/title/text.js +20 -25
  41. package/dist/_pkgs/affine-block-database/views/index.js +1 -0
  42. package/dist/_pkgs/affine-block-edgeless-text/edgeless-text-block.js +11 -1
  43. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.d.ts +3 -0
  44. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/config.js +48 -1
  45. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.d.ts +17 -0
  46. package/dist/_pkgs/affine-block-edgeless-text/edgeless-toolbar/font-size.js +24 -0
  47. package/dist/_pkgs/affine-block-embed/embed-figma-block/embed-figma-service.js +1 -1
  48. package/dist/_pkgs/affine-block-embed/embed-iframe-block/configs/toolbar.js +2 -2
  49. package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.d.ts +9 -0
  50. package/dist/_pkgs/affine-block-embed-doc/common/doc-trashed.js +10 -0
  51. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/configs/toolbar.js +1 -1
  52. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/embed-linked-doc-block.js +8 -4
  53. package/dist/_pkgs/affine-block-embed-doc/embed-linked-doc-block/utils.js +1 -1
  54. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/configs/toolbar.js +1 -1
  55. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.d.ts +4 -0
  56. package/dist/_pkgs/affine-block-embed-doc/embed-synced-doc-block/embed-synced-doc-block.js +23 -4
  57. package/dist/_pkgs/affine-block-frame/frame-manager.d.ts +13 -0
  58. package/dist/_pkgs/affine-block-frame/frame-manager.js +34 -2
  59. package/dist/_pkgs/affine-block-frame/frame-tool.js +1 -1
  60. package/dist/_pkgs/affine-block-image/components/page-image-block.js +1 -1
  61. package/dist/_pkgs/affine-block-image/image-edgeless-block.js +1 -1
  62. package/dist/_pkgs/affine-block-latex/styles.js +6 -1
  63. package/dist/_pkgs/affine-block-list/utils/forward-delete.js +1 -1
  64. package/dist/_pkgs/affine-block-note/commands/select-block.js +1 -1
  65. package/dist/_pkgs/affine-block-note/commands/select-blocks-between.js +1 -1
  66. package/dist/_pkgs/affine-block-note/move-block.js +1 -1
  67. package/dist/_pkgs/affine-block-note/note-edgeless-block.d.ts +9 -0
  68. package/dist/_pkgs/affine-block-note/note-edgeless-block.js +29 -1
  69. package/dist/_pkgs/affine-block-paragraph/utils/forward-delete.js +2 -2
  70. package/dist/_pkgs/affine-block-paragraph/utils/merge-with-prev.js +1 -1
  71. package/dist/_pkgs/affine-block-root/commands/pivot-commands.d.ts +37 -0
  72. package/dist/_pkgs/affine-block-root/commands/pivot-commands.js +168 -0
  73. package/dist/_pkgs/affine-block-root/commands/reading-commands.d.ts +23 -0
  74. package/dist/_pkgs/affine-block-root/commands/reading-commands.js +107 -0
  75. package/dist/_pkgs/affine-block-root/commands/tag-commands.d.ts +47 -0
  76. package/dist/_pkgs/affine-block-root/commands/tag-commands.js +159 -0
  77. package/dist/_pkgs/affine-block-root/configs/toolbar.d.ts +1 -0
  78. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/more.js +10 -3
  79. package/dist/_pkgs/affine-block-root/edgeless/configs/toolbar/render-linked-doc.js +1 -1
  80. package/dist/_pkgs/affine-block-root/edgeless/edgeless-keyboard.js +27 -2
  81. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-block.js +11 -2
  82. package/dist/_pkgs/affine-block-root/edgeless/edgeless-root-service.js +14 -0
  83. package/dist/_pkgs/affine-block-root/edgeless/index.d.ts +1 -0
  84. package/dist/_pkgs/affine-block-root/edgeless/index.js +1 -0
  85. package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.d.ts +21 -0
  86. package/dist/_pkgs/affine-block-root/edgeless/reserved-keys.js +34 -0
  87. package/dist/_pkgs/affine-block-root/edgeless/utils/clipboard-utils.js +1 -1
  88. package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.d.ts +7 -1
  89. package/dist/_pkgs/affine-block-root/edgeless/utils/clone-utils.js +11 -2
  90. package/dist/_pkgs/affine-block-root/index.d.ts +4 -1
  91. package/dist/_pkgs/affine-block-root/index.js +4 -1
  92. package/dist/_pkgs/affine-block-root/keyboard/commands.d.ts +2 -0
  93. package/dist/_pkgs/affine-block-root/keyboard/commands.js +147 -0
  94. package/dist/_pkgs/affine-block-root/view.js +13 -4
  95. package/dist/_pkgs/affine-block-surface/adapters/markdown/element-adapter/type.js +1 -1
  96. package/dist/_pkgs/affine-block-surface/adapters/plain-text/element-adapter/type.js +1 -1
  97. package/dist/_pkgs/affine-block-surface/commands/reassociate-connectors.js +0 -1
  98. package/dist/_pkgs/affine-block-surface/effects.js +6 -0
  99. package/dist/_pkgs/affine-block-surface/element-model/index.d.ts +21 -3
  100. package/dist/_pkgs/affine-block-surface/element-model/index.js +14 -2
  101. package/dist/_pkgs/affine-block-surface/extensions/audit.d.ts +107 -0
  102. package/dist/_pkgs/affine-block-surface/extensions/audit.js +489 -0
  103. package/dist/_pkgs/affine-block-surface/extensions/crud-extension.d.ts +14 -0
  104. package/dist/_pkgs/affine-block-surface/extensions/crud-extension.js +37 -5
  105. package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.d.ts +133 -0
  106. package/dist/_pkgs/affine-block-surface/extensions/editor-anchored-panel.js +327 -0
  107. package/dist/_pkgs/affine-block-surface/extensions/element-renderer.js +1 -1
  108. package/dist/_pkgs/affine-block-surface/extensions/export-manager/export-manager.js +1 -1
  109. package/dist/_pkgs/affine-block-surface/extensions/index.d.ts +17 -0
  110. package/dist/_pkgs/affine-block-surface/extensions/index.js +17 -0
  111. package/dist/_pkgs/affine-block-surface/extensions/interchange-import.d.ts +172 -0
  112. package/dist/_pkgs/affine-block-surface/extensions/interchange-import.js +393 -0
  113. package/dist/_pkgs/affine-block-surface/extensions/interchange.d.ts +306 -0
  114. package/dist/_pkgs/affine-block-surface/extensions/interchange.js +64 -0
  115. package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.d.ts +146 -0
  116. package/dist/_pkgs/affine-block-surface/extensions/map-quality-widget.js +528 -0
  117. package/dist/_pkgs/affine-block-surface/extensions/map-quality.d.ts +109 -0
  118. package/dist/_pkgs/affine-block-surface/extensions/map-quality.js +84 -0
  119. package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.d.ts +248 -0
  120. package/dist/_pkgs/affine-block-surface/extensions/morph-toolbar.js +248 -0
  121. package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.d.ts +15 -0
  122. package/dist/_pkgs/affine-block-surface/extensions/reading-toolbar.js +158 -0
  123. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.d.ts +145 -0
  124. package/dist/_pkgs/affine-block-surface/extensions/reading-widget.js +588 -0
  125. package/dist/_pkgs/affine-block-surface/extensions/reading.d.ts +494 -0
  126. package/dist/_pkgs/affine-block-surface/extensions/reading.js +767 -0
  127. package/dist/_pkgs/affine-block-surface/extensions/spotlight.d.ts +45 -0
  128. package/dist/_pkgs/affine-block-surface/extensions/spotlight.js +177 -0
  129. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.d.ts +107 -0
  130. package/dist/_pkgs/affine-block-surface/extensions/svg-sketch.js +958 -0
  131. package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.d.ts +10 -0
  132. package/dist/_pkgs/affine-block-surface/extensions/tags-toolbar.js +295 -0
  133. package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.d.ts +27 -0
  134. package/dist/_pkgs/affine-block-surface/extensions/validation-toolbar.js +361 -0
  135. package/dist/_pkgs/affine-block-surface/extensions/validation.d.ts +2129 -0
  136. package/dist/_pkgs/affine-block-surface/extensions/validation.js +4620 -0
  137. package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.d.ts +330 -0
  138. package/dist/_pkgs/affine-block-surface/extensions/violation-detail-widget.js +1004 -0
  139. package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.d.ts +80 -0
  140. package/dist/_pkgs/affine-block-surface/extensions/violation-timeline.js +123 -0
  141. package/dist/_pkgs/affine-block-surface/framework-background/def.d.ts +610 -0
  142. package/dist/_pkgs/affine-block-surface/framework-background/def.js +206 -0
  143. package/dist/_pkgs/affine-block-surface/framework-background/facts.d.ts +188 -0
  144. package/dist/_pkgs/affine-block-surface/framework-background/facts.js +284 -0
  145. package/dist/_pkgs/affine-block-surface/framework-background/index.d.ts +5 -0
  146. package/dist/_pkgs/affine-block-surface/framework-background/index.js +5 -0
  147. package/dist/_pkgs/affine-block-surface/framework-background/interaction.d.ts +12 -0
  148. package/dist/_pkgs/affine-block-surface/framework-background/interaction.js +24 -0
  149. package/dist/_pkgs/affine-block-surface/framework-background/labels.d.ts +99 -0
  150. package/dist/_pkgs/affine-block-surface/framework-background/labels.js +193 -0
  151. package/dist/_pkgs/affine-block-surface/framework-background/renderer.d.ts +8 -0
  152. package/dist/_pkgs/affine-block-surface/framework-background/renderer.js +399 -0
  153. package/dist/_pkgs/affine-block-surface/index.d.ts +1 -0
  154. package/dist/_pkgs/affine-block-surface/index.js +1 -0
  155. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.d.ts +69 -3
  156. package/dist/_pkgs/affine-block-surface/renderer/canvas-renderer.js +333 -44
  157. package/dist/_pkgs/affine-block-surface/renderer/dom-renderer.js +18 -2
  158. package/dist/_pkgs/affine-block-surface/renderer/overlay.js +1 -1
  159. package/dist/_pkgs/affine-block-surface/tool/default-tool.js +8 -0
  160. package/dist/_pkgs/affine-block-surface/utils/font.js +9 -3
  161. package/dist/_pkgs/affine-block-surface/view.d.ts +17 -0
  162. package/dist/_pkgs/affine-block-surface/view.js +57 -2
  163. package/dist/_pkgs/affine-block-surface-ref/portal/note.js +2 -2
  164. package/dist/_pkgs/affine-block-table/commands.js +1 -1
  165. package/dist/_pkgs/affine-block-table/selection-controller.d.ts +6 -0
  166. package/dist/_pkgs/affine-block-table/selection-controller.js +24 -1
  167. package/dist/_pkgs/affine-block-table/table-block.js +8 -2
  168. package/dist/_pkgs/affine-block-table/table-cell.js +5 -6
  169. package/dist/_pkgs/affine-block-table/table-keymap.d.ts +18 -0
  170. package/dist/_pkgs/affine-block-table/table-keymap.js +41 -0
  171. package/dist/_pkgs/affine-block-table/utils.d.ts +7 -0
  172. package/dist/_pkgs/affine-block-table/utils.js +12 -0
  173. package/dist/_pkgs/affine-block-table/view.js +2 -0
  174. package/dist/_pkgs/affine-components/caption/captioned-block-component.js +2 -1
  175. package/dist/_pkgs/affine-components/context-menu/button.d.ts +7 -0
  176. package/dist/_pkgs/affine-components/context-menu/button.js +7 -2
  177. package/dist/_pkgs/affine-components/context-menu/input.d.ts +4 -0
  178. package/dist/_pkgs/affine-components/context-menu/input.js +12 -0
  179. package/dist/_pkgs/affine-components/context-menu/menu-all.d.ts +2 -0
  180. package/dist/_pkgs/affine-components/context-menu/menu-renderer.js +8 -1
  181. package/dist/_pkgs/affine-components/context-menu/sub-menu.js +3 -0
  182. package/dist/_pkgs/affine-components/edgeless-shape-color-picker/color-picker.js +1 -1
  183. package/dist/_pkgs/affine-components/embed-card-modal/embed-card-edit-modal.js +1 -1
  184. package/dist/_pkgs/affine-components/filterable-list/styles.js +1 -1
  185. package/dist/_pkgs/affine-components/highlight-dropdown-menu/highlight-duotone-icon.js +8 -8
  186. package/dist/_pkgs/affine-components/highlight-dropdown-menu/text-duotone-icon.js +11 -11
  187. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.d.ts +28 -0
  188. package/dist/_pkgs/affine-components/icon-picker/affine-icon-picker-panel.js +231 -0
  189. package/dist/_pkgs/affine-components/icon-picker/emoji-data.d.ts +40 -0
  190. package/dist/_pkgs/affine-components/icon-picker/emoji-data.js +99 -0
  191. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.d.ts +32 -0
  192. package/dist/_pkgs/affine-components/icon-picker/emoji-picker-panel.js +276 -0
  193. package/dist/_pkgs/affine-components/icon-picker/icon-data.d.ts +34 -0
  194. package/dist/_pkgs/affine-components/icon-picker/icon-data.js +83 -0
  195. package/dist/_pkgs/affine-components/icon-picker/icon-picker.d.ts +39 -0
  196. package/dist/_pkgs/affine-components/icon-picker/icon-picker.js +233 -0
  197. package/dist/_pkgs/affine-components/icon-picker/index.d.ts +8 -0
  198. package/dist/_pkgs/affine-components/icon-picker/index.js +15 -0
  199. package/dist/_pkgs/affine-components/icon-picker/recent-store.d.ts +8 -0
  200. package/dist/_pkgs/affine-components/icon-picker/recent-store.js +41 -0
  201. package/dist/_pkgs/affine-components/icon-picker/styles.d.ts +5 -0
  202. package/dist/_pkgs/affine-components/icon-picker/styles.js +166 -0
  203. package/dist/_pkgs/affine-components/icon-picker/types.d.ts +22 -0
  204. package/dist/_pkgs/affine-components/icon-picker/types.js +10 -0
  205. package/dist/_pkgs/affine-components/icons/text.js +426 -426
  206. package/dist/_pkgs/affine-components/open-doc-dropdown-menu/dropdown-menu.d.ts +1 -0
  207. package/dist/_pkgs/affine-components/peek/peekable.js +1 -1
  208. package/dist/_pkgs/affine-components/portal/portal.d.ts +1 -1
  209. package/dist/_pkgs/affine-components/toolbar/index.d.ts +1 -0
  210. package/dist/_pkgs/affine-components/toolbar/index.js +1 -0
  211. package/dist/_pkgs/affine-components/toolbar/menu-button.js +2 -1
  212. package/dist/_pkgs/affine-components/toolbar/picker-menu.d.ts +55 -0
  213. package/dist/_pkgs/affine-components/toolbar/picker-menu.js +47 -0
  214. package/dist/_pkgs/affine-components/toolbar/toolbar.js +11 -10
  215. package/dist/_pkgs/affine-foundation/view.js +11 -2
  216. package/dist/_pkgs/affine-fragment-frame-panel/body/frame-panel-body.js +2 -2
  217. package/dist/_pkgs/affine-fragment-frame-panel/header/frame-panel-header.js +2 -2
  218. package/dist/_pkgs/affine-fragment-frame-panel/header/frames-setting-menu.js +1 -1
  219. package/dist/_pkgs/affine-fragment-outline/mobile-outline-panel.js +1 -1
  220. package/dist/_pkgs/affine-gfx-brush/index.d.ts +1 -0
  221. package/dist/_pkgs/affine-gfx-brush/index.js +1 -0
  222. package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.d.ts +1 -0
  223. package/dist/_pkgs/affine-gfx-brush/renderer/dom/brush.js +11 -0
  224. package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.d.ts +1 -0
  225. package/dist/_pkgs/affine-gfx-brush/renderer/dom/highlighter.js +11 -0
  226. package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.d.ts +2 -0
  227. package/dist/_pkgs/affine-gfx-brush/renderer/dom/index.js +2 -0
  228. package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.d.ts +14 -0
  229. package/dist/_pkgs/affine-gfx-brush/renderer/dom/shared.js +54 -0
  230. package/dist/_pkgs/affine-gfx-brush/renderer/index.d.ts +1 -0
  231. package/dist/_pkgs/affine-gfx-brush/renderer/index.js +4 -0
  232. package/dist/_pkgs/affine-gfx-brush/toolbar/components/pen/pen-tool-button.js +1 -1
  233. package/dist/_pkgs/affine-gfx-brush/view.d.ts +14 -0
  234. package/dist/_pkgs/affine-gfx-brush/view.js +29 -3
  235. package/dist/_pkgs/affine-gfx-connector/connector-manager.js +39 -16
  236. package/dist/_pkgs/affine-gfx-connector/connector-tool.d.ts +26 -1
  237. package/dist/_pkgs/affine-gfx-connector/connector-tool.js +12 -3
  238. package/dist/_pkgs/affine-gfx-connector/connector-watcher.js +1 -4
  239. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.d.ts +123 -0
  240. package/dist/_pkgs/affine-gfx-connector/direction/direction-reveal.js +282 -0
  241. package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.d.ts +65 -0
  242. package/dist/_pkgs/affine-gfx-connector/direction/direction-widget.js +395 -0
  243. package/dist/_pkgs/affine-gfx-connector/direction/index.d.ts +4 -0
  244. package/dist/_pkgs/affine-gfx-connector/direction/index.js +4 -0
  245. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.d.ts +72 -0
  246. package/dist/_pkgs/affine-gfx-connector/direction/invert-direction.js +185 -0
  247. package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.d.ts +69 -0
  248. package/dist/_pkgs/affine-gfx-connector/direction/typed-edge.js +66 -0
  249. package/dist/_pkgs/affine-gfx-connector/effects.d.ts +2 -0
  250. package/dist/_pkgs/affine-gfx-connector/effects.js +2 -0
  251. package/dist/_pkgs/affine-gfx-connector/element-renderer/connector-dom/index.js +78 -41
  252. package/dist/_pkgs/affine-gfx-connector/element-renderer/index.js +1 -1
  253. package/dist/_pkgs/affine-gfx-connector/element-renderer/utils.js +1 -1
  254. package/dist/_pkgs/affine-gfx-connector/index.d.ts +1 -0
  255. package/dist/_pkgs/affine-gfx-connector/index.js +1 -0
  256. package/dist/_pkgs/affine-gfx-connector/toolbar/config.d.ts +50 -0
  257. package/dist/_pkgs/affine-gfx-connector/toolbar/config.js +68 -2
  258. package/dist/_pkgs/affine-gfx-connector/view.js +16 -0
  259. package/dist/_pkgs/affine-gfx-group/command/group-api.js +150 -62
  260. package/dist/_pkgs/affine-gfx-group/text/edgeless-group-title-editor.js +4 -1
  261. package/dist/_pkgs/affine-gfx-mindmap/adapter/markdown/index.js +1 -1
  262. package/dist/_pkgs/affine-gfx-mindmap/adapter/utils.js +1 -1
  263. package/dist/_pkgs/affine-gfx-mindmap/templates/index.js +583 -4
  264. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-menu.js +23 -23
  265. package/dist/_pkgs/affine-gfx-mindmap/toolbar/mindmap-tool-button.js +5 -1
  266. package/dist/_pkgs/affine-gfx-mindmap/view/utils.js +1 -1
  267. package/dist/_pkgs/affine-gfx-note/overlay/overlay.js +1 -1
  268. package/dist/_pkgs/affine-gfx-note/toolbar/note-senior-button.js +1 -1
  269. package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.d.ts +16 -0
  270. package/dist/_pkgs/affine-gfx-pointer/tools/pan-tool.js +102 -32
  271. package/dist/_pkgs/affine-gfx-shape/commands.d.ts +2 -0
  272. package/dist/_pkgs/affine-gfx-shape/commands.js +33 -0
  273. package/dist/_pkgs/affine-gfx-shape/consts.js +1 -1
  274. package/dist/_pkgs/affine-gfx-shape/draggable/shape-draggable.js +1 -1
  275. package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/polygon.js +17 -9
  276. package/dist/_pkgs/affine-gfx-shape/element-renderer/shape/utils.js +8 -3
  277. package/dist/_pkgs/affine-gfx-shape/element-renderer/shape-dom/index.js +48 -19
  278. package/dist/_pkgs/affine-gfx-shape/element-view.js +19 -12
  279. package/dist/_pkgs/affine-gfx-shape/index.d.ts +1 -1
  280. package/dist/_pkgs/affine-gfx-shape/index.js +1 -1
  281. package/dist/_pkgs/affine-gfx-shape/overlay/polygon-drawing-overlay.js +1 -1
  282. package/dist/_pkgs/affine-gfx-shape/overlay/polygon-vertex-editing-overlay.js +12 -7
  283. package/dist/_pkgs/affine-gfx-shape/overlay/shape-overlay.js +1 -1
  284. package/dist/_pkgs/affine-gfx-shape/polygon-tool.js +4 -2
  285. package/dist/_pkgs/affine-gfx-shape/shape-tool.js +1 -1
  286. package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.d.ts +26 -0
  287. package/dist/_pkgs/affine-gfx-shape/text/edgeless-shape-text-editor.js +124 -15
  288. package/dist/_pkgs/affine-gfx-shape/view.js +3 -3
  289. package/dist/_pkgs/affine-gfx-template/builtin/other.js +66 -17
  290. package/dist/_pkgs/affine-gfx-template/toolbar/overlay-scrollbar.js +1 -1
  291. package/dist/_pkgs/affine-gfx-template/toolbar/template-panel.js +1 -1
  292. package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.d.ts +2 -0
  293. package/dist/_pkgs/affine-gfx-template/toolbar/template-tool-button.js +18 -1
  294. package/dist/_pkgs/affine-gfx-text/edgeless-text-editor.js +9 -5
  295. package/dist/_pkgs/affine-gfx-text/toolbar/actions.js +1 -1
  296. package/dist/_pkgs/affine-inline-latex/command.js +46 -26
  297. package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.d.ts +10 -0
  298. package/dist/_pkgs/affine-inline-latex/latex-node/latex-node.js +23 -0
  299. package/dist/_pkgs/affine-inline-link/command.js +1 -1
  300. package/dist/_pkgs/affine-inline-link/link-node/affine-link.js +4 -1
  301. package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.d.ts +3 -0
  302. package/dist/_pkgs/affine-inline-preset/adapters/html/html-inline.js +29 -1
  303. package/dist/_pkgs/affine-inline-preset/command/format-block.js +1 -1
  304. package/dist/_pkgs/affine-inline-preset/command/format-native.js +2 -2
  305. package/dist/_pkgs/affine-inline-preset/command/format-text.js +1 -1
  306. package/dist/_pkgs/affine-inline-preset/inline-spec.js +1 -1
  307. package/dist/_pkgs/affine-inline-reference/reference-node/reference-node.js +1 -1
  308. package/dist/_pkgs/affine-model/blocks/code/code-model.d.ts +1 -0
  309. package/dist/_pkgs/affine-model/blocks/code/code-model.js +1 -0
  310. package/dist/_pkgs/affine-model/elements/bpmn/node.d.ts +40 -7
  311. package/dist/_pkgs/affine-model/elements/bpmn/node.js +4 -2
  312. package/dist/_pkgs/affine-model/elements/bpmn/pool.d.ts +74 -17
  313. package/dist/_pkgs/affine-model/elements/bpmn/pool.js +55 -26
  314. package/dist/_pkgs/affine-model/elements/c4/board.d.ts +88 -0
  315. package/dist/_pkgs/affine-model/elements/c4/board.js +128 -0
  316. package/dist/_pkgs/affine-model/elements/c4/boundary.d.ts +63 -0
  317. package/dist/_pkgs/affine-model/elements/c4/boundary.js +134 -0
  318. package/dist/_pkgs/affine-model/elements/c4/index.d.ts +3 -0
  319. package/dist/_pkgs/affine-model/elements/c4/index.js +3 -0
  320. package/dist/_pkgs/affine-model/elements/c4/node.d.ts +97 -0
  321. package/dist/_pkgs/affine-model/elements/c4/node.js +130 -0
  322. package/dist/_pkgs/affine-model/elements/connector/connector.js +25 -1
  323. package/dist/_pkgs/affine-model/elements/context-map/context-map.d.ts +27 -0
  324. package/dist/_pkgs/affine-model/elements/context-map/context-map.js +94 -0
  325. package/dist/_pkgs/affine-model/elements/context-map/index.d.ts +1 -0
  326. package/dist/_pkgs/affine-model/elements/context-map/index.js +1 -0
  327. package/dist/_pkgs/affine-model/elements/core-domain/core-domain.d.ts +34 -17
  328. package/dist/_pkgs/affine-model/elements/core-domain/core-domain.js +28 -26
  329. package/dist/_pkgs/affine-model/elements/edgy/board.d.ts +32 -0
  330. package/dist/_pkgs/affine-model/elements/edgy/board.js +112 -0
  331. package/dist/_pkgs/affine-model/elements/edgy/facets.d.ts +12 -0
  332. package/dist/_pkgs/affine-model/elements/edgy/facets.js +25 -1
  333. package/dist/_pkgs/affine-model/elements/edgy/index.d.ts +1 -0
  334. package/dist/_pkgs/affine-model/elements/edgy/index.js +1 -0
  335. package/dist/_pkgs/affine-model/elements/event-storming/event-storming.d.ts +36 -0
  336. package/dist/_pkgs/affine-model/elements/event-storming/event-storming.js +103 -0
  337. package/dist/_pkgs/affine-model/elements/event-storming/index.d.ts +1 -0
  338. package/dist/_pkgs/affine-model/elements/event-storming/index.js +1 -0
  339. package/dist/_pkgs/affine-model/elements/framework-background/background.d.ts +42 -0
  340. package/dist/_pkgs/affine-model/elements/framework-background/background.js +42 -0
  341. package/dist/_pkgs/affine-model/elements/framework-background/index.d.ts +1 -0
  342. package/dist/_pkgs/affine-model/elements/framework-background/index.js +1 -0
  343. package/dist/_pkgs/affine-model/elements/index.d.ts +14 -1
  344. package/dist/_pkgs/affine-model/elements/index.js +4 -0
  345. package/dist/_pkgs/affine-model/elements/mindmap/mindmap.js +8 -3
  346. package/dist/_pkgs/affine-model/elements/mindmap/style.d.ts +10 -0
  347. package/dist/_pkgs/affine-model/elements/mindmap/style.js +8 -0
  348. package/dist/_pkgs/affine-model/elements/shape/api/polygon.js +2 -8
  349. package/dist/_pkgs/affine-model/elements/wardley/wardley.d.ts +21 -29
  350. package/dist/_pkgs/affine-model/elements/wardley/wardley.js +41 -48
  351. package/dist/_pkgs/affine-shared/adapters/html/block-adapter.js +1 -1
  352. package/dist/_pkgs/affine-shared/adapters/markdown/block-adapter.js +1 -1
  353. package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.d.ts +6 -1
  354. package/dist/_pkgs/affine-shared/adapters/markdown/delta-converter.js +161 -3
  355. package/dist/_pkgs/affine-shared/adapters/markdown/markdown.js +5 -1
  356. package/dist/_pkgs/affine-shared/adapters/notion-html/block-adapter.js +1 -1
  357. package/dist/_pkgs/affine-shared/adapters/notion-html/delta-converter.js +1 -1
  358. package/dist/_pkgs/affine-shared/adapters/plain-text/block-adapter.js +1 -1
  359. package/dist/_pkgs/affine-shared/adapters/plain-text/delta-converter.js +1 -1
  360. package/dist/_pkgs/affine-shared/adapters/types/delta-converter.d.ts +1 -0
  361. package/dist/_pkgs/affine-shared/adapters/utils/color.d.ts +24 -0
  362. package/dist/_pkgs/affine-shared/adapters/utils/color.js +283 -0
  363. package/dist/_pkgs/affine-shared/adapters/utils/index.d.ts +1 -0
  364. package/dist/_pkgs/affine-shared/adapters/utils/index.js +1 -0
  365. package/dist/_pkgs/affine-shared/commands/block-crud/get-selected-blocks.js +10 -2
  366. package/dist/_pkgs/affine-shared/commands/model-crud/draft-selected-models.js +1 -1
  367. package/dist/_pkgs/affine-shared/commands/selection/focus-block-end.js +1 -1
  368. package/dist/_pkgs/affine-shared/commands/selection/focus-block-start.js +1 -1
  369. package/dist/_pkgs/affine-shared/consts/index.d.ts +10 -0
  370. package/dist/_pkgs/affine-shared/consts/index.js +10 -0
  371. package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.d.ts +55 -0
  372. package/dist/_pkgs/affine-shared/services/artefact-catalogue-service.js +35 -0
  373. package/dist/_pkgs/affine-shared/services/audit-service.d.ts +311 -0
  374. package/dist/_pkgs/affine-shared/services/audit-service.js +228 -0
  375. package/dist/_pkgs/affine-shared/services/command-usage-service.d.ts +31 -0
  376. package/dist/_pkgs/affine-shared/services/command-usage-service.js +109 -0
  377. package/dist/_pkgs/affine-shared/services/comment-service/block-comment-manager.js +1 -1
  378. package/dist/_pkgs/affine-shared/services/doc-display-meta-service.js +1 -1
  379. package/dist/_pkgs/affine-shared/services/edit-props-store.d.ts +7 -0
  380. package/dist/_pkgs/affine-shared/services/edit-props-store.js +11 -0
  381. package/dist/_pkgs/affine-shared/services/embed-iframe/embed-iframe-config.js +1 -1
  382. package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.d.ts +26 -1
  383. package/dist/_pkgs/affine-shared/services/font-loader/font-loader-service.js +124 -7
  384. package/dist/_pkgs/affine-shared/services/index.d.ts +7 -0
  385. package/dist/_pkgs/affine-shared/services/index.js +7 -0
  386. package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.d.ts +129 -0
  387. package/dist/_pkgs/affine-shared/services/pivot-materiality-publisher.js +312 -0
  388. package/dist/_pkgs/affine-shared/services/pivot-properties-service.d.ts +217 -0
  389. package/dist/_pkgs/affine-shared/services/pivot-properties-service.js +114 -0
  390. package/dist/_pkgs/affine-shared/services/telemetry-service/code-block.d.ts +1 -1
  391. package/dist/_pkgs/affine-shared/services/telemetry-service/lifecycle.d.ts +255 -1
  392. package/dist/_pkgs/affine-shared/services/telemetry-service/telemetry-service.d.ts +2 -2
  393. package/dist/_pkgs/affine-shared/services/telemetry-service/types.d.ts +6 -1
  394. package/dist/_pkgs/affine-shared/services/toolbar-service/action.d.ts +10 -0
  395. package/dist/_pkgs/affine-shared/services/toolbar-service/index.d.ts +1 -0
  396. package/dist/_pkgs/affine-shared/services/toolbar-service/index.js +1 -0
  397. package/dist/_pkgs/affine-shared/services/toolbar-service/layout.d.ts +134 -0
  398. package/dist/_pkgs/affine-shared/services/toolbar-service/layout.js +146 -0
  399. package/dist/_pkgs/affine-shared/services/toolbar-service/registry.d.ts +44 -0
  400. package/dist/_pkgs/affine-shared/services/toolbar-service/registry.js +161 -3
  401. package/dist/_pkgs/affine-shared/services/translation-service/index.d.ts +68 -0
  402. package/dist/_pkgs/affine-shared/services/translation-service/index.js +39 -0
  403. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.d.ts +155 -0
  404. package/dist/_pkgs/affine-shared/services/universe-tag-defs-service.js +256 -0
  405. package/dist/_pkgs/affine-shared/test-utils/affine-template.js +1 -1
  406. package/dist/_pkgs/affine-shared/utils/dom/point-to-range.d.ts +4 -0
  407. package/dist/_pkgs/affine-shared/utils/dom/point-to-range.js +58 -2
  408. package/dist/_pkgs/affine-shared/utils/dom/viewport.d.ts +60 -0
  409. package/dist/_pkgs/affine-shared/utils/dom/viewport.js +58 -0
  410. package/dist/_pkgs/affine-shared/utils/edgeless.js +1 -1
  411. package/dist/_pkgs/affine-shared/utils/file/filesys.d.ts +34 -0
  412. package/dist/_pkgs/affine-shared/utils/file/filesys.js +48 -7
  413. package/dist/_pkgs/affine-shared/utils/print-to-pdf.d.ts +21 -0
  414. package/dist/_pkgs/affine-shared/utils/print-to-pdf.js +166 -32
  415. package/dist/_pkgs/affine-shared/utils/zod-schema.d.ts +7 -0
  416. package/dist/_pkgs/affine-shared/utils/zod-schema.js +25 -1
  417. package/dist/_pkgs/affine-widget-drag-handle/utils.js +1 -1
  418. package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.d.ts +19 -10
  419. package/dist/_pkgs/affine-widget-drag-handle/watchers/edgeless-watcher.js +122 -23
  420. package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.d.ts +2 -0
  421. package/dist/_pkgs/affine-widget-drag-handle/watchers/pointer-event-watcher.js +25 -4
  422. package/dist/_pkgs/affine-widget-edgeless-auto-connect/index.js +1 -1
  423. package/dist/_pkgs/affine-widget-edgeless-dragging-area/edgeless-dragging-area-rect.js +1 -1
  424. package/dist/_pkgs/affine-widget-edgeless-selected-rect/auto-complete-panel.js +10 -5
  425. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.d.ts +15 -1
  426. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-auto-complete.js +37 -32
  427. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-element-link.js +5 -4
  428. package/dist/_pkgs/affine-widget-edgeless-selected-rect/edgeless-selected-rect.js +19 -9
  429. package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.d.ts +16 -2
  430. package/dist/_pkgs/affine-widget-edgeless-selected-rect/utils.js +19 -2
  431. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-default.d.ts +14 -0
  432. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-default.js +40 -0
  433. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.d.ts +158 -0
  434. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/artefact-catalogue-widget.js +572 -0
  435. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.d.ts +46 -0
  436. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/catalogue-groups.js +66 -0
  437. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.d.ts +13 -0
  438. package/dist/_pkgs/affine-widget-edgeless-toolbar/catalogue/chord-format.js +50 -0
  439. package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.d.ts +6 -0
  440. package/dist/_pkgs/affine-widget-edgeless-toolbar/edgeless-toolbar.js +15 -5
  441. package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.d.ts +2 -0
  442. package/dist/_pkgs/affine-widget-edgeless-toolbar/effects.js +2 -0
  443. package/dist/_pkgs/affine-widget-edgeless-toolbar/extension/index.d.ts +7 -0
  444. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.d.ts +5 -0
  445. package/dist/_pkgs/affine-widget-edgeless-toolbar/index.js +5 -0
  446. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.d.ts +57 -0
  447. package/dist/_pkgs/affine-widget-edgeless-toolbar/menu/command-menu.js +140 -0
  448. package/dist/_pkgs/affine-widget-edgeless-toolbar/view.js +9 -0
  449. package/dist/_pkgs/affine-widget-frame-title/edgeless-frame-title-editor.js +4 -1
  450. package/dist/_pkgs/affine-widget-keyboard-toolbar/icons.js +98 -98
  451. package/dist/_pkgs/affine-widget-keyboard-toolbar/keyboard-tool-panel.js +1 -1
  452. package/dist/_pkgs/affine-widget-linked-doc/import-doc/import-doc.js +1 -1
  453. package/dist/_pkgs/affine-widget-linked-doc/linked-doc-popover.js +2 -15
  454. package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.d.ts +10 -1
  455. package/dist/_pkgs/affine-widget-linked-doc/transformers/markdown.js +133 -6
  456. package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.d.ts +10 -0
  457. package/dist/_pkgs/affine-widget-linked-doc/transformers/utils.js +120 -3
  458. package/dist/_pkgs/affine-widget-linked-doc/utils.d.ts +12 -0
  459. package/dist/_pkgs/affine-widget-linked-doc/utils.js +33 -0
  460. package/dist/_pkgs/affine-widget-page-dragging-area/index.js +1 -1
  461. package/dist/_pkgs/affine-widget-remote-selection/doc/doc-remote-selection.js +1 -1
  462. package/dist/_pkgs/affine-widget-remote-selection/edgeless/index.js +6 -4
  463. package/dist/_pkgs/affine-widget-slash-menu/slash-menu-popover.js +8 -4
  464. package/dist/_pkgs/affine-widget-slash-menu/utils.d.ts +9 -0
  465. package/dist/_pkgs/affine-widget-slash-menu/utils.js +24 -0
  466. package/dist/_pkgs/affine-widget-toolbar/toolbar.d.ts +6 -0
  467. package/dist/_pkgs/affine-widget-toolbar/toolbar.js +40 -8
  468. package/dist/_pkgs/affine-widget-toolbar/utils.d.ts +146 -3
  469. package/dist/_pkgs/affine-widget-toolbar/utils.js +744 -58
  470. package/dist/_pkgs/data-view/core/common/property-menu.js +3 -16
  471. package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.d.ts +4 -0
  472. package/dist/_pkgs/data-view/core/component/tags/multi-tag-select.js +28 -1
  473. package/dist/_pkgs/data-view/core/data-view.d.ts +3 -1
  474. package/dist/_pkgs/data-view/core/data-view.js +25 -3
  475. package/dist/_pkgs/data-view/core/detail/field.js +2 -2
  476. package/dist/_pkgs/data-view/core/detail/selection.d.ts +4 -2
  477. package/dist/_pkgs/data-view/core/detail/selection.js +23 -7
  478. package/dist/_pkgs/data-view/core/effect.js +2 -0
  479. package/dist/_pkgs/data-view/core/filter/eval.js +36 -23
  480. package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.d.ts +7 -0
  481. package/dist/_pkgs/data-view/core/filter/filter-fn/matcher.js +12 -0
  482. package/dist/_pkgs/data-view/core/group-by/compare-date-keys.d.ts +11 -0
  483. package/dist/_pkgs/data-view/core/group-by/compare-date-keys.js +55 -0
  484. package/dist/_pkgs/data-view/core/group-by/define.d.ts +6 -0
  485. package/dist/_pkgs/data-view/core/group-by/define.js +114 -0
  486. package/dist/_pkgs/data-view/core/group-by/matcher.d.ts +7 -0
  487. package/dist/_pkgs/data-view/core/group-by/matcher.js +13 -0
  488. package/dist/_pkgs/data-view/core/group-by/renderer/boolean-group.js +11 -11
  489. package/dist/_pkgs/data-view/core/group-by/renderer/date-group.d.ts +9 -0
  490. package/dist/_pkgs/data-view/core/group-by/renderer/date-group.js +97 -0
  491. package/dist/_pkgs/data-view/core/group-by/setting.js +86 -7
  492. package/dist/_pkgs/data-view/core/group-by/trait.d.ts +34 -0
  493. package/dist/_pkgs/data-view/core/group-by/trait.js +106 -10
  494. package/dist/_pkgs/data-view/core/utils/menu-title.js +17 -17
  495. package/dist/_pkgs/data-view/property-presets/multi-select/cell-renderer.js +3 -1
  496. package/dist/_pkgs/data-view/property-presets/number/define.js +2 -1
  497. package/dist/_pkgs/data-view/property-presets/select/cell-renderer.js +3 -1
  498. package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.d.ts +70 -0
  499. package/dist/_pkgs/data-view/view-presets/calendar/calendar-view-manager.js +449 -0
  500. package/dist/_pkgs/data-view/view-presets/calendar/define.d.ts +10 -0
  501. package/dist/_pkgs/data-view/view-presets/calendar/define.js +27 -0
  502. package/dist/_pkgs/data-view/view-presets/calendar/effect.d.ts +1 -0
  503. package/dist/_pkgs/data-view/view-presets/calendar/effect.js +4 -0
  504. package/dist/_pkgs/data-view/view-presets/calendar/index.d.ts +6 -0
  505. package/dist/_pkgs/data-view/view-presets/calendar/index.js +6 -0
  506. package/dist/_pkgs/data-view/view-presets/calendar/layout.d.ts +37 -0
  507. package/dist/_pkgs/data-view/view-presets/calendar/layout.js +138 -0
  508. package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.d.ts +7 -0
  509. package/dist/_pkgs/data-view/view-presets/calendar/pc/actions.js +64 -0
  510. package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.d.ts +32 -0
  511. package/dist/_pkgs/data-view/view-presets/calendar/pc/dnd.js +159 -0
  512. package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.d.ts +1 -0
  513. package/dist/_pkgs/data-view/view-presets/calendar/pc/effect.js +7 -0
  514. package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.d.ts +1 -0
  515. package/dist/_pkgs/data-view/view-presets/calendar/pc/hit-test.js +28 -0
  516. package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.d.ts +1 -0
  517. package/dist/_pkgs/data-view/view-presets/calendar/pc/styles.js +707 -0
  518. package/dist/_pkgs/data-view/view-presets/calendar/pc/view.d.ts +89 -0
  519. package/dist/_pkgs/data-view/view-presets/calendar/pc/view.js +849 -0
  520. package/dist/_pkgs/data-view/view-presets/calendar/renderer.d.ts +2 -0
  521. package/dist/_pkgs/data-view/view-presets/calendar/renderer.js +8 -0
  522. package/dist/_pkgs/data-view/view-presets/calendar/source.d.ts +8 -0
  523. package/dist/_pkgs/data-view/view-presets/calendar/source.js +3 -0
  524. package/dist/_pkgs/data-view/view-presets/calendar/types.d.ts +79 -0
  525. package/dist/_pkgs/data-view/view-presets/calendar/types.js +1 -0
  526. package/dist/_pkgs/data-view/view-presets/convert.js +28 -0
  527. package/dist/_pkgs/data-view/view-presets/effect.js +2 -0
  528. package/dist/_pkgs/data-view/view-presets/index.d.ts +2 -0
  529. package/dist/_pkgs/data-view/view-presets/index.js +3 -0
  530. package/dist/_pkgs/data-view/view-presets/kanban/kanban-view-manager.js +3 -1
  531. package/dist/_pkgs/data-view/view-presets/kanban/mobile/cell.js +2 -2
  532. package/dist/_pkgs/data-view/view-presets/table/collapsed-state.d.ts +18 -0
  533. package/dist/_pkgs/data-view/view-presets/table/collapsed-state.js +36 -0
  534. package/dist/_pkgs/data-view/view-presets/table/mobile/cell.js +2 -2
  535. package/dist/_pkgs/data-view/view-presets/table/mobile/group.d.ts +11 -0
  536. package/dist/_pkgs/data-view/view-presets/table/mobile/group.js +89 -4
  537. package/dist/_pkgs/data-view/view-presets/table/pc/cell.d.ts +3 -0
  538. package/dist/_pkgs/data-view/view-presets/table/pc/cell.js +11 -2
  539. package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.d.ts +1 -0
  540. package/dist/_pkgs/data-view/view-presets/table/pc/controller/hotkeys.js +39 -33
  541. package/dist/_pkgs/data-view/view-presets/table/pc/group.d.ts +10 -0
  542. package/dist/_pkgs/data-view/view-presets/table/pc/group.js +86 -5
  543. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.d.ts +1 -0
  544. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/controller/hotkeys.js +39 -33
  545. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/group/top/group-title.js +18 -18
  546. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.d.ts +3 -0
  547. package/dist/_pkgs/data-view/view-presets/table/pc-virtual/row/cell.js +8 -0
  548. package/dist/_pkgs/data-view/view-presets/table/table-view-manager.js +3 -1
  549. package/dist/_pkgs/data-view/view-presets/table/utils.d.ts +3 -0
  550. package/dist/_pkgs/data-view/view-presets/table/utils.js +16 -1
  551. package/dist/_pkgs/data-view/widget-presets/tools/presets/view-options/view-options.js +3 -1
  552. package/dist/_pkgs/global/gfx/curve.js +4 -3
  553. package/dist/_pkgs/std/clipboard/clipboard.js +13 -3
  554. package/dist/_pkgs/std/clipboard/utils.d.ts +5 -0
  555. package/dist/_pkgs/std/clipboard/utils.js +10 -0
  556. package/dist/_pkgs/std/event/dispatcher.js +27 -1
  557. package/dist/_pkgs/std/event/keymap.js +16 -6
  558. package/dist/_pkgs/std/extension/command-registry.d.ts +475 -0
  559. package/dist/_pkgs/std/extension/command-registry.js +431 -0
  560. package/dist/_pkgs/std/extension/dnd/index.d.ts +1 -1
  561. package/dist/_pkgs/std/extension/index.d.ts +2 -0
  562. package/dist/_pkgs/std/extension/index.js +2 -0
  563. package/dist/_pkgs/std/extension/shortcut.js +2 -1
  564. package/dist/_pkgs/std/extension/translation-manifest.d.ts +49 -0
  565. package/dist/_pkgs/std/extension/translation-manifest.js +71 -0
  566. package/dist/_pkgs/std/gfx/grid.js +1 -1
  567. package/dist/_pkgs/std/gfx/index.d.ts +7 -3
  568. package/dist/_pkgs/std/gfx/index.js +6 -2
  569. package/dist/_pkgs/std/gfx/interactivity/gfx-view-event-handler.js +6 -1
  570. package/dist/_pkgs/std/gfx/interactivity/manager.d.ts +8 -0
  571. package/dist/_pkgs/std/gfx/interactivity/manager.js +18 -0
  572. package/dist/_pkgs/std/gfx/layer.d.ts +1 -1
  573. package/dist/_pkgs/std/gfx/layer.js +1 -2
  574. package/dist/_pkgs/std/gfx/model/surface/decorators/field.js +9 -0
  575. package/dist/_pkgs/std/gfx/model/surface/decorators/index.d.ts +2 -2
  576. package/dist/_pkgs/std/gfx/model/surface/decorators/index.js +2 -2
  577. package/dist/_pkgs/std/gfx/model/surface/decorators/local.d.ts +14 -0
  578. package/dist/_pkgs/std/gfx/model/surface/decorators/local.js +22 -0
  579. package/dist/_pkgs/std/gfx/model/surface/decorators/observer.d.ts +2 -0
  580. package/dist/_pkgs/std/gfx/model/surface/decorators/observer.js +40 -1
  581. package/dist/_pkgs/std/gfx/model/surface/element-model.d.ts +442 -0
  582. package/dist/_pkgs/std/gfx/model/surface/element-model.js +510 -25
  583. package/dist/_pkgs/std/gfx/model/surface/pivot.d.ts +48 -0
  584. package/dist/_pkgs/std/gfx/model/surface/pivot.js +34 -0
  585. package/dist/_pkgs/std/gfx/model/surface/role.d.ts +153 -0
  586. package/dist/_pkgs/std/gfx/model/surface/role.js +117 -0
  587. package/dist/_pkgs/std/gfx/model/surface/surface-model.d.ts +70 -0
  588. package/dist/_pkgs/std/gfx/model/surface/surface-model.js +305 -17
  589. package/dist/_pkgs/std/gfx/model/surface/tags.d.ts +77 -0
  590. package/dist/_pkgs/std/gfx/model/surface/tags.js +246 -0
  591. package/dist/_pkgs/std/gfx/perf.d.ts +10 -0
  592. package/dist/_pkgs/std/gfx/perf.js +30 -0
  593. package/dist/_pkgs/std/gfx/selection.js +1 -1
  594. package/dist/_pkgs/std/gfx/tool/tool-controller.d.ts +13 -0
  595. package/dist/_pkgs/std/gfx/tool/tool-controller.js +26 -0
  596. package/dist/_pkgs/std/gfx/viewport.d.ts +12 -0
  597. package/dist/_pkgs/std/gfx/viewport.js +20 -2
  598. package/dist/_pkgs/std/inline/extensions/inline-manager.js +1 -1
  599. package/dist/_pkgs/std/inline/extensions/markdown-matcher.js +1 -1
  600. package/dist/_pkgs/std/inline/services/event.d.ts +2 -0
  601. package/dist/_pkgs/std/inline/services/event.js +96 -21
  602. package/dist/_pkgs/std/utils/layer.js +2 -6
  603. package/dist/_pkgs/std/utils/tree.d.ts +14 -0
  604. package/dist/_pkgs/std/utils/tree.js +59 -8
  605. package/dist/_pkgs/std/view/element/gfx-block-component.js +23 -13
  606. package/dist/_pkgs/store/extension/workspace/workspace-meta.d.ts +10 -0
  607. package/dist/_pkgs/store/model/block/flat-sync-controller.js +2 -12
  608. package/dist/_pkgs/store/model/store/crud.js +10 -4
  609. package/dist/_pkgs/store/reactive/flat-native-y/index.d.ts +1 -1
  610. package/dist/_pkgs/store/reactive/flat-native-y/index.js +24 -2
  611. package/dist/commands.d.ts +58 -0
  612. package/dist/commands.js +66 -0
  613. package/dist/extensions/command-telemetry.d.ts +21 -0
  614. package/dist/extensions/command-telemetry.js +89 -0
  615. package/dist/extensions/command-usage.d.ts +23 -0
  616. package/dist/extensions/command-usage.js +37 -0
  617. package/dist/extensions/store.d.ts +9 -4
  618. package/dist/extensions/store.js +27 -24
  619. package/dist/extensions/view.d.ts +9 -4
  620. package/dist/extensions/view.js +35 -8
  621. package/dist/flags.d.ts +98 -21
  622. package/dist/flags.js +103 -22
  623. package/dist/frameworks.d.ts +45 -0
  624. package/dist/frameworks.js +186 -0
  625. package/dist/schemas.d.ts +8 -5
  626. package/dist/schemas.js +28 -32
  627. package/dist/shortcuts.d.ts +16 -16
  628. package/dist/shortcuts.js +8 -36
  629. package/dist/translations.d.ts +56 -0
  630. package/dist/translations.js +200 -0
  631. package/package.json +16 -4
  632. package/dist/_pkgs/affine-block-root/keyboard/shortcuts.d.ts +0 -8
  633. package/dist/_pkgs/affine-block-root/keyboard/shortcuts.js +0 -48
  634. package/dist/_pkgs/affine-gfx-shape/shortcuts.d.ts +0 -6
  635. package/dist/_pkgs/affine-gfx-shape/shortcuts.js +0 -28
  636. package/dist/_pkgs/data-view/core/utils/cache.d.ts +0 -5
  637. package/dist/_pkgs/data-view/core/utils/cache.js +0 -28
@@ -0,0 +1,206 @@
1
+ /** The default card: a plain white rectangle, no border, no radius. */
2
+ export const DEFAULT_BACKGROUND_SURFACE = {
3
+ fill: '#ffffff',
4
+ };
5
+ /** The plot rectangle of a background of size `w × h`, in element-local units. */
6
+ export function backgroundPlot(def, w, h) {
7
+ const { margin } = def.geometry;
8
+ const x0 = margin.left;
9
+ const y0 = margin.top;
10
+ const x1 = w - margin.right;
11
+ const y1 = h - margin.bottom;
12
+ return { x0, y0, x1, y1, width: x1 - x0, height: y1 - y0 };
13
+ }
14
+ /** Element-local point of an anchor, given the plot it is expressed against. */
15
+ export function backgroundPoint(anchor, plot) {
16
+ return [
17
+ plot.x0 + anchor.x * plot.width + (anchor.dx ?? 0),
18
+ plot.y0 + anchor.y * plot.height + (anchor.dy ?? 0),
19
+ ];
20
+ }
21
+ /**
22
+ * The colour a broken declaration paints in.
23
+ *
24
+ * Loud magenta on purpose: a background is DATA, and the cost of getting it
25
+ * wrong must be seen on the canvas in one glance rather than debugged from a
26
+ * `rgba(NaN,NaN,NaN,0.4)` that silently paints nothing.
27
+ */
28
+ export const BROKEN_BACKGROUND_COLOR = '#ff00ff';
29
+ /** Warn once per distinct problem: a renderer runs on every frame. */
30
+ const warned = new Set();
31
+ function warnOnce(reason) {
32
+ if (warned.has(reason))
33
+ return;
34
+ warned.add(reason);
35
+ console.warn(`[framework-background] ${reason}`);
36
+ }
37
+ export function warnBrokenBackgroundColor(reason) {
38
+ warnOnce(reason);
39
+ }
40
+ /**
41
+ * Resolve `@name` against the palette; anything else is a literal colour.
42
+ *
43
+ * A name the palette does not carry is a typo in the declaration, not a
44
+ * request for transparency: it warns and returns {@link BROKEN_BACKGROUND_COLOR}.
45
+ */
46
+ export function backgroundColor(color, palette) {
47
+ if (!color)
48
+ return 'transparent';
49
+ if (!color.startsWith('@'))
50
+ return color;
51
+ const resolved = palette?.[color.slice(1)];
52
+ if (resolved !== undefined)
53
+ return resolved;
54
+ warnBrokenBackgroundColor(`no palette entry for "${color}"`);
55
+ return BROKEN_BACKGROUND_COLOR;
56
+ }
57
+ /** Nothing to report, shared so the common case allocates no array. */
58
+ const NO_INSTANCE_ZONES = Object.freeze([]);
59
+ /**
60
+ * The plot partition ONE instance carries, as rectangles in plot ratios.
61
+ *
62
+ * The semantic accessor onto {@link BackgroundInstanceZonesDef}: everything
63
+ * that has to know where a user's own zones sit — the renderer that draws their
64
+ * dividers and their names, the audit that reports them, the rules a later
65
+ * tranche will judge inside them — reads them here, so a lane is one shape and
66
+ * not four that must agree. Named consumer: the BPMN pool's lanes (couloirs).
67
+ *
68
+ * Pure: declaration plus the instance's bag of props in, plain data out. Ratios
69
+ * and not model units, for the reason every position in this file is a ratio —
70
+ * an instance stretched to twice its height keeps the same partition.
71
+ *
72
+ * ## What a malformed partition does
73
+ *
74
+ * A partition is data the user edits, so it gets typos and half-written rows,
75
+ * and none of them may take the frame down or paint a picture that lies:
76
+ *
77
+ * - a missing, empty or non-array prop yields `[]` — a background that simply
78
+ * has no partition yet, which is what every instance looks like the moment it
79
+ * is created;
80
+ * - an entry that is not an object, or carries no string id, is dropped;
81
+ * - a size that is not a finite number, or is `0` or less, is dropped with a
82
+ * warning: a zero-height band is a band nothing can be in, and a negative one
83
+ * would eat into its neighbours. Dropped rather than clamped, for the reason
84
+ * {@link FrameworkBackgroundDef.transitionBandWidth} drops its own degenerate
85
+ * case — silently inventing a size is worse than showing one band fewer;
86
+ * - once for each distinct problem, like every other diagnostic on the paint
87
+ * path (see {@link warnBrokenBackgroundColor}).
88
+ *
89
+ * The survivors keep their declaration ORDER, and their sizes are normalised
90
+ * over the sum of the survivors — so dropping a broken row redistributes its
91
+ * space rather than leaving a hole where it was.
92
+ */
93
+ export function backgroundInstanceZones(def, model) {
94
+ const spec = def.instanceZones;
95
+ if (spec === undefined)
96
+ return NO_INSTANCE_ZONES;
97
+ const raw = model[spec.prop];
98
+ if (!Array.isArray(raw) || raw.length === 0)
99
+ return NO_INSTANCE_ZONES;
100
+ const items = [];
101
+ let total = 0;
102
+ for (const entry of raw) {
103
+ if (typeof entry !== 'object' || entry === null)
104
+ continue;
105
+ const item = entry;
106
+ if (typeof item.id !== 'string' || item.id === '')
107
+ continue;
108
+ const size = item.size;
109
+ if (typeof size !== 'number' || !Number.isFinite(size) || size <= 0) {
110
+ warnOnce(`"${def.type}" instance zone "${item.id}" declares a size of ${String(size)} — a zone with no extent is one nothing can be inside, so it is ` +
111
+ `dropped and its neighbours share the space.`);
112
+ continue;
113
+ }
114
+ items.push({
115
+ id: item.id,
116
+ ...(typeof item.name === 'string' ? { name: item.name } : {}),
117
+ size,
118
+ });
119
+ total += size;
120
+ }
121
+ if (items.length === 0 || !(total > 0))
122
+ return NO_INSTANCE_ZONES;
123
+ const zones = [];
124
+ let at = 0;
125
+ for (const item of items) {
126
+ const share = item.size / total;
127
+ zones.push({
128
+ id: `${spec.idPrefix}:${item.id}`,
129
+ ...(item.name !== undefined ? { name: item.name } : {}),
130
+ rect: spec.stack === 'y'
131
+ ? { x: 0, y: at, w: 1, h: share }
132
+ : { x: at, y: 0, w: share, h: 1 },
133
+ });
134
+ at += share;
135
+ }
136
+ return zones;
137
+ }
138
+ /**
139
+ * The label STRIP of one instance zone, in element-local model units.
140
+ *
141
+ * `null` when the declaration asks for no band, or when there is no room for
142
+ * one. THE one place that knows where a lane title sits: the renderer paints
143
+ * from it and the framework's view hit-tests a double-click against it, so the
144
+ * words a user aims at and the words they get are the same rectangle by
145
+ * construction rather than by two constants that must agree.
146
+ *
147
+ * Clamped to the plot, the way a side band clamps to an element narrower than
148
+ * its own margin ({@link BackgroundSideBandDef}) — the same degenerate case,
149
+ * and the same answer.
150
+ */
151
+ export function backgroundInstanceZoneBand(def, zone, plot) {
152
+ const spec = def.instanceZones;
153
+ const band = spec?.label?.band;
154
+ if (spec === undefined || band === undefined)
155
+ return null;
156
+ if (!(band.width > 0))
157
+ return null;
158
+ if (spec.stack === 'y') {
159
+ const width = Math.min(band.width, plot.width);
160
+ if (!(width > 0))
161
+ return null;
162
+ return {
163
+ x: plot.x0,
164
+ y: plot.y0 + zone.rect.y * plot.height,
165
+ w: width,
166
+ h: zone.rect.h * plot.height,
167
+ };
168
+ }
169
+ const height = Math.min(band.width, plot.height);
170
+ if (!(height > 0))
171
+ return null;
172
+ return {
173
+ x: plot.x0 + zone.rect.x * plot.width,
174
+ y: plot.y0,
175
+ w: zone.rect.w * plot.width,
176
+ h: height,
177
+ };
178
+ }
179
+ /**
180
+ * Whether the resize handles are offered for this element.
181
+ *
182
+ * The element's own `resizeEnabled` decides — it is what the toolbar toggle
183
+ * writes. The declaration's {@link BackgroundGeometry.resizable} is the
184
+ * fallback for an element that carries no such prop, which is what makes it
185
+ * live data rather than documentation.
186
+ */
187
+ export function backgroundResizeAllowed(def, model) {
188
+ return model.resizeEnabled ?? def.geometry.resizable;
189
+ }
190
+ /**
191
+ * The size a fresh background of this framework is created at, never smaller
192
+ * than the bounds it is asked to cover — so a second map dropped on a board
193
+ * matches the biggest one already there instead of shrinking beside it.
194
+ */
195
+ export function backgroundSize(def, atLeastWidth = 0, atLeastHeight = 0) {
196
+ const { width: refWidth, height: refHeight, lockAspectRatio } = def.geometry;
197
+ if (!lockAspectRatio) {
198
+ return {
199
+ width: Math.max(refWidth, atLeastWidth),
200
+ height: Math.max(refHeight, atLeastHeight),
201
+ };
202
+ }
203
+ const ratio = refHeight / refWidth;
204
+ const width = Math.max(refWidth, atLeastWidth, atLeastHeight / ratio);
205
+ return { width, height: width * ratio };
206
+ }
@@ -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';