@ecsplico/editor 2.1.1 → 3.0.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 (701) hide show
  1. package/CHANGELOG.md +74 -1
  2. package/README.md +39 -156
  3. package/dist/adapters/comments/drizzle.d.ts +1 -1
  4. package/dist/adapters/comments/{client.js → rest-model.js} +3 -3
  5. package/dist/adapters/comments/rest-model.js.map +1 -0
  6. package/dist/adapters/comments/types.d.ts +2 -2
  7. package/dist/adapters/document-state.d.ts +23 -0
  8. package/dist/adapters/document-state.js +66 -0
  9. package/dist/adapters/document-state.js.map +1 -0
  10. package/dist/adapters/documents.js +14 -11
  11. package/dist/adapters/documents.js.map +1 -1
  12. package/dist/adapters/drizzle.d.ts +2 -2
  13. package/dist/adapters/drizzle.js +97 -88
  14. package/dist/adapters/drizzle.js.map +1 -1
  15. package/dist/adapters/forge.d.ts +12 -7
  16. package/dist/adapters/forge.js +38 -45
  17. package/dist/adapters/forge.js.map +1 -1
  18. package/dist/adapters/http.d.ts +20 -0
  19. package/dist/adapters/http.js +68 -0
  20. package/dist/adapters/http.js.map +1 -0
  21. package/dist/adapters/index.d.ts +5 -5
  22. package/dist/adapters/json.d.ts +3 -3
  23. package/dist/adapters/json.js +58 -49
  24. package/dist/adapters/json.js.map +1 -1
  25. package/dist/adapters/memory.d.ts +21 -0
  26. package/dist/adapters/memory.js +53 -0
  27. package/dist/adapters/memory.js.map +1 -0
  28. package/dist/adapters/nitro.d.ts +23 -20
  29. package/dist/adapters/nitro.js +58 -163
  30. package/dist/adapters/nitro.js.map +1 -1
  31. package/dist/adapters/react.d.ts +55 -0
  32. package/dist/adapters/react.js +209 -0
  33. package/dist/adapters/react.js.map +1 -0
  34. package/dist/adapters/shared.d.ts +15 -21
  35. package/dist/adapters/shared.js +10 -8
  36. package/dist/adapters/shared.js.map +1 -1
  37. package/dist/adapters/vue.d.ts +15 -30
  38. package/dist/adapters/vue.js +36 -87
  39. package/dist/adapters/vue.js.map +1 -1
  40. package/dist/code/CodeSurface.vue.d.ts +3 -3
  41. package/dist/config/index.d.ts +105 -0
  42. package/dist/config/index.js +95 -0
  43. package/dist/config/index.js.map +1 -0
  44. package/dist/core/abilities.js +1 -0
  45. package/dist/core/abilities.js.map +1 -1
  46. package/dist/{adapters/routes.js → core/api-routes.js} +5 -3
  47. package/dist/core/api-routes.js.map +1 -0
  48. package/dist/core/backend-capability.d.ts +7 -0
  49. package/dist/core/backend-capability.js +17 -0
  50. package/dist/core/backend-capability.js.map +1 -0
  51. package/dist/core/backend-types.d.ts +245 -0
  52. package/dist/core/backend-types.js +17 -0
  53. package/dist/core/backend-types.js.map +1 -0
  54. package/dist/core/backend.d.ts +108 -0
  55. package/dist/core/backend.js +14 -0
  56. package/dist/core/backend.js.map +1 -0
  57. package/dist/core/block-convert.d.ts +7 -5
  58. package/dist/core/block-convert.js +28 -5
  59. package/dist/core/block-convert.js.map +1 -1
  60. package/dist/core/command-types.d.ts +89 -0
  61. package/dist/core/commands.d.ts +40 -0
  62. package/dist/core/commands.js +151 -0
  63. package/dist/core/commands.js.map +1 -0
  64. package/dist/core/context.d.ts +17 -20
  65. package/dist/core/context.js +24 -21
  66. package/dist/core/context.js.map +1 -1
  67. package/dist/core/core-feature.d.ts +22 -7
  68. package/dist/core/core-feature.js +51 -18
  69. package/dist/core/core-feature.js.map +1 -1
  70. package/dist/core/define-editor.d.ts +4 -3
  71. package/dist/core/define-editor.js +14 -7
  72. package/dist/core/define-editor.js.map +1 -1
  73. package/dist/core/document-markdown.js +12 -3
  74. package/dist/core/document-markdown.js.map +1 -1
  75. package/dist/core/editor-ui.d.ts +8 -1
  76. package/dist/core/editor-ui.js +9 -8
  77. package/dist/core/editor-ui.js.map +1 -1
  78. package/dist/core/extension-points.d.ts +3 -15
  79. package/dist/core/feature-context.d.ts +8 -7
  80. package/dist/core/feature-context.js +12 -11
  81. package/dist/core/feature-context.js.map +1 -1
  82. package/dist/core/feature.d.ts +35 -19
  83. package/dist/core/feature.js.map +1 -1
  84. package/dist/core/fences.d.ts +2 -1
  85. package/dist/core/fences.js +3 -2
  86. package/dist/core/fences.js.map +1 -1
  87. package/dist/core/fetch-error.d.ts +1 -1
  88. package/dist/core/fetch-error.js +3 -1
  89. package/dist/core/fetch-error.js.map +1 -1
  90. package/dist/core/hash.d.ts +5 -0
  91. package/dist/core/hash.js +11 -0
  92. package/dist/core/hash.js.map +1 -0
  93. package/dist/core/http-backend.d.ts +11 -0
  94. package/dist/core/http-backend.js +195 -0
  95. package/dist/core/http-backend.js.map +1 -0
  96. package/dist/core/index.d.ts +14 -9
  97. package/dist/core/index.js +12 -9
  98. package/dist/core/palette.d.ts +48 -0
  99. package/dist/core/palette.js +95 -0
  100. package/dist/core/palette.js.map +1 -0
  101. package/dist/core/schema/abilities.d.ts +2 -1
  102. package/dist/core/schema/abilities.js +5 -1
  103. package/dist/core/schema/abilities.js.map +1 -1
  104. package/dist/core/schema/index.d.ts +11 -5
  105. package/dist/core/schema/index.js +13 -8
  106. package/dist/core/schema/index.js.map +1 -1
  107. package/dist/core/schema/mark-flags.d.ts +8 -1
  108. package/dist/core/schema/of-features.d.ts +13 -0
  109. package/dist/core/schema/of-features.js +14 -0
  110. package/dist/core/schema/of-features.js.map +1 -0
  111. package/dist/core/slash.d.ts +8 -6
  112. package/dist/core/slash.js +24 -16
  113. package/dist/core/slash.js.map +1 -1
  114. package/dist/core/surface-session.js +13 -5
  115. package/dist/core/surface-session.js.map +1 -1
  116. package/dist/core/toolbar-items.d.ts +10 -4
  117. package/dist/core/toolbar-items.js +269 -195
  118. package/dist/core/toolbar-items.js.map +1 -1
  119. package/dist/core/util.js +11 -0
  120. package/dist/core/util.js.map +1 -0
  121. package/dist/document/DocumentSurface.d.ts +1 -1
  122. package/dist/document/DocumentSurface.vue.d.ts +3 -3
  123. package/dist/features/ai/agent-op-review.d.ts +1 -1
  124. package/dist/features/ai/agent-op-review.js +1 -1
  125. package/dist/features/ai/agent-ops.js +1 -1
  126. package/dist/features/ai/ai-apply.d.ts +2 -2
  127. package/dist/features/ai/ai-apply.js +1 -1
  128. package/dist/features/ai/ai-review.js +1 -1
  129. package/dist/features/ai/ai-sse.d.ts +6 -6
  130. package/dist/features/ai/ai-sse.js +20 -63
  131. package/dist/features/ai/ai-sse.js.map +1 -1
  132. package/dist/features/ai/assistant.d.ts +8 -7
  133. package/dist/features/ai/assistant.js +3 -3
  134. package/dist/features/ai/assistant.js.map +1 -1
  135. package/dist/features/ai/block-actions.d.ts +3 -2
  136. package/dist/features/ai/block-actions.js +3 -2
  137. package/dist/features/ai/block-actions.js.map +1 -1
  138. package/dist/features/ai/components/AiSelectionMenu.js +1 -1
  139. package/dist/features/ai/components/DocumentChatAnswer.js +1 -1
  140. package/dist/features/ai/components/DocumentChatOps.vue.d.ts +1 -1
  141. package/dist/features/ai/components/SettingsModelProfiles.js +8 -8
  142. package/dist/features/ai/components/SettingsModelProfiles.js.map +1 -1
  143. package/dist/features/ai/document-chat-model.d.ts +8 -7
  144. package/dist/features/ai/document-chat-model.js +5 -5
  145. package/dist/features/ai/document-chat-model.js.map +1 -1
  146. package/dist/features/ai/document-chat.js +1 -1
  147. package/dist/features/ai/feature.js +27 -14
  148. package/dist/features/ai/feature.js.map +1 -1
  149. package/dist/features/ai/ghost-autocomplete.d.ts +7 -6
  150. package/dist/features/ai/ghost-autocomplete.js +6 -9
  151. package/dist/features/ai/ghost-autocomplete.js.map +1 -1
  152. package/dist/features/ai/index.d.ts +4 -3
  153. package/dist/features/ai/index.js +10 -10
  154. package/dist/features/ai/model-profiles.d.ts +5 -4
  155. package/dist/features/ai/model-profiles.js +2 -2
  156. package/dist/features/ai/model-profiles.js.map +1 -1
  157. package/dist/features/ai/protocol/block-lines.js +1 -1
  158. package/dist/features/ai/protocol/block-lines.js.map +1 -1
  159. package/dist/features/ai/protocol/chat.js +4 -1
  160. package/dist/features/ai/protocol/chat.js.map +1 -1
  161. package/dist/features/ai/protocol/index.d.ts +3 -2
  162. package/dist/features/ai/protocol/models.d.ts +2 -16
  163. package/dist/features/ai/protocol/models.js.map +1 -1
  164. package/dist/features/ai/rate-limit.d.ts +1 -1
  165. package/dist/features/ai/rate-limit.js +3 -1
  166. package/dist/features/ai/rate-limit.js.map +1 -1
  167. package/dist/features/ai/react/AiSelectionMenu.js +2 -2
  168. package/dist/features/ai/react/AiSidebar.js +4 -4
  169. package/dist/features/ai/react/DocumentChatAnswer.js +1 -1
  170. package/dist/features/ai/react/DocumentChatOps.d.ts +1 -1
  171. package/dist/features/ai/react/DocumentChatOps.js +1 -1
  172. package/dist/features/ai/react/SettingsModelProfiles.js +8 -10
  173. package/dist/features/ai/react/SettingsModelProfiles.js.map +1 -1
  174. package/dist/features/ai/react/use-ai-assistant.d.ts +1 -1
  175. package/dist/features/ai/react/use-ai-assistant.js +3 -3
  176. package/dist/features/ai/react/use-ai-assistant.js.map +1 -1
  177. package/dist/features/ai/react/use-document-chat.js +2 -2
  178. package/dist/features/ai/react/use-document-chat.js.map +1 -1
  179. package/dist/features/ai/react/use-model-profiles.d.ts +2 -1
  180. package/dist/features/ai/selection-flow.d.ts +1 -1
  181. package/dist/features/ai/selection-flow.js +1 -1
  182. package/dist/features/ai/sidebar-flow.d.ts +1 -1
  183. package/dist/features/ai/sidebar-flow.js +1 -1
  184. package/dist/features/ai/use-ai-assistant.d.ts +1 -1
  185. package/dist/features/ai/use-ai-assistant.js +3 -3
  186. package/dist/features/ai/use-ai-assistant.js.map +1 -1
  187. package/dist/features/ai/use-document-chat.js +2 -2
  188. package/dist/features/ai/use-document-chat.js.map +1 -1
  189. package/dist/features/ai/use-model-profiles.d.ts +2 -1
  190. package/dist/features/authors/attribution.d.ts +1 -1
  191. package/dist/features/authors/feature.js +12 -11
  192. package/dist/features/authors/feature.js.map +1 -1
  193. package/dist/features/block-ui/block-actions.d.ts +22 -1
  194. package/dist/features/block-ui/block-actions.js +26 -2
  195. package/dist/features/block-ui/block-actions.js.map +1 -1
  196. package/dist/features/block-ui/components/BlockActionsOverlay.js +33 -4
  197. package/dist/features/block-ui/components/BlockActionsOverlay.js.map +1 -1
  198. package/dist/features/block-ui/components/BlockActionsOverlay.vue.d.ts +4 -0
  199. package/dist/features/block-ui/components/BlockUi.js +1 -1
  200. package/dist/features/block-ui/feature.js +1 -0
  201. package/dist/features/block-ui/feature.js.map +1 -1
  202. package/dist/features/block-ui/index.d.ts +2 -2
  203. package/dist/features/block-ui/index.js +2 -2
  204. package/dist/features/block-ui/react/BlockActionsOverlay.d.ts +4 -0
  205. package/dist/features/block-ui/react/BlockActionsOverlay.js +38 -12
  206. package/dist/features/block-ui/react/BlockActionsOverlay.js.map +1 -1
  207. package/dist/features/block-ui/react/BlockUi.js +1 -1
  208. package/dist/features/collab/anchor-resolver.js +1 -1
  209. package/dist/features/collab/feature.js +2 -0
  210. package/dist/features/collab/feature.js.map +1 -1
  211. package/dist/features/comments/components/CommentThreadView.vue.d.ts +2 -1
  212. package/dist/features/comments/feature.js +12 -11
  213. package/dist/features/comments/feature.js.map +1 -1
  214. package/dist/features/comments/index.d.ts +3 -2
  215. package/dist/features/comments/index.js +1 -1
  216. package/dist/features/comments/margin-layout.d.ts +3 -2
  217. package/dist/features/comments/model.d.ts +3 -67
  218. package/dist/features/comments/model.js +2 -2
  219. package/dist/features/comments/model.js.map +1 -1
  220. package/dist/features/comments/react/CommentThreadView.d.ts +3 -2
  221. package/dist/features/comments/react/use-comments.d.ts +2 -1
  222. package/dist/features/comments/react.d.ts +1 -1
  223. package/dist/features/comments/schema.d.ts +2 -52
  224. package/dist/features/comments/schema.js.map +1 -1
  225. package/dist/features/comments/snapshot-equality.js.map +1 -1
  226. package/dist/features/comments/use-comments.d.ts +3 -2
  227. package/dist/features/comments/vue.d.ts +1 -1
  228. package/dist/features/composites/accepted-children.d.ts +1 -0
  229. package/dist/features/composites/accepted-children.js +16 -1
  230. package/dist/features/composites/accepted-children.js.map +1 -1
  231. package/dist/features/composites/ai-brief.js +31 -0
  232. package/dist/features/composites/ai-brief.js.map +1 -1
  233. package/dist/features/composites/bibliography-command.d.ts +11 -0
  234. package/dist/features/composites/bibliography-form.js +90 -0
  235. package/dist/features/composites/bibliography-form.js.map +1 -0
  236. package/dist/features/composites/bibliography.d.ts +33 -0
  237. package/dist/features/composites/bibliography.js +120 -0
  238. package/dist/features/composites/bibliography.js.map +1 -0
  239. package/dist/features/composites/components/BibliographyEditor.js +261 -0
  240. package/dist/features/composites/components/BibliographyEditor.js.map +1 -0
  241. package/dist/features/composites/components/CompositeChrome.js +75 -26
  242. package/dist/features/composites/components/CompositeChrome.js.map +1 -1
  243. package/dist/features/composites/components/CompositeDetails.js +46 -11
  244. package/dist/features/composites/components/CompositeDetails.js.map +1 -1
  245. package/dist/features/composites/components/CompositeDetails.vue.d.ts +2 -1
  246. package/dist/features/composites/components/CompositeFieldEditor.js +37 -4
  247. package/dist/features/composites/components/CompositeFieldEditor.js.map +1 -1
  248. package/dist/features/composites/components/CompositeInspector.js +17 -5
  249. package/dist/features/composites/components/CompositeInspector.js.map +1 -1
  250. package/dist/features/composites/components/CompositeTable.js +13 -4
  251. package/dist/features/composites/components/CompositeTable.js.map +1 -1
  252. package/dist/features/composites/components/CompositeTagsEditor.js +1 -1
  253. package/dist/features/composites/components/CompositeView.js +11 -1
  254. package/dist/features/composites/components/CompositeView.js.map +1 -1
  255. package/dist/features/composites/components/DerivationBadge.js +103 -0
  256. package/dist/features/composites/components/DerivationBadge.js.map +1 -0
  257. package/dist/features/composites/components/ReferenceFieldSelect.js +60 -0
  258. package/dist/features/composites/components/ReferenceFieldSelect.js.map +1 -0
  259. package/dist/features/composites/components/ReferenceView.js +122 -0
  260. package/dist/features/composites/components/ReferenceView.js.map +1 -0
  261. package/dist/features/composites/components/ReferenceView.vue.d.ts +96 -0
  262. package/dist/features/composites/components/SettingsEditingTab.js +1 -1
  263. package/dist/features/composites/convert.js +2 -2
  264. package/dist/features/composites/convert.js.map +1 -1
  265. package/dist/features/composites/derivation.d.ts +61 -0
  266. package/dist/features/composites/derivation.js +98 -0
  267. package/dist/features/composites/derivation.js.map +1 -0
  268. package/dist/features/composites/derived-chrome.js +69 -0
  269. package/dist/features/composites/derived-chrome.js.map +1 -0
  270. package/dist/features/composites/feature.js +159 -109
  271. package/dist/features/composites/feature.js.map +1 -1
  272. package/dist/features/composites/fences.d.ts +4 -3
  273. package/dist/features/composites/fences.js +51 -7
  274. package/dist/features/composites/fences.js.map +1 -1
  275. package/dist/features/composites/index.d.ts +12 -3
  276. package/dist/features/composites/index.js +15 -6
  277. package/dist/features/composites/inspector-model.d.ts +4 -1
  278. package/dist/features/composites/inspector-model.js +8 -4
  279. package/dist/features/composites/inspector-model.js.map +1 -1
  280. package/dist/features/composites/kinds.d.ts +8 -1
  281. package/dist/features/composites/kinds.js +145 -6
  282. package/dist/features/composites/kinds.js.map +1 -1
  283. package/dist/features/composites/legacy.d.ts +4 -1
  284. package/dist/features/composites/legacy.js +56 -1
  285. package/dist/features/composites/legacy.js.map +1 -1
  286. package/dist/features/composites/meta-display.js +40 -1
  287. package/dist/features/composites/meta-display.js.map +1 -1
  288. package/dist/features/composites/meta-keys.d.ts +7 -0
  289. package/dist/features/composites/meta-keys.js +21 -0
  290. package/dist/features/composites/meta-keys.js.map +1 -0
  291. package/dist/features/composites/node-views.d.ts +6 -3
  292. package/dist/features/composites/node-views.js +7 -3
  293. package/dist/features/composites/node-views.js.map +1 -1
  294. package/dist/features/composites/nodes.d.ts +6 -1
  295. package/dist/features/composites/nodes.js +33 -7
  296. package/dist/features/composites/nodes.js.map +1 -1
  297. package/dist/features/composites/react/BibliographyEditor.js +229 -0
  298. package/dist/features/composites/react/BibliographyEditor.js.map +1 -0
  299. package/dist/features/composites/react/CompositeChrome.js +65 -17
  300. package/dist/features/composites/react/CompositeChrome.js.map +1 -1
  301. package/dist/features/composites/react/CompositeDetails.d.ts +2 -1
  302. package/dist/features/composites/react/CompositeDetails.js +45 -6
  303. package/dist/features/composites/react/CompositeDetails.js.map +1 -1
  304. package/dist/features/composites/react/CompositeFieldEditor.d.ts +1 -1
  305. package/dist/features/composites/react/CompositeFieldEditor.js +24 -1
  306. package/dist/features/composites/react/CompositeFieldEditor.js.map +1 -1
  307. package/dist/features/composites/react/CompositeInspector.js +11 -5
  308. package/dist/features/composites/react/CompositeInspector.js.map +1 -1
  309. package/dist/features/composites/react/CompositeStatusMenu.js +1 -1
  310. package/dist/features/composites/react/CompositeSummaryEditor.js +1 -1
  311. package/dist/features/composites/react/CompositeTable.js +16 -2
  312. package/dist/features/composites/react/CompositeTable.js.map +1 -1
  313. package/dist/features/composites/react/CompositeTagsEditor.js +2 -2
  314. package/dist/features/composites/react/CompositeView.js +6 -1
  315. package/dist/features/composites/react/CompositeView.js.map +1 -1
  316. package/dist/features/composites/react/DerivationBadge.js +116 -0
  317. package/dist/features/composites/react/DerivationBadge.js.map +1 -0
  318. package/dist/features/composites/react/ReferenceFieldSelect.js +52 -0
  319. package/dist/features/composites/react/ReferenceFieldSelect.js.map +1 -0
  320. package/dist/features/composites/react/ReferenceView.d.ts +11 -0
  321. package/dist/features/composites/react/ReferenceView.js +115 -0
  322. package/dist/features/composites/react/ReferenceView.js.map +1 -0
  323. package/dist/features/composites/react/SettingsEditingTab.js +2 -2
  324. package/dist/features/composites/react.d.ts +2 -1
  325. package/dist/features/composites/react.js +7 -3
  326. package/dist/features/composites/react.js.map +1 -1
  327. package/dist/features/composites/reference-ai.js +16 -0
  328. package/dist/features/composites/reference-ai.js.map +1 -0
  329. package/dist/features/composites/reference-label.d.ts +19 -0
  330. package/dist/features/composites/reference-label.js +58 -0
  331. package/dist/features/composites/reference-label.js.map +1 -0
  332. package/dist/features/composites/reference-suggestion.d.ts +10 -0
  333. package/dist/features/composites/reference-suggestion.js +41 -0
  334. package/dist/features/composites/reference-suggestion.js.map +1 -0
  335. package/dist/features/composites/reference-text.d.ts +18 -0
  336. package/dist/features/composites/reference-text.js +89 -0
  337. package/dist/features/composites/reference-text.js.map +1 -0
  338. package/dist/features/composites/reference.d.ts +44 -0
  339. package/dist/features/composites/reference.js +148 -0
  340. package/dist/features/composites/reference.js.map +1 -0
  341. package/dist/features/composites/reveal-source.d.ts +32 -0
  342. package/dist/features/composites/reveal-source.js +89 -0
  343. package/dist/features/composites/reveal-source.js.map +1 -0
  344. package/dist/features/composites/rows.d.ts +21 -2
  345. package/dist/features/composites/rows.js +63 -9
  346. package/dist/features/composites/rows.js.map +1 -1
  347. package/dist/features/composites/schema.d.ts +9 -3
  348. package/dist/features/composites/schema.js +11 -4
  349. package/dist/features/composites/schema.js.map +1 -1
  350. package/dist/features/composites/table-model.js +12 -21
  351. package/dist/features/composites/table-model.js.map +1 -1
  352. package/dist/features/composites/vue.d.ts +3 -2
  353. package/dist/features/composites/vue.js +8 -4
  354. package/dist/features/composites/vue.js.map +1 -1
  355. package/dist/features/media/assets.d.ts +2 -0
  356. package/dist/features/media/assets.js +3 -2
  357. package/dist/features/media/assets.js.map +1 -1
  358. package/dist/features/media/components/FileView.js +13 -4
  359. package/dist/features/media/components/FileView.js.map +1 -1
  360. package/dist/features/media/feature.d.ts +3 -3
  361. package/dist/features/media/feature.js +21 -28
  362. package/dist/features/media/feature.js.map +1 -1
  363. package/dist/features/media/file-import.js +2 -2
  364. package/dist/features/media/file-import.js.map +1 -1
  365. package/dist/features/media/index.d.ts +2 -2
  366. package/dist/features/media/index.js +2 -2
  367. package/dist/features/media/react/FileView.js +19 -2
  368. package/dist/features/media/react/FileView.js.map +1 -1
  369. package/dist/features/media/schema.d.ts +8 -0
  370. package/dist/features/media/schema.js +126 -11
  371. package/dist/features/media/schema.js.map +1 -1
  372. package/dist/features/media/upload.d.ts +16 -14
  373. package/dist/features/media/upload.js +13 -19
  374. package/dist/features/media/upload.js.map +1 -1
  375. package/dist/features/mentions/index.d.ts +4 -3
  376. package/dist/features/mentions/index.js +4 -1
  377. package/dist/features/mentions/index.js.map +1 -1
  378. package/dist/features/mentions/mention-text.d.ts +1 -1
  379. package/dist/features/mentions/mention-text.js.map +1 -1
  380. package/dist/features/mentions/mention.d.ts +0 -6
  381. package/dist/features/mentions/mention.js.map +1 -1
  382. package/dist/features/mentions/metadata-defaults.d.ts +2 -2
  383. package/dist/features/mentions/metadata-defaults.js +3 -9
  384. package/dist/features/mentions/metadata-defaults.js.map +1 -1
  385. package/dist/features/mentions/schema.d.ts +2 -1
  386. package/dist/features/mentions/schema.js.map +1 -1
  387. package/dist/features/tables/feature.d.ts +2 -1
  388. package/dist/features/tables/feature.js +90 -70
  389. package/dist/features/tables/feature.js.map +1 -1
  390. package/dist/features/themes/components/SettingsAppearanceTab.js +6 -9
  391. package/dist/features/themes/components/SettingsAppearanceTab.js.map +1 -1
  392. package/dist/features/themes/feature.js +2 -0
  393. package/dist/features/themes/feature.js.map +1 -1
  394. package/dist/features/themes/index.d.ts +2 -1
  395. package/dist/features/themes/react/SettingsAppearanceTab.js +7 -10
  396. package/dist/features/themes/react/SettingsAppearanceTab.js.map +1 -1
  397. package/dist/features/themes/schema.d.ts +2 -6
  398. package/dist/features/themes/schema.js.map +1 -1
  399. package/dist/features/themes/theme-runtime.d.ts +1 -1
  400. package/dist/features/themes/theme-runtime.js +4 -2
  401. package/dist/features/themes/theme-runtime.js.map +1 -1
  402. package/dist/features/transcript/TranscriptSegmentView.js +48 -28
  403. package/dist/features/transcript/TranscriptSegmentView.js.map +1 -1
  404. package/dist/features/transcript/feature.js +21 -19
  405. package/dist/features/transcript/feature.js.map +1 -1
  406. package/dist/features/transcript/react/TranscriptSegmentView.js +55 -36
  407. package/dist/features/transcript/react/TranscriptSegmentView.js.map +1 -1
  408. package/dist/features/transcript/segment-node.d.ts +2 -0
  409. package/dist/features/transcript/segment-node.js +35 -7
  410. package/dist/features/transcript/segment-node.js.map +1 -1
  411. package/dist/i18n/de/composites.js +91 -1
  412. package/dist/i18n/de/composites.js.map +1 -1
  413. package/dist/i18n/de/integrations.js +49 -8
  414. package/dist/i18n/de/integrations.js.map +1 -1
  415. package/dist/i18n/de/media.js +0 -1
  416. package/dist/i18n/de/media.js.map +1 -1
  417. package/dist/i18n/de/palette.js +22 -0
  418. package/dist/i18n/de/palette.js.map +1 -0
  419. package/dist/i18n/de/tables.js +0 -1
  420. package/dist/i18n/de/tables.js.map +1 -1
  421. package/dist/i18n/de/transcript.js +2 -1
  422. package/dist/i18n/de/transcript.js.map +1 -1
  423. package/dist/i18n/de/tree.js +3 -0
  424. package/dist/i18n/de/tree.js.map +1 -1
  425. package/dist/i18n/de.d.ts +157 -11
  426. package/dist/i18n/de.js +3 -1
  427. package/dist/i18n/de.js.map +1 -1
  428. package/dist/i18n/en/composites.js +89 -1
  429. package/dist/i18n/en/composites.js.map +1 -1
  430. package/dist/i18n/en/integrations.js +49 -8
  431. package/dist/i18n/en/integrations.js.map +1 -1
  432. package/dist/i18n/en/media.js +0 -1
  433. package/dist/i18n/en/media.js.map +1 -1
  434. package/dist/i18n/en/palette.js +22 -0
  435. package/dist/i18n/en/palette.js.map +1 -0
  436. package/dist/i18n/en/tables.js +0 -1
  437. package/dist/i18n/en/tables.js.map +1 -1
  438. package/dist/i18n/en/transcript.js +2 -1
  439. package/dist/i18n/en/transcript.js.map +1 -1
  440. package/dist/i18n/en/tree.js +3 -0
  441. package/dist/i18n/en/tree.js.map +1 -1
  442. package/dist/i18n/en.js +3 -1
  443. package/dist/i18n/en.js.map +1 -1
  444. package/dist/index.d.ts +4 -3
  445. package/dist/integrations/composite-ai/bibliography-fetch.d.ts +31 -0
  446. package/dist/integrations/composite-ai/bibliography-fetch.js +159 -0
  447. package/dist/integrations/composite-ai/bibliography-fetch.js.map +1 -0
  448. package/dist/integrations/composite-ai/composite-fill.d.ts +30 -8
  449. package/dist/integrations/composite-ai/composite-fill.js +97 -56
  450. package/dist/integrations/composite-ai/composite-fill.js.map +1 -1
  451. package/dist/integrations/composite-ai/composite-summary.d.ts +4 -12
  452. package/dist/integrations/composite-ai/composite-summary.js +7 -26
  453. package/dist/integrations/composite-ai/composite-summary.js.map +1 -1
  454. package/dist/integrations/composite-ai/derive.d.ts +29 -0
  455. package/dist/integrations/composite-ai/derive.js +173 -0
  456. package/dist/integrations/composite-ai/derive.js.map +1 -0
  457. package/dist/integrations/composite-ai/index.d.ts +11 -7
  458. package/dist/integrations/composite-ai/index.js +72 -14
  459. package/dist/integrations/composite-ai/index.js.map +1 -1
  460. package/dist/integrations/composite-ai/rendition.d.ts +45 -0
  461. package/dist/integrations/composite-ai/rendition.js +314 -0
  462. package/dist/integrations/composite-ai/rendition.js.map +1 -0
  463. package/dist/integrations/composite-media/index.d.ts +7 -5
  464. package/dist/integrations/composite-media/index.js +86 -13
  465. package/dist/integrations/composite-media/index.js.map +1 -1
  466. package/dist/integrations/transcript-ai/index.d.ts +1 -1
  467. package/dist/integrations/transcript-ai/index.js +5 -2
  468. package/dist/integrations/transcript-ai/index.js.map +1 -1
  469. package/dist/integrations/transcript-ai/protocol.d.ts +2 -12
  470. package/dist/integrations/transcript-ai/protocol.js +0 -2
  471. package/dist/integrations/transcript-ai/protocol.js.map +1 -1
  472. package/dist/integrations/transcript-ai/transcript-cleanup.d.ts +5 -5
  473. package/dist/integrations/transcript-ai/transcript-cleanup.js +7 -10
  474. package/dist/integrations/transcript-ai/transcript-cleanup.js.map +1 -1
  475. package/dist/markdown/MarkdownSurface.vue.d.ts +10 -9
  476. package/dist/markdown/MarkdownSurface2.js +3 -6
  477. package/dist/markdown/MarkdownSurface2.js.map +1 -1
  478. package/dist/markdown/document.js +1 -1
  479. package/dist/markdown/source-mode.d.ts +1 -1
  480. package/dist/nuxt/module.d.ts +1402 -54
  481. package/dist/nuxt/module.js +6 -49
  482. package/dist/nuxt/module.js.map +1 -1
  483. package/dist/nuxt/runtime/install-context.d.ts +7 -3
  484. package/dist/nuxt/runtime/install-context.js +14 -8
  485. package/dist/nuxt/runtime/install-context.js.map +1 -1
  486. package/dist/nuxt/runtime/plugins/editor-context-nuxt-ui.client.ts +2 -2
  487. package/dist/nuxt/runtime/server/plugins/editor-server.js +20 -12
  488. package/dist/nuxt/runtime/server/plugins/editor-server.js.map +1 -1
  489. package/dist/presets/compose.d.ts +94 -0
  490. package/dist/presets/compose.js +164 -0
  491. package/dist/presets/compose.js.map +1 -0
  492. package/dist/react/AdvancedEditor.d.ts +15 -15
  493. package/dist/react/AdvancedEditor.js +15 -13
  494. package/dist/react/AdvancedEditor.js.map +1 -1
  495. package/dist/react/EditorCommandPalette.d.ts +13 -0
  496. package/dist/react/EditorCommandPalette.js +118 -0
  497. package/dist/react/EditorCommandPalette.js.map +1 -0
  498. package/dist/react/EditorSettingsModal.d.ts +5 -5
  499. package/dist/react/EditorSettingsModal.js +7 -4
  500. package/dist/react/EditorSettingsModal.js.map +1 -1
  501. package/dist/react/EditorSettingsPanel.d.ts +7 -7
  502. package/dist/react/EditorSettingsPanel.js +8 -5
  503. package/dist/react/EditorSettingsPanel.js.map +1 -1
  504. package/dist/react/EditorSurface.d.ts +7 -7
  505. package/dist/react/EditorSurface.js +10 -6
  506. package/dist/react/EditorSurface.js.map +1 -1
  507. package/dist/react/EditorToolbar.d.ts +4 -6
  508. package/dist/react/EditorToolbar.js +29 -37
  509. package/dist/react/EditorToolbar.js.map +1 -1
  510. package/dist/react/SimpleEditor.d.ts +22 -23
  511. package/dist/react/SimpleEditor.js +21 -7
  512. package/dist/react/SimpleEditor.js.map +1 -1
  513. package/dist/react/advanced.d.ts +4 -3
  514. package/dist/react/advanced.js +2 -2
  515. package/dist/react/compose.d.ts +20 -0
  516. package/dist/react/compose.js +49 -0
  517. package/dist/react/compose.js.map +1 -0
  518. package/dist/react/composed-surface.d.ts +39 -0
  519. package/dist/react/composed-surface.js +71 -0
  520. package/dist/react/composed-surface.js.map +1 -0
  521. package/dist/react/context.js +6 -2
  522. package/dist/react/context.js.map +1 -1
  523. package/dist/react/index.d.ts +2 -1
  524. package/dist/react/index.js +2 -1
  525. package/dist/react/key-labels.js +15 -0
  526. package/dist/react/key-labels.js.map +1 -0
  527. package/dist/react/settings.d.ts +1 -1
  528. package/dist/react/simple.d.ts +2 -2
  529. package/dist/react/ui/command.js +36 -1
  530. package/dist/react/ui/command.js.map +1 -1
  531. package/dist/schema/advanced.d.ts +6 -6
  532. package/dist/schema/advanced.js +26 -29
  533. package/dist/schema/advanced.js.map +1 -1
  534. package/dist/server/ai.d.ts +5 -16
  535. package/dist/server/ai.js.map +1 -1
  536. package/dist/server/auth.d.ts +9 -0
  537. package/dist/server/collab-state.d.ts +1 -1
  538. package/dist/server/collab-state.js.map +1 -1
  539. package/dist/server/collab.d.ts +13 -13
  540. package/dist/server/collab.js +34 -18
  541. package/dist/server/collab.js.map +1 -1
  542. package/dist/server/crossref.js +78 -0
  543. package/dist/server/crossref.js.map +1 -0
  544. package/dist/server/errors.d.ts +1 -1
  545. package/dist/server/errors.js +1 -1
  546. package/dist/server/errors.js.map +1 -1
  547. package/dist/server/extract.js +308 -0
  548. package/dist/server/extract.js.map +1 -0
  549. package/dist/{nuxt/runtime/server/utils/editor-route.js → server/h3.js} +8 -16
  550. package/dist/server/h3.js.map +1 -0
  551. package/dist/server/handlers/ai.d.ts +30 -9
  552. package/dist/server/handlers/ai.js +170 -36
  553. package/dist/server/handlers/ai.js.map +1 -1
  554. package/dist/server/handlers/context.d.ts +12 -5
  555. package/dist/server/handlers/context.js +10 -4
  556. package/dist/server/handlers/context.js.map +1 -1
  557. package/dist/server/handlers/editor.d.ts +19 -13
  558. package/dist/server/handlers/editor.js +49 -38
  559. package/dist/server/handlers/editor.js.map +1 -1
  560. package/dist/server/handlers/index.d.ts +4 -4
  561. package/dist/server/handlers/index.js +4 -4
  562. package/dist/server/host.d.ts +16 -25
  563. package/dist/server/host.js +58 -41
  564. package/dist/server/host.js.map +1 -1
  565. package/dist/server/index.d.ts +6 -4
  566. package/dist/server/index.js +3 -2
  567. package/dist/server/pdf.js +97 -0
  568. package/dist/server/pdf.js.map +1 -0
  569. package/dist/server/{adapter.d.ts → ports.d.ts} +81 -30
  570. package/dist/server/ports.js +29 -0
  571. package/dist/server/ports.js.map +1 -0
  572. package/dist/server/routes.js +144 -0
  573. package/dist/server/routes.js.map +1 -0
  574. package/dist/settings/index.d.ts +1 -1
  575. package/dist/settings/index.js.map +1 -1
  576. package/dist/styles/composites.css +25 -0
  577. package/dist/tree/DocumentTree.js +56 -29
  578. package/dist/tree/DocumentTree.js.map +1 -1
  579. package/dist/tree/react/DocumentTree.js +23 -0
  580. package/dist/tree/react/DocumentTree.js.map +1 -1
  581. package/dist/tree/tree-host.js +1 -1
  582. package/dist/vue/AdvancedEditor.js +30 -9
  583. package/dist/vue/AdvancedEditor.js.map +1 -1
  584. package/dist/vue/AdvancedEditor.vue.d.ts +32 -12
  585. package/dist/vue/SimpleEditor.js +62 -16
  586. package/dist/vue/SimpleEditor.js.map +1 -1
  587. package/dist/vue/SimpleEditor.vue.d.ts +37 -7
  588. package/dist/vue/advanced.d.ts +3 -2
  589. package/dist/vue/advanced.js +2 -2
  590. package/dist/vue/components/EditorCommandPalette.js +91 -0
  591. package/dist/vue/components/EditorCommandPalette.js.map +1 -0
  592. package/dist/vue/components/EditorCommandPalette.vue.d.ts +15 -0
  593. package/dist/vue/components/EditorSettingsModal.js +10 -6
  594. package/dist/vue/components/EditorSettingsModal.js.map +1 -1
  595. package/dist/vue/components/EditorSettingsModal.vue.d.ts +4 -4
  596. package/dist/vue/components/EditorSettingsPanel.js +10 -6
  597. package/dist/vue/components/EditorSettingsPanel.js.map +1 -1
  598. package/dist/vue/components/EditorSettingsPanel.vue.d.ts +6 -6
  599. package/dist/vue/components/EditorSurface.js +11 -6
  600. package/dist/vue/components/EditorSurface.js.map +1 -1
  601. package/dist/vue/components/EditorSurface.vue.d.ts +11 -11
  602. package/dist/vue/components/EditorToolbar.js +41 -49
  603. package/dist/vue/components/EditorToolbar.js.map +1 -1
  604. package/dist/vue/components/EditorToolbar.vue.d.ts +2 -4
  605. package/dist/vue/compose.d.ts +17 -0
  606. package/dist/vue/compose.js +51 -0
  607. package/dist/vue/compose.js.map +1 -0
  608. package/dist/vue/context-key.d.ts +6 -0
  609. package/dist/vue/context-key.js +6 -0
  610. package/dist/vue/context-key.js.map +1 -0
  611. package/dist/vue/context.d.ts +8 -6
  612. package/dist/vue/context.js +6 -5
  613. package/dist/vue/context.js.map +1 -1
  614. package/dist/vue/index.d.ts +10 -8
  615. package/dist/vue/index.js +10 -8
  616. package/dist/vue/kit/index.d.ts +2 -2
  617. package/dist/vue/kit/nuxt-ui.js +23 -0
  618. package/dist/vue/kit/nuxt-ui.js.map +1 -1
  619. package/dist/vue/kit/types.d.ts +40 -1
  620. package/package.json +30 -16
  621. package/dist/adapters/comments/client.d.ts +0 -64
  622. package/dist/adapters/comments/client.js.map +0 -1
  623. package/dist/adapters/routes.js.map +0 -1
  624. package/dist/core/toolbar.d.ts +0 -74
  625. package/dist/core/toolbar.js +0 -45
  626. package/dist/core/toolbar.js.map +0 -1
  627. package/dist/integrations/composite-ai/document-transcribe.d.ts +0 -14
  628. package/dist/integrations/composite-ai/document-transcribe.js +0 -89
  629. package/dist/integrations/composite-ai/document-transcribe.js.map +0 -1
  630. package/dist/nuxt/runtime/server/api/ai/chat.post.d.ts +0 -5
  631. package/dist/nuxt/runtime/server/api/ai/chat.post.js +0 -8
  632. package/dist/nuxt/runtime/server/api/ai/chat.post.js.map +0 -1
  633. package/dist/nuxt/runtime/server/api/ai/complete.post.d.ts +0 -5
  634. package/dist/nuxt/runtime/server/api/ai/complete.post.js +0 -8
  635. package/dist/nuxt/runtime/server/api/ai/complete.post.js.map +0 -1
  636. package/dist/nuxt/runtime/server/api/ai/generate.post.d.ts +0 -5
  637. package/dist/nuxt/runtime/server/api/ai/generate.post.js +0 -8
  638. package/dist/nuxt/runtime/server/api/ai/generate.post.js.map +0 -1
  639. package/dist/nuxt/runtime/server/api/ai/models.get.d.ts +0 -5
  640. package/dist/nuxt/runtime/server/api/ai/models.get.js +0 -8
  641. package/dist/nuxt/runtime/server/api/ai/models.get.js.map +0 -1
  642. package/dist/nuxt/runtime/server/api/ai/transcribe.post.d.ts +0 -5
  643. package/dist/nuxt/runtime/server/api/ai/transcribe.post.js +0 -8
  644. package/dist/nuxt/runtime/server/api/ai/transcribe.post.js.map +0 -1
  645. package/dist/nuxt/runtime/server/api/ai/transcript-cleanup.post.d.ts +0 -5
  646. package/dist/nuxt/runtime/server/api/ai/transcript-cleanup.post.js +0 -8
  647. package/dist/nuxt/runtime/server/api/ai/transcript-cleanup.post.js.map +0 -1
  648. package/dist/nuxt/runtime/server/api/editor/assets/[id]/[name].get.d.ts +0 -5
  649. package/dist/nuxt/runtime/server/api/editor/assets/[id]/[name].get.js +0 -8
  650. package/dist/nuxt/runtime/server/api/editor/assets/[id]/[name].get.js.map +0 -1
  651. package/dist/nuxt/runtime/server/api/editor/assets/[id].post.d.ts +0 -5
  652. package/dist/nuxt/runtime/server/api/editor/assets/[id].post.js +0 -8
  653. package/dist/nuxt/runtime/server/api/editor/assets/[id].post.js.map +0 -1
  654. package/dist/nuxt/runtime/server/api/editor/settings.get.d.ts +0 -5
  655. package/dist/nuxt/runtime/server/api/editor/settings.get.js +0 -8
  656. package/dist/nuxt/runtime/server/api/editor/settings.get.js.map +0 -1
  657. package/dist/nuxt/runtime/server/api/editor/settings.put.d.ts +0 -5
  658. package/dist/nuxt/runtime/server/api/editor/settings.put.js +0 -8
  659. package/dist/nuxt/runtime/server/api/editor/settings.put.js.map +0 -1
  660. package/dist/nuxt/runtime/server/api/editor/tags.get.d.ts +0 -5
  661. package/dist/nuxt/runtime/server/api/editor/tags.get.js +0 -8
  662. package/dist/nuxt/runtime/server/api/editor/tags.get.js.map +0 -1
  663. package/dist/nuxt/runtime/server/api/editor/themes/[id].delete.d.ts +0 -5
  664. package/dist/nuxt/runtime/server/api/editor/themes/[id].delete.js +0 -8
  665. package/dist/nuxt/runtime/server/api/editor/themes/[id].delete.js.map +0 -1
  666. package/dist/nuxt/runtime/server/api/editor/themes/[id].get.d.ts +0 -5
  667. package/dist/nuxt/runtime/server/api/editor/themes/[id].get.js +0 -8
  668. package/dist/nuxt/runtime/server/api/editor/themes/[id].get.js.map +0 -1
  669. package/dist/nuxt/runtime/server/api/editor/themes/index.get.d.ts +0 -5
  670. package/dist/nuxt/runtime/server/api/editor/themes/index.get.js +0 -8
  671. package/dist/nuxt/runtime/server/api/editor/themes/index.get.js.map +0 -1
  672. package/dist/nuxt/runtime/server/api/editor/themes/index.post.d.ts +0 -5
  673. package/dist/nuxt/runtime/server/api/editor/themes/index.post.js +0 -8
  674. package/dist/nuxt/runtime/server/api/editor/themes/index.post.js.map +0 -1
  675. package/dist/nuxt/runtime/server/api/editor/users.get.d.ts +0 -5
  676. package/dist/nuxt/runtime/server/api/editor/users.get.js +0 -8
  677. package/dist/nuxt/runtime/server/api/editor/users.get.js.map +0 -1
  678. package/dist/nuxt/runtime/server/plugins/collab.d.ts +0 -5
  679. package/dist/nuxt/runtime/server/plugins/collab.js +0 -10
  680. package/dist/nuxt/runtime/server/plugins/collab.js.map +0 -1
  681. package/dist/nuxt/runtime/server/routes/collab/[id].d.ts +0 -5
  682. package/dist/nuxt/runtime/server/routes/collab/[id].js +0 -35
  683. package/dist/nuxt/runtime/server/routes/collab/[id].js.map +0 -1
  684. package/dist/nuxt/runtime/server/utils/editor-route.d.ts +0 -11
  685. package/dist/nuxt/runtime/server/utils/editor-route.js.map +0 -1
  686. package/dist/presets/advanced.d.ts +0 -33
  687. package/dist/presets/advanced.js +0 -50
  688. package/dist/presets/advanced.js.map +0 -1
  689. package/dist/presets/simple.d.ts +0 -9
  690. package/dist/presets/simple.js +0 -12
  691. package/dist/presets/simple.js.map +0 -1
  692. package/dist/react/advanced-preset.d.ts +0 -11
  693. package/dist/react/advanced-preset.js +0 -31
  694. package/dist/react/advanced-preset.js.map +0 -1
  695. package/dist/vue/advanced-preset.d.ts +0 -13
  696. package/dist/vue/advanced-preset.js +0 -33
  697. package/dist/vue/advanced-preset.js.map +0 -1
  698. package/docs/extending.md +0 -538
  699. package/docs/integration.md +0 -630
  700. package/docs/llms.md +0 -383
  701. package/docs/usage.md +0 -1076
