@ecsplico/editor 0.0.0-stage → 2.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 (1230) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/LICENSE +21 -0
  3. package/README.md +232 -2
  4. package/dist/code/CodeSurface.d.ts +24 -0
  5. package/dist/code/CodeSurface.js +57 -0
  6. package/dist/code/CodeSurface.js.map +1 -0
  7. package/dist/code/CodeSurface.vue.d.ts +29 -0
  8. package/dist/code/CodeSurface2.js +75 -0
  9. package/dist/code/CodeSurface2.js.map +1 -0
  10. package/dist/code/chrome-theme.js +76 -0
  11. package/dist/code/chrome-theme.js.map +1 -0
  12. package/dist/code/compartments.js +19 -0
  13. package/dist/code/compartments.js.map +1 -0
  14. package/dist/code/editor-factory.d.ts +41 -0
  15. package/dist/code/editor-factory.js +126 -0
  16. package/dist/code/editor-factory.js.map +1 -0
  17. package/dist/code/format-json.d.ts +27 -0
  18. package/dist/code/format-json.js +94 -0
  19. package/dist/code/format-json.js.map +1 -0
  20. package/dist/code/highlight-style.js +118 -0
  21. package/dist/code/highlight-style.js.map +1 -0
  22. package/dist/code/index.d.ts +6 -0
  23. package/dist/code/index.js +6 -0
  24. package/dist/code/jsonl-language.d.ts +6 -0
  25. package/dist/code/jsonl-language.js +33 -0
  26. package/dist/code/jsonl-language.js.map +1 -0
  27. package/dist/code/kind.d.ts +15 -0
  28. package/dist/code/kind.js +142 -0
  29. package/dist/code/kind.js.map +1 -0
  30. package/dist/code/lang-registry.d.ts +31 -0
  31. package/dist/code/lang-registry.js +54 -0
  32. package/dist/code/lang-registry.js.map +1 -0
  33. package/dist/code/react.d.ts +2 -0
  34. package/dist/code/react.js +1 -0
  35. package/dist/code/vue.d.ts +2 -0
  36. package/dist/code/vue.js +1 -0
  37. package/dist/core/abilities.d.ts +32 -0
  38. package/dist/core/abilities.js +160 -0
  39. package/dist/core/abilities.js.map +1 -0
  40. package/dist/core/block-convert.d.ts +59 -0
  41. package/dist/core/block-convert.js +164 -0
  42. package/dist/core/block-convert.js.map +1 -0
  43. package/dist/core/block-drag.d.ts +12 -0
  44. package/dist/core/block-drag.js +62 -0
  45. package/dist/core/block-drag.js.map +1 -0
  46. package/dist/core/block-flash.d.ts +19 -0
  47. package/dist/core/block-flash.js +66 -0
  48. package/dist/core/block-flash.js.map +1 -0
  49. package/dist/core/context.d.ts +63 -0
  50. package/dist/core/context.js +108 -0
  51. package/dist/core/context.js.map +1 -0
  52. package/dist/core/convert.d.ts +96 -0
  53. package/dist/core/convert.js +241 -0
  54. package/dist/core/convert.js.map +1 -0
  55. package/dist/core/core-feature.d.ts +17 -0
  56. package/dist/core/core-feature.js +100 -0
  57. package/dist/core/core-feature.js.map +1 -0
  58. package/dist/core/define-editor.d.ts +23 -0
  59. package/dist/core/define-editor.js +110 -0
  60. package/dist/core/define-editor.js.map +1 -0
  61. package/dist/core/doc-anchors.d.ts +67 -0
  62. package/dist/core/doc-anchors.js +112 -0
  63. package/dist/core/doc-anchors.js.map +1 -0
  64. package/dist/core/document-markdown.d.ts +13 -0
  65. package/dist/core/document-markdown.js +31 -0
  66. package/dist/core/document-markdown.js.map +1 -0
  67. package/dist/core/download.d.ts +5 -0
  68. package/dist/core/download.js +16 -0
  69. package/dist/core/download.js.map +1 -0
  70. package/dist/core/editor-ui.d.ts +45 -0
  71. package/dist/core/editor-ui.js +38 -0
  72. package/dist/core/editor-ui.js.map +1 -0
  73. package/dist/core/extension-points.d.ts +64 -0
  74. package/dist/core/feature-context.d.ts +32 -0
  75. package/dist/core/feature-context.js +46 -0
  76. package/dist/core/feature-context.js.map +1 -0
  77. package/dist/core/feature.d.ts +234 -0
  78. package/dist/core/feature.js +13 -0
  79. package/dist/core/feature.js.map +1 -0
  80. package/dist/core/fences.d.ts +16 -0
  81. package/dist/core/fences.js +105 -0
  82. package/dist/core/fences.js.map +1 -0
  83. package/dist/core/fetch-error.d.ts +5 -0
  84. package/dist/core/fetch-error.js +11 -0
  85. package/dist/core/fetch-error.js.map +1 -0
  86. package/dist/core/index.d.ts +28 -0
  87. package/dist/core/index.js +27 -0
  88. package/dist/core/metadata-types.d.ts +27 -0
  89. package/dist/core/metadata-types.js +10 -0
  90. package/dist/core/metadata-types.js.map +1 -0
  91. package/dist/core/metadata.d.ts +39 -0
  92. package/dist/core/metadata.js +76 -0
  93. package/dist/core/metadata.js.map +1 -0
  94. package/dist/core/notify.d.ts +31 -0
  95. package/dist/core/notify.js +7 -0
  96. package/dist/core/notify.js.map +1 -0
  97. package/dist/core/pipeline.d.ts +52 -0
  98. package/dist/core/pipeline.js +78 -0
  99. package/dist/core/pipeline.js.map +1 -0
  100. package/dist/core/schema/abilities.d.ts +55 -0
  101. package/dist/core/schema/abilities.js +113 -0
  102. package/dist/core/schema/abilities.js.map +1 -0
  103. package/dist/core/schema/block-ids.d.ts +29 -0
  104. package/dist/core/schema/block-ids.js +134 -0
  105. package/dist/core/schema/block-ids.js.map +1 -0
  106. package/dist/core/schema/hex-color.d.ts +5 -0
  107. package/dist/core/schema/hex-color.js +7 -0
  108. package/dist/core/schema/hex-color.js.map +1 -0
  109. package/dist/core/schema/index.d.ts +21 -0
  110. package/dist/core/schema/index.js +33 -0
  111. package/dist/core/schema/index.js.map +1 -0
  112. package/dist/core/schema/mark-flags.d.ts +12 -0
  113. package/dist/core/schema/node-flags.d.ts +23 -0
  114. package/dist/core/schema/node-flags.js +34 -0
  115. package/dist/core/schema/node-flags.js.map +1 -0
  116. package/dist/core/schema/opaque-fence.d.ts +11 -0
  117. package/dist/core/schema/opaque-fence.js +57 -0
  118. package/dist/core/schema/opaque-fence.js.map +1 -0
  119. package/dist/core/schema/strike.d.ts +4 -0
  120. package/dist/core/schema/strike.js +9 -0
  121. package/dist/core/schema/strike.js.map +1 -0
  122. package/dist/core/selection-range.d.ts +13 -0
  123. package/dist/core/selection-range.js +28 -0
  124. package/dist/core/selection-range.js.map +1 -0
  125. package/dist/core/slash.d.ts +24 -0
  126. package/dist/core/slash.js +60 -0
  127. package/dist/core/slash.js.map +1 -0
  128. package/dist/core/store.d.ts +22 -0
  129. package/dist/core/store.js +61 -0
  130. package/dist/core/store.js.map +1 -0
  131. package/dist/core/suggestion-popup.d.ts +63 -0
  132. package/dist/core/suggestion-popup.js +57 -0
  133. package/dist/core/suggestion-popup.js.map +1 -0
  134. package/dist/core/tag-name.js +11 -0
  135. package/dist/core/tag-name.js.map +1 -0
  136. package/dist/core/toolbar-items.d.ts +10 -0
  137. package/dist/core/toolbar-items.js +206 -0
  138. package/dist/core/toolbar-items.js.map +1 -0
  139. package/dist/core/toolbar.d.ts +74 -0
  140. package/dist/core/toolbar.js +45 -0
  141. package/dist/core/toolbar.js.map +1 -0
  142. package/dist/document/DocumentSurface.d.ts +38 -0
  143. package/dist/document/DocumentSurface.js +44 -0
  144. package/dist/document/DocumentSurface.js.map +1 -0
  145. package/dist/document/DocumentSurface.vue.d.ts +56 -0
  146. package/dist/document/DocumentSurface2.js +71 -0
  147. package/dist/document/DocumentSurface2.js.map +1 -0
  148. package/dist/document/react.d.ts +2 -0
  149. package/dist/document/react.js +1 -0
  150. package/dist/document/vue.d.ts +2 -0
  151. package/dist/document/vue.js +1 -0
  152. package/dist/features/ai/agent-op-review.d.ts +69 -0
  153. package/dist/features/ai/agent-op-review.js +182 -0
  154. package/dist/features/ai/agent-op-review.js.map +1 -0
  155. package/dist/features/ai/agent-ops.d.ts +15 -0
  156. package/dist/features/ai/agent-ops.js +228 -0
  157. package/dist/features/ai/agent-ops.js.map +1 -0
  158. package/dist/features/ai/ai-apply.d.ts +76 -0
  159. package/dist/features/ai/ai-apply.js +193 -0
  160. package/dist/features/ai/ai-apply.js.map +1 -0
  161. package/dist/features/ai/ai-menu.d.ts +38 -0
  162. package/dist/features/ai/ai-menu.js +20 -0
  163. package/dist/features/ai/ai-menu.js.map +1 -0
  164. package/dist/features/ai/ai-review.d.ts +136 -0
  165. package/dist/features/ai/ai-review.js +543 -0
  166. package/dist/features/ai/ai-review.js.map +1 -0
  167. package/dist/features/ai/ai-selection-highlight.d.ts +21 -0
  168. package/dist/features/ai/ai-selection-highlight.js +44 -0
  169. package/dist/features/ai/ai-selection-highlight.js.map +1 -0
  170. package/dist/features/ai/ai-sse.d.ts +28 -0
  171. package/dist/features/ai/ai-sse.js +82 -0
  172. package/dist/features/ai/ai-sse.js.map +1 -0
  173. package/dist/features/ai/assistant.d.ts +53 -0
  174. package/dist/features/ai/assistant.js +82 -0
  175. package/dist/features/ai/assistant.js.map +1 -0
  176. package/dist/features/ai/block-actions.d.ts +20 -0
  177. package/dist/features/ai/block-actions.js +55 -0
  178. package/dist/features/ai/block-actions.js.map +1 -0
  179. package/dist/features/ai/components/AiReviewBar.js +145 -0
  180. package/dist/features/ai/components/AiReviewBar.js.map +1 -0
  181. package/dist/features/ai/components/AiReviewBar.vue.d.ts +15 -0
  182. package/dist/features/ai/components/AiSelectionMenu.js +519 -0
  183. package/dist/features/ai/components/AiSelectionMenu.js.map +1 -0
  184. package/dist/features/ai/components/AiSelectionMenu.vue.d.ts +17 -0
  185. package/dist/features/ai/components/AiSidebar.js +378 -0
  186. package/dist/features/ai/components/AiSidebar.js.map +1 -0
  187. package/dist/features/ai/components/AiSidebar.vue.d.ts +26 -0
  188. package/dist/features/ai/components/DocumentChatAnswer.js +67 -0
  189. package/dist/features/ai/components/DocumentChatAnswer.js.map +1 -0
  190. package/dist/features/ai/components/DocumentChatAnswer.vue.d.ts +13 -0
  191. package/dist/features/ai/components/DocumentChatOps.js +113 -0
  192. package/dist/features/ai/components/DocumentChatOps.js.map +1 -0
  193. package/dist/features/ai/components/DocumentChatOps.vue.d.ts +27 -0
  194. package/dist/features/ai/components/ModelQuickSwitch.js +84 -0
  195. package/dist/features/ai/components/ModelQuickSwitch.js.map +1 -0
  196. package/dist/features/ai/components/ModelQuickSwitch.vue.d.ts +23 -0
  197. package/dist/features/ai/components/SettingsAiTab.js +88 -0
  198. package/dist/features/ai/components/SettingsAiTab.js.map +1 -0
  199. package/dist/features/ai/components/SettingsAiTab.vue.d.ts +6 -0
  200. package/dist/features/ai/components/SettingsModelProfiles.js +260 -0
  201. package/dist/features/ai/components/SettingsModelProfiles.js.map +1 -0
  202. package/dist/features/ai/components/SettingsModelProfiles.vue.d.ts +6 -0
  203. package/dist/features/ai/document-chat-model.d.ts +88 -0
  204. package/dist/features/ai/document-chat-model.js +190 -0
  205. package/dist/features/ai/document-chat-model.js.map +1 -0
  206. package/dist/features/ai/document-chat.d.ts +17 -0
  207. package/dist/features/ai/document-chat.js +112 -0
  208. package/dist/features/ai/document-chat.js.map +1 -0
  209. package/dist/features/ai/feature.d.ts +25 -0
  210. package/dist/features/ai/feature.js +89 -0
  211. package/dist/features/ai/feature.js.map +1 -0
  212. package/dist/features/ai/ghost-autocomplete.d.ts +47 -0
  213. package/dist/features/ai/ghost-autocomplete.js +204 -0
  214. package/dist/features/ai/ghost-autocomplete.js.map +1 -0
  215. package/dist/features/ai/index.d.ts +24 -0
  216. package/dist/features/ai/index.js +23 -0
  217. package/dist/features/ai/model-profiles.d.ts +36 -0
  218. package/dist/features/ai/model-profiles.js +111 -0
  219. package/dist/features/ai/model-profiles.js.map +1 -0
  220. package/dist/features/ai/preview-extensions.js +14 -0
  221. package/dist/features/ai/preview-extensions.js.map +1 -0
  222. package/dist/features/ai/protocol/agent-ops.d.ts +120 -0
  223. package/dist/features/ai/protocol/agent-ops.js +298 -0
  224. package/dist/features/ai/protocol/agent-ops.js.map +1 -0
  225. package/dist/features/ai/protocol/chat.d.ts +57 -0
  226. package/dist/features/ai/protocol/chat.js +146 -0
  227. package/dist/features/ai/protocol/chat.js.map +1 -0
  228. package/dist/features/ai/protocol/complete.d.ts +21 -0
  229. package/dist/features/ai/protocol/complete.js +81 -0
  230. package/dist/features/ai/protocol/complete.js.map +1 -0
  231. package/dist/features/ai/protocol/index.d.ts +7 -0
  232. package/dist/features/ai/protocol/index.js +7 -0
  233. package/dist/features/ai/protocol/models.d.ts +48 -0
  234. package/dist/features/ai/protocol/models.js +41 -0
  235. package/dist/features/ai/protocol/models.js.map +1 -0
  236. package/dist/features/ai/protocol/schemas.d.ts +36 -0
  237. package/dist/features/ai/protocol/schemas.js +40 -0
  238. package/dist/features/ai/protocol/schemas.js.map +1 -0
  239. package/dist/features/ai/protocol/tasks.d.ts +107 -0
  240. package/dist/features/ai/protocol/tasks.js +227 -0
  241. package/dist/features/ai/protocol/tasks.js.map +1 -0
  242. package/dist/features/ai/rate-limit.d.ts +9 -0
  243. package/dist/features/ai/rate-limit.js +20 -0
  244. package/dist/features/ai/rate-limit.js.map +1 -0
  245. package/dist/features/ai/react/AiReviewBar.d.ts +12 -0
  246. package/dist/features/ai/react/AiReviewBar.js +156 -0
  247. package/dist/features/ai/react/AiReviewBar.js.map +1 -0
  248. package/dist/features/ai/react/AiSelectionMenu.d.ts +14 -0
  249. package/dist/features/ai/react/AiSelectionMenu.js +513 -0
  250. package/dist/features/ai/react/AiSelectionMenu.js.map +1 -0
  251. package/dist/features/ai/react/AiSidebar.d.ts +19 -0
  252. package/dist/features/ai/react/AiSidebar.js +339 -0
  253. package/dist/features/ai/react/AiSidebar.js.map +1 -0
  254. package/dist/features/ai/react/DocumentChatAnswer.d.ts +10 -0
  255. package/dist/features/ai/react/DocumentChatAnswer.js +70 -0
  256. package/dist/features/ai/react/DocumentChatAnswer.js.map +1 -0
  257. package/dist/features/ai/react/DocumentChatOps.d.ts +19 -0
  258. package/dist/features/ai/react/DocumentChatOps.js +111 -0
  259. package/dist/features/ai/react/DocumentChatOps.js.map +1 -0
  260. package/dist/features/ai/react/ModelQuickSwitch.d.ts +19 -0
  261. package/dist/features/ai/react/ModelQuickSwitch.js +89 -0
  262. package/dist/features/ai/react/ModelQuickSwitch.js.map +1 -0
  263. package/dist/features/ai/react/SettingsAiTab.d.ts +5 -0
  264. package/dist/features/ai/react/SettingsAiTab.js +103 -0
  265. package/dist/features/ai/react/SettingsAiTab.js.map +1 -0
  266. package/dist/features/ai/react/SettingsModelProfiles.d.ts +8 -0
  267. package/dist/features/ai/react/SettingsModelProfiles.js +318 -0
  268. package/dist/features/ai/react/SettingsModelProfiles.js.map +1 -0
  269. package/dist/features/ai/react/use-ai-assistant.d.ts +22 -0
  270. package/dist/features/ai/react/use-ai-assistant.js +36 -0
  271. package/dist/features/ai/react/use-ai-assistant.js.map +1 -0
  272. package/dist/features/ai/react/use-document-chat.d.ts +32 -0
  273. package/dist/features/ai/react/use-document-chat.js +43 -0
  274. package/dist/features/ai/react/use-document-chat.js.map +1 -0
  275. package/dist/features/ai/react/use-model-profiles.d.ts +20 -0
  276. package/dist/features/ai/react/use-model-profiles.js +33 -0
  277. package/dist/features/ai/react/use-model-profiles.js.map +1 -0
  278. package/dist/features/ai/react.d.ts +23 -0
  279. package/dist/features/ai/react.js +28 -0
  280. package/dist/features/ai/react.js.map +1 -0
  281. package/dist/features/ai/sidebar-flow.d.ts +61 -0
  282. package/dist/features/ai/sidebar-flow.js +125 -0
  283. package/dist/features/ai/sidebar-flow.js.map +1 -0
  284. package/dist/features/ai/use-ai-assistant.d.ts +22 -0
  285. package/dist/features/ai/use-ai-assistant.js +39 -0
  286. package/dist/features/ai/use-ai-assistant.js.map +1 -0
  287. package/dist/features/ai/use-document-chat.d.ts +33 -0
  288. package/dist/features/ai/use-document-chat.js +45 -0
  289. package/dist/features/ai/use-document-chat.js.map +1 -0
  290. package/dist/features/ai/use-model-profiles.d.ts +23 -0
  291. package/dist/features/ai/use-model-profiles.js +50 -0
  292. package/dist/features/ai/use-model-profiles.js.map +1 -0
  293. package/dist/features/ai/vue.d.ts +21 -0
  294. package/dist/features/ai/vue.js +28 -0
  295. package/dist/features/ai/vue.js.map +1 -0
  296. package/dist/features/authors/attribution.d.ts +36 -0
  297. package/dist/features/authors/attribution.js +94 -0
  298. package/dist/features/authors/attribution.js.map +1 -0
  299. package/dist/features/authors/author-color-styles.d.ts +12 -0
  300. package/dist/features/authors/author-color-styles.js +24 -0
  301. package/dist/features/authors/author-color-styles.js.map +1 -0
  302. package/dist/features/authors/components/AuthorColorsButton.js +50 -0
  303. package/dist/features/authors/components/AuthorColorsButton.js.map +1 -0
  304. package/dist/features/authors/components/AuthorColorsButton.vue.d.ts +11 -0
  305. package/dist/features/authors/components/AuthorColorsPanel.js +72 -0
  306. package/dist/features/authors/components/AuthorColorsPanel.js.map +1 -0
  307. package/dist/features/authors/components/AuthorColorsPanel.vue.d.ts +11 -0
  308. package/dist/features/authors/components/SettingsAuthorsTab.js +49 -0
  309. package/dist/features/authors/components/SettingsAuthorsTab.js.map +1 -0
  310. package/dist/features/authors/components/SettingsAuthorsTab.vue.d.ts +6 -0
  311. package/dist/features/authors/feature.d.ts +22 -0
  312. package/dist/features/authors/feature.js +47 -0
  313. package/dist/features/authors/feature.js.map +1 -0
  314. package/dist/features/authors/index.d.ts +7 -0
  315. package/dist/features/authors/index.js +6 -0
  316. package/dist/features/authors/react/AuthorColorsButton.d.ts +8 -0
  317. package/dist/features/authors/react/AuthorColorsButton.js +41 -0
  318. package/dist/features/authors/react/AuthorColorsButton.js.map +1 -0
  319. package/dist/features/authors/react/AuthorColorsPanel.d.ts +8 -0
  320. package/dist/features/authors/react/AuthorColorsPanel.js +125 -0
  321. package/dist/features/authors/react/AuthorColorsPanel.js.map +1 -0
  322. package/dist/features/authors/react/SettingsAuthorsTab.d.ts +5 -0
  323. package/dist/features/authors/react/SettingsAuthorsTab.js +92 -0
  324. package/dist/features/authors/react/SettingsAuthorsTab.js.map +1 -0
  325. package/dist/features/authors/react.d.ts +11 -0
  326. package/dist/features/authors/react.js +16 -0
  327. package/dist/features/authors/react.js.map +1 -0
  328. package/dist/features/authors/schema.d.ts +22 -0
  329. package/dist/features/authors/schema.js +70 -0
  330. package/dist/features/authors/schema.js.map +1 -0
  331. package/dist/features/authors/vue.d.ts +10 -0
  332. package/dist/features/authors/vue.js +16 -0
  333. package/dist/features/authors/vue.js.map +1 -0
  334. package/dist/features/block-ui/block-actions.d.ts +17 -0
  335. package/dist/features/block-ui/block-actions.js +37 -0
  336. package/dist/features/block-ui/block-actions.js.map +1 -0
  337. package/dist/features/block-ui/components/BlockActionsOverlay.js +142 -0
  338. package/dist/features/block-ui/components/BlockActionsOverlay.js.map +1 -0
  339. package/dist/features/block-ui/components/BlockActionsOverlay.vue.d.ts +25 -0
  340. package/dist/features/block-ui/components/BlockHandles.js +113 -0
  341. package/dist/features/block-ui/components/BlockHandles.js.map +1 -0
  342. package/dist/features/block-ui/components/BlockUi.js +181 -0
  343. package/dist/features/block-ui/components/BlockUi.js.map +1 -0
  344. package/dist/features/block-ui/components/BlockUi.vue.d.ts +17 -0
  345. package/dist/features/block-ui/feature.d.ts +21 -0
  346. package/dist/features/block-ui/feature.js +23 -0
  347. package/dist/features/block-ui/feature.js.map +1 -0
  348. package/dist/features/block-ui/handle-geometry.js +52 -0
  349. package/dist/features/block-ui/handle-geometry.js.map +1 -0
  350. package/dist/features/block-ui/index.d.ts +3 -0
  351. package/dist/features/block-ui/index.js +3 -0
  352. package/dist/features/block-ui/react/BlockActionsOverlay.d.ts +19 -0
  353. package/dist/features/block-ui/react/BlockActionsOverlay.js +142 -0
  354. package/dist/features/block-ui/react/BlockActionsOverlay.js.map +1 -0
  355. package/dist/features/block-ui/react/BlockHandles.d.ts +15 -0
  356. package/dist/features/block-ui/react/BlockHandles.js +104 -0
  357. package/dist/features/block-ui/react/BlockHandles.js.map +1 -0
  358. package/dist/features/block-ui/react/BlockUi.d.ts +14 -0
  359. package/dist/features/block-ui/react/BlockUi.js +174 -0
  360. package/dist/features/block-ui/react/BlockUi.js.map +1 -0
  361. package/dist/features/block-ui/react.d.ts +11 -0
  362. package/dist/features/block-ui/react.js +13 -0
  363. package/dist/features/block-ui/react.js.map +1 -0
  364. package/dist/features/block-ui/vue.d.ts +9 -0
  365. package/dist/features/block-ui/vue.js +12 -0
  366. package/dist/features/block-ui/vue.js.map +1 -0
  367. package/dist/features/collab/anchor-resolver.d.ts +7 -0
  368. package/dist/features/collab/anchor-resolver.js +92 -0
  369. package/dist/features/collab/anchor-resolver.js.map +1 -0
  370. package/dist/features/collab/feature.d.ts +22 -0
  371. package/dist/features/collab/feature.js +36 -0
  372. package/dist/features/collab/feature.js.map +1 -0
  373. package/dist/features/collab/index.d.ts +3 -0
  374. package/dist/features/collab/index.js +3 -0
  375. package/dist/features/collab/react.d.ts +7 -0
  376. package/dist/features/collab/react.js +10 -0
  377. package/dist/features/collab/react.js.map +1 -0
  378. package/dist/features/collab/vue.d.ts +6 -0
  379. package/dist/features/collab/vue.js +37 -0
  380. package/dist/features/collab/vue.js.map +1 -0
  381. package/dist/features/comments/comments-plugin.d.ts +71 -0
  382. package/dist/features/comments/comments-plugin.js +185 -0
  383. package/dist/features/comments/comments-plugin.js.map +1 -0
  384. package/dist/features/comments/components/CommentBubble.js +54 -0
  385. package/dist/features/comments/components/CommentBubble.js.map +1 -0
  386. package/dist/features/comments/components/CommentBubble.vue.d.ts +14 -0
  387. package/dist/features/comments/components/CommentComposer.js +87 -0
  388. package/dist/features/comments/components/CommentComposer.js.map +1 -0
  389. package/dist/features/comments/components/CommentComposer.vue.d.ts +21 -0
  390. package/dist/features/comments/components/CommentThreadView.js +255 -0
  391. package/dist/features/comments/components/CommentThreadView.js.map +1 -0
  392. package/dist/features/comments/components/CommentThreadView.vue.d.ts +29 -0
  393. package/dist/features/comments/components/CommentsListMenu.js +134 -0
  394. package/dist/features/comments/components/CommentsListMenu.js.map +1 -0
  395. package/dist/features/comments/components/CommentsListMenu.vue.d.ts +10 -0
  396. package/dist/features/comments/components/CommentsMargin.js +291 -0
  397. package/dist/features/comments/components/CommentsMargin.js.map +1 -0
  398. package/dist/features/comments/components/CommentsMargin.vue.d.ts +16 -0
  399. package/dist/features/comments/components/CommentsOverlay.js +39 -0
  400. package/dist/features/comments/components/CommentsOverlay.js.map +1 -0
  401. package/dist/features/comments/components/CommentsPopover.js +124 -0
  402. package/dist/features/comments/components/CommentsPopover.js.map +1 -0
  403. package/dist/features/comments/components/CommentsPopover.vue.d.ts +10 -0
  404. package/dist/features/comments/components/CommentsToolbarButton.js +61 -0
  405. package/dist/features/comments/components/CommentsToolbarButton.js.map +1 -0
  406. package/dist/features/comments/components/SettingsCommentsTab.js +46 -0
  407. package/dist/features/comments/components/SettingsCommentsTab.js.map +1 -0
  408. package/dist/features/comments/components/SettingsCommentsTab.vue.d.ts +6 -0
  409. package/dist/features/comments/feature.d.ts +39 -0
  410. package/dist/features/comments/feature.js +128 -0
  411. package/dist/features/comments/feature.js.map +1 -0
  412. package/dist/features/comments/index.d.ts +6 -0
  413. package/dist/features/comments/index.js +6 -0
  414. package/dist/features/comments/model.d.ts +87 -0
  415. package/dist/features/comments/model.js +390 -0
  416. package/dist/features/comments/model.js.map +1 -0
  417. package/dist/features/comments/react/CommentAvatar.js +24 -0
  418. package/dist/features/comments/react/CommentAvatar.js.map +1 -0
  419. package/dist/features/comments/react/CommentBubble.d.ts +11 -0
  420. package/dist/features/comments/react/CommentBubble.js +43 -0
  421. package/dist/features/comments/react/CommentBubble.js.map +1 -0
  422. package/dist/features/comments/react/CommentComposer.d.ts +15 -0
  423. package/dist/features/comments/react/CommentComposer.js +69 -0
  424. package/dist/features/comments/react/CommentComposer.js.map +1 -0
  425. package/dist/features/comments/react/CommentThreadView.d.ts +24 -0
  426. package/dist/features/comments/react/CommentThreadView.js +249 -0
  427. package/dist/features/comments/react/CommentThreadView.js.map +1 -0
  428. package/dist/features/comments/react/CommentsListMenu.d.ts +8 -0
  429. package/dist/features/comments/react/CommentsListMenu.js +115 -0
  430. package/dist/features/comments/react/CommentsListMenu.js.map +1 -0
  431. package/dist/features/comments/react/CommentsMargin.d.ts +16 -0
  432. package/dist/features/comments/react/CommentsMargin.js +294 -0
  433. package/dist/features/comments/react/CommentsMargin.js.map +1 -0
  434. package/dist/features/comments/react/CommentsOverlay.d.ts +11 -0
  435. package/dist/features/comments/react/CommentsOverlay.js +52 -0
  436. package/dist/features/comments/react/CommentsOverlay.js.map +1 -0
  437. package/dist/features/comments/react/CommentsPopover.d.ts +15 -0
  438. package/dist/features/comments/react/CommentsPopover.js +107 -0
  439. package/dist/features/comments/react/CommentsPopover.js.map +1 -0
  440. package/dist/features/comments/react/CommentsToolbarButton.d.ts +12 -0
  441. package/dist/features/comments/react/CommentsToolbarButton.js +52 -0
  442. package/dist/features/comments/react/CommentsToolbarButton.js.map +1 -0
  443. package/dist/features/comments/react/SettingsCommentsTab.d.ts +5 -0
  444. package/dist/features/comments/react/SettingsCommentsTab.js +77 -0
  445. package/dist/features/comments/react/SettingsCommentsTab.js.map +1 -0
  446. package/dist/features/comments/react/use-comments.d.ts +17 -0
  447. package/dist/features/comments/react/use-comments.js +37 -0
  448. package/dist/features/comments/react/use-comments.js.map +1 -0
  449. package/dist/features/comments/react.d.ts +23 -0
  450. package/dist/features/comments/react.js +28 -0
  451. package/dist/features/comments/react.js.map +1 -0
  452. package/dist/features/comments/schema.d.ts +51 -0
  453. package/dist/features/comments/schema.js +41 -0
  454. package/dist/features/comments/schema.js.map +1 -0
  455. package/dist/features/comments/shortcuts.js +34 -0
  456. package/dist/features/comments/shortcuts.js.map +1 -0
  457. package/dist/features/comments/use-comments.d.ts +37 -0
  458. package/dist/features/comments/use-comments.js +45 -0
  459. package/dist/features/comments/use-comments.js.map +1 -0
  460. package/dist/features/comments/vue.d.ts +20 -0
  461. package/dist/features/comments/vue.js +28 -0
  462. package/dist/features/comments/vue.js.map +1 -0
  463. package/dist/features/composites/ai-brief.d.ts +31 -0
  464. package/dist/features/composites/ai-brief.js +56 -0
  465. package/dist/features/composites/ai-brief.js.map +1 -0
  466. package/dist/features/composites/anchors.d.ts +47 -0
  467. package/dist/features/composites/anchors.js +137 -0
  468. package/dist/features/composites/anchors.js.map +1 -0
  469. package/dist/features/composites/components/CompositeChrome.js +243 -0
  470. package/dist/features/composites/components/CompositeChrome.js.map +1 -0
  471. package/dist/features/composites/components/CompositeChrome.vue.d.ts +19 -0
  472. package/dist/features/composites/components/CompositeDetails.js +158 -0
  473. package/dist/features/composites/components/CompositeDetails.js.map +1 -0
  474. package/dist/features/composites/components/CompositeDetails.vue.d.ts +19 -0
  475. package/dist/features/composites/components/CompositeFieldEditor.js +114 -0
  476. package/dist/features/composites/components/CompositeFieldEditor.js.map +1 -0
  477. package/dist/features/composites/components/CompositeFieldEditor.vue.d.ts +23 -0
  478. package/dist/features/composites/components/CompositeInspector.js +439 -0
  479. package/dist/features/composites/components/CompositeInspector.js.map +1 -0
  480. package/dist/features/composites/components/CompositeInspector.vue.d.ts +32 -0
  481. package/dist/features/composites/components/CompositeStatusMenu.js +51 -0
  482. package/dist/features/composites/components/CompositeStatusMenu.js.map +1 -0
  483. package/dist/features/composites/components/CompositeStatusMenu.vue.d.ts +28 -0
  484. package/dist/features/composites/components/CompositeSummaryEditor.js +79 -0
  485. package/dist/features/composites/components/CompositeSummaryEditor.js.map +1 -0
  486. package/dist/features/composites/components/CompositeSummaryEditor.vue.d.ts +18 -0
  487. package/dist/features/composites/components/CompositeTable.js +348 -0
  488. package/dist/features/composites/components/CompositeTable.js.map +1 -0
  489. package/dist/features/composites/components/CompositeTable.vue.d.ts +15 -0
  490. package/dist/features/composites/components/CompositeTagsEditor.js +95 -0
  491. package/dist/features/composites/components/CompositeTagsEditor.js.map +1 -0
  492. package/dist/features/composites/components/CompositeTagsEditor.vue.d.ts +13 -0
  493. package/dist/features/composites/components/CompositeView.js +46 -0
  494. package/dist/features/composites/components/CompositeView.js.map +1 -0
  495. package/dist/features/composites/components/CompositeView.vue.d.ts +96 -0
  496. package/dist/features/composites/components/SettingsEditingTab.js +119 -0
  497. package/dist/features/composites/components/SettingsEditingTab.js.map +1 -0
  498. package/dist/features/composites/components/SettingsEditingTab.vue.d.ts +11 -0
  499. package/dist/features/composites/convert.d.ts +24 -0
  500. package/dist/features/composites/convert.js +145 -0
  501. package/dist/features/composites/convert.js.map +1 -0
  502. package/dist/features/composites/editing-settings-keys.js +47 -0
  503. package/dist/features/composites/editing-settings-keys.js.map +1 -0
  504. package/dist/features/composites/feature.d.ts +30 -0
  505. package/dist/features/composites/feature.js +305 -0
  506. package/dist/features/composites/feature.js.map +1 -0
  507. package/dist/features/composites/fences.d.ts +20 -0
  508. package/dist/features/composites/fences.js +86 -0
  509. package/dist/features/composites/fences.js.map +1 -0
  510. package/dist/features/composites/heading-composites.d.ts +36 -0
  511. package/dist/features/composites/heading-composites.js +140 -0
  512. package/dist/features/composites/heading-composites.js.map +1 -0
  513. package/dist/features/composites/index.d.ts +20 -0
  514. package/dist/features/composites/index.js +20 -0
  515. package/dist/features/composites/kinds.d.ts +49 -0
  516. package/dist/features/composites/kinds.js +131 -0
  517. package/dist/features/composites/kinds.js.map +1 -0
  518. package/dist/features/composites/legacy.d.ts +8 -0
  519. package/dist/features/composites/legacy.js +25 -0
  520. package/dist/features/composites/legacy.js.map +1 -0
  521. package/dist/features/composites/markdown-export.d.ts +17 -0
  522. package/dist/features/composites/markdown-export.js +49 -0
  523. package/dist/features/composites/markdown-export.js.map +1 -0
  524. package/dist/features/composites/meta-display.js +46 -0
  525. package/dist/features/composites/meta-display.js.map +1 -0
  526. package/dist/features/composites/node-views.d.ts +17 -0
  527. package/dist/features/composites/node-views.js +18 -0
  528. package/dist/features/composites/node-views.js.map +1 -0
  529. package/dist/features/composites/nodes.d.ts +56 -0
  530. package/dist/features/composites/nodes.js +480 -0
  531. package/dist/features/composites/nodes.js.map +1 -0
  532. package/dist/features/composites/outline.d.ts +35 -0
  533. package/dist/features/composites/outline.js +69 -0
  534. package/dist/features/composites/outline.js.map +1 -0
  535. package/dist/features/composites/react/CompositeChrome.d.ts +16 -0
  536. package/dist/features/composites/react/CompositeChrome.js +234 -0
  537. package/dist/features/composites/react/CompositeChrome.js.map +1 -0
  538. package/dist/features/composites/react/CompositeDetails.d.ts +16 -0
  539. package/dist/features/composites/react/CompositeDetails.js +149 -0
  540. package/dist/features/composites/react/CompositeDetails.js.map +1 -0
  541. package/dist/features/composites/react/CompositeFieldEditor.d.ts +18 -0
  542. package/dist/features/composites/react/CompositeFieldEditor.js +131 -0
  543. package/dist/features/composites/react/CompositeFieldEditor.js.map +1 -0
  544. package/dist/features/composites/react/CompositeInspector.d.ts +23 -0
  545. package/dist/features/composites/react/CompositeInspector.js +506 -0
  546. package/dist/features/composites/react/CompositeInspector.js.map +1 -0
  547. package/dist/features/composites/react/CompositeStatusMenu.d.ts +15 -0
  548. package/dist/features/composites/react/CompositeStatusMenu.js +36 -0
  549. package/dist/features/composites/react/CompositeStatusMenu.js.map +1 -0
  550. package/dist/features/composites/react/CompositeSummaryEditor.d.ts +15 -0
  551. package/dist/features/composites/react/CompositeSummaryEditor.js +85 -0
  552. package/dist/features/composites/react/CompositeSummaryEditor.js.map +1 -0
  553. package/dist/features/composites/react/CompositeTable.d.ts +11 -0
  554. package/dist/features/composites/react/CompositeTable.js +342 -0
  555. package/dist/features/composites/react/CompositeTable.js.map +1 -0
  556. package/dist/features/composites/react/CompositeTagsEditor.d.ts +10 -0
  557. package/dist/features/composites/react/CompositeTagsEditor.js +122 -0
  558. package/dist/features/composites/react/CompositeTagsEditor.js.map +1 -0
  559. package/dist/features/composites/react/CompositeView.d.ts +6 -0
  560. package/dist/features/composites/react/CompositeView.js +30 -0
  561. package/dist/features/composites/react/CompositeView.js.map +1 -0
  562. package/dist/features/composites/react/SettingsEditingTab.d.ts +8 -0
  563. package/dist/features/composites/react/SettingsEditingTab.js +153 -0
  564. package/dist/features/composites/react/SettingsEditingTab.js.map +1 -0
  565. package/dist/features/composites/react/use-composite-anchors.d.ts +17 -0
  566. package/dist/features/composites/react/use-composite-anchors.js +46 -0
  567. package/dist/features/composites/react/use-composite-anchors.js.map +1 -0
  568. package/dist/features/composites/react/use-composite-rows.d.ts +11 -0
  569. package/dist/features/composites/react/use-composite-rows.js +26 -0
  570. package/dist/features/composites/react/use-composite-rows.js.map +1 -0
  571. package/dist/features/composites/react.d.ts +24 -0
  572. package/dist/features/composites/react.js +30 -0
  573. package/dist/features/composites/react.js.map +1 -0
  574. package/dist/features/composites/rows-model.d.ts +38 -0
  575. package/dist/features/composites/rows-model.js +92 -0
  576. package/dist/features/composites/rows-model.js.map +1 -0
  577. package/dist/features/composites/rows.d.ts +76 -0
  578. package/dist/features/composites/rows.js +159 -0
  579. package/dist/features/composites/rows.js.map +1 -0
  580. package/dist/features/composites/schema.d.ts +21 -0
  581. package/dist/features/composites/schema.js +26 -0
  582. package/dist/features/composites/schema.js.map +1 -0
  583. package/dist/features/composites/structure-mode.d.ts +11 -0
  584. package/dist/features/composites/structure-mode.js +16 -0
  585. package/dist/features/composites/structure-mode.js.map +1 -0
  586. package/dist/features/composites/structure.d.ts +19 -0
  587. package/dist/features/composites/structure.js +19 -0
  588. package/dist/features/composites/structure.js.map +1 -0
  589. package/dist/features/composites/table-model.js +117 -0
  590. package/dist/features/composites/table-model.js.map +1 -0
  591. package/dist/features/composites/tree-root.d.ts +11 -0
  592. package/dist/features/composites/tree-root.js +16 -0
  593. package/dist/features/composites/tree-root.js.map +1 -0
  594. package/dist/features/composites/use-composite-anchors.d.ts +18 -0
  595. package/dist/features/composites/use-composite-anchors.js +42 -0
  596. package/dist/features/composites/use-composite-anchors.js.map +1 -0
  597. package/dist/features/composites/use-composite-rows.d.ts +25 -0
  598. package/dist/features/composites/use-composite-rows.js +28 -0
  599. package/dist/features/composites/use-composite-rows.js.map +1 -0
  600. package/dist/features/composites/vue.d.ts +23 -0
  601. package/dist/features/composites/vue.js +30 -0
  602. package/dist/features/composites/vue.js.map +1 -0
  603. package/dist/features/media/assets.d.ts +30 -0
  604. package/dist/features/media/assets.js +26 -0
  605. package/dist/features/media/assets.js.map +1 -0
  606. package/dist/features/media/audio-recorder.d.ts +25 -0
  607. package/dist/features/media/audio-recorder.js +123 -0
  608. package/dist/features/media/audio-recorder.js.map +1 -0
  609. package/dist/features/media/components/AudioRecorderModal.js +152 -0
  610. package/dist/features/media/components/AudioRecorderModal.js.map +1 -0
  611. package/dist/features/media/components/AudioRecorderModal.vue.d.ts +15 -0
  612. package/dist/features/media/components/AudioView.js +46 -0
  613. package/dist/features/media/components/AudioView.js.map +1 -0
  614. package/dist/features/media/components/FileView.js +73 -0
  615. package/dist/features/media/components/FileView.js.map +1 -0
  616. package/dist/features/media/components/VideoView.js +47 -0
  617. package/dist/features/media/components/VideoView.js.map +1 -0
  618. package/dist/features/media/feature.d.ts +22 -0
  619. package/dist/features/media/feature.js +101 -0
  620. package/dist/features/media/feature.js.map +1 -0
  621. package/dist/features/media/file-import.d.ts +21 -0
  622. package/dist/features/media/file-import.js +76 -0
  623. package/dist/features/media/file-import.js.map +1 -0
  624. package/dist/features/media/index.d.ts +7 -0
  625. package/dist/features/media/index.js +7 -0
  626. package/dist/features/media/node-views.d.ts +28 -0
  627. package/dist/features/media/node-views.js +28 -0
  628. package/dist/features/media/node-views.js.map +1 -0
  629. package/dist/features/media/react/AudioRecorderModal.d.ts +12 -0
  630. package/dist/features/media/react/AudioRecorderModal.js +147 -0
  631. package/dist/features/media/react/AudioRecorderModal.js.map +1 -0
  632. package/dist/features/media/react/AudioView.js +32 -0
  633. package/dist/features/media/react/AudioView.js.map +1 -0
  634. package/dist/features/media/react/FileView.js +61 -0
  635. package/dist/features/media/react/FileView.js.map +1 -0
  636. package/dist/features/media/react/TitleField.js +30 -0
  637. package/dist/features/media/react/TitleField.js.map +1 -0
  638. package/dist/features/media/react/VideoView.js +33 -0
  639. package/dist/features/media/react/VideoView.js.map +1 -0
  640. package/dist/features/media/react/use-audio-recorder.d.ts +11 -0
  641. package/dist/features/media/react/use-audio-recorder.js +21 -0
  642. package/dist/features/media/react/use-audio-recorder.js.map +1 -0
  643. package/dist/features/media/react.d.ts +19 -0
  644. package/dist/features/media/react.js +37 -0
  645. package/dist/features/media/react.js.map +1 -0
  646. package/dist/features/media/schema.d.ts +59 -0
  647. package/dist/features/media/schema.js +194 -0
  648. package/dist/features/media/schema.js.map +1 -0
  649. package/dist/features/media/upload.d.ts +41 -0
  650. package/dist/features/media/upload.js +106 -0
  651. package/dist/features/media/upload.js.map +1 -0
  652. package/dist/features/media/use-audio-recorder.d.ts +12 -0
  653. package/dist/features/media/use-audio-recorder.js +21 -0
  654. package/dist/features/media/use-audio-recorder.js.map +1 -0
  655. package/dist/features/media/vue.d.ts +19 -0
  656. package/dist/features/media/vue.js +35 -0
  657. package/dist/features/media/vue.js.map +1 -0
  658. package/dist/features/mentions/index.d.ts +22 -0
  659. package/dist/features/mentions/index.js +34 -0
  660. package/dist/features/mentions/index.js.map +1 -0
  661. package/dist/features/mentions/mention-suggestion.d.ts +11 -0
  662. package/dist/features/mentions/mention-suggestion.js +34 -0
  663. package/dist/features/mentions/mention-suggestion.js.map +1 -0
  664. package/dist/features/mentions/mention-text.d.ts +18 -0
  665. package/dist/features/mentions/mention-text.js +75 -0
  666. package/dist/features/mentions/mention-text.js.map +1 -0
  667. package/dist/features/mentions/mention.d.ts +20 -0
  668. package/dist/features/mentions/mention.js +33 -0
  669. package/dist/features/mentions/mention.js.map +1 -0
  670. package/dist/features/mentions/metadata-defaults.d.ts +8 -0
  671. package/dist/features/mentions/metadata-defaults.js +30 -0
  672. package/dist/features/mentions/metadata-defaults.js.map +1 -0
  673. package/dist/features/mentions/normalize.d.ts +10 -0
  674. package/dist/features/mentions/normalize.js +31 -0
  675. package/dist/features/mentions/normalize.js.map +1 -0
  676. package/dist/features/mentions/schema.d.ts +10 -0
  677. package/dist/features/mentions/schema.js +10 -0
  678. package/dist/features/mentions/schema.js.map +1 -0
  679. package/dist/features/mentions/tag-suggestion.d.ts +11 -0
  680. package/dist/features/mentions/tag-suggestion.js +45 -0
  681. package/dist/features/mentions/tag-suggestion.js.map +1 -0
  682. package/dist/features/mentions/tag.d.ts +43 -0
  683. package/dist/features/mentions/tag.js +155 -0
  684. package/dist/features/mentions/tag.js.map +1 -0
  685. package/dist/features/tables/feature.d.ts +14 -0
  686. package/dist/features/tables/feature.js +100 -0
  687. package/dist/features/tables/feature.js.map +1 -0
  688. package/dist/features/tables/index.d.ts +3 -0
  689. package/dist/features/tables/index.js +3 -0
  690. package/dist/features/tables/schema.d.ts +6 -0
  691. package/dist/features/tables/schema.js +27 -0
  692. package/dist/features/tables/schema.js.map +1 -0
  693. package/dist/features/themes/components/SettingsAppearanceTab.js +227 -0
  694. package/dist/features/themes/components/SettingsAppearanceTab.js.map +1 -0
  695. package/dist/features/themes/components/SettingsAppearanceTab.vue.d.ts +6 -0
  696. package/dist/features/themes/feature.d.ts +24 -0
  697. package/dist/features/themes/feature.js +25 -0
  698. package/dist/features/themes/feature.js.map +1 -0
  699. package/dist/features/themes/index.d.ts +6 -0
  700. package/dist/features/themes/index.js +6 -0
  701. package/dist/features/themes/react/SettingsAppearanceTab.d.ts +5 -0
  702. package/dist/features/themes/react/SettingsAppearanceTab.js +221 -0
  703. package/dist/features/themes/react/SettingsAppearanceTab.js.map +1 -0
  704. package/dist/features/themes/react.d.ts +13 -0
  705. package/dist/features/themes/react.js +15 -0
  706. package/dist/features/themes/react.js.map +1 -0
  707. package/dist/features/themes/schema.d.ts +21 -0
  708. package/dist/features/themes/schema.js +16 -0
  709. package/dist/features/themes/schema.js.map +1 -0
  710. package/dist/features/themes/scope-css.d.ts +5 -0
  711. package/dist/features/themes/scope-css.js +142 -0
  712. package/dist/features/themes/scope-css.js.map +1 -0
  713. package/dist/features/themes/theme-runtime.d.ts +14 -0
  714. package/dist/features/themes/theme-runtime.js +147 -0
  715. package/dist/features/themes/theme-runtime.js.map +1 -0
  716. package/dist/features/themes/vue.d.ts +13 -0
  717. package/dist/features/themes/vue.js +29 -0
  718. package/dist/features/themes/vue.js.map +1 -0
  719. package/dist/features/transcript/TranscriptSegmentView.js +169 -0
  720. package/dist/features/transcript/TranscriptSegmentView.js.map +1 -0
  721. package/dist/features/transcript/TranscriptSegmentView.vue.d.ts +96 -0
  722. package/dist/features/transcript/convert.d.ts +11 -0
  723. package/dist/features/transcript/convert.js +40 -0
  724. package/dist/features/transcript/convert.js.map +1 -0
  725. package/dist/features/transcript/feature.d.ts +25 -0
  726. package/dist/features/transcript/feature.js +59 -0
  727. package/dist/features/transcript/feature.js.map +1 -0
  728. package/dist/features/transcript/index.d.ts +7 -0
  729. package/dist/features/transcript/index.js +7 -0
  730. package/dist/features/transcript/react/TranscriptSegmentView.d.ts +6 -0
  731. package/dist/features/transcript/react/TranscriptSegmentView.js +155 -0
  732. package/dist/features/transcript/react/TranscriptSegmentView.js.map +1 -0
  733. package/dist/features/transcript/react.d.ts +9 -0
  734. package/dist/features/transcript/react.js +12 -0
  735. package/dist/features/transcript/react.js.map +1 -0
  736. package/dist/features/transcript/schema.d.ts +9 -0
  737. package/dist/features/transcript/schema.js +9 -0
  738. package/dist/features/transcript/schema.js.map +1 -0
  739. package/dist/features/transcript/segment-node.d.ts +21 -0
  740. package/dist/features/transcript/segment-node.js +113 -0
  741. package/dist/features/transcript/segment-node.js.map +1 -0
  742. package/dist/features/transcript/segment.d.ts +10 -0
  743. package/dist/features/transcript/segment.js +26 -0
  744. package/dist/features/transcript/segment.js.map +1 -0
  745. package/dist/features/transcript/speakers.d.ts +8 -0
  746. package/dist/features/transcript/speakers.js +22 -0
  747. package/dist/features/transcript/speakers.js.map +1 -0
  748. package/dist/features/transcript/vue.d.ts +8 -0
  749. package/dist/features/transcript/vue.js +12 -0
  750. package/dist/features/transcript/vue.js.map +1 -0
  751. package/dist/i18n/de/ai.js +168 -0
  752. package/dist/i18n/de/ai.js.map +1 -0
  753. package/dist/i18n/de/authors.js +21 -0
  754. package/dist/i18n/de/authors.js.map +1 -0
  755. package/dist/i18n/de/block.js +16 -0
  756. package/dist/i18n/de/block.js.map +1 -0
  757. package/dist/i18n/de/comments.js +35 -0
  758. package/dist/i18n/de/comments.js.map +1 -0
  759. package/dist/i18n/de/common.js +10 -0
  760. package/dist/i18n/de/common.js.map +1 -0
  761. package/dist/i18n/de/composites.js +147 -0
  762. package/dist/i18n/de/composites.js.map +1 -0
  763. package/dist/i18n/de/integrations.js +42 -0
  764. package/dist/i18n/de/integrations.js.map +1 -0
  765. package/dist/i18n/de/markdown.js +16 -0
  766. package/dist/i18n/de/markdown.js.map +1 -0
  767. package/dist/i18n/de/media.js +27 -0
  768. package/dist/i18n/de/media.js.map +1 -0
  769. package/dist/i18n/de/mentions.js +10 -0
  770. package/dist/i18n/de/mentions.js.map +1 -0
  771. package/dist/i18n/de/outline.js +9 -0
  772. package/dist/i18n/de/outline.js.map +1 -0
  773. package/dist/i18n/de/settings.js +12 -0
  774. package/dist/i18n/de/settings.js.map +1 -0
  775. package/dist/i18n/de/tables.js +15 -0
  776. package/dist/i18n/de/tables.js.map +1 -0
  777. package/dist/i18n/de/themes.js +26 -0
  778. package/dist/i18n/de/themes.js.map +1 -0
  779. package/dist/i18n/de/toolbar.js +22 -0
  780. package/dist/i18n/de/toolbar.js.map +1 -0
  781. package/dist/i18n/de/transcript.js +10 -0
  782. package/dist/i18n/de/transcript.js.map +1 -0
  783. package/dist/i18n/de/tree.js +31 -0
  784. package/dist/i18n/de/tree.js.map +1 -0
  785. package/dist/i18n/de.d.ts +502 -0
  786. package/dist/i18n/de.js +42 -0
  787. package/dist/i18n/de.js.map +1 -0
  788. package/dist/i18n/en/ai.js +168 -0
  789. package/dist/i18n/en/ai.js.map +1 -0
  790. package/dist/i18n/en/authors.js +21 -0
  791. package/dist/i18n/en/authors.js.map +1 -0
  792. package/dist/i18n/en/block.js +16 -0
  793. package/dist/i18n/en/block.js.map +1 -0
  794. package/dist/i18n/en/comments.js +35 -0
  795. package/dist/i18n/en/comments.js.map +1 -0
  796. package/dist/i18n/en/common.js +10 -0
  797. package/dist/i18n/en/common.js.map +1 -0
  798. package/dist/i18n/en/composites.js +145 -0
  799. package/dist/i18n/en/composites.js.map +1 -0
  800. package/dist/i18n/en/integrations.js +42 -0
  801. package/dist/i18n/en/integrations.js.map +1 -0
  802. package/dist/i18n/en/markdown.js +16 -0
  803. package/dist/i18n/en/markdown.js.map +1 -0
  804. package/dist/i18n/en/media.js +27 -0
  805. package/dist/i18n/en/media.js.map +1 -0
  806. package/dist/i18n/en/mentions.js +10 -0
  807. package/dist/i18n/en/mentions.js.map +1 -0
  808. package/dist/i18n/en/outline.js +9 -0
  809. package/dist/i18n/en/outline.js.map +1 -0
  810. package/dist/i18n/en/settings.js +12 -0
  811. package/dist/i18n/en/settings.js.map +1 -0
  812. package/dist/i18n/en/tables.js +15 -0
  813. package/dist/i18n/en/tables.js.map +1 -0
  814. package/dist/i18n/en/themes.js +26 -0
  815. package/dist/i18n/en/themes.js.map +1 -0
  816. package/dist/i18n/en/toolbar.js +22 -0
  817. package/dist/i18n/en/toolbar.js.map +1 -0
  818. package/dist/i18n/en/transcript.js +10 -0
  819. package/dist/i18n/en/transcript.js.map +1 -0
  820. package/dist/i18n/en/tree.js +31 -0
  821. package/dist/i18n/en/tree.js.map +1 -0
  822. package/dist/i18n/en.js +42 -0
  823. package/dist/i18n/en.js.map +1 -0
  824. package/dist/i18n/index.d.ts +24 -0
  825. package/dist/i18n/index.js +31 -0
  826. package/dist/i18n/index.js.map +1 -0
  827. package/dist/index.d.ts +6 -0
  828. package/dist/index.js +0 -0
  829. package/dist/integrations/composite-ai/composite-fill.d.ts +17 -0
  830. package/dist/integrations/composite-ai/composite-fill.js +129 -0
  831. package/dist/integrations/composite-ai/composite-fill.js.map +1 -0
  832. package/dist/integrations/composite-ai/composite-summary.d.ts +28 -0
  833. package/dist/integrations/composite-ai/composite-summary.js +143 -0
  834. package/dist/integrations/composite-ai/composite-summary.js.map +1 -0
  835. package/dist/integrations/composite-ai/document-transcribe.d.ts +14 -0
  836. package/dist/integrations/composite-ai/document-transcribe.js +89 -0
  837. package/dist/integrations/composite-ai/document-transcribe.js.map +1 -0
  838. package/dist/integrations/composite-ai/index.d.ts +22 -0
  839. package/dist/integrations/composite-ai/index.js +80 -0
  840. package/dist/integrations/composite-ai/index.js.map +1 -0
  841. package/dist/integrations/composite-media/index.d.ts +19 -0
  842. package/dist/integrations/composite-media/index.js +72 -0
  843. package/dist/integrations/composite-media/index.js.map +1 -0
  844. package/dist/integrations/transcript-ai/index.d.ts +16 -0
  845. package/dist/integrations/transcript-ai/index.js +63 -0
  846. package/dist/integrations/transcript-ai/index.js.map +1 -0
  847. package/dist/integrations/transcript-ai/protocol.d.ts +68 -0
  848. package/dist/integrations/transcript-ai/protocol.js +132 -0
  849. package/dist/integrations/transcript-ai/protocol.js.map +1 -0
  850. package/dist/integrations/transcript-ai/transcript-cleanup.d.ts +35 -0
  851. package/dist/integrations/transcript-ai/transcript-cleanup.js +169 -0
  852. package/dist/integrations/transcript-ai/transcript-cleanup.js.map +1 -0
  853. package/dist/markdown/MarkdownSurface.d.ts +25 -0
  854. package/dist/markdown/MarkdownSurface.js +93 -0
  855. package/dist/markdown/MarkdownSurface.js.map +1 -0
  856. package/dist/markdown/MarkdownSurface.vue.d.ts +76 -0
  857. package/dist/markdown/MarkdownSurface2.js +237 -0
  858. package/dist/markdown/MarkdownSurface2.js.map +1 -0
  859. package/dist/markdown/clipboard.d.ts +17 -0
  860. package/dist/markdown/clipboard.js +125 -0
  861. package/dist/markdown/clipboard.js.map +1 -0
  862. package/dist/markdown/document.d.ts +36 -0
  863. package/dist/markdown/document.js +100 -0
  864. package/dist/markdown/document.js.map +1 -0
  865. package/dist/markdown/frontmatter.d.ts +18 -0
  866. package/dist/markdown/frontmatter.js +32 -0
  867. package/dist/markdown/frontmatter.js.map +1 -0
  868. package/dist/markdown/index.d.ts +6 -0
  869. package/dist/markdown/index.js +6 -0
  870. package/dist/markdown/policy.d.ts +34 -0
  871. package/dist/markdown/policy.js +78 -0
  872. package/dist/markdown/policy.js.map +1 -0
  873. package/dist/markdown/react.d.ts +2 -0
  874. package/dist/markdown/react.js +1 -0
  875. package/dist/markdown/source-mode.d.ts +49 -0
  876. package/dist/markdown/source-mode.js +86 -0
  877. package/dist/markdown/source-mode.js.map +1 -0
  878. package/dist/markdown/vue.d.ts +2 -0
  879. package/dist/markdown/vue.js +1 -0
  880. package/dist/nuxt/module.d.ts +62 -0
  881. package/dist/nuxt/module.js +101 -0
  882. package/dist/nuxt/module.js.map +1 -0
  883. package/dist/nuxt/runtime/install-context.d.ts +16 -0
  884. package/dist/nuxt/runtime/install-context.js +25 -0
  885. package/dist/nuxt/runtime/install-context.js.map +1 -0
  886. package/dist/nuxt/runtime/plugins/editor-context-nuxt-ui.client.ts +8 -0
  887. package/dist/nuxt/runtime/server/api/ai/chat.post.d.ts +5 -0
  888. package/dist/nuxt/runtime/server/api/ai/chat.post.js +8 -0
  889. package/dist/nuxt/runtime/server/api/ai/chat.post.js.map +1 -0
  890. package/dist/nuxt/runtime/server/api/ai/complete.post.d.ts +5 -0
  891. package/dist/nuxt/runtime/server/api/ai/complete.post.js +8 -0
  892. package/dist/nuxt/runtime/server/api/ai/complete.post.js.map +1 -0
  893. package/dist/nuxt/runtime/server/api/ai/generate.post.d.ts +5 -0
  894. package/dist/nuxt/runtime/server/api/ai/generate.post.js +8 -0
  895. package/dist/nuxt/runtime/server/api/ai/generate.post.js.map +1 -0
  896. package/dist/nuxt/runtime/server/api/ai/models.get.d.ts +5 -0
  897. package/dist/nuxt/runtime/server/api/ai/models.get.js +8 -0
  898. package/dist/nuxt/runtime/server/api/ai/models.get.js.map +1 -0
  899. package/dist/nuxt/runtime/server/api/ai/transcribe.post.d.ts +5 -0
  900. package/dist/nuxt/runtime/server/api/ai/transcribe.post.js +8 -0
  901. package/dist/nuxt/runtime/server/api/ai/transcribe.post.js.map +1 -0
  902. package/dist/nuxt/runtime/server/api/ai/transcript-cleanup.post.d.ts +5 -0
  903. package/dist/nuxt/runtime/server/api/ai/transcript-cleanup.post.js +8 -0
  904. package/dist/nuxt/runtime/server/api/ai/transcript-cleanup.post.js.map +1 -0
  905. package/dist/nuxt/runtime/server/api/editor/assets/[id]/[name].get.d.ts +5 -0
  906. package/dist/nuxt/runtime/server/api/editor/assets/[id]/[name].get.js +8 -0
  907. package/dist/nuxt/runtime/server/api/editor/assets/[id]/[name].get.js.map +1 -0
  908. package/dist/nuxt/runtime/server/api/editor/assets/[id].post.d.ts +5 -0
  909. package/dist/nuxt/runtime/server/api/editor/assets/[id].post.js +8 -0
  910. package/dist/nuxt/runtime/server/api/editor/assets/[id].post.js.map +1 -0
  911. package/dist/nuxt/runtime/server/api/editor/settings.get.d.ts +5 -0
  912. package/dist/nuxt/runtime/server/api/editor/settings.get.js +8 -0
  913. package/dist/nuxt/runtime/server/api/editor/settings.get.js.map +1 -0
  914. package/dist/nuxt/runtime/server/api/editor/settings.put.d.ts +5 -0
  915. package/dist/nuxt/runtime/server/api/editor/settings.put.js +8 -0
  916. package/dist/nuxt/runtime/server/api/editor/settings.put.js.map +1 -0
  917. package/dist/nuxt/runtime/server/api/editor/tags.get.d.ts +5 -0
  918. package/dist/nuxt/runtime/server/api/editor/tags.get.js +8 -0
  919. package/dist/nuxt/runtime/server/api/editor/tags.get.js.map +1 -0
  920. package/dist/nuxt/runtime/server/api/editor/themes/[id].delete.d.ts +5 -0
  921. package/dist/nuxt/runtime/server/api/editor/themes/[id].delete.js +8 -0
  922. package/dist/nuxt/runtime/server/api/editor/themes/[id].delete.js.map +1 -0
  923. package/dist/nuxt/runtime/server/api/editor/themes/[id].get.d.ts +5 -0
  924. package/dist/nuxt/runtime/server/api/editor/themes/[id].get.js +8 -0
  925. package/dist/nuxt/runtime/server/api/editor/themes/[id].get.js.map +1 -0
  926. package/dist/nuxt/runtime/server/api/editor/themes/index.get.d.ts +5 -0
  927. package/dist/nuxt/runtime/server/api/editor/themes/index.get.js +8 -0
  928. package/dist/nuxt/runtime/server/api/editor/themes/index.get.js.map +1 -0
  929. package/dist/nuxt/runtime/server/api/editor/themes/index.post.d.ts +5 -0
  930. package/dist/nuxt/runtime/server/api/editor/themes/index.post.js +8 -0
  931. package/dist/nuxt/runtime/server/api/editor/themes/index.post.js.map +1 -0
  932. package/dist/nuxt/runtime/server/api/editor/users.get.d.ts +5 -0
  933. package/dist/nuxt/runtime/server/api/editor/users.get.js +8 -0
  934. package/dist/nuxt/runtime/server/api/editor/users.get.js.map +1 -0
  935. package/dist/nuxt/runtime/server/plugins/collab.d.ts +5 -0
  936. package/dist/nuxt/runtime/server/plugins/collab.js +10 -0
  937. package/dist/nuxt/runtime/server/plugins/collab.js.map +1 -0
  938. package/dist/nuxt/runtime/server/plugins/editor-server.d.ts +5 -0
  939. package/dist/nuxt/runtime/server/plugins/editor-server.js +20 -0
  940. package/dist/nuxt/runtime/server/plugins/editor-server.js.map +1 -0
  941. package/dist/nuxt/runtime/server/routes/collab/[id].d.ts +5 -0
  942. package/dist/nuxt/runtime/server/routes/collab/[id].js +35 -0
  943. package/dist/nuxt/runtime/server/routes/collab/[id].js.map +1 -0
  944. package/dist/nuxt/runtime/server/utils/editor-route.d.ts +11 -0
  945. package/dist/nuxt/runtime/server/utils/editor-route.js +49 -0
  946. package/dist/nuxt/runtime/server/utils/editor-route.js.map +1 -0
  947. package/dist/outline/EditorOutline.js +124 -0
  948. package/dist/outline/EditorOutline.js.map +1 -0
  949. package/dist/outline/EditorOutline.vue.d.ts +15 -0
  950. package/dist/outline/heading-outline.d.ts +26 -0
  951. package/dist/outline/heading-outline.js +46 -0
  952. package/dist/outline/heading-outline.js.map +1 -0
  953. package/dist/outline/index.d.ts +2 -0
  954. package/dist/outline/index.js +1 -0
  955. package/dist/outline/react/EditorOutline.d.ts +12 -0
  956. package/dist/outline/react/EditorOutline.js +112 -0
  957. package/dist/outline/react/EditorOutline.js.map +1 -0
  958. package/dist/outline/react.d.ts +2 -0
  959. package/dist/outline/react.js +1 -0
  960. package/dist/outline/vue.d.ts +2 -0
  961. package/dist/outline/vue.js +1 -0
  962. package/dist/presets/advanced.d.ts +33 -0
  963. package/dist/presets/advanced.js +50 -0
  964. package/dist/presets/advanced.js.map +1 -0
  965. package/dist/presets/simple.d.ts +9 -0
  966. package/dist/presets/simple.js +12 -0
  967. package/dist/presets/simple.js.map +1 -0
  968. package/dist/react/AdvancedEditor.d.ts +23 -0
  969. package/dist/react/AdvancedEditor.js +24 -0
  970. package/dist/react/AdvancedEditor.js.map +1 -0
  971. package/dist/react/EditorSettingsModal.d.ts +14 -0
  972. package/dist/react/EditorSettingsModal.js +40 -0
  973. package/dist/react/EditorSettingsModal.js.map +1 -0
  974. package/dist/react/EditorSettingsPanel.d.ts +18 -0
  975. package/dist/react/EditorSettingsPanel.js +40 -0
  976. package/dist/react/EditorSettingsPanel.js.map +1 -0
  977. package/dist/react/EditorSurface.d.ts +61 -0
  978. package/dist/react/EditorSurface.js +277 -0
  979. package/dist/react/EditorSurface.js.map +1 -0
  980. package/dist/react/EditorToolbar.d.ts +15 -0
  981. package/dist/react/EditorToolbar.js +182 -0
  982. package/dist/react/EditorToolbar.js.map +1 -0
  983. package/dist/react/Icon.d.ts +13 -0
  984. package/dist/react/Icon.js +19 -0
  985. package/dist/react/Icon.js.map +1 -0
  986. package/dist/react/SettingsSection.d.ts +10 -0
  987. package/dist/react/SettingsSection.js +22 -0
  988. package/dist/react/SettingsSection.js.map +1 -0
  989. package/dist/react/SimpleEditor.d.ts +27 -0
  990. package/dist/react/SimpleEditor.js +22 -0
  991. package/dist/react/SimpleEditor.js.map +1 -0
  992. package/dist/react/advanced-preset.d.ts +11 -0
  993. package/dist/react/advanced-preset.js +31 -0
  994. package/dist/react/advanced-preset.js.map +1 -0
  995. package/dist/react/advanced.d.ts +4 -0
  996. package/dist/react/advanced.js +3 -0
  997. package/dist/react/context.d.ts +12 -0
  998. package/dist/react/context.js +21 -0
  999. package/dist/react/context.js.map +1 -0
  1000. package/dist/react/editor-ui.d.ts +14 -0
  1001. package/dist/react/editor-ui.js +20 -0
  1002. package/dist/react/editor-ui.js.map +1 -0
  1003. package/dist/react/index.d.ts +17 -0
  1004. package/dist/react/index.js +17 -0
  1005. package/dist/react/notify.d.ts +6 -0
  1006. package/dist/react/notify.js +25 -0
  1007. package/dist/react/notify.js.map +1 -0
  1008. package/dist/react/settings.d.ts +17 -0
  1009. package/dist/react/settings.js +27 -0
  1010. package/dist/react/settings.js.map +1 -0
  1011. package/dist/react/simple.d.ts +2 -0
  1012. package/dist/react/simple.js +1 -0
  1013. package/dist/react/styles/advanced.css +18 -0
  1014. package/dist/react/styles/themes-bridge.css +26 -0
  1015. package/dist/react/styles/ui-vars.css +20 -0
  1016. package/dist/react/suggestion-renderer.d.ts +12 -0
  1017. package/dist/react/suggestion-renderer.js +90 -0
  1018. package/dist/react/suggestion-renderer.js.map +1 -0
  1019. package/dist/react/ui/alert.js +38 -0
  1020. package/dist/react/ui/alert.js.map +1 -0
  1021. package/dist/react/ui/avatar.js +24 -0
  1022. package/dist/react/ui/avatar.js.map +1 -0
  1023. package/dist/react/ui/badge.js +30 -0
  1024. package/dist/react/ui/badge.js.map +1 -0
  1025. package/dist/react/ui/button.js +50 -0
  1026. package/dist/react/ui/button.js.map +1 -0
  1027. package/dist/react/ui/collapsible.js +19 -0
  1028. package/dist/react/ui/collapsible.js.map +1 -0
  1029. package/dist/react/ui/command.js +47 -0
  1030. package/dist/react/ui/command.js.map +1 -0
  1031. package/dist/react/ui/dialog.js +88 -0
  1032. package/dist/react/ui/dialog.js.map +1 -0
  1033. package/dist/react/ui/dropdown-menu.js +70 -0
  1034. package/dist/react/ui/dropdown-menu.js.map +1 -0
  1035. package/dist/react/ui/input-group.js +57 -0
  1036. package/dist/react/ui/input-group.js.map +1 -0
  1037. package/dist/react/ui/input.js +16 -0
  1038. package/dist/react/ui/input.js.map +1 -0
  1039. package/dist/react/ui/label.js +17 -0
  1040. package/dist/react/ui/label.js.map +1 -0
  1041. package/dist/react/ui/popover.js +36 -0
  1042. package/dist/react/ui/popover.js.map +1 -0
  1043. package/dist/react/ui/radio-group.js +29 -0
  1044. package/dist/react/ui/radio-group.js.map +1 -0
  1045. package/dist/react/ui/select.js +88 -0
  1046. package/dist/react/ui/select.js.map +1 -0
  1047. package/dist/react/ui/separator.js +18 -0
  1048. package/dist/react/ui/separator.js.map +1 -0
  1049. package/dist/react/ui/switch.js +21 -0
  1050. package/dist/react/ui/switch.js.map +1 -0
  1051. package/dist/react/ui/table.js +44 -0
  1052. package/dist/react/ui/table.js.map +1 -0
  1053. package/dist/react/ui/tabs.js +41 -0
  1054. package/dist/react/ui/tabs.js.map +1 -0
  1055. package/dist/react/ui/textarea.js +15 -0
  1056. package/dist/react/ui/textarea.js.map +1 -0
  1057. package/dist/react/ui/tooltip.js +37 -0
  1058. package/dist/react/ui/tooltip.js.map +1 -0
  1059. package/dist/react/ui/utils.d.ts +5 -0
  1060. package/dist/react/ui/utils.js +10 -0
  1061. package/dist/react/ui/utils.js.map +1 -0
  1062. package/dist/react/use-editor-i18n.d.ts +12 -0
  1063. package/dist/react/use-editor-i18n.js +17 -0
  1064. package/dist/react/use-editor-i18n.js.map +1 -0
  1065. package/dist/react/use-notifier.d.ts +11 -0
  1066. package/dist/react/use-notifier.js +25 -0
  1067. package/dist/react/use-notifier.js.map +1 -0
  1068. package/dist/react/use-store.d.ts +6 -0
  1069. package/dist/react/use-store.js +10 -0
  1070. package/dist/react/use-store.js.map +1 -0
  1071. package/dist/schema/advanced.d.ts +14 -0
  1072. package/dist/schema/advanced.js +43 -0
  1073. package/dist/schema/advanced.js.map +1 -0
  1074. package/dist/schema/simple.d.ts +10 -0
  1075. package/dist/schema/simple.js +13 -0
  1076. package/dist/schema/simple.js.map +1 -0
  1077. package/dist/server/adapter.d.ts +101 -0
  1078. package/dist/server/ai.d.ts +101 -0
  1079. package/dist/server/ai.js +105 -0
  1080. package/dist/server/ai.js.map +1 -0
  1081. package/dist/server/collab-state.d.ts +16 -0
  1082. package/dist/server/collab-state.js +43 -0
  1083. package/dist/server/collab-state.js.map +1 -0
  1084. package/dist/server/collab.d.ts +68 -0
  1085. package/dist/server/collab.js +187 -0
  1086. package/dist/server/collab.js.map +1 -0
  1087. package/dist/server/errors.d.ts +17 -0
  1088. package/dist/server/errors.js +26 -0
  1089. package/dist/server/errors.js.map +1 -0
  1090. package/dist/server/handlers/ai.d.ts +223 -0
  1091. package/dist/server/handlers/ai.js +422 -0
  1092. package/dist/server/handlers/ai.js.map +1 -0
  1093. package/dist/server/handlers/context.d.ts +64 -0
  1094. package/dist/server/handlers/context.js +85 -0
  1095. package/dist/server/handlers/context.js.map +1 -0
  1096. package/dist/server/handlers/editor.d.ts +107 -0
  1097. package/dist/server/handlers/editor.js +241 -0
  1098. package/dist/server/handlers/editor.js.map +1 -0
  1099. package/dist/server/handlers/index.d.ts +4 -0
  1100. package/dist/server/handlers/index.js +4 -0
  1101. package/dist/server/host.d.ts +61 -0
  1102. package/dist/server/host.js +105 -0
  1103. package/dist/server/host.js.map +1 -0
  1104. package/dist/server/index.d.ts +8 -0
  1105. package/dist/server/index.js +7 -0
  1106. package/dist/server/node.d.ts +24 -0
  1107. package/dist/server/node.js +54 -0
  1108. package/dist/server/node.js.map +1 -0
  1109. package/dist/server/rate-limit.d.ts +22 -0
  1110. package/dist/server/rate-limit.js +34 -0
  1111. package/dist/server/rate-limit.js.map +1 -0
  1112. package/dist/settings/index.d.ts +110 -0
  1113. package/dist/settings/index.js +114 -0
  1114. package/dist/settings/index.js.map +1 -0
  1115. package/dist/settings/values.d.ts +35 -0
  1116. package/dist/settings/values.js +41 -0
  1117. package/dist/settings/values.js.map +1 -0
  1118. package/dist/styles/ai.css +77 -0
  1119. package/dist/styles/authors.css +18 -0
  1120. package/dist/styles/block-ui.css +16 -0
  1121. package/dist/styles/collab.css +26 -0
  1122. package/dist/styles/comments.css +11 -0
  1123. package/dist/styles/composites.css +56 -0
  1124. package/dist/styles/core.css +99 -0
  1125. package/dist/styles/media.css +8 -0
  1126. package/dist/styles/mentions.css +24 -0
  1127. package/dist/styles/tables.css +25 -0
  1128. package/dist/styles/themes.css +622 -0
  1129. package/dist/styles/tokens.css +29 -0
  1130. package/dist/styles/transcript.css +13 -0
  1131. package/dist/tree/DocumentTree.js +595 -0
  1132. package/dist/tree/DocumentTree.js.map +1 -0
  1133. package/dist/tree/DocumentTree.vue.d.ts +36 -0
  1134. package/dist/tree/folder-paths.js +11 -0
  1135. package/dist/tree/folder-paths.js.map +1 -0
  1136. package/dist/tree/index.d.ts +4 -0
  1137. package/dist/tree/index.js +1 -0
  1138. package/dist/tree/react/DocumentTree.d.ts +24 -0
  1139. package/dist/tree/react/DocumentTree.js +579 -0
  1140. package/dist/tree/react/DocumentTree.js.map +1 -0
  1141. package/dist/tree/react/use-tree-view.d.ts +14 -0
  1142. package/dist/tree/react/use-tree-view.js +21 -0
  1143. package/dist/tree/react/use-tree-view.js.map +1 -0
  1144. package/dist/tree/react.d.ts +3 -0
  1145. package/dist/tree/react.js +3 -0
  1146. package/dist/tree/store.d.ts +45 -0
  1147. package/dist/tree/tree-items.js +221 -0
  1148. package/dist/tree/tree-items.js.map +1 -0
  1149. package/dist/tree/tree-view-model.d.ts +29 -0
  1150. package/dist/tree/tree-view-model.js +71 -0
  1151. package/dist/tree/tree-view-model.js.map +1 -0
  1152. package/dist/tree/tree-view.d.ts +15 -0
  1153. package/dist/tree/tree-view.js +21 -0
  1154. package/dist/tree/tree-view.js.map +1 -0
  1155. package/dist/tree/types.d.ts +23 -0
  1156. package/dist/tree/types.js +0 -0
  1157. package/dist/tree/vue.d.ts +3 -0
  1158. package/dist/tree/vue.js +3 -0
  1159. package/dist/vue/AdvancedEditor.js +100 -0
  1160. package/dist/vue/AdvancedEditor.js.map +1 -0
  1161. package/dist/vue/AdvancedEditor.vue.d.ts +71 -0
  1162. package/dist/vue/SimpleEditor.js +61 -0
  1163. package/dist/vue/SimpleEditor.js.map +1 -0
  1164. package/dist/vue/SimpleEditor.vue.d.ts +36 -0
  1165. package/dist/vue/advanced-preset.d.ts +13 -0
  1166. package/dist/vue/advanced-preset.js +33 -0
  1167. package/dist/vue/advanced-preset.js.map +1 -0
  1168. package/dist/vue/advanced.d.ts +3 -0
  1169. package/dist/vue/advanced.js +3 -0
  1170. package/dist/vue/components/EditorSettingsModal.js +69 -0
  1171. package/dist/vue/components/EditorSettingsModal.js.map +1 -0
  1172. package/dist/vue/components/EditorSettingsModal.vue.d.ts +24 -0
  1173. package/dist/vue/components/EditorSettingsPanel.js +58 -0
  1174. package/dist/vue/components/EditorSettingsPanel.js.map +1 -0
  1175. package/dist/vue/components/EditorSettingsPanel.vue.d.ts +29 -0
  1176. package/dist/vue/components/EditorSurface.js +229 -0
  1177. package/dist/vue/components/EditorSurface.js.map +1 -0
  1178. package/dist/vue/components/EditorSurface.vue.d.ts +68 -0
  1179. package/dist/vue/components/EditorToolbar.js +189 -0
  1180. package/dist/vue/components/EditorToolbar.js.map +1 -0
  1181. package/dist/vue/components/EditorToolbar.vue.d.ts +17 -0
  1182. package/dist/vue/components/SettingsSection.js +26 -0
  1183. package/dist/vue/components/SettingsSection.js.map +1 -0
  1184. package/dist/vue/components/SettingsSection.vue.d.ts +21 -0
  1185. package/dist/vue/components/SuggestionList.js +91 -0
  1186. package/dist/vue/components/SuggestionList.js.map +1 -0
  1187. package/dist/vue/components/SuggestionList.vue.d.ts +19 -0
  1188. package/dist/vue/context.d.ts +24 -0
  1189. package/dist/vue/context.js +42 -0
  1190. package/dist/vue/context.js.map +1 -0
  1191. package/dist/vue/index.d.ts +26 -0
  1192. package/dist/vue/index.js +16 -0
  1193. package/dist/vue/kit/index.d.ts +3 -0
  1194. package/dist/vue/kit/index.js +1 -0
  1195. package/dist/vue/kit/nuxt-ui.css +24 -0
  1196. package/dist/vue/kit/nuxt-ui.d.ts +31 -0
  1197. package/dist/vue/kit/nuxt-ui.js +101 -0
  1198. package/dist/vue/kit/nuxt-ui.js.map +1 -0
  1199. package/dist/vue/kit/types.d.ts +370 -0
  1200. package/dist/vue/kit/use-ui-kit.d.ts +12 -0
  1201. package/dist/vue/kit/use-ui-kit.js +17 -0
  1202. package/dist/vue/kit/use-ui-kit.js.map +1 -0
  1203. package/dist/vue/notify.d.ts +12 -0
  1204. package/dist/vue/notify.js +27 -0
  1205. package/dist/vue/notify.js.map +1 -0
  1206. package/dist/vue/settings.d.ts +16 -0
  1207. package/dist/vue/settings.js +64 -0
  1208. package/dist/vue/settings.js.map +1 -0
  1209. package/dist/vue/simple.d.ts +2 -0
  1210. package/dist/vue/simple.js +1 -0
  1211. package/dist/vue/store-ref.d.ts +20 -0
  1212. package/dist/vue/store-ref.js +59 -0
  1213. package/dist/vue/store-ref.js.map +1 -0
  1214. package/dist/vue/suggestion-renderer.d.ts +6 -0
  1215. package/dist/vue/suggestion-renderer.js +20 -0
  1216. package/dist/vue/suggestion-renderer.js.map +1 -0
  1217. package/dist/vue/use-editor-i18n.d.ts +12 -0
  1218. package/dist/vue/use-editor-i18n.js +17 -0
  1219. package/dist/vue/use-editor-i18n.js.map +1 -0
  1220. package/dist/vue/use-editor-ui.d.ts +15 -0
  1221. package/dist/vue/use-editor-ui.js +23 -0
  1222. package/dist/vue/use-editor-ui.js.map +1 -0
  1223. package/dist/vue/use-notifier.d.ts +11 -0
  1224. package/dist/vue/use-notifier.js +19 -0
  1225. package/dist/vue/use-notifier.js.map +1 -0
  1226. package/docs/extending.md +538 -0
  1227. package/docs/integration.md +537 -0
  1228. package/docs/llms.md +375 -0
  1229. package/docs/usage.md +1071 -0
  1230. package/package.json +619 -4
