@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,98 @@
1
+ import { isValidUrl, normalizeUrl } from '../../affine-shared/utils/index.js';
2
+ const URL_SCHEME_IN_TOKEN_REGEXP = /(?:https?:\/\/|ftp:\/\/|sftp:\/\/|mailto:|tel:|www\.)/i;
3
+ const URL_LEADING_DELIMITER_REGEXP = /^[-([{<'"~]+/;
4
+ const URL_TRAILING_DELIMITER_REGEXP = /[)\]}>.,;:!?'"]+$/;
5
+ function appendUrlTextSegment(segments, segment) {
6
+ if (!segment.text)
7
+ return;
8
+ const last = segments[segments.length - 1];
9
+ if (last && !last.link && !segment.link) {
10
+ last.text += segment.text;
11
+ return;
12
+ }
13
+ segments.push(segment);
14
+ }
15
+ function splitTokenByUrl(token, baseUrl) {
16
+ const schemeMatch = token.match(URL_SCHEME_IN_TOKEN_REGEXP);
17
+ const schemeIndex = schemeMatch?.index;
18
+ if (typeof schemeIndex === 'number' && schemeIndex > 0) {
19
+ return [
20
+ { text: token.slice(0, schemeIndex) },
21
+ ...splitTokenByUrl(token.slice(schemeIndex), baseUrl),
22
+ ];
23
+ }
24
+ const leading = token.match(URL_LEADING_DELIMITER_REGEXP)?.[0] ?? '';
25
+ const withoutLeading = token.slice(leading.length);
26
+ const trailing = withoutLeading.match(URL_TRAILING_DELIMITER_REGEXP)?.[0] ?? '';
27
+ const core = trailing
28
+ ? withoutLeading.slice(0, withoutLeading.length - trailing.length)
29
+ : withoutLeading;
30
+ if (core && isValidUrl(core, baseUrl)) {
31
+ const segments = [];
32
+ appendUrlTextSegment(segments, { text: leading });
33
+ appendUrlTextSegment(segments, { text: core, link: normalizeUrl(core) });
34
+ appendUrlTextSegment(segments, { text: trailing });
35
+ return segments;
36
+ }
37
+ return [{ text: token }];
38
+ }
39
+ /**
40
+ * Split pasted plain text into mixed segments, where only the URL segments
41
+ * carry link metadata. Text like `see https://example.com, then stop` keeps its
42
+ * prose as prose and linkifies only the address, punctuation excluded.
43
+ */
44
+ export function splitTextByUrl(text, baseUrl = location.origin) {
45
+ const chunks = text.match(/\s+|\S+/g);
46
+ if (!chunks) {
47
+ return [];
48
+ }
49
+ const segments = [];
50
+ chunks.forEach(chunk => {
51
+ if (/^\s+$/.test(chunk)) {
52
+ appendUrlTextSegment(segments, { text: chunk });
53
+ return;
54
+ }
55
+ splitTokenByUrl(chunk, baseUrl).forEach(segment => {
56
+ appendUrlTextSegment(segments, segment);
57
+ });
58
+ });
59
+ return segments;
60
+ }
61
+ /**
62
+ * Describe a paste for the database cells: the segments to insert, plus the
63
+ * single URL the whole paste amounts to (if any), which is the only case where
64
+ * a doc link may be resolved instead.
65
+ */
66
+ export function analyzeTextForUrlPaste(text) {
67
+ const segments = splitTextByUrl(text);
68
+ const firstSegment = segments[0];
69
+ const singleUrl = segments.length === 1 && firstSegment?.link && firstSegment.text === text
70
+ ? firstSegment.link
71
+ : undefined;
72
+ return {
73
+ segments,
74
+ singleUrl,
75
+ };
76
+ }
77
+ export function insertUrlTextSegments(inlineEditor, inlineRange, segments) {
78
+ let index = inlineRange.index;
79
+ let replacedSelection = false;
80
+ segments.forEach(segment => {
81
+ if (!segment.text)
82
+ return;
83
+ const attributes = segment.link
84
+ ? { link: segment.link }
85
+ : undefined;
86
+ inlineEditor.insertText({
87
+ index,
88
+ // Only the first insertion replaces what the user had selected.
89
+ length: replacedSelection ? 0 : inlineRange.length,
90
+ }, segment.text, attributes);
91
+ replacedSelection = true;
92
+ index += segment.text.length;
93
+ });
94
+ inlineEditor.setInlineRange({
95
+ index,
96
+ length: 0,
97
+ });
98
+ }
@@ -1,6 +1,6 @@
1
1
  import { DefaultInlineManagerExtension } from '../../../affine-inline-preset/index.js';
2
2
  import { ParseDocUrlProvider, TelemetryProvider, } from '../../../affine-shared/services/index.js';
3
- import { getViewportElement, isValidUrl, } from '../../../affine-shared/utils/index.js';
3
+ import { getViewportElement } from '../../../affine-shared/utils/index.js';
4
4
  import { BaseCellRenderer, createFromBaseCellRenderer, createIcon, } from '../../../data-view/index.js';
5
5
  import { IS_MAC } from '../../../global/env/index.js';
6
6
  import { Text } from '../../../store/index.js';
@@ -8,6 +8,7 @@ import { computed, effect, signal } from '@preact/signals-core';
8
8
  import { ref } from 'lit/directives/ref.js';
9
9
  import { html } from 'lit/static-html.js';
10
10
  import { EditorHostKey } from '../../context/host-context.js';
11
+ import { analyzeTextForUrlPaste, insertUrlTextSegments } from '../paste-url.js';
11
12
  import { richTextCellStyle, richTextContainerStyle, } from './cell-renderer-css.js';
12
13
  import { richTextPropertyModelConfig } from './define.js';
13
14
  function toggleStyle(inlineEditor, attrs) {
@@ -197,9 +198,12 @@ export class RichTextCell extends BaseCellRenderer {
197
198
  ?.replace(/\r?\n|\r/g, '\n');
198
199
  if (!text)
199
200
  return;
200
- if (isValidUrl(text)) {
201
+ const { segments, singleUrl } = analyzeTextForUrlPaste(text);
202
+ if (singleUrl) {
201
203
  const std = this.std;
202
- const result = std?.getOptional(ParseDocUrlProvider)?.parseDocUrl(text);
204
+ const result = std
205
+ ?.getOptional(ParseDocUrlProvider)
206
+ ?.parseDocUrl(singleUrl);
203
207
  if (result) {
204
208
  const text = ' ';
205
209
  inlineEditor.insertText(inlineRange, text, {
@@ -224,24 +228,10 @@ export class RichTextCell extends BaseCellRenderer {
224
228
  segment: 'database',
225
229
  parentFlavour: 'affine:database',
226
230
  });
231
+ return;
227
232
  }
228
- else {
229
- inlineEditor.insertText(inlineRange, text, {
230
- link: text,
231
- });
232
- inlineEditor.setInlineRange({
233
- index: inlineRange.index + text.length,
234
- length: 0,
235
- });
236
- }
237
- }
238
- else {
239
- inlineEditor.insertText(inlineRange, text);
240
- inlineEditor.setInlineRange({
241
- index: inlineRange.index + text.length,
242
- length: 0,
243
- });
244
233
  }
234
+ insertUrlTextSegments(inlineEditor, inlineRange, segments);
245
235
  };
246
236
  this.insertDelta = (delta) => {
247
237
  const inlineEditor = this.inlineEditor$.value;
@@ -34,7 +34,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
34
34
  };
35
35
  import { DefaultInlineManagerExtension } from '../../../affine-inline-preset/index.js';
36
36
  import { ParseDocUrlProvider, TelemetryProvider, } from '../../../affine-shared/services/index.js';
37
- import { getViewportElement, isValidUrl, } from '../../../affine-shared/utils/index.js';
37
+ import { getViewportElement } from '../../../affine-shared/utils/index.js';
38
38
  import { BaseCellRenderer } from '../../../data-view/index.js';
39
39
  import { IS_MAC } from '../../../global/env/index.js';
40
40
  import { LinkedPageIcon } from '@blocksuite/icons/lit';
@@ -44,6 +44,7 @@ import { createRef, ref } from 'lit/directives/ref.js';
44
44
  import { html } from 'lit/static-html.js';
45
45
  import { EditorHostKey } from '../../context/host-context.js';
46
46
  import { getSingleDocIdFromText } from '../../utils/title-doc.js';
47
+ import { analyzeTextForUrlPaste, insertUrlTextSegments } from '../paste-url.js';
47
48
  import { headerAreaIconStyle, titleCellStyle, titleRichTextStyle, } from './cell-renderer-css.js';
48
49
  let HeaderAreaTextCell = (() => {
49
50
  let _classSuper = BaseCellRenderer;
@@ -106,7 +107,10 @@ let HeaderAreaTextCell = (() => {
106
107
  if (this.richText.value) {
107
108
  this.disposables.addFromEvent(this.richText.value, 'copy', this._onCopy);
108
109
  this.disposables.addFromEvent(this.richText.value, 'cut', this._onCut);
109
- this.disposables.addFromEvent(this.richText.value, 'paste', this._onPaste);
110
+ this.disposables.addFromEvent(this.richText.value, 'paste', this._onPaste,
111
+ // Capture: the cell must claim the paste before the rich text's own
112
+ // handler turns it into a document paste.
113
+ true);
110
114
  const inlineEditor = this.inlineEditor;
111
115
  if (inlineEditor) {
112
116
  this.disposables.add(inlineEditor.slots.keydown.subscribe(this._handleKeyDown));
@@ -194,8 +198,12 @@ let HeaderAreaTextCell = (() => {
194
198
  this._onPaste = (e) => {
195
199
  const inlineEditor = this.inlineEditor;
196
200
  const inlineRange = inlineEditor?.getInlineRange();
197
- if (!inlineRange)
201
+ if (!inlineEditor || !inlineRange)
198
202
  return;
203
+ // The cell owns the paste: stop it before the document clipboard sees it,
204
+ // whichever branch below ends up handling the payload.
205
+ e.preventDefault();
206
+ e.stopPropagation();
199
207
  if (e.clipboardData) {
200
208
  try {
201
209
  const getDeltas = (snapshot) => {
@@ -219,14 +227,15 @@ let HeaderAreaTextCell = (() => {
219
227
  ?.replace(/\r?\n|\r/g, '\n');
220
228
  if (!text)
221
229
  return;
222
- e.preventDefault();
223
- e.stopPropagation();
224
- if (isValidUrl(text)) {
230
+ const { segments, singleUrl } = analyzeTextForUrlPaste(text);
231
+ if (singleUrl) {
225
232
  const std = this.std;
226
- const result = std?.getOptional(ParseDocUrlProvider)?.parseDocUrl(text);
233
+ const result = std
234
+ ?.getOptional(ParseDocUrlProvider)
235
+ ?.parseDocUrl(singleUrl);
227
236
  if (result) {
228
237
  const text = ' ';
229
- inlineEditor?.insertText(inlineRange, text, {
238
+ inlineEditor.insertText(inlineRange, text, {
230
239
  reference: {
231
240
  type: 'LinkedPage',
232
241
  pageId: result.docId,
@@ -237,7 +246,7 @@ let HeaderAreaTextCell = (() => {
237
246
  },
238
247
  },
239
248
  });
240
- inlineEditor?.setInlineRange({
249
+ inlineEditor.setInlineRange({
241
250
  index: inlineRange.index + text.length,
242
251
  length: 0,
243
252
  });
@@ -248,24 +257,10 @@ let HeaderAreaTextCell = (() => {
248
257
  segment: 'database',
249
258
  parentFlavour: 'affine:database',
250
259
  });
260
+ return;
251
261
  }
252
- else {
253
- inlineEditor?.insertText(inlineRange, text, {
254
- link: text,
255
- });
256
- inlineEditor?.setInlineRange({
257
- index: inlineRange.index + text.length,
258
- length: 0,
259
- });
260
- }
261
- }
262
- else {
263
- inlineEditor?.insertText(inlineRange, text);
264
- inlineEditor?.setInlineRange({
265
- index: inlineRange.index + text.length,
266
- length: 0,
267
- });
268
262
  }
263
+ insertUrlTextSegments(inlineEditor, inlineRange, segments);
269
264
  };
270
265
  this.insertDelta = (delta) => {
271
266
  const inlineEditor = this.inlineEditor;
@@ -2,6 +2,7 @@ import { viewConverts, viewPresets } from '../../data-view/view-presets/index.js
2
2
  export const databaseBlockViews = [
3
3
  viewPresets.tableViewMeta,
4
4
  viewPresets.kanbanViewMeta,
5
+ viewPresets.calendarViewMeta,
5
6
  ];
6
7
  export const databaseBlockViewMap = Object.fromEntries(databaseBlockViews.map(view => [view.type, view]));
7
8
  export const databaseBlockViewConverts = [...viewConverts];
@@ -39,7 +39,7 @@ import { focusTextModel } from '../affine-rich-text/index.js';
39
39
  import { ThemeProvider } from '../affine-shared/services/index.js';
40
40
  import { handleNativeRangeAtPoint, matchModels, } from '../affine-shared/utils/index.js';
41
41
  import { Bound, clamp } from '../global/gfx/index.js';
42
- import { BlockSelection, GfxBlockComponent, TextSelection, } from '../std/index.js';
42
+ import { BlockSelection, GfxBlockComponent, TextSelection } from '../std/index.js';
43
43
  import { GfxViewInteractionExtension } from '../std/gfx/index.js';
44
44
  import { computed } from '@preact/signals-core';
45
45
  import { css, html } from 'lit';
@@ -81,6 +81,15 @@ let EdgelessTextBlockComponent = (() => {
81
81
  font-weight: var(--edgeless-text-font-weight);
82
82
  text-align: var(--edgeless-text-text-align);
83
83
  }
84
+
85
+ /*
86
+ * Locking a text block is meant to stop accidental edits, not to stop
87
+ * navigation, so links stay reachable inside otherwise inert content.
88
+ */
89
+ .edgeless-text-block-container .locked-content a[href] {
90
+ pointer-events: auto;
91
+ cursor: pointer;
92
+ }
84
93
  `; }
85
94
  _updateH() {
86
95
  const bound = Bound.deserialize(this.model.xywh);
@@ -263,6 +272,7 @@ let EdgelessTextBlockComponent = (() => {
263
272
  style=${styleMap(containerStyle)}
264
273
  >
265
274
  <div
275
+ class=${!editing && this.model.isLocked() ? 'locked-content' : ''}
266
276
  style=${styleMap({
267
277
  pointerEvents: editing ? 'auto' : 'none',
268
278
  userSelect: editing ? 'auto' : 'none',
@@ -15,6 +15,9 @@ export declare const edgelessTextToolbarConfig: {
15
15
  }, {
16
16
  readonly id: "e.alignment";
17
17
  readonly content: (ctx: import("../../affine-shared/services/index.js").ToolbarContext) => import("lit-html").TemplateResult<1> | null;
18
+ }, {
19
+ readonly id: "d.text-size";
20
+ readonly content: (ctx: import("../../affine-shared/services/index.js").ToolbarContext) => import("lit-html").TemplateResult<1> | null;
18
21
  }];
19
22
  readonly when: (ctx: import("../../affine-shared/services/index.js").ToolbarContext) => boolean;
20
23
  };
@@ -1,10 +1,57 @@
1
+ import { EdgelessCRUDIdentifier } from '../../affine-block-surface/index.js';
1
2
  import { createTextActions } from '../../affine-gfx-text/index.js';
2
3
  import { EdgelessTextBlockModel } from '../../affine-model/index.js';
3
4
  import { ToolbarModuleExtension, } from '../../affine-shared/services/index.js';
5
+ import { getMostCommonValue } from '../../affine-shared/utils/index.js';
6
+ import { Bound } from '../../global/gfx/index.js';
4
7
  import { BlockFlavourIdentifier } from '../../std/index.js';
8
+ import { signal } from '@preact/signals-core';
9
+ import { html } from 'lit';
10
+ import { boundForScale, scaleFromSize, sizeFromScale } from './font-size.js';
11
+ const FONT_SIZE_LIST = [
12
+ { value: 16 },
13
+ { value: 24 },
14
+ { value: 32 },
15
+ { value: 40 },
16
+ { value: 64 },
17
+ { value: 128 },
18
+ ];
5
19
  export const edgelessTextToolbarConfig = {
6
20
  // No need to adjust element bounds, which updates itself using ResizeObserver
7
- actions: createTextActions(EdgelessTextBlockModel, 'edgeless-text'),
21
+ actions: [
22
+ ...createTextActions(EdgelessTextBlockModel, 'edgeless-text'),
23
+ {
24
+ // The shared `d.font-size` action is disabled for edgeless text (the
25
+ // model has no `fontSize` prop); this one drives `scale` instead, the
26
+ // same prop ratio-locked corner resizing writes.
27
+ id: 'd.text-size',
28
+ content(ctx) {
29
+ const models = ctx.getSurfaceModelsByType(EdgelessTextBlockModel);
30
+ if (!models.length)
31
+ return null;
32
+ const size$ = signal(sizeFromScale(getMostCommonValue(models.map(model => model.props), 'scale') ?? 1));
33
+ const onPick = (e) => {
34
+ e.stopPropagation();
35
+ const scale = scaleFromSize(e.detail);
36
+ const crud = ctx.std.get(EdgelessCRUDIdentifier);
37
+ for (const model of models) {
38
+ const bound = boundForScale(Bound.deserialize(model.xywh), model.props.scale, scale);
39
+ crud.updateElement(model.id, {
40
+ scale,
41
+ xywh: bound.serialize(),
42
+ });
43
+ }
44
+ };
45
+ return html `<affine-size-dropdown-menu
46
+ @select=${onPick}
47
+ .label="${'Font size'}"
48
+ .sizes=${FONT_SIZE_LIST}
49
+ .size$=${size$}
50
+ .minSize=${1}
51
+ ></affine-size-dropdown-menu>`;
52
+ },
53
+ },
54
+ ],
8
55
  when: ctx => ctx.getSurfaceModelsByType(EdgelessTextBlockModel).length > 0,
9
56
  };
10
57
  export const edgelessTextToolbarExtension = ToolbarModuleExtension({
@@ -0,0 +1,17 @@
1
+ import { Bound } from '../../global/gfx/index.js';
2
+ /**
3
+ * An edgeless text block has no `fontSize` prop — its visual text size is
4
+ * `scale` applied to the page base font size (`--affine-font-base`, 15px).
5
+ * The toolbar size selector converts between that scale and the pixel size
6
+ * users actually reason about.
7
+ */
8
+ export declare const EDGELESS_TEXT_BASE_FONT_SIZE = 15;
9
+ export declare function sizeFromScale(scale: number): number;
10
+ export declare function scaleFromSize(size: number): number;
11
+ /**
12
+ * Rescale a block bound the same way corner (ratio-locked) resizing does:
13
+ * top-left anchored, width and height proportional to the scale. This keeps
14
+ * the real layout size (`w / scale`) untouched, so the text wrapping does not
15
+ * change — only the rendered size does.
16
+ */
17
+ export declare function boundForScale(bound: Bound, oldScale: number, newScale: number): Bound;
@@ -0,0 +1,24 @@
1
+ import { Bound } from '../../global/gfx/index.js';
2
+ /**
3
+ * An edgeless text block has no `fontSize` prop — its visual text size is
4
+ * `scale` applied to the page base font size (`--affine-font-base`, 15px).
5
+ * The toolbar size selector converts between that scale and the pixel size
6
+ * users actually reason about.
7
+ */
8
+ export const EDGELESS_TEXT_BASE_FONT_SIZE = 15;
9
+ export function sizeFromScale(scale) {
10
+ return Math.round(scale * EDGELESS_TEXT_BASE_FONT_SIZE);
11
+ }
12
+ export function scaleFromSize(size) {
13
+ return size / EDGELESS_TEXT_BASE_FONT_SIZE;
14
+ }
15
+ /**
16
+ * Rescale a block bound the same way corner (ratio-locked) resizing does:
17
+ * top-left anchored, width and height proportional to the scale. This keeps
18
+ * the real layout size (`w / scale`) untouched, so the text wrapping does not
19
+ * change — only the rendered size does.
20
+ */
21
+ export function boundForScale(bound, oldScale, newScale) {
22
+ const ratio = newScale / oldScale;
23
+ return new Bound(bound.x, bound.y, bound.w * ratio, bound.h * ratio);
24
+ }
@@ -1,4 +1,4 @@
1
- import { EmbedFigmaBlockSchema, EmbedFigmaStyles, } from '../../affine-model/index.js';
1
+ import { EmbedFigmaBlockSchema, EmbedFigmaStyles } from '../../affine-model/index.js';
2
2
  import { EmbedOptionConfig } from '../../affine-shared/services/index.js';
3
3
  import { figmaUrlRegex } from './embed-figma-model.js';
4
4
  export const EmbedFigmaBlockOptionConfig = EmbedOptionConfig({
@@ -1,13 +1,13 @@
1
1
  import { reassociateConnectorsCommand } from '../../../affine-block-surface/index.js';
2
2
  import { toast } from '../../../affine-components/toast/index.js';
3
- import { BookmarkStyles, EmbedIframeBlockModel, } from '../../../affine-model/index.js';
3
+ import { BookmarkStyles, EmbedIframeBlockModel } from '../../../affine-model/index.js';
4
4
  import { EMBED_CARD_HEIGHT, EMBED_CARD_WIDTH, } from '../../../affine-shared/consts/index.js';
5
5
  import { ActionPlacement, ToolbarModuleExtension, } from '../../../affine-shared/services/index.js';
6
6
  import { getBlockProps } from '../../../affine-shared/utils/index.js';
7
7
  import { Bound } from '../../../global/gfx/index.js';
8
8
  import { CaptionIcon, CopyIcon, DeleteIcon, DuplicateIcon, LinkedPageIcon, OpenInNewIcon, ResetIcon, } from '@blocksuite/icons/lit';
9
9
  import { BlockFlavourIdentifier, BlockSelection } from '../../../std/index.js';
10
- import { Slice, Text, toDraftModel, } from '../../../store/index.js';
10
+ import { Slice, Text, toDraftModel } from '../../../store/index.js';
11
11
  import { computed, signal } from '@preact/signals-core';
12
12
  import { html } from 'lit';
13
13
  import { keyed } from 'lit/directives/keyed.js';
@@ -0,0 +1,9 @@
1
+ import type { Store } from '../../store/index.js';
2
+ /**
3
+ * Whether the host has moved this doc to its trash.
4
+ *
5
+ * A trashed doc is still in the workspace and still loads, so a card pointing
6
+ * at it has to ask: cards render a trashed doc as deleted, the same way they
7
+ * render a doc that has left the workspace altogether.
8
+ */
9
+ export declare function isDocTrashed(doc: Store | null | undefined): boolean;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Whether the host has moved this doc to its trash.
3
+ *
4
+ * A trashed doc is still in the workspace and still loads, so a card pointing
5
+ * at it has to ask: cards render a trashed doc as deleted, the same way they
6
+ * render a doc that has left the workspace altogether.
7
+ */
8
+ export function isDocTrashed(doc) {
9
+ return !!doc?.meta?.trash;
10
+ }
@@ -3,7 +3,7 @@ import { EditorChevronDown } from '../../../affine-components/toolbar/index.js';
3
3
  import { EmbedLinkedDocModel, EmbedLinkedDocStyles, } from '../../../affine-model/index.js';
4
4
  import { EMBED_CARD_HEIGHT, EMBED_CARD_WIDTH, } from '../../../affine-shared/consts/index.js';
5
5
  import { ActionPlacement, blockCommentToolbarButton, DocDisplayMetaProvider, EditorSettingProvider, ToolbarModuleExtension, } from '../../../affine-shared/services/index.js';
6
- import { getBlockProps, referenceToNode, } from '../../../affine-shared/utils/index.js';
6
+ import { getBlockProps, referenceToNode } from '../../../affine-shared/utils/index.js';
7
7
  import { Bound } from '../../../global/gfx/index.js';
8
8
  import { CaptionIcon, CopyIcon, DeleteIcon, DuplicateIcon, ExpandFullIcon, OpenInNewIcon, } from '@blocksuite/icons/lit';
9
9
  import { BlockFlavourIdentifier, isGfxBlockComponent } from '../../../std/index.js';
@@ -54,6 +54,7 @@ import { when } from 'lit/directives/when.js';
54
54
  import throttle from 'lodash-es/throttle.js';
55
55
  import { filter } from 'rxjs/operators';
56
56
  import * as Y from 'yjs';
57
+ import { isDocTrashed } from '../common/doc-trashed.js';
57
58
  import { renderLinkedDocInCard } from '../common/render-linked-doc.js';
58
59
  import { SyncedDocErrorIcon } from '../embed-synced-doc-block/styles.js';
59
60
  import { styles } from './styles.js';
@@ -167,9 +168,6 @@ let EmbedLinkedDocBlockComponent = (() => {
167
168
  });
168
169
  }, RENDER_CARD_THROTTLE_MS)));
169
170
  this._setDocUpdatedAt();
170
- this.disposables.add(this.store.workspace.slots.docListUpdated.subscribe(() => {
171
- this._setDocUpdatedAt();
172
- }));
173
171
  if (this._referenceToNode) {
174
172
  this._linkedDocMode = this.model.props.params?.mode ?? 'page';
175
173
  }
@@ -192,6 +190,12 @@ let EmbedLinkedDocBlockComponent = (() => {
192
190
  });
193
191
  }
194
192
  }));
193
+ // Subscribed whether or not the doc exists right now: the doc list is also
194
+ // what tells the card that its target was trashed, restored or recreated.
195
+ this.disposables.add(this.store.workspace.slots.docListUpdated.subscribe(() => {
196
+ this._setDocUpdatedAt();
197
+ this.refreshData();
198
+ }));
195
199
  this._trackCitationDeleteEvent();
196
200
  }
197
201
  getInitialState() {
@@ -437,7 +441,7 @@ let EmbedLinkedDocBlockComponent = (() => {
437
441
  };
438
442
  this._renderEmbedView = () => {
439
443
  const linkedDoc = this.linkedDoc;
440
- const isDeleted = !linkedDoc;
444
+ const isDeleted = !linkedDoc || isDocTrashed(linkedDoc);
441
445
  const isLoading = this._loading;
442
446
  const isError = this.isError;
443
447
  const isEmpty = this._isDocEmpty() && this.isBannerEmpty;
@@ -1,5 +1,5 @@
1
1
  import { EmbedEdgelessIcon, EmbedPageIcon, } from '../../affine-components/icons/index.js';
2
- import { ColorScheme, } from '../../affine-model/index.js';
2
+ import { ColorScheme } from '../../affine-model/index.js';
3
3
  import { DarkSyncedDocErrorBanner, LightSyncedDocErrorBanner, } from '../embed-synced-doc-block/styles.js';
4
4
  import { DarkLinkedEdgelessDeletedLargeBanner, DarkLinkedEdgelessDeletedSmallBanner, DarkLinkedEdgelessEmptyLargeBanner, DarkLinkedEdgelessEmptySmallBanner, DarkLinkedPageDeletedLargeBanner, DarkLinkedPageDeletedSmallBanner, DarkLinkedPageEmptyLargeBanner, DarkLinkedPageEmptySmallBanner, LightLinkedEdgelessDeletedLargeBanner, LightLinkedEdgelessDeletedSmallBanner, LightLinkedEdgelessEmptyLargeBanner, LightLinkedEdgelessEmptySmallBanner, LightLinkedPageDeletedLargeBanner, LightLinkedPageDeletedSmallBanner, LightLinkedPageEmptyLargeBanner, LightLinkedPageEmptySmallBanner, LinkedDocDeletedIcon, } from './styles.js';
5
5
  export function getEmbedLinkedDocIcons(theme, editorMode, style) {
@@ -8,7 +8,7 @@ import { getBlockProps, matchModels } from '../../../affine-shared/utils/index.j
8
8
  import { Bound } from '../../../global/gfx/index.js';
9
9
  import { CaptionIcon, CopyIcon, DeleteIcon, DuplicateIcon, ExpandFullIcon, InsertIntoPageIcon, OpenInNewIcon, } from '@blocksuite/icons/lit';
10
10
  import { BlockFlavourIdentifier, isGfxBlockComponent } from '../../../std/index.js';
11
- import { Slice, Text, } from '../../../store/index.js';
11
+ import { Slice, Text } from '../../../store/index.js';
12
12
  import { computed, signal } from '@preact/signals-core';
13
13
  import { html } from 'lit';
14
14
  import { ifDefined } from 'lit/directives/if-defined.js';
@@ -8,6 +8,10 @@ import type { EmbedSyncedDocCard } from './components/embed-synced-doc-card.js';
8
8
  export declare class EmbedSyncedDocBlockComponent extends EmbedBlockComponent<EmbedSyncedDocModel> {
9
9
  static styles: import("lit").CSSResult;
10
10
  private _cachedBounds;
11
+ /** Whether the nested editor has been rendered at least once. */
12
+ private _hasRenderedSyncedView;
13
+ /** Whether the fit effect below has already been installed. */
14
+ private _hasInitedFitEffect;
11
15
  private readonly _initEdgelessFitEffect;
12
16
  private readonly _pageFilter;
13
17
  protected _buildPreviewSpec: (name: "preview-page" | "preview-edgeless") => import("../../store/index.js").ExtensionType[];
@@ -32,7 +32,7 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
32
32
  }
33
33
  return useValue ? value : void 0;
34
34
  };
35
- import { EmbedBlockComponent, isEmptyDoc, } from '../../affine-block-embed/index.js';
35
+ import { EmbedBlockComponent, isEmptyDoc } from '../../affine-block-embed/index.js';
36
36
  import { Peekable } from '../../affine-components/peek/index.js';
37
37
  import { ViewExtensionManagerIdentifier } from '../../affine-ext-loader/index.js';
38
38
  import { RefNodeSlotsProvider, } from '../../affine-inline-reference/index.js';
@@ -52,6 +52,7 @@ import { classMap } from 'lit/directives/class-map.js';
52
52
  import { guard } from 'lit/directives/guard.js';
53
53
  import { styleMap } from 'lit/directives/style-map.js';
54
54
  import * as Y from 'yjs';
55
+ import { isDocTrashed } from '../common/doc-trashed.js';
55
56
  import { blockStyles } from './styles.js';
56
57
  let EmbedSyncedDocBlockComponent = (() => {
57
58
  let _classDecorators = [Peekable({
@@ -97,6 +98,10 @@ let EmbedSyncedDocBlockComponent = (() => {
97
98
  super(...arguments);
98
99
  // Caches total bounds, includes all blocks and elements.
99
100
  this._cachedBounds = null;
101
+ /** Whether the nested editor has been rendered at least once. */
102
+ this._hasRenderedSyncedView = false;
103
+ /** Whether the fit effect below has already been installed. */
104
+ this._hasInitedFitEffect = false;
100
105
  this._initEdgelessFitEffect = () => {
101
106
  const fitToContent = () => {
102
107
  if (this.isPageMode)
@@ -336,7 +341,11 @@ let EmbedSyncedDocBlockComponent = (() => {
336
341
  ?.docLinkClicked.next({ ...event, pageId, host: this.host });
337
342
  };
338
343
  this.refreshData = () => {
339
- this._load().catch(e => {
344
+ this._load()
345
+ .then(() => {
346
+ this._isEmptySyncedDoc = isEmptyDoc(this.syncedDoc, this.editorMode);
347
+ })
348
+ .catch(e => {
340
349
  console.error(e);
341
350
  this._error = true;
342
351
  });
@@ -444,7 +453,7 @@ let EmbedSyncedDocBlockComponent = (() => {
444
453
  this._deleted = false;
445
454
  this._cycle = false;
446
455
  const syncedDoc = this.syncedDoc;
447
- if (!syncedDoc) {
456
+ if (!syncedDoc || isDocTrashed(syncedDoc)) {
448
457
  this._deleted = true;
449
458
  this._loading = false;
450
459
  return;
@@ -506,6 +515,7 @@ let EmbedSyncedDocBlockComponent = (() => {
506
515
  this._setDocUpdatedAt();
507
516
  this.disposables.add(this.store.workspace.slots.docListUpdated.subscribe(() => {
508
517
  this._setDocUpdatedAt();
518
+ this.refreshData();
509
519
  }));
510
520
  if (!this.linkedMode) {
511
521
  const docMode = this.std.get(DocModeProvider);
@@ -529,7 +539,6 @@ let EmbedSyncedDocBlockComponent = (() => {
529
539
  this._selectBlock();
530
540
  }
531
541
  });
532
- this._initEdgelessFitEffect();
533
542
  }
534
543
  renderBlock() {
535
544
  delete this.dataset.nestedEditor;
@@ -549,11 +558,21 @@ let EmbedSyncedDocBlockComponent = (() => {
549
558
  ></affine-embed-synced-doc-card>
550
559
  `);
551
560
  }
561
+ this._hasRenderedSyncedView = true;
552
562
  return this._renderSyncedView();
553
563
  }
554
564
  updated(changedProperties) {
555
565
  super.updated(changedProperties);
556
566
  this.syncedDocCard?.requestUpdate();
567
+ // The fit effect reads the nested viewport's cached bounding rect, which
568
+ // only the viewport's own resize observer invalidates. Installing it here,
569
+ // after the nested editor has rendered and registered that observer, is
570
+ // what keeps the first resize after a zoom change from fitting to a stale
571
+ // size.
572
+ if (!this._hasInitedFitEffect && this._hasRenderedSyncedView) {
573
+ this._hasInitedFitEffect = true;
574
+ this._initEdgelessFitEffect();
575
+ }
557
576
  }
558
577
  #_cycle_accessor_storage;
559
578
  get _cycle() { return this.#_cycle_accessor_storage; }
@@ -36,6 +36,19 @@ export declare class EdgelessFrameManager extends GfxExtension {
36
36
  private _addChildrenToLegacyFrame;
37
37
  private _addFrameBlock;
38
38
  private _watchElementAdded;
39
+ /**
40
+ * Whether `element` fully encloses `frame`.
41
+ *
42
+ * A frame always renders behind everything it owns (`compare` short-circuits
43
+ * on the ancestor relationship, ignoring indexes) and "bring to front" only
44
+ * reorders top-level siblings — a grouped child is no longer one. So if a
45
+ * frame auto-adopted an element that encloses it (a Wardley map background
46
+ * the frame was drawn on top of, matched only because its center happened to
47
+ * fall inside the frame), the frame would be permanently buried behind its
48
+ * own child with no way to raise it. Such a backdrop must never become frame
49
+ * content. Mirrors the existing frame-inside-frame guard for canvas elements.
50
+ */
51
+ private _enclosesFrame;
39
52
  /**
40
53
  * Adopt an element that was just created inside the frame's bounds.
41
54
  *