@@ -1,206 +1,280 @@
1
1
  import { ABILITY } from "./schema/abilities.js";
2
- import { commandItem } from "./toolbar.js";
2
+ import { command } from "./commands.js";
3
3
  //#region src/core/toolbar-items.ts
4
4
  /**
5
- * The core toolbar: undo/redo, paragraph and headings, text marks, lists, quote, code block
6
- * and rule. Orders leave room for the groups features contribute.
5
+ * The toolbar groups of the core UI (undo/redo, paragraph and headings, text marks, lists/quote/code block/rule) and the
6
+ * two groups other features' commands name: `inserts` (media, transcript, …) and `collaboration` (comments, authors).
7
+ * Orders leave room for the groups features contribute (composites and tables 60, AI 1000).
7
8
  */
8
- function coreToolbarGroups(ctx) {
9
+ const CORE_TOOLBAR_GROUPS = [
10
+ {
11
+ id: "history",
12
+ order: 10,
13
+ labelKey: "palette.group.history"
14
+ },
15
+ {
16
+ id: "block-type",
17
+ order: 20,
18
+ labelKey: "palette.group.blockType"
19
+ },
20
+ {
21
+ id: "marks",
22
+ order: 30,
23
+ labelKey: "palette.group.marks"
24
+ },
25
+ {
26
+ id: "blocks",
27
+ order: 40,
28
+ labelKey: "palette.group.blocks"
29
+ },
30
+ {
31
+ id: "inserts",
32
+ order: 50,
33
+ labelKey: "palette.group.inserts"
34
+ },
35
+ {
36
+ id: "collaboration",
37
+ order: 1010,
38
+ labelKey: "palette.group.collaboration"
39
+ }
40
+ ];
41
+ /**
42
+ * The core commands: undo/redo, paragraph and headings, text marks, lists, quote, code block and rule. The five block
43
+ * types (headings, lists, quote, code block, rule) are also in the `/` menu.
44
+ */
45
+ function coreCommands(ctx) {
9
46
  const headingsShown = (editor) => ctx.settings.get().blocks.structure === "flat" || !editor.schema.nodes.composite;
10
47
  return [
11
- {
12
- id: "history",
13
- order: 10,
14
- items: [commandItem({
15
- id: "undo",
16
- order: 10,
17
- icon: "i-lucide-undo-2",
18
- label: ctx.t("toolbar.undo"),
19
- kbds: ["meta", "z"],
20
- command: (c) => c.undo()
21
- }), commandItem({
22
- id: "redo",
23
- order: 20,
24
- icon: "i-lucide-redo-2",
25
- label: ctx.t("toolbar.redo"),
26
- kbds: [
27
- "meta",
28
- "shift",
29
- "z"
30
- ],
31
- command: (c) => c.redo()
32
- })]
33
- },
34
- {
35
- id: "block-type",
36
- order: 20,
37
- items: [commandItem({
38
- id: "paragraph",
39
- order: 10,
40
- icon: "i-lucide-pilcrow",
41
- label: ctx.t("toolbar.paragraph"),
42
- kbds: [
43
- "meta",
44
- "alt",
45
- "0"
46
- ],
47
- command: (c) => c.setParagraph(),
48
- isActive: (e) => e.isActive("paragraph")
49
- }), ...[
50
- 1,
51
- 2,
52
- 3
53
- ].map((level) => ({
54
- ...commandItem({
55
- id: `heading${level}`,
56
- order: 20 + level,
57
- icon: `i-lucide-heading-${level}`,
58
- label: ctx.t("toolbar.heading", { level }),
59
- kbds: [
60
- "meta",
61
- "alt",
62
- String(level)
63
- ],
64
- ability: ABILITY.headings,
65
- command: (c) => c.toggleHeading({ level }),
66
- isActive: (e) => e.isActive("heading", { level })
67
- }),
68
- visible: headingsShown
69
- }))]
70
- },
71
- {
72
- id: "marks",
73
- order: 30,
74
- items: [
75
- commandItem({
76
- id: "bold",
77
- order: 10,
78
- icon: "i-lucide-bold",
79
- label: ctx.t("toolbar.bold"),
80
- kbds: ["meta", "b"],
81
- ability: ABILITY.marks,
82
- command: (c) => c.toggleBold(),
83
- isActive: (e) => e.isActive("bold")
84
- }),
85
- commandItem({
86
- id: "italic",
87
- order: 20,
88
- icon: "i-lucide-italic",
89
- label: ctx.t("toolbar.italic"),
90
- kbds: ["meta", "i"],
91
- ability: ABILITY.marks,
92
- command: (c) => c.toggleItalic(),
93
- isActive: (e) => e.isActive("italic")
94
- }),
95
- commandItem({
96
- id: "underline",
97
- order: 30,
98
- icon: "i-lucide-underline",
99
- label: ctx.t("toolbar.underline"),
100
- kbds: ["meta", "u"],
101
- ability: ABILITY.marks,
102
- command: (c) => c.toggleUnderline(),
103
- isActive: (e) => e.isActive("underline")
104
- }),
105
- commandItem({
106
- id: "strike",
107
- order: 40,
108
- icon: "i-lucide-strikethrough",
109
- label: ctx.t("toolbar.strike"),
110
- kbds: [
111
- "meta",
112
- "shift",
113
- "x"
114
- ],
115
- ability: ABILITY.marks,
116
- command: (c) => c.toggleStrike(),
117
- isActive: (e) => e.isActive("strike")
118
- }),
119
- commandItem({
120
- id: "code",
121
- order: 50,
122
- icon: "i-lucide-code",
123
- label: ctx.t("toolbar.code"),
124
- kbds: ["meta", "e"],
125
- ability: ABILITY.marks,
126
- command: (c) => c.toggleCode(),
127
- isActive: (e) => e.isActive("code")
128
- })
129
- ]
130
- },
131
- {
132
- id: "blocks",
133
- order: 40,
134
- items: [
135
- commandItem({
136
- id: "bulletList",
137
- order: 10,
138
- icon: "i-lucide-list",
139
- label: ctx.t("toolbar.bulletList"),
140
- kbds: [
141
- "meta",
142
- "shift",
143
- "8"
144
- ],
145
- ability: ABILITY.lists,
146
- command: (c) => c.toggleBulletList(),
147
- isActive: (e) => e.isActive("bulletList")
148
- }),
149
- commandItem({
150
- id: "orderedList",
151
- order: 20,
152
- icon: "i-lucide-list-ordered",
153
- label: ctx.t("toolbar.orderedList"),
154
- kbds: [
155
- "meta",
156
- "shift",
157
- "7"
158
- ],
159
- ability: ABILITY.lists,
160
- command: (c) => c.toggleOrderedList(),
161
- isActive: (e) => e.isActive("orderedList")
162
- }),
163
- commandItem({
164
- id: "blockquote",
165
- order: 30,
166
- icon: "i-lucide-text-quote",
167
- label: ctx.t("toolbar.blockquote"),
168
- kbds: [
169
- "meta",
170
- "shift",
171
- "b"
172
- ],
173
- ability: ABILITY.blockquote,
174
- command: (c) => c.toggleBlockquote(),
175
- isActive: (e) => e.isActive("blockquote")
176
- }),
177
- commandItem({
178
- id: "codeBlock",
179
- order: 40,
180
- icon: "i-lucide-square-code",
181
- label: ctx.t("toolbar.codeBlock"),
182
- kbds: [
183
- "meta",
184
- "alt",
185
- "c"
186
- ],
187
- ability: ABILITY.codeBlock,
188
- command: (c) => c.toggleCodeBlock(),
189
- isActive: (e) => e.isActive("codeBlock")
190
- }),
191
- commandItem({
192
- id: "rule",
193
- order: 50,
194
- icon: "i-lucide-minus",
195
- label: ctx.t("toolbar.rule"),
196
- ability: ABILITY.rule,
197
- command: (c) => c.setHorizontalRule()
198
- })
199
- ]
200
- }
48
+ command({
49
+ id: "undo",
50
+ toolbar: {
51
+ group: "history",
52
+ order: 10
53
+ },
54
+ icon: "i-lucide-undo-2",
55
+ label: ctx.t("toolbar.undo"),
56
+ kbds: ["meta", "z"],
57
+ command: (c) => c.undo()
58
+ }),
59
+ command({
60
+ id: "redo",
61
+ toolbar: {
62
+ group: "history",
63
+ order: 20
64
+ },
65
+ icon: "i-lucide-redo-2",
66
+ label: ctx.t("toolbar.redo"),
67
+ kbds: [
68
+ "meta",
69
+ "shift",
70
+ "z"
71
+ ],
72
+ command: (c) => c.redo()
73
+ }),
74
+ command({
75
+ id: "paragraph",
76
+ toolbar: {
77
+ group: "block-type",
78
+ order: 10
79
+ },
80
+ icon: "i-lucide-pilcrow",
81
+ label: ctx.t("toolbar.paragraph"),
82
+ kbds: [
83
+ "meta",
84
+ "alt",
85
+ "0"
86
+ ],
87
+ command: (c) => c.setParagraph(),
88
+ active: (e) => e.isActive("paragraph")
89
+ }),
90
+ ...[
91
+ 1,
92
+ 2,
93
+ 3
94
+ ].map((level) => command({
95
+ id: `heading${level}`,
96
+ toolbar: {
97
+ group: "block-type",
98
+ order: 20 + level
99
+ },
100
+ slash: { id: `h${level}` },
101
+ creates: {
102
+ type: "heading",
103
+ attrs: { level }
104
+ },
105
+ icon: `i-lucide-heading-${level}`,
106
+ label: ctx.t("toolbar.heading", { level }),
107
+ kbds: [
108
+ "meta",
109
+ "alt",
110
+ String(level)
111
+ ],
112
+ ability: ABILITY.headings,
113
+ command: (c) => c.toggleHeading({ level }),
114
+ active: (e) => e.isActive("heading", { level }),
115
+ visible: headingsShown
116
+ })),
117
+ command({
118
+ id: "bold",
119
+ toolbar: {
120
+ group: "marks",
121
+ order: 10
122
+ },
123
+ icon: "i-lucide-bold",
124
+ label: ctx.t("toolbar.bold"),
125
+ kbds: ["meta", "b"],
126
+ ability: ABILITY.marks,
127
+ command: (c) => c.toggleBold(),
128
+ active: (e) => e.isActive("bold")
129
+ }),
130
+ command({
131
+ id: "italic",
132
+ toolbar: {
133
+ group: "marks",
134
+ order: 20
135
+ },
136
+ icon: "i-lucide-italic",
137
+ label: ctx.t("toolbar.italic"),
138
+ kbds: ["meta", "i"],
139
+ ability: ABILITY.marks,
140
+ command: (c) => c.toggleItalic(),
141
+ active: (e) => e.isActive("italic")
142
+ }),
143
+ command({
144
+ id: "underline",
145
+ toolbar: {
146
+ group: "marks",
147
+ order: 30
148
+ },
149
+ icon: "i-lucide-underline",
150
+ label: ctx.t("toolbar.underline"),
151
+ kbds: ["meta", "u"],
152
+ ability: ABILITY.marks,
153
+ command: (c) => c.toggleUnderline(),
154
+ active: (e) => e.isActive("underline")
155
+ }),
156
+ command({
157
+ id: "strike",
158
+ toolbar: {
159
+ group: "marks",
160
+ order: 40
161
+ },
162
+ icon: "i-lucide-strikethrough",
163
+ label: ctx.t("toolbar.strike"),
164
+ kbds: [
165
+ "meta",
166
+ "shift",
167
+ "x"
168
+ ],
169
+ ability: ABILITY.marks,
170
+ command: (c) => c.toggleStrike(),
171
+ active: (e) => e.isActive("strike")
172
+ }),
173
+ command({
174
+ id: "code",
175
+ toolbar: {
176
+ group: "marks",
177
+ order: 50
178
+ },
179
+ icon: "i-lucide-code",
180
+ label: ctx.t("toolbar.code"),
181
+ kbds: ["meta", "e"],
182
+ ability: ABILITY.marks,
183
+ command: (c) => c.toggleCode(),
184
+ active: (e) => e.isActive("code")
185
+ }),
186
+ command({
187
+ id: "bulletList",
188
+ toolbar: {
189
+ group: "blocks",
190
+ order: 10
191
+ },
192
+ slash: { id: "liste" },
193
+ creates: { type: "bulletList" },
194
+ icon: "i-lucide-list",
195
+ label: ctx.t("toolbar.bulletList"),
196
+ kbds: [
197
+ "meta",
198
+ "shift",
199
+ "8"
200
+ ],
201
+ ability: ABILITY.lists,
202
+ command: (c) => c.toggleBulletList(),
203
+ active: (e) => e.isActive("bulletList")
204
+ }),
205
+ command({
206
+ id: "orderedList",
207
+ toolbar: {
208
+ group: "blocks",
209
+ order: 20
210
+ },
211
+ slash: { id: "nummerierung" },
212
+ creates: { type: "orderedList" },
213
+ icon: "i-lucide-list-ordered",
214
+ label: ctx.t("toolbar.orderedList"),
215
+ kbds: [
216
+ "meta",
217
+ "shift",
218
+ "7"
219
+ ],
220
+ ability: ABILITY.lists,
221
+ command: (c) => c.toggleOrderedList(),
222
+ active: (e) => e.isActive("orderedList")
223
+ }),
224
+ command({
225
+ id: "blockquote",
226
+ toolbar: {
227
+ group: "blocks",
228
+ order: 30
229
+ },
230
+ slash: { id: "zitat" },
231
+ creates: { type: "blockquote" },
232
+ icon: "i-lucide-text-quote",
233
+ label: ctx.t("toolbar.blockquote"),
234
+ kbds: [
235
+ "meta",
236
+ "shift",
237
+ "b"
238
+ ],
239
+ ability: ABILITY.blockquote,
240
+ command: (c) => c.toggleBlockquote(),
241
+ active: (e) => e.isActive("blockquote")
242
+ }),
243
+ command({
244
+ id: "codeBlock",
245
+ toolbar: {
246
+ group: "blocks",
247
+ order: 40
248
+ },
249
+ slash: { id: "codeblock" },
250
+ creates: { type: "codeBlock" },
251
+ icon: "i-lucide-square-code",
252
+ label: ctx.t("toolbar.codeBlock"),
253
+ kbds: [
254
+ "meta",
255
+ "alt",
256
+ "c"
257
+ ],
258
+ ability: ABILITY.codeBlock,
259
+ command: (c) => c.toggleCodeBlock(),
260
+ active: (e) => e.isActive("codeBlock")
261
+ }),
262
+ command({
263
+ id: "rule",
264
+ toolbar: {
265
+ group: "blocks",
266
+ order: 50
267
+ },
268
+ slash: { id: "trennlinie" },
269
+ creates: { type: "horizontalRule" },
270
+ icon: "i-lucide-minus",
271
+ label: ctx.t("toolbar.rule"),
272
+ ability: ABILITY.rule,
273
+ command: (c) => c.setHorizontalRule()
274
+ })
201
275
  ];
202
276
  }
203
277
  //#endregion
204
- export { coreToolbarGroups };
278
+ export { CORE_TOOLBAR_GROUPS, coreCommands };
205
279
 
206
280
  //# sourceMappingURL=toolbar-items.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar-items.js","names":[],"sources":["../../src/core/toolbar-items.ts"],"sourcesContent":["import type { Editor } from '@tiptap/core'\nimport type { FeatureContext } from './feature'\nimport { ABILITY } from './schema/abilities'\nimport { commandItem, type ToolbarGroup } from './toolbar'\n\n/**\n * The core toolbar: undo/redo, paragraph and headings, text marks, lists, quote, code block\n * and rule. Orders leave room for the groups features contribute.\n */\nexport function coreToolbarGroups(ctx: FeatureContext): ToolbarGroup<never>[] {\n // Headings are the document structure in the flat setting, and always where the schema has no composites to structure with.\n const headingsShown = (editor: Editor) => ctx.settings.get().blocks.structure === 'flat' || !editor.schema.nodes.composite\n return [\n {\n id: 'history',\n order: 10,\n items: [\n commandItem({ id: 'undo', order: 10, icon: 'i-lucide-undo-2', label: ctx.t('toolbar.undo'), kbds: ['meta', 'z'], command: c => c.undo() }),\n commandItem({ id: 'redo', order: 20, icon: 'i-lucide-redo-2', label: ctx.t('toolbar.redo'), kbds: ['meta', 'shift', 'z'], command: c => c.redo() }),\n ],\n },\n {\n id: 'block-type',\n order: 20,\n items: [\n commandItem({ id: 'paragraph', order: 10, icon: 'i-lucide-pilcrow', label: ctx.t('toolbar.paragraph'), kbds: ['meta', 'alt', '0'], command: c => c.setParagraph(), isActive: e => e.isActive('paragraph') }),\n // With composites in the schema, the 'composite' structure shows Bausteine instead of H1–H3.\n ...([1, 2, 3] as const).map(level => ({\n ...commandItem({\n id: `heading${level}`,\n order: 20 + level,\n icon: `i-lucide-heading-${level}`,\n label: ctx.t('toolbar.heading', { level }),\n kbds: ['meta', 'alt', String(level)],\n ability: ABILITY.headings,\n command: c => c.toggleHeading({ level }),\n isActive: e => e.isActive('heading', { level }),\n }),\n visible: headingsShown,\n })),\n ],\n },\n {\n id: 'marks',\n order: 30,\n items: [\n commandItem({ id: 'bold', order: 10, icon: 'i-lucide-bold', label: ctx.t('toolbar.bold'), kbds: ['meta', 'b'], ability: ABILITY.marks, command: c => c.toggleBold(), isActive: e => e.isActive('bold') }),\n commandItem({ id: 'italic', order: 20, icon: 'i-lucide-italic', label: ctx.t('toolbar.italic'), kbds: ['meta', 'i'], ability: ABILITY.marks, command: c => c.toggleItalic(), isActive: e => e.isActive('italic') }),\n commandItem({ id: 'underline', order: 30, icon: 'i-lucide-underline', label: ctx.t('toolbar.underline'), kbds: ['meta', 'u'], ability: ABILITY.marks, command: c => c.toggleUnderline(), isActive: e => e.isActive('underline') }),\n // Mod-Shift-s is the speaker segment, so strike is rebound to Mod-Shift-x (StrikeX).\n commandItem({ id: 'strike', order: 40, icon: 'i-lucide-strikethrough', label: ctx.t('toolbar.strike'), kbds: ['meta', 'shift', 'x'], ability: ABILITY.marks, command: c => c.toggleStrike(), isActive: e => e.isActive('strike') }),\n commandItem({ id: 'code', order: 50, icon: 'i-lucide-code', label: ctx.t('toolbar.code'), kbds: ['meta', 'e'], ability: ABILITY.marks, command: c => c.toggleCode(), isActive: e => e.isActive('code') }),\n ],\n },\n {\n id: 'blocks',\n order: 40,\n items: [\n commandItem({ id: 'bulletList', order: 10, icon: 'i-lucide-list', label: ctx.t('toolbar.bulletList'), kbds: ['meta', 'shift', '8'], ability: ABILITY.lists, command: c => c.toggleBulletList(), isActive: e => e.isActive('bulletList') }),\n commandItem({ id: 'orderedList', order: 20, icon: 'i-lucide-list-ordered', label: ctx.t('toolbar.orderedList'), kbds: ['meta', 'shift', '7'], ability: ABILITY.lists, command: c => c.toggleOrderedList(), isActive: e => e.isActive('orderedList') }),\n commandItem({ id: 'blockquote', order: 30, icon: 'i-lucide-text-quote', label: ctx.t('toolbar.blockquote'), kbds: ['meta', 'shift', 'b'], ability: ABILITY.blockquote, command: c => c.toggleBlockquote(), isActive: e => e.isActive('blockquote') }),\n commandItem({ id: 'codeBlock', order: 40, icon: 'i-lucide-square-code', label: ctx.t('toolbar.codeBlock'), kbds: ['meta', 'alt', 'c'], ability: ABILITY.codeBlock, command: c => c.toggleCodeBlock(), isActive: e => e.isActive('codeBlock') }),\n commandItem({ id: 'rule', order: 50, icon: 'i-lucide-minus', label: ctx.t('toolbar.rule'), ability: ABILITY.rule, command: c => c.setHorizontalRule() }),\n ],\n },\n ]\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"toolbar-items.js","names":[],"sources":["../../src/core/toolbar-items.ts"],"sourcesContent":["import type { Editor } from '@tiptap/core'\nimport type { CommandDef, ToolbarGroupDef } from './command-types'\nimport type { FeatureContext } from './feature'\nimport { ABILITY } from './schema/abilities'\nimport { command } from './commands'\n\n/**\n * The toolbar groups of the core UI (undo/redo, paragraph and headings, text marks, lists/quote/code block/rule) and the\n * two groups other features' commands name: `inserts` (media, transcript, …) and `collaboration` (comments, authors).\n * Orders leave room for the groups features contribute (composites and tables 60, AI 1000).\n */\nexport const CORE_TOOLBAR_GROUPS: ToolbarGroupDef[] = [\n { id: 'history', order: 10, labelKey: 'palette.group.history' },\n { id: 'block-type', order: 20, labelKey: 'palette.group.blockType' },\n { id: 'marks', order: 30, labelKey: 'palette.group.marks' },\n { id: 'blocks', order: 40, labelKey: 'palette.group.blocks' },\n { id: 'inserts', order: 50, labelKey: 'palette.group.inserts' },\n { id: 'collaboration', order: 1010, labelKey: 'palette.group.collaboration' },\n]\n\n/**\n * The core commands: undo/redo, paragraph and headings, text marks, lists, quote, code block and rule. The five block\n * types (headings, lists, quote, code block, rule) are also in the `/` menu.\n */\nexport function coreCommands(ctx: FeatureContext): CommandDef<never>[] {\n // Headings are the document structure in the flat setting, and always where the schema has no composites to structure with.\n const headingsShown = (editor: Editor) => ctx.settings.get().blocks.structure === 'flat' || !editor.schema.nodes.composite\n return [\n command({ id: 'undo', toolbar: { group: 'history', order: 10 }, icon: 'i-lucide-undo-2', label: ctx.t('toolbar.undo'), kbds: ['meta', 'z'], command: c => c.undo() }),\n command({ id: 'redo', toolbar: { group: 'history', order: 20 }, icon: 'i-lucide-redo-2', label: ctx.t('toolbar.redo'), kbds: ['meta', 'shift', 'z'], command: c => c.redo() }),\n command({ id: 'paragraph', toolbar: { group: 'block-type', order: 10 }, icon: 'i-lucide-pilcrow', label: ctx.t('toolbar.paragraph'), kbds: ['meta', 'alt', '0'], command: c => c.setParagraph(), active: e => e.isActive('paragraph') }),\n // With composites in the schema, the 'composite' structure shows Bausteine instead of H1–H3.\n ...([1, 2, 3] as const).map(level => command({\n id: `heading${level}`,\n toolbar: { group: 'block-type', order: 20 + level },\n slash: { id: `h${level}` },\n creates: { type: 'heading', attrs: { level } },\n icon: `i-lucide-heading-${level}`,\n label: ctx.t('toolbar.heading', { level }),\n kbds: ['meta', 'alt', String(level)],\n ability: ABILITY.headings,\n command: c => c.toggleHeading({ level }),\n active: e => e.isActive('heading', { level }),\n visible: headingsShown,\n })),\n command({ id: 'bold', toolbar: { group: 'marks', order: 10 }, icon: 'i-lucide-bold', label: ctx.t('toolbar.bold'), kbds: ['meta', 'b'], ability: ABILITY.marks, command: c => c.toggleBold(), active: e => e.isActive('bold') }),\n command({ id: 'italic', toolbar: { group: 'marks', order: 20 }, icon: 'i-lucide-italic', label: ctx.t('toolbar.italic'), kbds: ['meta', 'i'], ability: ABILITY.marks, command: c => c.toggleItalic(), active: e => e.isActive('italic') }),\n command({ id: 'underline', toolbar: { group: 'marks', order: 30 }, icon: 'i-lucide-underline', label: ctx.t('toolbar.underline'), kbds: ['meta', 'u'], ability: ABILITY.marks, command: c => c.toggleUnderline(), active: e => e.isActive('underline') }),\n // Mod-Shift-s is the speaker segment, so strike is rebound to Mod-Shift-x (StrikeX).\n command({ id: 'strike', toolbar: { group: 'marks', order: 40 }, icon: 'i-lucide-strikethrough', label: ctx.t('toolbar.strike'), kbds: ['meta', 'shift', 'x'], ability: ABILITY.marks, command: c => c.toggleStrike(), active: e => e.isActive('strike') }),\n command({ id: 'code', toolbar: { group: 'marks', order: 50 }, icon: 'i-lucide-code', label: ctx.t('toolbar.code'), kbds: ['meta', 'e'], ability: ABILITY.marks, command: c => c.toggleCode(), active: e => e.isActive('code') }),\n command({ id: 'bulletList', toolbar: { group: 'blocks', order: 10 }, slash: { id: 'liste' }, creates: { type: 'bulletList' }, icon: 'i-lucide-list', label: ctx.t('toolbar.bulletList'), kbds: ['meta', 'shift', '8'], ability: ABILITY.lists, command: c => c.toggleBulletList(), active: e => e.isActive('bulletList') }),\n command({ id: 'orderedList', toolbar: { group: 'blocks', order: 20 }, slash: { id: 'nummerierung' }, creates: { type: 'orderedList' }, icon: 'i-lucide-list-ordered', label: ctx.t('toolbar.orderedList'), kbds: ['meta', 'shift', '7'], ability: ABILITY.lists, command: c => c.toggleOrderedList(), active: e => e.isActive('orderedList') }),\n command({ id: 'blockquote', toolbar: { group: 'blocks', order: 30 }, slash: { id: 'zitat' }, creates: { type: 'blockquote' }, icon: 'i-lucide-text-quote', label: ctx.t('toolbar.blockquote'), kbds: ['meta', 'shift', 'b'], ability: ABILITY.blockquote, command: c => c.toggleBlockquote(), active: e => e.isActive('blockquote') }),\n command({ id: 'codeBlock', toolbar: { group: 'blocks', order: 40 }, slash: { id: 'codeblock' }, creates: { type: 'codeBlock' }, icon: 'i-lucide-square-code', label: ctx.t('toolbar.codeBlock'), kbds: ['meta', 'alt', 'c'], ability: ABILITY.codeBlock, command: c => c.toggleCodeBlock(), active: e => e.isActive('codeBlock') }),\n command({ id: 'rule', toolbar: { group: 'blocks', order: 50 }, slash: { id: 'trennlinie' }, creates: { type: 'horizontalRule' }, icon: 'i-lucide-minus', label: ctx.t('toolbar.rule'), ability: ABILITY.rule, command: c => c.setHorizontalRule() }),\n ]\n}\n"],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ //#region src/core/util.ts
2
+ /** Throws the library's error: `@ecsplico/editor: [<scope>: ]<message>`. */
3
+ function fail(message, scope) {
4
+ throw new Error(`@ecsplico/editor: ${scope ? `${scope}: ` : ""}${message}`);
5
+ }
6
+ /** Sort comparator for `{ order?: number }` entries (ascending, unset = 0); `Array.prototype.sort` is stable, so ties keep declaration order. */
7
+ const byOrder = (a, b) => (a.order ?? 0) - (b.order ?? 0);
8
+ //#endregion
9
+ export { byOrder, fail };
10
+
11
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","names":[],"sources":["../../src/core/util.ts"],"sourcesContent":["/** Throws the library's error: `@ecsplico/editor: [<scope>: ]<message>`. */\nexport function fail(message: string, scope?: string): never {\n throw new Error(`@ecsplico/editor: ${scope ? `${scope}: ` : ''}${message}`)\n}\n\n/** Sort comparator for `{ order?: number }` entries (ascending, unset = 0); `Array.prototype.sort` is stable, so ties keep declaration order. */\nexport const byOrder = <T extends { order?: number }>(a: T, b: T) => (a.order ?? 0) - (b.order ?? 0)\n"],"mappings":";;AACA,SAAgB,KAAK,SAAiB,OAAuB;CAC3D,MAAM,IAAI,MAAM,qBAAqB,QAAQ,GAAG,MAAM,MAAM,KAAK,SAAS;AAC5E;;AAGA,MAAa,WAAyC,GAAM,OAAU,EAAE,SAAS,MAAM,EAAE,SAAS"}
@@ -1,7 +1,7 @@
1
1
  import { MarkdownSurfaceProps } from "../markdown/MarkdownSurface.js";
2
2
  import { Editor } from "@tiptap/core";
3
- import { EditorView } from "@codemirror/view";
4
3
  import { ReactNode } from "react";
4
+ import { EditorView } from "@codemirror/view";
5
5
  //#region src/document/DocumentSurface.d.ts
6
6
  /** Which surface was mounted and its editor, for `onReady`. */
7
7
  export type DocumentSurfaceTarget = {
@@ -33,16 +33,16 @@ type __VLS_Slots = {} & { [K in NonNullable<typeof __VLS_13>]?: (props: typeof _
33
33
  };
34
34
  declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
35
35
  "update:modelValue": (text: string) => any;
36
- save: (text: string) => any;
37
36
  ready: (target: DocumentSurfaceTarget) => any;
37
+ save: (text: string) => any;
38
38
  }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
39
39
  "onUpdate:modelValue"?: ((text: string) => any) | undefined;
40
- onSave?: ((text: string) => any) | undefined;
41
40
  onReady?: ((target: DocumentSurfaceTarget) => any) | undefined;
41
+ onSave?: ((text: string) => any) | undefined;
42
42
  }>, {
43
43
  editable: boolean;
44
- wordWrap: boolean;
45
44
  modelValue: string;
45
+ wordWrap: boolean;
46
46
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
47
47
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
48
48
  declare const _default: typeof __VLS_export;
@@ -1,6 +1,6 @@
1
+ import { ReadonlyStore } from "../../core/store.js";
1
2
  import { Translate } from "../../i18n/index.js";
2
3
  import { Notifier } from "../../core/notify.js";
3
- import { ReadonlyStore } from "../../core/store.js";
4
4
  import { AgentOp, AgentOpFeedback, AgentOpOutcome } from "./protocol/agent-ops.js";
5
5
  import "./protocol/index.js";
6
6
  import { AiReviewOutcome } from "./ai-review.js";
@@ -1,8 +1,8 @@
1
1
  import { createStore } from "../../core/store.js";
2
2
  import { releaseRanges } from "../../core/doc-anchors.js";
3
3
  import { agentOpTarget } from "./protocol/agent-ops.js";
4
- import { agentOpChange, agentOpSnippet } from "./agent-ops.js";
5
4
  import { acceptAiReview, aiReviewKey, rejectAiReview, setActiveAiReviewHunk, startAiReview } from "./ai-review.js";
5
+ import { agentOpChange, agentOpSnippet } from "./agent-ops.js";
6
6
  //#region src/features/ai/agent-op-review.ts
7
7
  /** The state without operations; shared so an emptied review and an emptied chat hold the identical object. */
8
8
  const NO_AGENT_OPS = Object.freeze({});
@@ -1,7 +1,7 @@
1
+ import { conversionsOf, parseBlocks } from "../../core/pipeline.js";
1
2
  import { blockIdOf, findBlockById } from "../../core/schema/block-ids.js";
2
3
  import { isBlockContainer, isChromeNode } from "../../core/schema/node-flags.js";
3
4
  import { isWrapperBlock } from "../../core/convert.js";
4
- import { conversionsOf, parseBlocks } from "../../core/pipeline.js";
5
5
  import { blockConversion, parseConversionTarget } from "../../core/block-convert.js";
6
6
  import { captureRange } from "../../core/doc-anchors.js";
7
7
  import { selectionRange } from "../../core/selection-range.js";
@@ -1,9 +1,9 @@
1
1
  import { Translate } from "../../i18n/index.js";
2
2
  import { Notice } from "../../core/notify.js";
3
- import { DocAnchor } from "../../core/doc-anchors.js";
4
- import "../../core/index.js";
5
3
  import { AiApplyMode, AiTask } from "./protocol/tasks.js";
6
4
  import "./protocol/index.js";
5
+ import { DocAnchor } from "../../core/doc-anchors.js";
6
+ import "../../core/index.js";
7
7
  import { AiReviewSkipReason } from "./ai-review.js";
8
8
  import { Editor, JSONContent } from "@tiptap/core";
9
9
  import { Transaction } from "@tiptap/pm/state";
@@ -1,5 +1,5 @@
1
- import { isWrapperBlock } from "../../core/convert.js";
2
1
  import { formatAiResultOf, parseBlocks, structureBlocks } from "../../core/pipeline.js";
2
+ import { isWrapperBlock } from "../../core/convert.js";
3
3
  import { captureRange, resolveRange } from "../../core/doc-anchors.js";
4
4
  import { selectionRange } from "../../core/selection-range.js";
5
5
  import { AI_LIMITS, withTaskHeading } from "./protocol/tasks.js";
@@ -1,5 +1,5 @@
1
- import "../../core/schema/block-ids.js";
2
1
  import { parseBlocks, structureBlocks } from "../../core/pipeline.js";
2
+ import "../../core/schema/block-ids.js";
3
3
  import { anchorResolverOf, captureRange, docAnchorsKey, resolveRange } from "../../core/doc-anchors.js";
4
4
  import { inlineReplacement, replaceRangeWithBlocks } from "./ai-apply.js";
5
5
  import { Extension } from "@tiptap/core";