@@ -0,0 +1,76 @@
1
+ import { Translate } from "../../i18n/index.js";
2
+ import { Notice } from "../../core/notify.js";
3
+ import { DocAnchor } from "../../core/doc-anchors.js";
4
+ import "../../core/index.js";
5
+ import { AiReviewSkipReason } from "./ai-review.js";
6
+ import { AiApplyMode, AiTask } from "./protocol/tasks.js";
7
+ import "./protocol/index.js";
8
+ import { Editor, JSONContent } from "@tiptap/core";
9
+ import { Transaction } from "@tiptap/pm/state";
10
+ import { Fragment, ResolvedPos } from "@tiptap/pm/model";
11
+ //#region src/features/ai/ai-apply.d.ts
12
+ export type AiTarget = {
13
+ mode: 'replace-selection';
14
+ anchor: DocAnchor;
15
+ } |
16
+ /** Collapsed anchor after the caret's top-level block. */
17
+ {
18
+ mode: 'insert-after-block';
19
+ anchor: DocAnchor;
20
+ } |
21
+ /** After the document's last block at apply time. */
22
+ {
23
+ mode: 'append-to-document';
24
+ };
25
+ /**
26
+ * Captures the apply target when the run starts as a DocAnchor, so it survives concurrent edits while the result
27
+ * streams. Release the anchor (`releaseRanges`) when the run is applied or discarded.
28
+ */
29
+ export declare function captureTarget(editor: Editor, mode: AiApplyMode): AiTarget;
30
+ /** Markdown of [from, to] as the model gets it; `selectionMarkdown` for the current selection. */
31
+ export declare function rangeMarkdown(editor: Editor, { from, to }: {
32
+ from: number;
33
+ to: number;
34
+ }): string;
35
+ export declare function selectionMarkdown(editor: Editor): string;
36
+ /** Document Markdown for the model, truncated to `limit` characters (whole-document tasks pass `AI_LIMITS.transcript`). */
37
+ export declare function documentMarkdown(editor: Editor, limit?: number): string;
38
+ /** How a selection result is applied: over the captured range, or as blocks below its last top-level block. */
39
+ export type AiResultAction = 'replace' | 'insert-below';
40
+ /** 'ok': inserted ('insert-below') or opened as in-document review ('replace'); otherwise why nothing happened. */
41
+ export type AiApplyOutcome = 'ok' | AiReviewSkipReason;
42
+ /** Notice for an apply that did not happen, in the language of `t`. */
43
+ export declare function aiApplyFailure(outcome: Exclude<AiApplyOutcome, 'ok'>, t: Translate): Notice & {
44
+ description: string;
45
+ kind: 'error' | 'info';
46
+ };
47
+ /**
48
+ * Applies a result to a range captured when the run started (see `captureRange`) — the apply entry point of the
49
+ * selection AI menu and the AI sidebar's block generation. 'replace' does not write: it opens an in-document diff
50
+ * review of the range (see `startAiReview`), and only accepted changes reach the document.
51
+ */
52
+ export declare function applyAiResult(editor: Editor, action: AiResultAction, anchor: DocAnchor, markdown: string): AiApplyOutcome;
53
+ /**
54
+ * The result of a task as markdown the way it is shown and applied: a task with a heading gets it (in the language of
55
+ * `t`) as `##` title (`withTaskHeading`), or as the single `formatAiResult` contributor formats it (composite AI wraps it in a section).
56
+ */
57
+ export declare function formatTaskResult(editor: Editor, task: AiTask, markdown: string, t: Translate): string;
58
+ /** Result blocks as they get inserted: parsed (`parseBlocks`) and brought into the preferred structure (`structureBlocks`). */
59
+ export declare function resultBlocks(editor: Editor, markdown: string): JSONContent[];
60
+ /** Inserts the result as blocks after the top-level block containing `pos`. */
61
+ export declare function insertBlocksBelow(editor: Editor, pos: number, markdown: string): boolean;
62
+ /**
63
+ * Inserts the result as blocks at an insertion target (`captureTarget`): after the captured block, or after the
64
+ * document's last block. False when the anchor no longer exists or the result has no content.
65
+ */
66
+ export declare function insertBlocksAtTarget(editor: Editor, target: Exclude<AiTarget, {
67
+ mode: 'replace-selection';
68
+ }>, markdown: string): boolean;
69
+ /**
70
+ * Inserts a result at a caret captured when the run started (`captureRange` of a collapsed range): the result blocks
71
+ * replace the caret's textblock while it is still empty (the line `/ai` was typed on), otherwise they go below its
72
+ * top-level block. Not a rewrite, so no diff review. False when the caret no longer exists or the result has no content.
73
+ */
74
+ export declare function insertAtCaretLine(editor: Editor, anchor: DocAnchor, markdown: string): boolean;
75
+ //#endregion
76
+ //# sourceMappingURL=ai-apply.d.ts.map
@@ -0,0 +1,193 @@
1
+ import { isWrapperBlock } from "../../core/convert.js";
2
+ import { formatAiResultOf, parseBlocks, structureBlocks } from "../../core/pipeline.js";
3
+ import { captureRange, resolveRange } from "../../core/doc-anchors.js";
4
+ import { selectionRange } from "../../core/selection-range.js";
5
+ import { AI_LIMITS, withTaskHeading } from "./protocol/tasks.js";
6
+ import { startAiReview } from "./ai-review.js";
7
+ import { Slice } from "@tiptap/pm/model";
8
+ //#region src/features/ai/ai-apply.ts
9
+ /**
10
+ * Captures the apply target when the run starts as a DocAnchor, so it survives concurrent edits while the result
11
+ * streams. Release the anchor (`releaseRanges`) when the run is applied or discarded.
12
+ */
13
+ function captureTarget(editor, mode) {
14
+ if (mode === "append-to-document") return { mode };
15
+ if (mode === "replace-selection") return {
16
+ mode,
17
+ anchor: captureRange(editor, selectionRange(editor.state))
18
+ };
19
+ const { $to } = editor.state.selection;
20
+ const pos = $to.depth ? $to.after(1) : $to.pos;
21
+ return {
22
+ mode,
23
+ anchor: captureRange(editor, {
24
+ from: pos,
25
+ to: pos
26
+ })
27
+ };
28
+ }
29
+ /** Markdown of [from, to] as the model gets it; `selectionMarkdown` for the current selection. */
30
+ function rangeMarkdown(editor, { from, to }) {
31
+ const { doc } = editor.state;
32
+ const $from = doc.resolve(from);
33
+ const $to = doc.resolve(to);
34
+ if ($from.sameParent($to) && $from.parent.isTextblock) {
35
+ const content = $from.parent.slice($from.parentOffset, $to.parentOffset).content.toJSON();
36
+ return editor.markdown.serialize({
37
+ type: "doc",
38
+ content: [{
39
+ type: "paragraph",
40
+ content: content ?? []
41
+ }]
42
+ });
43
+ }
44
+ return editor.markdown.serialize(doc.cut(from, to).toJSON());
45
+ }
46
+ function selectionMarkdown(editor) {
47
+ return rangeMarkdown(editor, selectionRange(editor.state));
48
+ }
49
+ /** Document Markdown for the model, truncated to `limit` characters (whole-document tasks pass `AI_LIMITS.transcript`). */
50
+ function documentMarkdown(editor, limit = AI_LIMITS.context) {
51
+ return editor.getMarkdown().slice(0, limit);
52
+ }
53
+ /** Catalog keys and severity of the notice of an apply that did not happen. */
54
+ const AI_APPLY_FAILURES = {
55
+ missing: {
56
+ titleKey: "ai.apply.missing.title",
57
+ descriptionKey: "ai.apply.missing.description",
58
+ kind: "error"
59
+ },
60
+ empty: {
61
+ titleKey: "ai.apply.empty.title",
62
+ descriptionKey: "ai.apply.empty.description",
63
+ kind: "error"
64
+ },
65
+ unchanged: {
66
+ titleKey: "ai.apply.unchanged.title",
67
+ descriptionKey: "ai.apply.unchanged.description",
68
+ kind: "info"
69
+ },
70
+ overlap: {
71
+ titleKey: "ai.apply.overlap.title",
72
+ descriptionKey: "ai.apply.overlap.description",
73
+ kind: "error"
74
+ }
75
+ };
76
+ /** Notice for an apply that did not happen, in the language of `t`. */
77
+ function aiApplyFailure(outcome, t) {
78
+ const { titleKey, descriptionKey, kind } = AI_APPLY_FAILURES[outcome];
79
+ return {
80
+ title: t(titleKey),
81
+ description: t(descriptionKey),
82
+ kind
83
+ };
84
+ }
85
+ /**
86
+ * Applies a result to a range captured when the run started (see `captureRange`) — the apply entry point of the
87
+ * selection AI menu and the AI sidebar's block generation. 'replace' does not write: it opens an in-document diff
88
+ * review of the range (see `startAiReview`), and only accepted changes reach the document.
89
+ */
90
+ function applyAiResult(editor, action, anchor, markdown) {
91
+ if (action === "replace") {
92
+ const review = startAiReview(editor, [{
93
+ id: "result",
94
+ range: anchor,
95
+ markdown
96
+ }]);
97
+ return review.hunks ? "ok" : review.skipped[0]?.reason ?? "unchanged";
98
+ }
99
+ const resolved = resolveRange(editor.state, anchor);
100
+ if (!resolved) return "missing";
101
+ return insertBlocksBelow(editor, resolved.to, markdown) ? "ok" : "empty";
102
+ }
103
+ /**
104
+ * The inline content replacing [from, to] when both lie in one textblock and the result is a single paragraph or a
105
+ * single block the segment stage made of one (e.g. a speaker line): inserted inline, since block content would split
106
+ * the block. Null when the range needs a block replacement (`replaceRangeWithBlocks`). `parsed` is the result before
107
+ * the segment stage (`parseBlocks`): such a block only keeps its own content inside a block of its own type (a speaker
108
+ * line inside a segment keeps that segment's speaker, the model saw just the inline text, see `rangeMarkdown`); elsewhere
109
+ * the label stays as the bold text the model wrote.
110
+ */
111
+ function inlineReplacement($from, $to, { parsed, blocks }) {
112
+ const first = blocks[0];
113
+ if (!first || blocks.length !== 1 || !$from.sameParent($to) || !$from.parent.isTextblock) return null;
114
+ if (first.type === "paragraph") return first.content ?? [];
115
+ const original = parsed.content?.length === 1 ? parsed.content[0] : void 0;
116
+ if (original?.type !== "paragraph") return null;
117
+ return (first.type === $from.parent.type.name ? first.content : original.content) ?? [];
118
+ }
119
+ /**
120
+ * Replaces exactly [from, to] in `tr` with `blocks`. The edge blocks merge into partially covered blocks, as a paste
121
+ * would, so text outside the range survives; a defining textblock of another type (heading, speaker segment, code
122
+ * block) is inserted whole instead and splits the block it lands in, and so is a host wrapper block (a callout in a
123
+ * doc-level range, which would otherwise open up and only keep its body) unless the boundary already sits inside a
124
+ * wrapper of that type (a callout's body), where it merges into that one instead of nesting a second.
125
+ */
126
+ function replaceRangeWithBlocks(tr, from, to, blocks) {
127
+ const $from = tr.doc.resolve(from);
128
+ const $to = tr.doc.resolve(to);
129
+ const open = Slice.maxOpen(blocks);
130
+ const keepWhole = (node, $pos) => {
131
+ if (isWrapperBlock(node)) {
132
+ for (let d = 0; d <= $pos.depth; d++) if ($pos.node(d).type === node.type) return false;
133
+ return true;
134
+ }
135
+ return node.isTextblock && !!node.type.spec.defining && node.type !== $pos.parent.type;
136
+ };
137
+ const slice = new Slice(blocks, keepWhole(blocks.firstChild, $from) ? 0 : open.openStart, keepWhole(blocks.lastChild, $to) ? 0 : open.openEnd);
138
+ const steps = tr.steps.length;
139
+ tr.replace(from, to, slice);
140
+ if (tr.steps.length === steps) tr.replaceRange(from, to, slice);
141
+ }
142
+ /**
143
+ * The result of a task as markdown the way it is shown and applied: a task with a heading gets it (in the language of
144
+ * `t`) as `##` title (`withTaskHeading`), or as the single `formatAiResult` contributor formats it (composite AI wraps it in a section).
145
+ */
146
+ function formatTaskResult(editor, task, markdown, t) {
147
+ if (!task.headingKey) return markdown;
148
+ const format = formatAiResultOf(editor);
149
+ return format ? format(markdown, t(task.headingKey)) : withTaskHeading(task, markdown, t);
150
+ }
151
+ /** Result blocks as they get inserted: parsed (`parseBlocks`) and brought into the preferred structure (`structureBlocks`). */
152
+ function resultBlocks(editor, markdown) {
153
+ return structureBlocks(editor, parseBlocks(editor, markdown).blocks);
154
+ }
155
+ /** Inserts the result as blocks after the top-level block containing `pos`. */
156
+ function insertBlocksBelow(editor, pos, markdown) {
157
+ const blocks = resultBlocks(editor, markdown);
158
+ if (!blocks.length) return false;
159
+ const $pos = editor.state.doc.resolve(pos);
160
+ return editor.chain().focus().insertContentAt($pos.depth === 0 ? pos : $pos.after(1), blocks).run();
161
+ }
162
+ /**
163
+ * Inserts the result as blocks at an insertion target (`captureTarget`): after the captured block, or after the
164
+ * document's last block. False when the anchor no longer exists or the result has no content.
165
+ */
166
+ function insertBlocksAtTarget(editor, target, markdown) {
167
+ if (target.mode === "append-to-document") return insertBlocksBelow(editor, editor.state.doc.content.size, markdown);
168
+ const resolved = resolveRange(editor.state, target.anchor);
169
+ if (!resolved) return false;
170
+ return insertBlocksBelow(editor, resolved.from, markdown);
171
+ }
172
+ /**
173
+ * Inserts a result at a caret captured when the run started (`captureRange` of a collapsed range): the result blocks
174
+ * replace the caret's textblock while it is still empty (the line `/ai` was typed on), otherwise they go below its
175
+ * top-level block. Not a rewrite, so no diff review. False when the caret no longer exists or the result has no content.
176
+ */
177
+ function insertAtCaretLine(editor, anchor, markdown) {
178
+ const resolved = resolveRange(editor.state, anchor);
179
+ if (!resolved) return false;
180
+ const blocks = resultBlocks(editor, markdown);
181
+ if (!blocks.length) return false;
182
+ const $pos = editor.state.doc.resolve(resolved.from);
183
+ if ($pos.depth === 0) return editor.chain().focus().insertContentAt(resolved.from, blocks).run();
184
+ const line = $pos.parent.isTextblock && !$pos.parent.content.size ? {
185
+ from: $pos.before(),
186
+ to: $pos.after()
187
+ } : $pos.after(1);
188
+ return editor.chain().focus().insertContentAt(line, blocks).run();
189
+ }
190
+ //#endregion
191
+ export { aiApplyFailure, applyAiResult, captureTarget, documentMarkdown, formatTaskResult, inlineReplacement, insertAtCaretLine, insertBlocksAtTarget, insertBlocksBelow, rangeMarkdown, replaceRangeWithBlocks, resultBlocks, selectionMarkdown };
192
+
193
+ //# sourceMappingURL=ai-apply.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-apply.js","names":[],"sources":["../../../src/features/ai/ai-apply.ts"],"sourcesContent":["import type { Editor, JSONContent } from '@tiptap/core'\nimport { type Fragment, type Node as PMNode, type ResolvedPos, Slice } from '@tiptap/pm/model'\nimport type { EditorState, Transaction } from '@tiptap/pm/state'\nimport { captureRange, type DocAnchor, formatAiResultOf, isWrapperBlock, parseBlocks, resolveRange, selectionRange, structureBlocks } from '../../core'\nimport type { Notice } from '../../core/notify'\nimport type { MessageKey, Translate } from '../../i18n'\nimport { type AiReviewSkipReason, startAiReview } from './ai-review'\nimport { type AiApplyMode, AI_LIMITS, type AiTask, withTaskHeading } from './protocol'\n\nexport type AiTarget =\n | { mode: 'replace-selection', anchor: DocAnchor }\n /** Collapsed anchor after the caret's top-level block. */\n | { mode: 'insert-after-block', anchor: DocAnchor }\n /** After the document's last block at apply time. */\n | { mode: 'append-to-document' }\n\n/**\n * Captures the apply target when the run starts as a DocAnchor, so it survives concurrent edits while the result\n * streams. Release the anchor (`releaseRanges`) when the run is applied or discarded.\n */\nexport function captureTarget(editor: Editor, mode: AiApplyMode): AiTarget {\n if (mode === 'append-to-document') return { mode }\n if (mode === 'replace-selection') return { mode, anchor: captureRange(editor, selectionRange(editor.state)) }\n const { $to } = editor.state.selection\n const pos = $to.depth ? $to.after(1) : $to.pos\n return { mode, anchor: captureRange(editor, { from: pos, to: pos }) }\n}\n\n/** Markdown of [from, to] as the model gets it; `selectionMarkdown` for the current selection. */\nexport function rangeMarkdown(editor: Editor, { from, to }: { from: number, to: number }): string {\n const { doc } = editor.state\n const $from = doc.resolve(from)\n const $to = doc.resolve(to)\n // Single-textblock selections are replaced inline, so send only the inline content: node prefixes (speaker, `#`, list marker) would be echoed into the text.\n if ($from.sameParent($to) && $from.parent.isTextblock) {\n const content = $from.parent.slice($from.parentOffset, $to.parentOffset).content.toJSON()\n return editor.markdown!.serialize({ type: 'doc', content: [{ type: 'paragraph', content: content ?? [] }] })\n }\n return editor.markdown!.serialize(doc.cut(from, to).toJSON())\n}\n\nexport function selectionMarkdown(editor: Editor): string {\n return rangeMarkdown(editor, selectionRange(editor.state))\n}\n\n/** Document Markdown for the model, truncated to `limit` characters (whole-document tasks pass `AI_LIMITS.transcript`). */\nexport function documentMarkdown(editor: Editor, limit: number = AI_LIMITS.context): string {\n return editor.getMarkdown().slice(0, limit)\n}\n\n/** How a selection result is applied: over the captured range, or as blocks below its last top-level block. */\nexport type AiResultAction = 'replace' | 'insert-below'\n\n/** 'ok': inserted ('insert-below') or opened as in-document review ('replace'); otherwise why nothing happened. */\nexport type AiApplyOutcome = 'ok' | AiReviewSkipReason\n\n/** Catalog keys and severity of the notice of an apply that did not happen. */\nconst AI_APPLY_FAILURES: Record<Exclude<AiApplyOutcome, 'ok'>, { titleKey: MessageKey, descriptionKey: MessageKey, kind: 'error' | 'info' }> = {\n missing: { titleKey: 'ai.apply.missing.title', descriptionKey: 'ai.apply.missing.description', kind: 'error' },\n empty: { titleKey: 'ai.apply.empty.title', descriptionKey: 'ai.apply.empty.description', kind: 'error' },\n unchanged: { titleKey: 'ai.apply.unchanged.title', descriptionKey: 'ai.apply.unchanged.description', kind: 'info' },\n overlap: { titleKey: 'ai.apply.overlap.title', descriptionKey: 'ai.apply.overlap.description', kind: 'error' },\n}\n\n/** Notice for an apply that did not happen, in the language of `t`. */\nexport function aiApplyFailure(outcome: Exclude<AiApplyOutcome, 'ok'>, t: Translate): Notice & { description: string, kind: 'error' | 'info' } {\n const { titleKey, descriptionKey, kind } = AI_APPLY_FAILURES[outcome]\n return { title: t(titleKey), description: t(descriptionKey), kind }\n}\n\n/**\n * Applies a result to a range captured when the run started (see `captureRange`) — the apply entry point of the\n * selection AI menu and the AI sidebar's block generation. 'replace' does not write: it opens an in-document diff\n * review of the range (see `startAiReview`), and only accepted changes reach the document.\n */\nexport function applyAiResult(editor: Editor, action: AiResultAction, anchor: DocAnchor, markdown: string): AiApplyOutcome {\n if (action === 'replace') {\n const review = startAiReview(editor, [{ id: 'result', range: anchor, markdown }])\n return review.hunks ? 'ok' : review.skipped[0]?.reason ?? 'unchanged'\n }\n const resolved = resolveRange(editor.state, anchor)\n if (!resolved) return 'missing'\n return insertBlocksBelow(editor, resolved.to, markdown) ? 'ok' : 'empty'\n}\n\n/**\n * The inline content replacing [from, to] when both lie in one textblock and the result is a single paragraph or a\n * single block the segment stage made of one (e.g. a speaker line): inserted inline, since block content would split\n * the block. Null when the range needs a block replacement (`replaceRangeWithBlocks`). `parsed` is the result before\n * the segment stage (`parseBlocks`): such a block only keeps its own content inside a block of its own type (a speaker\n * line inside a segment keeps that segment's speaker, the model saw just the inline text, see `rangeMarkdown`); elsewhere\n * the label stays as the bold text the model wrote.\n */\nexport function inlineReplacement($from: ResolvedPos, $to: ResolvedPos, { parsed, blocks }: { parsed: JSONContent, blocks: JSONContent[] }): JSONContent[] | null {\n const first = blocks[0]\n if (!first || blocks.length !== 1 || !$from.sameParent($to) || !$from.parent.isTextblock) return null\n if (first.type === 'paragraph') return first.content ?? []\n const original = parsed.content?.length === 1 ? parsed.content[0] : undefined\n if (original?.type !== 'paragraph') return null\n return (first.type === $from.parent.type.name ? first.content : original.content) ?? []\n}\n\n/**\n * Replaces exactly [from, to] in `tr` with `blocks`. The edge blocks merge into partially covered blocks, as a paste\n * would, so text outside the range survives; a defining textblock of another type (heading, speaker segment, code\n * block) is inserted whole instead and splits the block it lands in, and so is a host wrapper block (a callout in a\n * doc-level range, which would otherwise open up and only keep its body) unless the boundary already sits inside a\n * wrapper of that type (a callout's body), where it merges into that one instead of nesting a second.\n */\nexport function replaceRangeWithBlocks(tr: Transaction, from: number, to: number, blocks: Fragment): void {\n const $from = tr.doc.resolve(from)\n const $to = tr.doc.resolve(to)\n const open = Slice.maxOpen(blocks)\n const keepWhole = (node: PMNode, $pos: ResolvedPos) => {\n if (isWrapperBlock(node)) {\n for (let d = 0; d <= $pos.depth; d++) if ($pos.node(d).type === node.type) return false\n return true\n }\n return node.isTextblock && !!node.type.spec.defining && node.type !== $pos.parent.type\n }\n const slice = new Slice(\n blocks,\n keepWhole(blocks.firstChild!, $from) ? 0 : open.openStart,\n keepWhole(blocks.lastChild!, $to) ? 0 : open.openEnd,\n )\n const steps = tr.steps.length\n tr.replace(from, to, slice)\n // replace() gives up when the slice does not fit the range's context; replaceRange() then finds a fitting depth.\n if (tr.steps.length === steps) tr.replaceRange(from, to, slice)\n}\n\n/**\n * The result of a task as markdown the way it is shown and applied: a task with a heading gets it (in the language of\n * `t`) as `##` title (`withTaskHeading`), or as the single `formatAiResult` contributor formats it (composite AI wraps it in a section).\n */\nexport function formatTaskResult(editor: Editor, task: AiTask, markdown: string, t: Translate): string {\n if (!task.headingKey) return markdown\n const format = formatAiResultOf(editor)\n return format ? format(markdown, t(task.headingKey)) : withTaskHeading(task, markdown, t)\n}\n\n/** Result blocks as they get inserted: parsed (`parseBlocks`) and brought into the preferred structure (`structureBlocks`). */\nexport function resultBlocks(editor: Editor, markdown: string): JSONContent[] {\n return structureBlocks(editor, parseBlocks(editor, markdown).blocks)\n}\n\n/** Inserts the result as blocks after the top-level block containing `pos`. */\nexport function insertBlocksBelow(editor: Editor, pos: number, markdown: string): boolean {\n const blocks = resultBlocks(editor, markdown)\n if (!blocks.length) return false\n const $pos = editor.state.doc.resolve(pos)\n return editor.chain().focus().insertContentAt($pos.depth === 0 ? pos : $pos.after(1), blocks).run()\n}\n\n/**\n * Inserts the result as blocks at an insertion target (`captureTarget`): after the captured block, or after the\n * document's last block. False when the anchor no longer exists or the result has no content.\n */\nexport function insertBlocksAtTarget(editor: Editor, target: Exclude<AiTarget, { mode: 'replace-selection' }>, markdown: string): boolean {\n if (target.mode === 'append-to-document') return insertBlocksBelow(editor, editor.state.doc.content.size, markdown)\n const resolved = resolveRange(editor.state, target.anchor)\n if (!resolved) return false\n return insertBlocksBelow(editor, resolved.from, markdown)\n}\n\n/**\n * Inserts a result at a caret captured when the run started (`captureRange` of a collapsed range): the result blocks\n * replace the caret's textblock while it is still empty (the line `/ai` was typed on), otherwise they go below its\n * top-level block. Not a rewrite, so no diff review. False when the caret no longer exists or the result has no content.\n */\nexport function insertAtCaretLine(editor: Editor, anchor: DocAnchor, markdown: string): boolean {\n const resolved = resolveRange(editor.state, anchor)\n if (!resolved) return false\n const blocks = resultBlocks(editor, markdown)\n if (!blocks.length) return false\n const $pos = editor.state.doc.resolve(resolved.from)\n if ($pos.depth === 0) return editor.chain().focus().insertContentAt(resolved.from, blocks).run()\n const line = $pos.parent.isTextblock && !$pos.parent.content.size\n ? { from: $pos.before(), to: $pos.after() }\n : $pos.after(1)\n return editor.chain().focus().insertContentAt(line, blocks).run()\n}\n"],"mappings":";;;;;;;;;;;;AAoBA,SAAgB,cAAc,QAAgB,MAA6B;CACzE,IAAI,SAAS,sBAAsB,OAAO,EAAE,KAAK;CACjD,IAAI,SAAS,qBAAqB,OAAO;EAAE;EAAM,QAAQ,aAAa,QAAQ,eAAe,OAAO,KAAK,CAAC;CAAE;CAC5G,MAAM,EAAE,QAAQ,OAAO,MAAM;CAC7B,MAAM,MAAM,IAAI,QAAQ,IAAI,MAAM,CAAC,IAAI,IAAI;CAC3C,OAAO;EAAE;EAAM,QAAQ,aAAa,QAAQ;GAAE,MAAM;GAAK,IAAI;EAAI,CAAC;CAAE;AACtE;;AAGA,SAAgB,cAAc,QAAgB,EAAE,MAAM,MAA4C;CAChG,MAAM,EAAE,QAAQ,OAAO;CACvB,MAAM,QAAQ,IAAI,QAAQ,IAAI;CAC9B,MAAM,MAAM,IAAI,QAAQ,EAAE;CAE1B,IAAI,MAAM,WAAW,GAAG,KAAK,MAAM,OAAO,aAAa;EACrD,MAAM,UAAU,MAAM,OAAO,MAAM,MAAM,cAAc,IAAI,YAAY,CAAC,CAAC,QAAQ,OAAO;EACxF,OAAO,OAAO,SAAU,UAAU;GAAE,MAAM;GAAO,SAAS,CAAC;IAAE,MAAM;IAAa,SAAS,WAAW,CAAC;GAAE,CAAC;EAAE,CAAC;CAC7G;CACA,OAAO,OAAO,SAAU,UAAU,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC;AAC9D;AAEA,SAAgB,kBAAkB,QAAwB;CACxD,OAAO,cAAc,QAAQ,eAAe,OAAO,KAAK,CAAC;AAC3D;;AAGA,SAAgB,iBAAiB,QAAgB,QAAgB,UAAU,SAAiB;CAC1F,OAAO,OAAO,YAAY,CAAC,CAAC,MAAM,GAAG,KAAK;AAC5C;;AASA,MAAM,oBAAyI;CAC7I,SAAS;EAAE,UAAU;EAA0B,gBAAgB;EAAgC,MAAM;CAAQ;CAC7G,OAAO;EAAE,UAAU;EAAwB,gBAAgB;EAA8B,MAAM;CAAQ;CACvG,WAAW;EAAE,UAAU;EAA4B,gBAAgB;EAAkC,MAAM;CAAO;CAClH,SAAS;EAAE,UAAU;EAA0B,gBAAgB;EAAgC,MAAM;CAAQ;AAC/G;;AAGA,SAAgB,eAAe,SAAwC,GAAwE;CAC7I,MAAM,EAAE,UAAU,gBAAgB,SAAS,kBAAkB;CAC7D,OAAO;EAAE,OAAO,EAAE,QAAQ;EAAG,aAAa,EAAE,cAAc;EAAG;CAAK;AACpE;;;;;;AAOA,SAAgB,cAAc,QAAgB,QAAwB,QAAmB,UAAkC;CACzH,IAAI,WAAW,WAAW;EACxB,MAAM,SAAS,cAAc,QAAQ,CAAC;GAAE,IAAI;GAAU,OAAO;GAAQ;EAAS,CAAC,CAAC;EAChF,OAAO,OAAO,QAAQ,OAAO,OAAO,QAAQ,EAAE,EAAE,UAAU;CAC5D;CACA,MAAM,WAAW,aAAa,OAAO,OAAO,MAAM;CAClD,IAAI,CAAC,UAAU,OAAO;CACtB,OAAO,kBAAkB,QAAQ,SAAS,IAAI,QAAQ,IAAI,OAAO;AACnE;;;;;;;;;AAUA,SAAgB,kBAAkB,OAAoB,KAAkB,EAAE,QAAQ,UAAgF;CAChK,MAAM,QAAQ,OAAO;CACrB,IAAI,CAAC,SAAS,OAAO,WAAW,KAAK,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,OAAO,aAAa,OAAO;CACjG,IAAI,MAAM,SAAS,aAAa,OAAO,MAAM,WAAW,CAAC;CACzD,MAAM,WAAW,OAAO,SAAS,WAAW,IAAI,OAAO,QAAQ,KAAK,KAAA;CACpE,IAAI,UAAU,SAAS,aAAa,OAAO;CAC3C,QAAQ,MAAM,SAAS,MAAM,OAAO,KAAK,OAAO,MAAM,UAAU,SAAS,YAAY,CAAC;AACxF;;;;;;;;AASA,SAAgB,uBAAuB,IAAiB,MAAc,IAAY,QAAwB;CACxG,MAAM,QAAQ,GAAG,IAAI,QAAQ,IAAI;CACjC,MAAM,MAAM,GAAG,IAAI,QAAQ,EAAE;CAC7B,MAAM,OAAO,MAAM,QAAQ,MAAM;CACjC,MAAM,aAAa,MAAc,SAAsB;EACrD,IAAI,eAAe,IAAI,GAAG;GACxB,KAAK,IAAI,IAAI,GAAG,KAAK,KAAK,OAAO,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,OAAO;GAClF,OAAO;EACT;EACA,OAAO,KAAK,eAAe,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,KAAK,SAAS,KAAK,OAAO;CACpF;CACA,MAAM,QAAQ,IAAI,MAChB,QACA,UAAU,OAAO,YAAa,KAAK,IAAI,IAAI,KAAK,WAChD,UAAU,OAAO,WAAY,GAAG,IAAI,IAAI,KAAK,OAC/C;CACA,MAAM,QAAQ,GAAG,MAAM;CACvB,GAAG,QAAQ,MAAM,IAAI,KAAK;CAE1B,IAAI,GAAG,MAAM,WAAW,OAAO,GAAG,aAAa,MAAM,IAAI,KAAK;AAChE;;;;;AAMA,SAAgB,iBAAiB,QAAgB,MAAc,UAAkB,GAAsB;CACrG,IAAI,CAAC,KAAK,YAAY,OAAO;CAC7B,MAAM,SAAS,iBAAiB,MAAM;CACtC,OAAO,SAAS,OAAO,UAAU,EAAE,KAAK,UAAU,CAAC,IAAI,gBAAgB,MAAM,UAAU,CAAC;AAC1F;;AAGA,SAAgB,aAAa,QAAgB,UAAiC;CAC5E,OAAO,gBAAgB,QAAQ,YAAY,QAAQ,QAAQ,CAAC,CAAC,MAAM;AACrE;;AAGA,SAAgB,kBAAkB,QAAgB,KAAa,UAA2B;CACxF,MAAM,SAAS,aAAa,QAAQ,QAAQ;CAC5C,IAAI,CAAC,OAAO,QAAQ,OAAO;CAC3B,MAAM,OAAO,OAAO,MAAM,IAAI,QAAQ,GAAG;CACzC,OAAO,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,gBAAgB,KAAK,UAAU,IAAI,MAAM,KAAK,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI;AACpG;;;;;AAMA,SAAgB,qBAAqB,QAAgB,QAA0D,UAA2B;CACxI,IAAI,OAAO,SAAS,sBAAsB,OAAO,kBAAkB,QAAQ,OAAO,MAAM,IAAI,QAAQ,MAAM,QAAQ;CAClH,MAAM,WAAW,aAAa,OAAO,OAAO,OAAO,MAAM;CACzD,IAAI,CAAC,UAAU,OAAO;CACtB,OAAO,kBAAkB,QAAQ,SAAS,MAAM,QAAQ;AAC1D;;;;;;AAOA,SAAgB,kBAAkB,QAAgB,QAAmB,UAA2B;CAC9F,MAAM,WAAW,aAAa,OAAO,OAAO,MAAM;CAClD,IAAI,CAAC,UAAU,OAAO;CACtB,MAAM,SAAS,aAAa,QAAQ,QAAQ;CAC5C,IAAI,CAAC,OAAO,QAAQ,OAAO;CAC3B,MAAM,OAAO,OAAO,MAAM,IAAI,QAAQ,SAAS,IAAI;CACnD,IAAI,KAAK,UAAU,GAAG,OAAO,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,gBAAgB,SAAS,MAAM,MAAM,CAAC,CAAC,IAAI;CAC/F,MAAM,OAAO,KAAK,OAAO,eAAe,CAAC,KAAK,OAAO,QAAQ,OACzD;EAAE,MAAM,KAAK,OAAO;EAAG,IAAI,KAAK,MAAM;CAAE,IACxC,KAAK,MAAM,CAAC;CAChB,OAAO,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,gBAAgB,MAAM,MAAM,CAAC,CAAC,IAAI;AAClE"}
@@ -0,0 +1,38 @@
1
+ import { Editor } from "@tiptap/core";
2
+ //#region src/features/ai/ai-menu.d.ts
3
+ /** Transaction meta the AI menu (`AiSelectionMenu`) listens for: open anchored at the caret, without a selection. */
4
+ export declare const AI_MENU_AT_CARET = "aiMenuAtCaret";
5
+ export declare function openAiMenuAtCaret(editor: Editor): void;
6
+ /** Transaction meta the AI menu (`AiSelectionMenu`) listens for: open on the current selection (e.g. a hover block action). */
7
+ export declare const AI_MENU_FOR_SELECTION = "aiMenuForSelection";
8
+ export declare function openAiMenuForSelection(editor: Editor): void;
9
+ /**
10
+ * An extra row of the AI selection menu, contributed by any extension through its `aiMenuActions` field (the way
11
+ * `NodeFlags` reads `editorChrome`): integration features add their own AI operations on the selection this way.
12
+ */
13
+ export interface AiMenuAction {
14
+ id: string;
15
+ label: string;
16
+ /** Iconify name, e.g. `i-lucide-eraser`. */
17
+ icon: string;
18
+ /** Offered while the selection `range` qualifies; always offered when unset. */
19
+ available?: (editor: Editor, range: {
20
+ from: number;
21
+ to: number;
22
+ }) => boolean;
23
+ /** Runs on the selection captured when the menu opened; `signal` aborts when the menu closes. The menu closes afterwards. */
24
+ run: (editor: Editor, range: {
25
+ from: number;
26
+ to: number;
27
+ }, signal: AbortSignal) => Promise<unknown> | void;
28
+ }
29
+ declare module '@tiptap/core' {
30
+ interface ExtensionConfig<Options, Storage> {
31
+ /** Extra actions of the AI selection menu (`AiMenuAction`). */
32
+ aiMenuActions?: readonly AiMenuAction[];
33
+ }
34
+ }
35
+ /** The AI menu actions of every extension of `editor`, in extension order. */
36
+ export declare function aiMenuActionsOf(editor: Editor): AiMenuAction[];
37
+ //#endregion
38
+ //# sourceMappingURL=ai-menu.d.ts.map
@@ -0,0 +1,20 @@
1
+ import { getExtensionField } from "@tiptap/core";
2
+ //#region src/features/ai/ai-menu.ts
3
+ /** Transaction meta the AI menu (`AiSelectionMenu`) listens for: open anchored at the caret, without a selection. */
4
+ const AI_MENU_AT_CARET = "aiMenuAtCaret";
5
+ function openAiMenuAtCaret(editor) {
6
+ editor.view.dispatch(editor.state.tr.setMeta(AI_MENU_AT_CARET, true).setMeta("addToHistory", false));
7
+ }
8
+ /** Transaction meta the AI menu (`AiSelectionMenu`) listens for: open on the current selection (e.g. a hover block action). */
9
+ const AI_MENU_FOR_SELECTION = "aiMenuForSelection";
10
+ function openAiMenuForSelection(editor) {
11
+ editor.view.dispatch(editor.state.tr.setMeta(AI_MENU_FOR_SELECTION, true).setMeta("addToHistory", false));
12
+ }
13
+ /** The AI menu actions of every extension of `editor`, in extension order. */
14
+ function aiMenuActionsOf(editor) {
15
+ return editor.extensionManager.extensions.flatMap((extension) => getExtensionField(extension, "aiMenuActions") ?? []);
16
+ }
17
+ //#endregion
18
+ export { AI_MENU_AT_CARET, AI_MENU_FOR_SELECTION, aiMenuActionsOf, openAiMenuAtCaret, openAiMenuForSelection };
19
+
20
+ //# sourceMappingURL=ai-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-menu.js","names":[],"sources":["../../../src/features/ai/ai-menu.ts"],"sourcesContent":["import { type Editor, getExtensionField } from '@tiptap/core'\n\n/** Transaction meta the AI menu (`AiSelectionMenu`) listens for: open anchored at the caret, without a selection. */\nexport const AI_MENU_AT_CARET = 'aiMenuAtCaret'\n\nexport function openAiMenuAtCaret(editor: Editor): void {\n editor.view.dispatch(editor.state.tr.setMeta(AI_MENU_AT_CARET, true).setMeta('addToHistory', false))\n}\n\n/** Transaction meta the AI menu (`AiSelectionMenu`) listens for: open on the current selection (e.g. a hover block action). */\nexport const AI_MENU_FOR_SELECTION = 'aiMenuForSelection'\n\nexport function openAiMenuForSelection(editor: Editor): void {\n editor.view.dispatch(editor.state.tr.setMeta(AI_MENU_FOR_SELECTION, true).setMeta('addToHistory', false))\n}\n\n/**\n * An extra row of the AI selection menu, contributed by any extension through its `aiMenuActions` field (the way\n * `NodeFlags` reads `editorChrome`): integration features add their own AI operations on the selection this way.\n */\nexport interface AiMenuAction {\n id: string\n label: string\n /** Iconify name, e.g. `i-lucide-eraser`. */\n icon: string\n /** Offered while the selection `range` qualifies; always offered when unset. */\n available?: (editor: Editor, range: { from: number, to: number }) => boolean\n /** Runs on the selection captured when the menu opened; `signal` aborts when the menu closes. The menu closes afterwards. */\n run: (editor: Editor, range: { from: number, to: number }, signal: AbortSignal) => Promise<unknown> | void\n}\n\ndeclare module '@tiptap/core' {\n interface ExtensionConfig<Options, Storage> {\n /** Extra actions of the AI selection menu (`AiMenuAction`). */\n aiMenuActions?: readonly AiMenuAction[]\n }\n}\n\n/** The AI menu actions of every extension of `editor`, in extension order. */\nexport function aiMenuActionsOf(editor: Editor): AiMenuAction[] {\n return editor.extensionManager.extensions.flatMap(extension => getExtensionField<readonly AiMenuAction[] | undefined>(extension, 'aiMenuActions') ?? [])\n}\n"],"mappings":";;;AAGA,MAAa,mBAAmB;AAEhC,SAAgB,kBAAkB,QAAsB;CACtD,OAAO,KAAK,SAAS,OAAO,MAAM,GAAG,QAAQ,kBAAkB,IAAI,CAAC,CAAC,QAAQ,gBAAgB,KAAK,CAAC;AACrG;;AAGA,MAAa,wBAAwB;AAErC,SAAgB,uBAAuB,QAAsB;CAC3D,OAAO,KAAK,SAAS,OAAO,MAAM,GAAG,QAAQ,uBAAuB,IAAI,CAAC,CAAC,QAAQ,gBAAgB,KAAK,CAAC;AAC1G;;AAyBA,SAAgB,gBAAgB,QAAgC;CAC9D,OAAO,OAAO,iBAAiB,WAAW,SAAQ,cAAa,kBAAuD,WAAW,eAAe,KAAK,CAAC,CAAC;AACzJ"}
@@ -0,0 +1,136 @@
1
+ import { DocAnchor } from "../../core/doc-anchors.js";
2
+ import "../../core/index.js";
3
+ import { Editor, Extension } from "@tiptap/core";
4
+ import { PluginKey } from "@tiptap/pm/state";
5
+ import { Fragment, Node as Node$1 } from "@tiptap/pm/model";
6
+ import { DecorationSet, EditorView } from "@tiptap/pm/view";
7
+ //#region src/features/ai/ai-review.d.ts
8
+ /**
9
+ * A proposed change; `id` is the caller's. 'replace' (default): `markdown` (the model's result) replaces the captured
10
+ * `range`. 'blocks': ready-made `blocks` (a block conversion) replace `range` as one block hunk. 'insert': `markdown`
11
+ * as blocks at `at`, a collapsed range between blocks (e.g. after a block). 'delete': `range` covers exactly one
12
+ * block, which is removed.
13
+ */
14
+ export type AiReviewChange = {
15
+ id: string;
16
+ kind?: 'replace';
17
+ range: DocAnchor;
18
+ markdown: string;
19
+ } | {
20
+ id: string;
21
+ kind: 'blocks';
22
+ range: DocAnchor;
23
+ blocks: Fragment;
24
+ } | {
25
+ id: string;
26
+ kind: 'insert';
27
+ at: DocAnchor;
28
+ markdown: string;
29
+ } | {
30
+ id: string;
31
+ kind: 'delete';
32
+ range: DocAnchor;
33
+ };
34
+ /** Why a change got no review: range gone, result identical, range overlaps a pending review, or empty result. */
35
+ export type AiReviewSkipReason = 'missing' | 'unchanged' | 'overlap' | 'empty';
36
+ export type AiReviewOutcome = 'accepted' | 'rejected' | 'invalid';
37
+ /** One decided hunk; 'invalid': dropped because the original text changed underneath. */
38
+ export interface AiReviewDecision {
39
+ reviewId: string;
40
+ changeId: string;
41
+ hunkId: string;
42
+ outcome: AiReviewOutcome;
43
+ }
44
+ /** Per change of a finished review: hunk counts, and 'partial' when its hunks were decided differently. */
45
+ export interface AiReviewChangeSummary {
46
+ id: string;
47
+ outcome: AiReviewOutcome | 'partial';
48
+ accepted: number;
49
+ rejected: number;
50
+ invalid: number;
51
+ }
52
+ export interface AiReviewOptions {
53
+ /** Decisions as they happen, batched per transaction. */
54
+ onDecision?: (decisions: AiReviewDecision[]) => void;
55
+ /** Once every hunk of the review is decided. */
56
+ onDone?: (summary: AiReviewChangeSummary[]) => void;
57
+ }
58
+ /** `hunks === 0`: no review started (every change skipped). */
59
+ export interface AiReviewHandle {
60
+ id: string;
61
+ hunks: number;
62
+ skipped: {
63
+ id: string;
64
+ reason: AiReviewSkipReason;
65
+ }[];
66
+ /** Rejects the review's pending hunks. */
67
+ cancel: () => void;
68
+ }
69
+ /**
70
+ * One reviewable difference: [from, to] of the document replaced by `insert` on accept.
71
+ * 'inline': a word-level change inside one textblock (`original` = its inline content);
72
+ * 'block': the whole range replaced by blocks, since the result's structure differs (`original` = its text);
73
+ * 'insert': blocks inserted at the collapsed position `from === to` between blocks;
74
+ * 'delete': the one block [from, to] removed (`original` = that block, `insert` empty).
75
+ */
76
+ export type AiReviewHunk = {
77
+ id: string;
78
+ reviewId: string;
79
+ changeId: string;
80
+ from: number;
81
+ to: number;
82
+ insert: Fragment;
83
+ /**
84
+ * Edit-surviving [from, to] (DocAnchors), released when the hunk is decided. Bound to the range's own first and
85
+ * last characters, so text inserted at a boundary (here or remotely) stays outside.
86
+ */
87
+ anchor: DocAnchor;
88
+ } & ({
89
+ kind: 'inline';
90
+ original: Fragment;
91
+ } | {
92
+ kind: 'block';
93
+ original: string;
94
+ } | {
95
+ kind: 'insert';
96
+ } | {
97
+ kind: 'delete';
98
+ original: Node$1;
99
+ });
100
+ export interface AiReviewState {
101
+ /** Pending hunks, in document order. */
102
+ hunks: readonly AiReviewHunk[];
103
+ /** The clicked hunk, whose accept/reject controls are shown. */
104
+ active: string | null;
105
+ /** The latest decisions (oldest first); `logEnd` counts all decisions ever made. */
106
+ log: readonly AiReviewDecision[];
107
+ logEnd: number;
108
+ decorations: DecorationSet;
109
+ }
110
+ export declare const aiReviewKey: PluginKey<AiReviewState>;
111
+ /**
112
+ * In-document review of AI rewrites: the difference between a range and its proposed replacement shows as local
113
+ * decorations only (red strike = deletion, green widget = insertion), so collaborators never see unaccepted text.
114
+ * Accepting writes the accepted hunks in one transaction (one undo step); rejecting only drops decorations.
115
+ * Client-only, not part of `schemaExtensions()`. Driven by `startAiReview`, `acceptAiReview`, `rejectAiReview`;
116
+ * AiReviewBar shows the controls.
117
+ */
118
+ export declare const AiReview: Extension<any, any>;
119
+ /**
120
+ * Opens a review of `changes` (independent, non-overlapping ranges; several reviews may be pending at once). A
121
+ * replacement becomes word-level hunks per textblock when the result has the range's block structure, otherwise one
122
+ * block-level hunk; an insertion or deletion is one hunk. Changes that cannot be reviewed are returned as `skipped`.
123
+ */
124
+ export declare function startAiReview(editor: Editor, changes: readonly AiReviewChange[], options?: AiReviewOptions): AiReviewHandle;
125
+ /**
126
+ * Writes the pending hunks `ids` (all when omitted) in one transaction — one undo step of its own: y-undo (collaborative)
127
+ * or prosemirror-history (standalone) would merge it with typing around it within their grouping delay, so the event is
128
+ * closed before and after.
129
+ */
130
+ export declare function acceptAiReview(editor: Editor, ids?: readonly string[]): void;
131
+ /** Drops the pending hunks `ids` (all when omitted); the document and undo history stay untouched. */
132
+ export declare function rejectAiReview(editor: Editor, ids?: readonly string[]): void;
133
+ /** Shows the controls of hunk `id` (null hides them). */
134
+ export declare function setActiveAiReviewHunk(view: EditorView, id: string | null): void;
135
+ //#endregion
136
+ //# sourceMappingURL=ai-review.d.ts.map