@ecsplico/editor 0.0.0-stage → 1.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 (1286) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +233 -2
  3. package/dist/code/CodeSurface.d.ts +24 -0
  4. package/dist/code/CodeSurface.js +57 -0
  5. package/dist/code/CodeSurface.js.map +1 -0
  6. package/dist/code/CodeSurface.vue.d.ts +29 -0
  7. package/dist/code/CodeSurface2.js +75 -0
  8. package/dist/code/CodeSurface2.js.map +1 -0
  9. package/dist/code/chrome-theme.js +76 -0
  10. package/dist/code/chrome-theme.js.map +1 -0
  11. package/dist/code/compartments.js +19 -0
  12. package/dist/code/compartments.js.map +1 -0
  13. package/dist/code/editor-factory.d.ts +41 -0
  14. package/dist/code/editor-factory.js +126 -0
  15. package/dist/code/editor-factory.js.map +1 -0
  16. package/dist/code/format-json.d.ts +27 -0
  17. package/dist/code/format-json.js +94 -0
  18. package/dist/code/format-json.js.map +1 -0
  19. package/dist/code/highlight-style.js +118 -0
  20. package/dist/code/highlight-style.js.map +1 -0
  21. package/dist/code/index.d.ts +6 -0
  22. package/dist/code/index.js +6 -0
  23. package/dist/code/jsonl-language.d.ts +6 -0
  24. package/dist/code/jsonl-language.js +33 -0
  25. package/dist/code/jsonl-language.js.map +1 -0
  26. package/dist/code/kind.d.ts +15 -0
  27. package/dist/code/kind.js +142 -0
  28. package/dist/code/kind.js.map +1 -0
  29. package/dist/code/lang-registry.d.ts +31 -0
  30. package/dist/code/lang-registry.js +54 -0
  31. package/dist/code/lang-registry.js.map +1 -0
  32. package/dist/code/react.d.ts +2 -0
  33. package/dist/code/react.js +1 -0
  34. package/dist/code/vue.d.ts +2 -0
  35. package/dist/code/vue.js +1 -0
  36. package/dist/core/abilities.d.ts +32 -0
  37. package/dist/core/abilities.js +160 -0
  38. package/dist/core/abilities.js.map +1 -0
  39. package/dist/core/block-convert.d.ts +59 -0
  40. package/dist/core/block-convert.js +164 -0
  41. package/dist/core/block-convert.js.map +1 -0
  42. package/dist/core/block-drag.d.ts +12 -0
  43. package/dist/core/block-drag.js +62 -0
  44. package/dist/core/block-drag.js.map +1 -0
  45. package/dist/core/block-flash.d.ts +19 -0
  46. package/dist/core/block-flash.js +66 -0
  47. package/dist/core/block-flash.js.map +1 -0
  48. package/dist/core/context.d.ts +63 -0
  49. package/dist/core/context.js +108 -0
  50. package/dist/core/context.js.map +1 -0
  51. package/dist/core/convert.d.ts +96 -0
  52. package/dist/core/convert.js +241 -0
  53. package/dist/core/convert.js.map +1 -0
  54. package/dist/core/core-feature.d.ts +17 -0
  55. package/dist/core/core-feature.js +100 -0
  56. package/dist/core/core-feature.js.map +1 -0
  57. package/dist/core/define-editor.d.ts +23 -0
  58. package/dist/core/define-editor.js +110 -0
  59. package/dist/core/define-editor.js.map +1 -0
  60. package/dist/core/doc-anchors.d.ts +67 -0
  61. package/dist/core/doc-anchors.js +112 -0
  62. package/dist/core/doc-anchors.js.map +1 -0
  63. package/dist/core/document-markdown.d.ts +13 -0
  64. package/dist/core/document-markdown.js +31 -0
  65. package/dist/core/document-markdown.js.map +1 -0
  66. package/dist/core/download.d.ts +5 -0
  67. package/dist/core/download.js +16 -0
  68. package/dist/core/download.js.map +1 -0
  69. package/dist/core/editor-ui.d.ts +45 -0
  70. package/dist/core/editor-ui.js +38 -0
  71. package/dist/core/editor-ui.js.map +1 -0
  72. package/dist/core/extension-points.d.ts +64 -0
  73. package/dist/core/feature-context.d.ts +32 -0
  74. package/dist/core/feature-context.js +46 -0
  75. package/dist/core/feature-context.js.map +1 -0
  76. package/dist/core/feature.d.ts +234 -0
  77. package/dist/core/feature.js +13 -0
  78. package/dist/core/feature.js.map +1 -0
  79. package/dist/core/fences.d.ts +16 -0
  80. package/dist/core/fences.js +105 -0
  81. package/dist/core/fences.js.map +1 -0
  82. package/dist/core/fetch-error.d.ts +5 -0
  83. package/dist/core/fetch-error.js +11 -0
  84. package/dist/core/fetch-error.js.map +1 -0
  85. package/dist/core/index.d.ts +28 -0
  86. package/dist/core/index.js +27 -0
  87. package/dist/core/metadata-types.d.ts +27 -0
  88. package/dist/core/metadata-types.js +10 -0
  89. package/dist/core/metadata-types.js.map +1 -0
  90. package/dist/core/metadata.d.ts +39 -0
  91. package/dist/core/metadata.js +76 -0
  92. package/dist/core/metadata.js.map +1 -0
  93. package/dist/core/notify.d.ts +31 -0
  94. package/dist/core/notify.js +7 -0
  95. package/dist/core/notify.js.map +1 -0
  96. package/dist/core/pipeline.d.ts +52 -0
  97. package/dist/core/pipeline.js +78 -0
  98. package/dist/core/pipeline.js.map +1 -0
  99. package/dist/core/schema/abilities.d.ts +55 -0
  100. package/dist/core/schema/abilities.js +113 -0
  101. package/dist/core/schema/abilities.js.map +1 -0
  102. package/dist/core/schema/block-ids.d.ts +29 -0
  103. package/dist/core/schema/block-ids.js +134 -0
  104. package/dist/core/schema/block-ids.js.map +1 -0
  105. package/dist/core/schema/hex-color.d.ts +5 -0
  106. package/dist/core/schema/hex-color.js +7 -0
  107. package/dist/core/schema/hex-color.js.map +1 -0
  108. package/dist/core/schema/index.d.ts +21 -0
  109. package/dist/core/schema/index.js +33 -0
  110. package/dist/core/schema/index.js.map +1 -0
  111. package/dist/core/schema/mark-flags.d.ts +12 -0
  112. package/dist/core/schema/node-flags.d.ts +23 -0
  113. package/dist/core/schema/node-flags.js +34 -0
  114. package/dist/core/schema/node-flags.js.map +1 -0
  115. package/dist/core/schema/opaque-fence.d.ts +11 -0
  116. package/dist/core/schema/opaque-fence.js +57 -0
  117. package/dist/core/schema/opaque-fence.js.map +1 -0
  118. package/dist/core/schema/strike.d.ts +4 -0
  119. package/dist/core/schema/strike.js +9 -0
  120. package/dist/core/schema/strike.js.map +1 -0
  121. package/dist/core/selection-range.d.ts +13 -0
  122. package/dist/core/selection-range.js +28 -0
  123. package/dist/core/selection-range.js.map +1 -0
  124. package/dist/core/slash.d.ts +24 -0
  125. package/dist/core/slash.js +60 -0
  126. package/dist/core/slash.js.map +1 -0
  127. package/dist/core/store.d.ts +22 -0
  128. package/dist/core/store.js +61 -0
  129. package/dist/core/store.js.map +1 -0
  130. package/dist/core/suggestion-popup.d.ts +63 -0
  131. package/dist/core/suggestion-popup.js +57 -0
  132. package/dist/core/suggestion-popup.js.map +1 -0
  133. package/dist/core/tag-name.js +11 -0
  134. package/dist/core/tag-name.js.map +1 -0
  135. package/dist/core/toolbar-items.d.ts +10 -0
  136. package/dist/core/toolbar-items.js +206 -0
  137. package/dist/core/toolbar-items.js.map +1 -0
  138. package/dist/core/toolbar.d.ts +74 -0
  139. package/dist/core/toolbar.js +45 -0
  140. package/dist/core/toolbar.js.map +1 -0
  141. package/dist/document/DocumentSurface.d.ts +38 -0
  142. package/dist/document/DocumentSurface.js +44 -0
  143. package/dist/document/DocumentSurface.js.map +1 -0
  144. package/dist/document/DocumentSurface.vue.d.ts +56 -0
  145. package/dist/document/DocumentSurface2.js +71 -0
  146. package/dist/document/DocumentSurface2.js.map +1 -0
  147. package/dist/document/react.d.ts +2 -0
  148. package/dist/document/react.js +1 -0
  149. package/dist/document/vue.d.ts +2 -0
  150. package/dist/document/vue.js +1 -0
  151. package/dist/features/ai/agent-op-review.d.ts +69 -0
  152. package/dist/features/ai/agent-op-review.js +182 -0
  153. package/dist/features/ai/agent-op-review.js.map +1 -0
  154. package/dist/features/ai/agent-ops.d.ts +15 -0
  155. package/dist/features/ai/agent-ops.js +228 -0
  156. package/dist/features/ai/agent-ops.js.map +1 -0
  157. package/dist/features/ai/ai-apply.d.ts +76 -0
  158. package/dist/features/ai/ai-apply.js +193 -0
  159. package/dist/features/ai/ai-apply.js.map +1 -0
  160. package/dist/features/ai/ai-menu.d.ts +38 -0
  161. package/dist/features/ai/ai-menu.js +20 -0
  162. package/dist/features/ai/ai-menu.js.map +1 -0
  163. package/dist/features/ai/ai-review.d.ts +136 -0
  164. package/dist/features/ai/ai-review.js +543 -0
  165. package/dist/features/ai/ai-review.js.map +1 -0
  166. package/dist/features/ai/ai-selection-highlight.d.ts +21 -0
  167. package/dist/features/ai/ai-selection-highlight.js +44 -0
  168. package/dist/features/ai/ai-selection-highlight.js.map +1 -0
  169. package/dist/features/ai/ai-sse.d.ts +28 -0
  170. package/dist/features/ai/ai-sse.js +82 -0
  171. package/dist/features/ai/ai-sse.js.map +1 -0
  172. package/dist/features/ai/assistant.d.ts +53 -0
  173. package/dist/features/ai/assistant.js +82 -0
  174. package/dist/features/ai/assistant.js.map +1 -0
  175. package/dist/features/ai/block-actions.d.ts +20 -0
  176. package/dist/features/ai/block-actions.js +55 -0
  177. package/dist/features/ai/block-actions.js.map +1 -0
  178. package/dist/features/ai/components/AiReviewBar.js +145 -0
  179. package/dist/features/ai/components/AiReviewBar.js.map +1 -0
  180. package/dist/features/ai/components/AiReviewBar.vue.d.ts +15 -0
  181. package/dist/features/ai/components/AiSelectionMenu.js +519 -0
  182. package/dist/features/ai/components/AiSelectionMenu.js.map +1 -0
  183. package/dist/features/ai/components/AiSelectionMenu.vue.d.ts +17 -0
  184. package/dist/features/ai/components/AiSidebar.js +378 -0
  185. package/dist/features/ai/components/AiSidebar.js.map +1 -0
  186. package/dist/features/ai/components/AiSidebar.vue.d.ts +26 -0
  187. package/dist/features/ai/components/DocumentChatAnswer.js +67 -0
  188. package/dist/features/ai/components/DocumentChatAnswer.js.map +1 -0
  189. package/dist/features/ai/components/DocumentChatAnswer.vue.d.ts +13 -0
  190. package/dist/features/ai/components/DocumentChatOps.js +113 -0
  191. package/dist/features/ai/components/DocumentChatOps.js.map +1 -0
  192. package/dist/features/ai/components/DocumentChatOps.vue.d.ts +27 -0
  193. package/dist/features/ai/components/ModelQuickSwitch.js +84 -0
  194. package/dist/features/ai/components/ModelQuickSwitch.js.map +1 -0
  195. package/dist/features/ai/components/ModelQuickSwitch.vue.d.ts +23 -0
  196. package/dist/features/ai/components/SettingsAiTab.js +88 -0
  197. package/dist/features/ai/components/SettingsAiTab.js.map +1 -0
  198. package/dist/features/ai/components/SettingsAiTab.vue.d.ts +6 -0
  199. package/dist/features/ai/components/SettingsModelProfiles.js +260 -0
  200. package/dist/features/ai/components/SettingsModelProfiles.js.map +1 -0
  201. package/dist/features/ai/components/SettingsModelProfiles.vue.d.ts +6 -0
  202. package/dist/features/ai/document-chat-model.d.ts +88 -0
  203. package/dist/features/ai/document-chat-model.js +190 -0
  204. package/dist/features/ai/document-chat-model.js.map +1 -0
  205. package/dist/features/ai/document-chat.d.ts +17 -0
  206. package/dist/features/ai/document-chat.js +112 -0
  207. package/dist/features/ai/document-chat.js.map +1 -0
  208. package/dist/features/ai/feature.d.ts +25 -0
  209. package/dist/features/ai/feature.js +89 -0
  210. package/dist/features/ai/feature.js.map +1 -0
  211. package/dist/features/ai/ghost-autocomplete.d.ts +47 -0
  212. package/dist/features/ai/ghost-autocomplete.js +204 -0
  213. package/dist/features/ai/ghost-autocomplete.js.map +1 -0
  214. package/dist/features/ai/index.d.ts +24 -0
  215. package/dist/features/ai/index.js +23 -0
  216. package/dist/features/ai/model-profiles.d.ts +36 -0
  217. package/dist/features/ai/model-profiles.js +111 -0
  218. package/dist/features/ai/model-profiles.js.map +1 -0
  219. package/dist/features/ai/preview-extensions.js +14 -0
  220. package/dist/features/ai/preview-extensions.js.map +1 -0
  221. package/dist/features/ai/protocol/agent-ops.d.ts +120 -0
  222. package/dist/features/ai/protocol/agent-ops.js +298 -0
  223. package/dist/features/ai/protocol/agent-ops.js.map +1 -0
  224. package/dist/features/ai/protocol/chat.d.ts +57 -0
  225. package/dist/features/ai/protocol/chat.js +146 -0
  226. package/dist/features/ai/protocol/chat.js.map +1 -0
  227. package/dist/features/ai/protocol/complete.d.ts +21 -0
  228. package/dist/features/ai/protocol/complete.js +81 -0
  229. package/dist/features/ai/protocol/complete.js.map +1 -0
  230. package/dist/features/ai/protocol/index.d.ts +7 -0
  231. package/dist/features/ai/protocol/index.js +7 -0
  232. package/dist/features/ai/protocol/models.d.ts +48 -0
  233. package/dist/features/ai/protocol/models.js +41 -0
  234. package/dist/features/ai/protocol/models.js.map +1 -0
  235. package/dist/features/ai/protocol/schemas.d.ts +36 -0
  236. package/dist/features/ai/protocol/schemas.js +40 -0
  237. package/dist/features/ai/protocol/schemas.js.map +1 -0
  238. package/dist/features/ai/protocol/tasks.d.ts +107 -0
  239. package/dist/features/ai/protocol/tasks.js +227 -0
  240. package/dist/features/ai/protocol/tasks.js.map +1 -0
  241. package/dist/features/ai/rate-limit.d.ts +9 -0
  242. package/dist/features/ai/rate-limit.js +20 -0
  243. package/dist/features/ai/rate-limit.js.map +1 -0
  244. package/dist/features/ai/react/AiReviewBar.d.ts +12 -0
  245. package/dist/features/ai/react/AiReviewBar.js +156 -0
  246. package/dist/features/ai/react/AiReviewBar.js.map +1 -0
  247. package/dist/features/ai/react/AiSelectionMenu.d.ts +14 -0
  248. package/dist/features/ai/react/AiSelectionMenu.js +513 -0
  249. package/dist/features/ai/react/AiSelectionMenu.js.map +1 -0
  250. package/dist/features/ai/react/AiSidebar.d.ts +19 -0
  251. package/dist/features/ai/react/AiSidebar.js +339 -0
  252. package/dist/features/ai/react/AiSidebar.js.map +1 -0
  253. package/dist/features/ai/react/DocumentChatAnswer.d.ts +10 -0
  254. package/dist/features/ai/react/DocumentChatAnswer.js +70 -0
  255. package/dist/features/ai/react/DocumentChatAnswer.js.map +1 -0
  256. package/dist/features/ai/react/DocumentChatOps.d.ts +19 -0
  257. package/dist/features/ai/react/DocumentChatOps.js +111 -0
  258. package/dist/features/ai/react/DocumentChatOps.js.map +1 -0
  259. package/dist/features/ai/react/ModelQuickSwitch.d.ts +19 -0
  260. package/dist/features/ai/react/ModelQuickSwitch.js +89 -0
  261. package/dist/features/ai/react/ModelQuickSwitch.js.map +1 -0
  262. package/dist/features/ai/react/SettingsAiTab.d.ts +5 -0
  263. package/dist/features/ai/react/SettingsAiTab.js +103 -0
  264. package/dist/features/ai/react/SettingsAiTab.js.map +1 -0
  265. package/dist/features/ai/react/SettingsModelProfiles.d.ts +8 -0
  266. package/dist/features/ai/react/SettingsModelProfiles.js +318 -0
  267. package/dist/features/ai/react/SettingsModelProfiles.js.map +1 -0
  268. package/dist/features/ai/react/use-ai-assistant.d.ts +22 -0
  269. package/dist/features/ai/react/use-ai-assistant.js +36 -0
  270. package/dist/features/ai/react/use-ai-assistant.js.map +1 -0
  271. package/dist/features/ai/react/use-document-chat.d.ts +32 -0
  272. package/dist/features/ai/react/use-document-chat.js +43 -0
  273. package/dist/features/ai/react/use-document-chat.js.map +1 -0
  274. package/dist/features/ai/react/use-model-profiles.d.ts +20 -0
  275. package/dist/features/ai/react/use-model-profiles.js +33 -0
  276. package/dist/features/ai/react/use-model-profiles.js.map +1 -0
  277. package/dist/features/ai/react.d.ts +23 -0
  278. package/dist/features/ai/react.js +28 -0
  279. package/dist/features/ai/react.js.map +1 -0
  280. package/dist/features/ai/sidebar-flow.d.ts +61 -0
  281. package/dist/features/ai/sidebar-flow.js +125 -0
  282. package/dist/features/ai/sidebar-flow.js.map +1 -0
  283. package/dist/features/ai/use-ai-assistant.d.ts +22 -0
  284. package/dist/features/ai/use-ai-assistant.js +39 -0
  285. package/dist/features/ai/use-ai-assistant.js.map +1 -0
  286. package/dist/features/ai/use-document-chat.d.ts +33 -0
  287. package/dist/features/ai/use-document-chat.js +45 -0
  288. package/dist/features/ai/use-document-chat.js.map +1 -0
  289. package/dist/features/ai/use-model-profiles.d.ts +23 -0
  290. package/dist/features/ai/use-model-profiles.js +50 -0
  291. package/dist/features/ai/use-model-profiles.js.map +1 -0
  292. package/dist/features/ai/vue.d.ts +21 -0
  293. package/dist/features/ai/vue.js +28 -0
  294. package/dist/features/ai/vue.js.map +1 -0
  295. package/dist/features/authors/attribution.d.ts +36 -0
  296. package/dist/features/authors/attribution.js +94 -0
  297. package/dist/features/authors/attribution.js.map +1 -0
  298. package/dist/features/authors/author-color-styles.d.ts +12 -0
  299. package/dist/features/authors/author-color-styles.js +24 -0
  300. package/dist/features/authors/author-color-styles.js.map +1 -0
  301. package/dist/features/authors/components/AuthorColorsButton.js +50 -0
  302. package/dist/features/authors/components/AuthorColorsButton.js.map +1 -0
  303. package/dist/features/authors/components/AuthorColorsButton.vue.d.ts +11 -0
  304. package/dist/features/authors/components/AuthorColorsPanel.js +72 -0
  305. package/dist/features/authors/components/AuthorColorsPanel.js.map +1 -0
  306. package/dist/features/authors/components/AuthorColorsPanel.vue.d.ts +11 -0
  307. package/dist/features/authors/components/SettingsAuthorsTab.js +49 -0
  308. package/dist/features/authors/components/SettingsAuthorsTab.js.map +1 -0
  309. package/dist/features/authors/components/SettingsAuthorsTab.vue.d.ts +6 -0
  310. package/dist/features/authors/feature.d.ts +22 -0
  311. package/dist/features/authors/feature.js +47 -0
  312. package/dist/features/authors/feature.js.map +1 -0
  313. package/dist/features/authors/index.d.ts +7 -0
  314. package/dist/features/authors/index.js +6 -0
  315. package/dist/features/authors/react/AuthorColorsButton.d.ts +8 -0
  316. package/dist/features/authors/react/AuthorColorsButton.js +41 -0
  317. package/dist/features/authors/react/AuthorColorsButton.js.map +1 -0
  318. package/dist/features/authors/react/AuthorColorsPanel.d.ts +8 -0
  319. package/dist/features/authors/react/AuthorColorsPanel.js +125 -0
  320. package/dist/features/authors/react/AuthorColorsPanel.js.map +1 -0
  321. package/dist/features/authors/react/SettingsAuthorsTab.d.ts +5 -0
  322. package/dist/features/authors/react/SettingsAuthorsTab.js +92 -0
  323. package/dist/features/authors/react/SettingsAuthorsTab.js.map +1 -0
  324. package/dist/features/authors/react.d.ts +11 -0
  325. package/dist/features/authors/react.js +16 -0
  326. package/dist/features/authors/react.js.map +1 -0
  327. package/dist/features/authors/schema.d.ts +22 -0
  328. package/dist/features/authors/schema.js +70 -0
  329. package/dist/features/authors/schema.js.map +1 -0
  330. package/dist/features/authors/vue.d.ts +10 -0
  331. package/dist/features/authors/vue.js +16 -0
  332. package/dist/features/authors/vue.js.map +1 -0
  333. package/dist/features/block-ui/block-actions.d.ts +17 -0
  334. package/dist/features/block-ui/block-actions.js +37 -0
  335. package/dist/features/block-ui/block-actions.js.map +1 -0
  336. package/dist/features/block-ui/components/BlockActionsOverlay.js +142 -0
  337. package/dist/features/block-ui/components/BlockActionsOverlay.js.map +1 -0
  338. package/dist/features/block-ui/components/BlockActionsOverlay.vue.d.ts +25 -0
  339. package/dist/features/block-ui/components/BlockHandles.js +113 -0
  340. package/dist/features/block-ui/components/BlockHandles.js.map +1 -0
  341. package/dist/features/block-ui/components/BlockUi.js +181 -0
  342. package/dist/features/block-ui/components/BlockUi.js.map +1 -0
  343. package/dist/features/block-ui/components/BlockUi.vue.d.ts +17 -0
  344. package/dist/features/block-ui/feature.d.ts +21 -0
  345. package/dist/features/block-ui/feature.js +23 -0
  346. package/dist/features/block-ui/feature.js.map +1 -0
  347. package/dist/features/block-ui/handle-geometry.js +52 -0
  348. package/dist/features/block-ui/handle-geometry.js.map +1 -0
  349. package/dist/features/block-ui/index.d.ts +3 -0
  350. package/dist/features/block-ui/index.js +3 -0
  351. package/dist/features/block-ui/react/BlockActionsOverlay.d.ts +19 -0
  352. package/dist/features/block-ui/react/BlockActionsOverlay.js +142 -0
  353. package/dist/features/block-ui/react/BlockActionsOverlay.js.map +1 -0
  354. package/dist/features/block-ui/react/BlockHandles.d.ts +15 -0
  355. package/dist/features/block-ui/react/BlockHandles.js +104 -0
  356. package/dist/features/block-ui/react/BlockHandles.js.map +1 -0
  357. package/dist/features/block-ui/react/BlockUi.d.ts +14 -0
  358. package/dist/features/block-ui/react/BlockUi.js +174 -0
  359. package/dist/features/block-ui/react/BlockUi.js.map +1 -0
  360. package/dist/features/block-ui/react.d.ts +11 -0
  361. package/dist/features/block-ui/react.js +13 -0
  362. package/dist/features/block-ui/react.js.map +1 -0
  363. package/dist/features/block-ui/vue.d.ts +9 -0
  364. package/dist/features/block-ui/vue.js +12 -0
  365. package/dist/features/block-ui/vue.js.map +1 -0
  366. package/dist/features/collab/anchor-resolver.d.ts +7 -0
  367. package/dist/features/collab/anchor-resolver.js +92 -0
  368. package/dist/features/collab/anchor-resolver.js.map +1 -0
  369. package/dist/features/collab/feature.d.ts +22 -0
  370. package/dist/features/collab/feature.js +36 -0
  371. package/dist/features/collab/feature.js.map +1 -0
  372. package/dist/features/collab/index.d.ts +3 -0
  373. package/dist/features/collab/index.js +3 -0
  374. package/dist/features/collab/react.d.ts +7 -0
  375. package/dist/features/collab/react.js +10 -0
  376. package/dist/features/collab/react.js.map +1 -0
  377. package/dist/features/collab/vue.d.ts +6 -0
  378. package/dist/features/collab/vue.js +37 -0
  379. package/dist/features/collab/vue.js.map +1 -0
  380. package/dist/features/comments/comments-plugin.d.ts +71 -0
  381. package/dist/features/comments/comments-plugin.js +185 -0
  382. package/dist/features/comments/comments-plugin.js.map +1 -0
  383. package/dist/features/comments/components/CommentBubble.js +54 -0
  384. package/dist/features/comments/components/CommentBubble.js.map +1 -0
  385. package/dist/features/comments/components/CommentBubble.vue.d.ts +14 -0
  386. package/dist/features/comments/components/CommentComposer.js +87 -0
  387. package/dist/features/comments/components/CommentComposer.js.map +1 -0
  388. package/dist/features/comments/components/CommentComposer.vue.d.ts +21 -0
  389. package/dist/features/comments/components/CommentThreadView.js +255 -0
  390. package/dist/features/comments/components/CommentThreadView.js.map +1 -0
  391. package/dist/features/comments/components/CommentThreadView.vue.d.ts +29 -0
  392. package/dist/features/comments/components/CommentsListMenu.js +134 -0
  393. package/dist/features/comments/components/CommentsListMenu.js.map +1 -0
  394. package/dist/features/comments/components/CommentsListMenu.vue.d.ts +10 -0
  395. package/dist/features/comments/components/CommentsMargin.js +291 -0
  396. package/dist/features/comments/components/CommentsMargin.js.map +1 -0
  397. package/dist/features/comments/components/CommentsMargin.vue.d.ts +16 -0
  398. package/dist/features/comments/components/CommentsOverlay.js +39 -0
  399. package/dist/features/comments/components/CommentsOverlay.js.map +1 -0
  400. package/dist/features/comments/components/CommentsPopover.js +124 -0
  401. package/dist/features/comments/components/CommentsPopover.js.map +1 -0
  402. package/dist/features/comments/components/CommentsPopover.vue.d.ts +10 -0
  403. package/dist/features/comments/components/CommentsToolbarButton.js +61 -0
  404. package/dist/features/comments/components/CommentsToolbarButton.js.map +1 -0
  405. package/dist/features/comments/components/SettingsCommentsTab.js +46 -0
  406. package/dist/features/comments/components/SettingsCommentsTab.js.map +1 -0
  407. package/dist/features/comments/components/SettingsCommentsTab.vue.d.ts +6 -0
  408. package/dist/features/comments/feature.d.ts +39 -0
  409. package/dist/features/comments/feature.js +128 -0
  410. package/dist/features/comments/feature.js.map +1 -0
  411. package/dist/features/comments/index.d.ts +6 -0
  412. package/dist/features/comments/index.js +6 -0
  413. package/dist/features/comments/model.d.ts +87 -0
  414. package/dist/features/comments/model.js +390 -0
  415. package/dist/features/comments/model.js.map +1 -0
  416. package/dist/features/comments/react/CommentAvatar.js +24 -0
  417. package/dist/features/comments/react/CommentAvatar.js.map +1 -0
  418. package/dist/features/comments/react/CommentBubble.d.ts +11 -0
  419. package/dist/features/comments/react/CommentBubble.js +43 -0
  420. package/dist/features/comments/react/CommentBubble.js.map +1 -0
  421. package/dist/features/comments/react/CommentComposer.d.ts +15 -0
  422. package/dist/features/comments/react/CommentComposer.js +69 -0
  423. package/dist/features/comments/react/CommentComposer.js.map +1 -0
  424. package/dist/features/comments/react/CommentThreadView.d.ts +24 -0
  425. package/dist/features/comments/react/CommentThreadView.js +249 -0
  426. package/dist/features/comments/react/CommentThreadView.js.map +1 -0
  427. package/dist/features/comments/react/CommentsListMenu.d.ts +8 -0
  428. package/dist/features/comments/react/CommentsListMenu.js +115 -0
  429. package/dist/features/comments/react/CommentsListMenu.js.map +1 -0
  430. package/dist/features/comments/react/CommentsMargin.d.ts +16 -0
  431. package/dist/features/comments/react/CommentsMargin.js +294 -0
  432. package/dist/features/comments/react/CommentsMargin.js.map +1 -0
  433. package/dist/features/comments/react/CommentsOverlay.d.ts +11 -0
  434. package/dist/features/comments/react/CommentsOverlay.js +52 -0
  435. package/dist/features/comments/react/CommentsOverlay.js.map +1 -0
  436. package/dist/features/comments/react/CommentsPopover.d.ts +15 -0
  437. package/dist/features/comments/react/CommentsPopover.js +107 -0
  438. package/dist/features/comments/react/CommentsPopover.js.map +1 -0
  439. package/dist/features/comments/react/CommentsToolbarButton.d.ts +12 -0
  440. package/dist/features/comments/react/CommentsToolbarButton.js +52 -0
  441. package/dist/features/comments/react/CommentsToolbarButton.js.map +1 -0
  442. package/dist/features/comments/react/SettingsCommentsTab.d.ts +5 -0
  443. package/dist/features/comments/react/SettingsCommentsTab.js +77 -0
  444. package/dist/features/comments/react/SettingsCommentsTab.js.map +1 -0
  445. package/dist/features/comments/react/use-comments.d.ts +17 -0
  446. package/dist/features/comments/react/use-comments.js +37 -0
  447. package/dist/features/comments/react/use-comments.js.map +1 -0
  448. package/dist/features/comments/react.d.ts +23 -0
  449. package/dist/features/comments/react.js +28 -0
  450. package/dist/features/comments/react.js.map +1 -0
  451. package/dist/features/comments/schema.d.ts +51 -0
  452. package/dist/features/comments/schema.js +41 -0
  453. package/dist/features/comments/schema.js.map +1 -0
  454. package/dist/features/comments/shortcuts.js +34 -0
  455. package/dist/features/comments/shortcuts.js.map +1 -0
  456. package/dist/features/comments/use-comments.d.ts +37 -0
  457. package/dist/features/comments/use-comments.js +45 -0
  458. package/dist/features/comments/use-comments.js.map +1 -0
  459. package/dist/features/comments/vue.d.ts +20 -0
  460. package/dist/features/comments/vue.js +28 -0
  461. package/dist/features/comments/vue.js.map +1 -0
  462. package/dist/features/composites/ai-brief.d.ts +31 -0
  463. package/dist/features/composites/ai-brief.js +56 -0
  464. package/dist/features/composites/ai-brief.js.map +1 -0
  465. package/dist/features/composites/anchors.d.ts +47 -0
  466. package/dist/features/composites/anchors.js +137 -0
  467. package/dist/features/composites/anchors.js.map +1 -0
  468. package/dist/features/composites/components/CompositeChrome.js +243 -0
  469. package/dist/features/composites/components/CompositeChrome.js.map +1 -0
  470. package/dist/features/composites/components/CompositeChrome.vue.d.ts +19 -0
  471. package/dist/features/composites/components/CompositeDetails.js +158 -0
  472. package/dist/features/composites/components/CompositeDetails.js.map +1 -0
  473. package/dist/features/composites/components/CompositeDetails.vue.d.ts +19 -0
  474. package/dist/features/composites/components/CompositeFieldEditor.js +114 -0
  475. package/dist/features/composites/components/CompositeFieldEditor.js.map +1 -0
  476. package/dist/features/composites/components/CompositeFieldEditor.vue.d.ts +23 -0
  477. package/dist/features/composites/components/CompositeInspector.js +439 -0
  478. package/dist/features/composites/components/CompositeInspector.js.map +1 -0
  479. package/dist/features/composites/components/CompositeInspector.vue.d.ts +32 -0
  480. package/dist/features/composites/components/CompositeStatusMenu.js +51 -0
  481. package/dist/features/composites/components/CompositeStatusMenu.js.map +1 -0
  482. package/dist/features/composites/components/CompositeStatusMenu.vue.d.ts +28 -0
  483. package/dist/features/composites/components/CompositeSummaryEditor.js +79 -0
  484. package/dist/features/composites/components/CompositeSummaryEditor.js.map +1 -0
  485. package/dist/features/composites/components/CompositeSummaryEditor.vue.d.ts +18 -0
  486. package/dist/features/composites/components/CompositeTable.js +348 -0
  487. package/dist/features/composites/components/CompositeTable.js.map +1 -0
  488. package/dist/features/composites/components/CompositeTable.vue.d.ts +15 -0
  489. package/dist/features/composites/components/CompositeTagsEditor.js +95 -0
  490. package/dist/features/composites/components/CompositeTagsEditor.js.map +1 -0
  491. package/dist/features/composites/components/CompositeTagsEditor.vue.d.ts +13 -0
  492. package/dist/features/composites/components/CompositeView.js +46 -0
  493. package/dist/features/composites/components/CompositeView.js.map +1 -0
  494. package/dist/features/composites/components/CompositeView.vue.d.ts +96 -0
  495. package/dist/features/composites/components/SettingsEditingTab.js +119 -0
  496. package/dist/features/composites/components/SettingsEditingTab.js.map +1 -0
  497. package/dist/features/composites/components/SettingsEditingTab.vue.d.ts +11 -0
  498. package/dist/features/composites/convert.d.ts +24 -0
  499. package/dist/features/composites/convert.js +145 -0
  500. package/dist/features/composites/convert.js.map +1 -0
  501. package/dist/features/composites/editing-settings-keys.js +47 -0
  502. package/dist/features/composites/editing-settings-keys.js.map +1 -0
  503. package/dist/features/composites/feature.d.ts +30 -0
  504. package/dist/features/composites/feature.js +305 -0
  505. package/dist/features/composites/feature.js.map +1 -0
  506. package/dist/features/composites/fences.d.ts +20 -0
  507. package/dist/features/composites/fences.js +86 -0
  508. package/dist/features/composites/fences.js.map +1 -0
  509. package/dist/features/composites/heading-composites.d.ts +36 -0
  510. package/dist/features/composites/heading-composites.js +140 -0
  511. package/dist/features/composites/heading-composites.js.map +1 -0
  512. package/dist/features/composites/index.d.ts +20 -0
  513. package/dist/features/composites/index.js +20 -0
  514. package/dist/features/composites/kinds.d.ts +49 -0
  515. package/dist/features/composites/kinds.js +131 -0
  516. package/dist/features/composites/kinds.js.map +1 -0
  517. package/dist/features/composites/legacy.d.ts +8 -0
  518. package/dist/features/composites/legacy.js +25 -0
  519. package/dist/features/composites/legacy.js.map +1 -0
  520. package/dist/features/composites/markdown-export.d.ts +17 -0
  521. package/dist/features/composites/markdown-export.js +49 -0
  522. package/dist/features/composites/markdown-export.js.map +1 -0
  523. package/dist/features/composites/meta-display.js +46 -0
  524. package/dist/features/composites/meta-display.js.map +1 -0
  525. package/dist/features/composites/node-views.d.ts +17 -0
  526. package/dist/features/composites/node-views.js +18 -0
  527. package/dist/features/composites/node-views.js.map +1 -0
  528. package/dist/features/composites/nodes.d.ts +56 -0
  529. package/dist/features/composites/nodes.js +480 -0
  530. package/dist/features/composites/nodes.js.map +1 -0
  531. package/dist/features/composites/outline.d.ts +35 -0
  532. package/dist/features/composites/outline.js +69 -0
  533. package/dist/features/composites/outline.js.map +1 -0
  534. package/dist/features/composites/react/CompositeChrome.d.ts +16 -0
  535. package/dist/features/composites/react/CompositeChrome.js +234 -0
  536. package/dist/features/composites/react/CompositeChrome.js.map +1 -0
  537. package/dist/features/composites/react/CompositeDetails.d.ts +16 -0
  538. package/dist/features/composites/react/CompositeDetails.js +149 -0
  539. package/dist/features/composites/react/CompositeDetails.js.map +1 -0
  540. package/dist/features/composites/react/CompositeFieldEditor.d.ts +18 -0
  541. package/dist/features/composites/react/CompositeFieldEditor.js +131 -0
  542. package/dist/features/composites/react/CompositeFieldEditor.js.map +1 -0
  543. package/dist/features/composites/react/CompositeInspector.d.ts +23 -0
  544. package/dist/features/composites/react/CompositeInspector.js +506 -0
  545. package/dist/features/composites/react/CompositeInspector.js.map +1 -0
  546. package/dist/features/composites/react/CompositeStatusMenu.d.ts +15 -0
  547. package/dist/features/composites/react/CompositeStatusMenu.js +36 -0
  548. package/dist/features/composites/react/CompositeStatusMenu.js.map +1 -0
  549. package/dist/features/composites/react/CompositeSummaryEditor.d.ts +15 -0
  550. package/dist/features/composites/react/CompositeSummaryEditor.js +85 -0
  551. package/dist/features/composites/react/CompositeSummaryEditor.js.map +1 -0
  552. package/dist/features/composites/react/CompositeTable.d.ts +11 -0
  553. package/dist/features/composites/react/CompositeTable.js +342 -0
  554. package/dist/features/composites/react/CompositeTable.js.map +1 -0
  555. package/dist/features/composites/react/CompositeTagsEditor.d.ts +10 -0
  556. package/dist/features/composites/react/CompositeTagsEditor.js +122 -0
  557. package/dist/features/composites/react/CompositeTagsEditor.js.map +1 -0
  558. package/dist/features/composites/react/CompositeView.d.ts +6 -0
  559. package/dist/features/composites/react/CompositeView.js +30 -0
  560. package/dist/features/composites/react/CompositeView.js.map +1 -0
  561. package/dist/features/composites/react/SettingsEditingTab.d.ts +8 -0
  562. package/dist/features/composites/react/SettingsEditingTab.js +153 -0
  563. package/dist/features/composites/react/SettingsEditingTab.js.map +1 -0
  564. package/dist/features/composites/react/use-composite-anchors.d.ts +17 -0
  565. package/dist/features/composites/react/use-composite-anchors.js +46 -0
  566. package/dist/features/composites/react/use-composite-anchors.js.map +1 -0
  567. package/dist/features/composites/react/use-composite-rows.d.ts +11 -0
  568. package/dist/features/composites/react/use-composite-rows.js +26 -0
  569. package/dist/features/composites/react/use-composite-rows.js.map +1 -0
  570. package/dist/features/composites/react.d.ts +24 -0
  571. package/dist/features/composites/react.js +30 -0
  572. package/dist/features/composites/react.js.map +1 -0
  573. package/dist/features/composites/rows-model.d.ts +38 -0
  574. package/dist/features/composites/rows-model.js +92 -0
  575. package/dist/features/composites/rows-model.js.map +1 -0
  576. package/dist/features/composites/rows.d.ts +76 -0
  577. package/dist/features/composites/rows.js +159 -0
  578. package/dist/features/composites/rows.js.map +1 -0
  579. package/dist/features/composites/schema.d.ts +21 -0
  580. package/dist/features/composites/schema.js +26 -0
  581. package/dist/features/composites/schema.js.map +1 -0
  582. package/dist/features/composites/structure-mode.d.ts +11 -0
  583. package/dist/features/composites/structure-mode.js +16 -0
  584. package/dist/features/composites/structure-mode.js.map +1 -0
  585. package/dist/features/composites/structure.d.ts +19 -0
  586. package/dist/features/composites/structure.js +19 -0
  587. package/dist/features/composites/structure.js.map +1 -0
  588. package/dist/features/composites/table-model.js +117 -0
  589. package/dist/features/composites/table-model.js.map +1 -0
  590. package/dist/features/composites/tree-root.d.ts +11 -0
  591. package/dist/features/composites/tree-root.js +16 -0
  592. package/dist/features/composites/tree-root.js.map +1 -0
  593. package/dist/features/composites/use-composite-anchors.d.ts +18 -0
  594. package/dist/features/composites/use-composite-anchors.js +42 -0
  595. package/dist/features/composites/use-composite-anchors.js.map +1 -0
  596. package/dist/features/composites/use-composite-rows.d.ts +25 -0
  597. package/dist/features/composites/use-composite-rows.js +28 -0
  598. package/dist/features/composites/use-composite-rows.js.map +1 -0
  599. package/dist/features/composites/vue.d.ts +23 -0
  600. package/dist/features/composites/vue.js +30 -0
  601. package/dist/features/composites/vue.js.map +1 -0
  602. package/dist/features/media/assets.d.ts +30 -0
  603. package/dist/features/media/assets.js +26 -0
  604. package/dist/features/media/assets.js.map +1 -0
  605. package/dist/features/media/audio-recorder.d.ts +25 -0
  606. package/dist/features/media/audio-recorder.js +123 -0
  607. package/dist/features/media/audio-recorder.js.map +1 -0
  608. package/dist/features/media/components/AudioRecorderModal.js +152 -0
  609. package/dist/features/media/components/AudioRecorderModal.js.map +1 -0
  610. package/dist/features/media/components/AudioRecorderModal.vue.d.ts +15 -0
  611. package/dist/features/media/components/AudioView.js +46 -0
  612. package/dist/features/media/components/AudioView.js.map +1 -0
  613. package/dist/features/media/components/FileView.js +73 -0
  614. package/dist/features/media/components/FileView.js.map +1 -0
  615. package/dist/features/media/components/VideoView.js +47 -0
  616. package/dist/features/media/components/VideoView.js.map +1 -0
  617. package/dist/features/media/feature.d.ts +22 -0
  618. package/dist/features/media/feature.js +101 -0
  619. package/dist/features/media/feature.js.map +1 -0
  620. package/dist/features/media/file-import.d.ts +21 -0
  621. package/dist/features/media/file-import.js +76 -0
  622. package/dist/features/media/file-import.js.map +1 -0
  623. package/dist/features/media/index.d.ts +7 -0
  624. package/dist/features/media/index.js +7 -0
  625. package/dist/features/media/node-views.d.ts +28 -0
  626. package/dist/features/media/node-views.js +28 -0
  627. package/dist/features/media/node-views.js.map +1 -0
  628. package/dist/features/media/react/AudioRecorderModal.d.ts +12 -0
  629. package/dist/features/media/react/AudioRecorderModal.js +147 -0
  630. package/dist/features/media/react/AudioRecorderModal.js.map +1 -0
  631. package/dist/features/media/react/AudioView.js +32 -0
  632. package/dist/features/media/react/AudioView.js.map +1 -0
  633. package/dist/features/media/react/FileView.js +61 -0
  634. package/dist/features/media/react/FileView.js.map +1 -0
  635. package/dist/features/media/react/TitleField.js +30 -0
  636. package/dist/features/media/react/TitleField.js.map +1 -0
  637. package/dist/features/media/react/VideoView.js +33 -0
  638. package/dist/features/media/react/VideoView.js.map +1 -0
  639. package/dist/features/media/react/use-audio-recorder.d.ts +11 -0
  640. package/dist/features/media/react/use-audio-recorder.js +21 -0
  641. package/dist/features/media/react/use-audio-recorder.js.map +1 -0
  642. package/dist/features/media/react.d.ts +19 -0
  643. package/dist/features/media/react.js +37 -0
  644. package/dist/features/media/react.js.map +1 -0
  645. package/dist/features/media/schema.d.ts +59 -0
  646. package/dist/features/media/schema.js +194 -0
  647. package/dist/features/media/schema.js.map +1 -0
  648. package/dist/features/media/upload.d.ts +41 -0
  649. package/dist/features/media/upload.js +106 -0
  650. package/dist/features/media/upload.js.map +1 -0
  651. package/dist/features/media/use-audio-recorder.d.ts +12 -0
  652. package/dist/features/media/use-audio-recorder.js +21 -0
  653. package/dist/features/media/use-audio-recorder.js.map +1 -0
  654. package/dist/features/media/vue.d.ts +19 -0
  655. package/dist/features/media/vue.js +35 -0
  656. package/dist/features/media/vue.js.map +1 -0
  657. package/dist/features/mentions/index.d.ts +22 -0
  658. package/dist/features/mentions/index.js +34 -0
  659. package/dist/features/mentions/index.js.map +1 -0
  660. package/dist/features/mentions/mention-suggestion.d.ts +11 -0
  661. package/dist/features/mentions/mention-suggestion.js +34 -0
  662. package/dist/features/mentions/mention-suggestion.js.map +1 -0
  663. package/dist/features/mentions/mention-text.d.ts +18 -0
  664. package/dist/features/mentions/mention-text.js +75 -0
  665. package/dist/features/mentions/mention-text.js.map +1 -0
  666. package/dist/features/mentions/mention.d.ts +20 -0
  667. package/dist/features/mentions/mention.js +33 -0
  668. package/dist/features/mentions/mention.js.map +1 -0
  669. package/dist/features/mentions/metadata-defaults.d.ts +8 -0
  670. package/dist/features/mentions/metadata-defaults.js +30 -0
  671. package/dist/features/mentions/metadata-defaults.js.map +1 -0
  672. package/dist/features/mentions/normalize.d.ts +10 -0
  673. package/dist/features/mentions/normalize.js +31 -0
  674. package/dist/features/mentions/normalize.js.map +1 -0
  675. package/dist/features/mentions/schema.d.ts +10 -0
  676. package/dist/features/mentions/schema.js +10 -0
  677. package/dist/features/mentions/schema.js.map +1 -0
  678. package/dist/features/mentions/tag-suggestion.d.ts +11 -0
  679. package/dist/features/mentions/tag-suggestion.js +45 -0
  680. package/dist/features/mentions/tag-suggestion.js.map +1 -0
  681. package/dist/features/mentions/tag.d.ts +43 -0
  682. package/dist/features/mentions/tag.js +155 -0
  683. package/dist/features/mentions/tag.js.map +1 -0
  684. package/dist/features/tables/feature.d.ts +14 -0
  685. package/dist/features/tables/feature.js +100 -0
  686. package/dist/features/tables/feature.js.map +1 -0
  687. package/dist/features/tables/index.d.ts +3 -0
  688. package/dist/features/tables/index.js +3 -0
  689. package/dist/features/tables/schema.d.ts +6 -0
  690. package/dist/features/tables/schema.js +27 -0
  691. package/dist/features/tables/schema.js.map +1 -0
  692. package/dist/features/themes/components/SettingsAppearanceTab.js +227 -0
  693. package/dist/features/themes/components/SettingsAppearanceTab.js.map +1 -0
  694. package/dist/features/themes/components/SettingsAppearanceTab.vue.d.ts +6 -0
  695. package/dist/features/themes/feature.d.ts +24 -0
  696. package/dist/features/themes/feature.js +25 -0
  697. package/dist/features/themes/feature.js.map +1 -0
  698. package/dist/features/themes/index.d.ts +6 -0
  699. package/dist/features/themes/index.js +6 -0
  700. package/dist/features/themes/react/SettingsAppearanceTab.d.ts +5 -0
  701. package/dist/features/themes/react/SettingsAppearanceTab.js +221 -0
  702. package/dist/features/themes/react/SettingsAppearanceTab.js.map +1 -0
  703. package/dist/features/themes/react.d.ts +13 -0
  704. package/dist/features/themes/react.js +15 -0
  705. package/dist/features/themes/react.js.map +1 -0
  706. package/dist/features/themes/schema.d.ts +21 -0
  707. package/dist/features/themes/schema.js +16 -0
  708. package/dist/features/themes/schema.js.map +1 -0
  709. package/dist/features/themes/scope-css.d.ts +5 -0
  710. package/dist/features/themes/scope-css.js +142 -0
  711. package/dist/features/themes/scope-css.js.map +1 -0
  712. package/dist/features/themes/theme-runtime.d.ts +14 -0
  713. package/dist/features/themes/theme-runtime.js +147 -0
  714. package/dist/features/themes/theme-runtime.js.map +1 -0
  715. package/dist/features/themes/vue.d.ts +13 -0
  716. package/dist/features/themes/vue.js +29 -0
  717. package/dist/features/themes/vue.js.map +1 -0
  718. package/dist/features/transcript/TranscriptSegmentView.js +169 -0
  719. package/dist/features/transcript/TranscriptSegmentView.js.map +1 -0
  720. package/dist/features/transcript/TranscriptSegmentView.vue.d.ts +96 -0
  721. package/dist/features/transcript/convert.d.ts +11 -0
  722. package/dist/features/transcript/convert.js +40 -0
  723. package/dist/features/transcript/convert.js.map +1 -0
  724. package/dist/features/transcript/feature.d.ts +25 -0
  725. package/dist/features/transcript/feature.js +59 -0
  726. package/dist/features/transcript/feature.js.map +1 -0
  727. package/dist/features/transcript/index.d.ts +7 -0
  728. package/dist/features/transcript/index.js +7 -0
  729. package/dist/features/transcript/react/TranscriptSegmentView.d.ts +6 -0
  730. package/dist/features/transcript/react/TranscriptSegmentView.js +155 -0
  731. package/dist/features/transcript/react/TranscriptSegmentView.js.map +1 -0
  732. package/dist/features/transcript/react.d.ts +9 -0
  733. package/dist/features/transcript/react.js +12 -0
  734. package/dist/features/transcript/react.js.map +1 -0
  735. package/dist/features/transcript/schema.d.ts +9 -0
  736. package/dist/features/transcript/schema.js +9 -0
  737. package/dist/features/transcript/schema.js.map +1 -0
  738. package/dist/features/transcript/segment-node.d.ts +21 -0
  739. package/dist/features/transcript/segment-node.js +113 -0
  740. package/dist/features/transcript/segment-node.js.map +1 -0
  741. package/dist/features/transcript/segment.d.ts +10 -0
  742. package/dist/features/transcript/segment.js +26 -0
  743. package/dist/features/transcript/segment.js.map +1 -0
  744. package/dist/features/transcript/speakers.d.ts +8 -0
  745. package/dist/features/transcript/speakers.js +22 -0
  746. package/dist/features/transcript/speakers.js.map +1 -0
  747. package/dist/features/transcript/vue.d.ts +8 -0
  748. package/dist/features/transcript/vue.js +12 -0
  749. package/dist/features/transcript/vue.js.map +1 -0
  750. package/dist/i18n/de/ai.js +168 -0
  751. package/dist/i18n/de/ai.js.map +1 -0
  752. package/dist/i18n/de/authors.js +21 -0
  753. package/dist/i18n/de/authors.js.map +1 -0
  754. package/dist/i18n/de/block.js +16 -0
  755. package/dist/i18n/de/block.js.map +1 -0
  756. package/dist/i18n/de/comments.js +35 -0
  757. package/dist/i18n/de/comments.js.map +1 -0
  758. package/dist/i18n/de/common.js +11 -0
  759. package/dist/i18n/de/common.js.map +1 -0
  760. package/dist/i18n/de/composites.js +147 -0
  761. package/dist/i18n/de/composites.js.map +1 -0
  762. package/dist/i18n/de/integrations.js +42 -0
  763. package/dist/i18n/de/integrations.js.map +1 -0
  764. package/dist/i18n/de/markdown.js +16 -0
  765. package/dist/i18n/de/markdown.js.map +1 -0
  766. package/dist/i18n/de/media.js +27 -0
  767. package/dist/i18n/de/media.js.map +1 -0
  768. package/dist/i18n/de/mentions.js +10 -0
  769. package/dist/i18n/de/mentions.js.map +1 -0
  770. package/dist/i18n/de/outline.js +9 -0
  771. package/dist/i18n/de/outline.js.map +1 -0
  772. package/dist/i18n/de/settings.js +12 -0
  773. package/dist/i18n/de/settings.js.map +1 -0
  774. package/dist/i18n/de/tables.js +15 -0
  775. package/dist/i18n/de/tables.js.map +1 -0
  776. package/dist/i18n/de/themes.js +26 -0
  777. package/dist/i18n/de/themes.js.map +1 -0
  778. package/dist/i18n/de/toolbar.js +22 -0
  779. package/dist/i18n/de/toolbar.js.map +1 -0
  780. package/dist/i18n/de/transcript.js +10 -0
  781. package/dist/i18n/de/transcript.js.map +1 -0
  782. package/dist/i18n/de/tree.js +31 -0
  783. package/dist/i18n/de/tree.js.map +1 -0
  784. package/dist/i18n/de.d.ts +503 -0
  785. package/dist/i18n/de.js +42 -0
  786. package/dist/i18n/de.js.map +1 -0
  787. package/dist/i18n/en/ai.js +168 -0
  788. package/dist/i18n/en/ai.js.map +1 -0
  789. package/dist/i18n/en/authors.js +21 -0
  790. package/dist/i18n/en/authors.js.map +1 -0
  791. package/dist/i18n/en/block.js +16 -0
  792. package/dist/i18n/en/block.js.map +1 -0
  793. package/dist/i18n/en/comments.js +35 -0
  794. package/dist/i18n/en/comments.js.map +1 -0
  795. package/dist/i18n/en/common.js +11 -0
  796. package/dist/i18n/en/common.js.map +1 -0
  797. package/dist/i18n/en/composites.js +145 -0
  798. package/dist/i18n/en/composites.js.map +1 -0
  799. package/dist/i18n/en/integrations.js +42 -0
  800. package/dist/i18n/en/integrations.js.map +1 -0
  801. package/dist/i18n/en/markdown.js +16 -0
  802. package/dist/i18n/en/markdown.js.map +1 -0
  803. package/dist/i18n/en/media.js +27 -0
  804. package/dist/i18n/en/media.js.map +1 -0
  805. package/dist/i18n/en/mentions.js +10 -0
  806. package/dist/i18n/en/mentions.js.map +1 -0
  807. package/dist/i18n/en/outline.js +9 -0
  808. package/dist/i18n/en/outline.js.map +1 -0
  809. package/dist/i18n/en/settings.js +12 -0
  810. package/dist/i18n/en/settings.js.map +1 -0
  811. package/dist/i18n/en/tables.js +15 -0
  812. package/dist/i18n/en/tables.js.map +1 -0
  813. package/dist/i18n/en/themes.js +26 -0
  814. package/dist/i18n/en/themes.js.map +1 -0
  815. package/dist/i18n/en/toolbar.js +22 -0
  816. package/dist/i18n/en/toolbar.js.map +1 -0
  817. package/dist/i18n/en/transcript.js +10 -0
  818. package/dist/i18n/en/transcript.js.map +1 -0
  819. package/dist/i18n/en/tree.js +31 -0
  820. package/dist/i18n/en/tree.js.map +1 -0
  821. package/dist/i18n/en.js +42 -0
  822. package/dist/i18n/en.js.map +1 -0
  823. package/dist/i18n/index.d.ts +24 -0
  824. package/dist/i18n/index.js +31 -0
  825. package/dist/i18n/index.js.map +1 -0
  826. package/dist/index.d.ts +6 -0
  827. package/dist/index.js +0 -0
  828. package/dist/integrations/composite-ai/composite-fill.d.ts +17 -0
  829. package/dist/integrations/composite-ai/composite-fill.js +129 -0
  830. package/dist/integrations/composite-ai/composite-fill.js.map +1 -0
  831. package/dist/integrations/composite-ai/composite-summary.d.ts +28 -0
  832. package/dist/integrations/composite-ai/composite-summary.js +143 -0
  833. package/dist/integrations/composite-ai/composite-summary.js.map +1 -0
  834. package/dist/integrations/composite-ai/document-transcribe.d.ts +14 -0
  835. package/dist/integrations/composite-ai/document-transcribe.js +89 -0
  836. package/dist/integrations/composite-ai/document-transcribe.js.map +1 -0
  837. package/dist/integrations/composite-ai/index.d.ts +22 -0
  838. package/dist/integrations/composite-ai/index.js +80 -0
  839. package/dist/integrations/composite-ai/index.js.map +1 -0
  840. package/dist/integrations/composite-media/index.d.ts +19 -0
  841. package/dist/integrations/composite-media/index.js +72 -0
  842. package/dist/integrations/composite-media/index.js.map +1 -0
  843. package/dist/integrations/transcript-ai/index.d.ts +16 -0
  844. package/dist/integrations/transcript-ai/index.js +63 -0
  845. package/dist/integrations/transcript-ai/index.js.map +1 -0
  846. package/dist/integrations/transcript-ai/protocol.d.ts +68 -0
  847. package/dist/integrations/transcript-ai/protocol.js +132 -0
  848. package/dist/integrations/transcript-ai/protocol.js.map +1 -0
  849. package/dist/integrations/transcript-ai/transcript-cleanup.d.ts +35 -0
  850. package/dist/integrations/transcript-ai/transcript-cleanup.js +169 -0
  851. package/dist/integrations/transcript-ai/transcript-cleanup.js.map +1 -0
  852. package/dist/markdown/MarkdownSurface.d.ts +25 -0
  853. package/dist/markdown/MarkdownSurface.js +93 -0
  854. package/dist/markdown/MarkdownSurface.js.map +1 -0
  855. package/dist/markdown/MarkdownSurface.vue.d.ts +76 -0
  856. package/dist/markdown/MarkdownSurface2.js +237 -0
  857. package/dist/markdown/MarkdownSurface2.js.map +1 -0
  858. package/dist/markdown/clipboard.d.ts +17 -0
  859. package/dist/markdown/clipboard.js +125 -0
  860. package/dist/markdown/clipboard.js.map +1 -0
  861. package/dist/markdown/document.d.ts +36 -0
  862. package/dist/markdown/document.js +100 -0
  863. package/dist/markdown/document.js.map +1 -0
  864. package/dist/markdown/frontmatter.d.ts +18 -0
  865. package/dist/markdown/frontmatter.js +32 -0
  866. package/dist/markdown/frontmatter.js.map +1 -0
  867. package/dist/markdown/index.d.ts +6 -0
  868. package/dist/markdown/index.js +6 -0
  869. package/dist/markdown/policy.d.ts +34 -0
  870. package/dist/markdown/policy.js +78 -0
  871. package/dist/markdown/policy.js.map +1 -0
  872. package/dist/markdown/react.d.ts +2 -0
  873. package/dist/markdown/react.js +1 -0
  874. package/dist/markdown/source-mode.d.ts +49 -0
  875. package/dist/markdown/source-mode.js +86 -0
  876. package/dist/markdown/source-mode.js.map +1 -0
  877. package/dist/markdown/vue.d.ts +2 -0
  878. package/dist/markdown/vue.js +1 -0
  879. package/dist/nuxt/module.d.ts +68 -0
  880. package/dist/nuxt/module.js +103 -0
  881. package/dist/nuxt/module.js.map +1 -0
  882. package/dist/nuxt/runtime/install-context.d.ts +17 -0
  883. package/dist/nuxt/runtime/install-context.js +26 -0
  884. package/dist/nuxt/runtime/install-context.js.map +1 -0
  885. package/dist/nuxt/runtime/plugins/editor-context-nuxt-ui.client.ts +8 -0
  886. package/dist/nuxt/runtime/plugins/editor-context-primevue.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 +41 -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/primevue/Alert.js +49 -0
  1200. package/dist/vue/kit/primevue/Alert.js.map +1 -0
  1201. package/dist/vue/kit/primevue/Avatar.js +54 -0
  1202. package/dist/vue/kit/primevue/Avatar.js.map +1 -0
  1203. package/dist/vue/kit/primevue/Badge.js +41 -0
  1204. package/dist/vue/kit/primevue/Badge.js.map +1 -0
  1205. package/dist/vue/kit/primevue/Button.js +112 -0
  1206. package/dist/vue/kit/primevue/Button.js.map +1 -0
  1207. package/dist/vue/kit/primevue/Chip.js +38 -0
  1208. package/dist/vue/kit/primevue/Chip.js.map +1 -0
  1209. package/dist/vue/kit/primevue/DropdownMenu.js +98 -0
  1210. package/dist/vue/kit/primevue/DropdownMenu.js.map +1 -0
  1211. package/dist/vue/kit/primevue/FieldGroup.js +22 -0
  1212. package/dist/vue/kit/primevue/FieldGroup.js.map +1 -0
  1213. package/dist/vue/kit/primevue/FormField.js +56 -0
  1214. package/dist/vue/kit/primevue/FormField.js.map +1 -0
  1215. package/dist/vue/kit/primevue/Icon.js +23 -0
  1216. package/dist/vue/kit/primevue/Icon.js.map +1 -0
  1217. package/dist/vue/kit/primevue/Input.js +96 -0
  1218. package/dist/vue/kit/primevue/Input.js.map +1 -0
  1219. package/dist/vue/kit/primevue/InputMenu.js +122 -0
  1220. package/dist/vue/kit/primevue/InputMenu.js.map +1 -0
  1221. package/dist/vue/kit/primevue/Modal.js +59 -0
  1222. package/dist/vue/kit/primevue/Modal.js.map +1 -0
  1223. package/dist/vue/kit/primevue/Popover.js +135 -0
  1224. package/dist/vue/kit/primevue/Popover.js.map +1 -0
  1225. package/dist/vue/kit/primevue/RadioGroup.js +58 -0
  1226. package/dist/vue/kit/primevue/RadioGroup.js.map +1 -0
  1227. package/dist/vue/kit/primevue/Select.js +68 -0
  1228. package/dist/vue/kit/primevue/Select.js.map +1 -0
  1229. package/dist/vue/kit/primevue/SelectMenu.js +94 -0
  1230. package/dist/vue/kit/primevue/SelectMenu.js.map +1 -0
  1231. package/dist/vue/kit/primevue/Separator.js +16 -0
  1232. package/dist/vue/kit/primevue/Separator.js.map +1 -0
  1233. package/dist/vue/kit/primevue/Switch.js +46 -0
  1234. package/dist/vue/kit/primevue/Switch.js.map +1 -0
  1235. package/dist/vue/kit/primevue/Table.js +54 -0
  1236. package/dist/vue/kit/primevue/Table.js.map +1 -0
  1237. package/dist/vue/kit/primevue/Tabs.js +49 -0
  1238. package/dist/vue/kit/primevue/Tabs.js.map +1 -0
  1239. package/dist/vue/kit/primevue/Textarea.js +55 -0
  1240. package/dist/vue/kit/primevue/Textarea.js.map +1 -0
  1241. package/dist/vue/kit/primevue/Tooltip.js +43 -0
  1242. package/dist/vue/kit/primevue/Tooltip.js.map +1 -0
  1243. package/dist/vue/kit/primevue/Tree.js +75 -0
  1244. package/dist/vue/kit/primevue/Tree.js.map +1 -0
  1245. package/dist/vue/kit/primevue/select-options.js +55 -0
  1246. package/dist/vue/kit/primevue/select-options.js.map +1 -0
  1247. package/dist/vue/kit/primevue/shared.js +49 -0
  1248. package/dist/vue/kit/primevue/shared.js.map +1 -0
  1249. package/dist/vue/kit/primevue/trigger.js +25 -0
  1250. package/dist/vue/kit/primevue/trigger.js.map +1 -0
  1251. package/dist/vue/kit/primevue.css +86 -0
  1252. package/dist/vue/kit/primevue.d.ts +33 -0
  1253. package/dist/vue/kit/primevue.js +96 -0
  1254. package/dist/vue/kit/primevue.js.map +1 -0
  1255. package/dist/vue/kit/types.d.ts +370 -0
  1256. package/dist/vue/kit/use-ui-kit.d.ts +12 -0
  1257. package/dist/vue/kit/use-ui-kit.js +17 -0
  1258. package/dist/vue/kit/use-ui-kit.js.map +1 -0
  1259. package/dist/vue/notify.d.ts +12 -0
  1260. package/dist/vue/notify.js +27 -0
  1261. package/dist/vue/notify.js.map +1 -0
  1262. package/dist/vue/settings.d.ts +16 -0
  1263. package/dist/vue/settings.js +64 -0
  1264. package/dist/vue/settings.js.map +1 -0
  1265. package/dist/vue/simple.d.ts +2 -0
  1266. package/dist/vue/simple.js +1 -0
  1267. package/dist/vue/store-ref.d.ts +20 -0
  1268. package/dist/vue/store-ref.js +59 -0
  1269. package/dist/vue/store-ref.js.map +1 -0
  1270. package/dist/vue/suggestion-renderer.d.ts +6 -0
  1271. package/dist/vue/suggestion-renderer.js +20 -0
  1272. package/dist/vue/suggestion-renderer.js.map +1 -0
  1273. package/dist/vue/use-editor-i18n.d.ts +12 -0
  1274. package/dist/vue/use-editor-i18n.js +17 -0
  1275. package/dist/vue/use-editor-i18n.js.map +1 -0
  1276. package/dist/vue/use-editor-ui.d.ts +15 -0
  1277. package/dist/vue/use-editor-ui.js +23 -0
  1278. package/dist/vue/use-editor-ui.js.map +1 -0
  1279. package/dist/vue/use-notifier.d.ts +11 -0
  1280. package/dist/vue/use-notifier.js +19 -0
  1281. package/dist/vue/use-notifier.js.map +1 -0
  1282. package/docs/extending.md +538 -0
  1283. package/docs/integration.md +537 -0
  1284. package/docs/llms.md +375 -0
  1285. package/docs/usage.md +1071 -0
  1286. package/package.json +634 -4
@@ -0,0 +1,13 @@
1
+ import { blockUiFeatureCore } from "./feature.js";
2
+ import { BlockActionsOverlay } from "./react/BlockActionsOverlay.js";
3
+ import { BlockHandles } from "./react/BlockHandles.js";
4
+ import { BlockUi } from "./react/BlockUi.js";
5
+ //#region src/features/block-ui/react.ts
6
+ /** The React block-ui feature: the drag handle (`@tiptap/extension-drag-handle-react`), permanent handles and hover actions with shadcn menus. */
7
+ function blockUiFeature() {
8
+ return blockUiFeatureCore({ overlay: BlockUi });
9
+ }
10
+ //#endregion
11
+ export { BlockActionsOverlay, BlockHandles, BlockUi, blockUiFeature };
12
+
13
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","names":[],"sources":["../../../src/features/block-ui/react.ts"],"sourcesContent":["import type { Editor } from '@tiptap/core'\nimport type { ComponentType } from 'react'\nimport type { ReactFeature } from '../../react'\nimport { blockUiFeatureCore } from './feature'\nimport { BlockUi } from './react/BlockUi'\n\nexport { BlockActionsOverlay } from './react/BlockActionsOverlay'\nexport { BlockHandles } from './react/BlockHandles'\nexport { BlockUi } from './react/BlockUi'\n\n/** The React block-ui feature: the drag handle (`@tiptap/extension-drag-handle-react`), permanent handles and hover actions with shadcn menus. */\nexport function blockUiFeature(): ReactFeature {\n return blockUiFeatureCore<ComponentType<{ editor: Editor }>>({ overlay: BlockUi })\n}\n"],"mappings":";;;;;;AAWA,SAAgB,iBAA+B;CAC7C,OAAO,mBAAsD,EAAE,SAAS,QAAQ,CAAC;AACnF"}
@@ -0,0 +1,9 @@
1
+ import { VueFeature } from "../../vue/index.js";
2
+ import _default from "./components/BlockActionsOverlay.vue.js";
3
+ import _default$1 from "./components/BlockUi.vue.js";
4
+ //#region src/features/block-ui/vue.d.ts
5
+ /** The Vue block-ui feature: the Nuxt UI drag handle, permanent handles and hover actions. */
6
+ export declare function blockUiFeature(): VueFeature;
7
+ //#endregion
8
+ export { _default as BlockActionsOverlay, _default$1 as BlockUi };
9
+ //# sourceMappingURL=vue.d.ts.map
@@ -0,0 +1,12 @@
1
+ import { blockUiFeatureCore } from "./feature.js";
2
+ import _sfc_main from "./components/BlockActionsOverlay.js";
3
+ import _sfc_main$1 from "./components/BlockUi.js";
4
+ //#region src/features/block-ui/vue.ts
5
+ /** The Vue block-ui feature: the Nuxt UI drag handle, permanent handles and hover actions. */
6
+ function blockUiFeature() {
7
+ return blockUiFeatureCore({ overlay: _sfc_main$1 });
8
+ }
9
+ //#endregion
10
+ export { _sfc_main as BlockActionsOverlay, _sfc_main$1 as BlockUi, blockUiFeature };
11
+
12
+ //# sourceMappingURL=vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.js","names":["BlockUi"],"sources":["../../../src/features/block-ui/vue.ts"],"sourcesContent":["import type { Component } from 'vue'\nimport type { VueFeature } from '../../vue'\nimport BlockUi from './components/BlockUi.vue'\nimport { blockUiFeatureCore } from './feature'\n\nexport { default as BlockActionsOverlay } from './components/BlockActionsOverlay.vue'\nexport { default as BlockUi } from './components/BlockUi.vue'\n\n/** The Vue block-ui feature: the Nuxt UI drag handle, permanent handles and hover actions. */\nexport function blockUiFeature(): VueFeature {\n return blockUiFeatureCore<Component>({ overlay: BlockUi })\n}\n"],"mappings":";;;;;AASA,SAAgB,iBAA6B;CAC3C,OAAO,mBAA8B,EAAE,SAASA,YAAQ,CAAC;AAC3D"}
@@ -0,0 +1,7 @@
1
+ import { AnchorResolver } from "../../core/feature.js";
2
+ import "../../core/index.js";
3
+ //#region src/features/collab/anchor-resolver.d.ts
4
+ /** Yjs-backed anchor resolution: relative positions survive remote changes and undo/redo. */
5
+ export declare const yjsAnchorResolver: AnchorResolver;
6
+ //#endregion
7
+ //# sourceMappingURL=anchor-resolver.d.ts.map
@@ -0,0 +1,92 @@
1
+ import { absolutePositionToRelativePosition, relativePositionToAbsolutePosition, ySyncPluginKey, yUndoPluginKey } from "@tiptap/y-tiptap";
2
+ import * as Y from "yjs";
3
+ //#region src/features/collab/anchor-resolver.ts
4
+ const positionMappings = /* @__PURE__ */ new WeakMap();
5
+ /**
6
+ * Y ↔ ProseMirror pairs covering all of `state.doc`, for the position conversions below. The binding's own mapping is
7
+ * not reliable for that: after a page load it is often empty or partial (it only fills for nodes touched by later
8
+ * edits), and a missing entry counts as size 0, so ranges resolve to garbage or not at all. The pairs are derived by
9
+ * walking the Y fragment and the document in parallel (element ↔ node, one XmlText ↔ a run of text nodes) into a
10
+ * private map, so the binding's diffing state is never touched. Cached per document; the binding's mapping when the
11
+ * structures do not line up (a Yjs update the editor has not rendered yet).
12
+ */
13
+ function positionMapping(state) {
14
+ const { type, binding } = ySyncPluginKey.getState(state);
15
+ const cached = positionMappings.get(state.doc);
16
+ if (cached) return cached;
17
+ const mapping = /* @__PURE__ */ new Map();
18
+ const pair = (y, node) => {
19
+ const runs = [];
20
+ node.forEach((child) => {
21
+ const last = runs[runs.length - 1];
22
+ if (child.isText && Array.isArray(last)) last.push(child);
23
+ else runs.push(child.isText ? [child] : child);
24
+ });
25
+ const children = y.toArray();
26
+ if (y === type ? children.length > runs.length : children.length !== runs.length) return false;
27
+ return children.every((child, i) => {
28
+ const run = runs[i];
29
+ if (child instanceof Y.XmlText) {
30
+ if (!Array.isArray(run) || child.length !== run.reduce((sum, text) => sum + text.nodeSize, 0)) return false;
31
+ mapping.set(child, run);
32
+ return true;
33
+ }
34
+ if (!(child instanceof Y.XmlElement) || Array.isArray(run) || child.nodeName !== run.type.name) return false;
35
+ mapping.set(child, run);
36
+ return pair(child, run);
37
+ });
38
+ };
39
+ if (!pair(type, state.doc)) return binding.mapping;
40
+ positionMappings.set(state.doc, mapping);
41
+ return mapping;
42
+ }
43
+ /** [from, to] as Yjs relative positions; see `captureRange` for `startInside`. */
44
+ function captureY(state, { from, to }, startInside) {
45
+ const { type, doc } = ySyncPluginKey.getState(state);
46
+ const mapping = positionMapping(state);
47
+ const y = {
48
+ from: absolutePositionToRelativePosition(from, type, mapping),
49
+ to: absolutePositionToRelativePosition(to, type, mapping)
50
+ };
51
+ if (!startInside || from === to) return y;
52
+ const start = Y.createAbsolutePositionFromRelativePosition(y.from, doc);
53
+ return start ? {
54
+ from: Y.createRelativePositionFromTypeIndex(start.type, start.index, 0),
55
+ to: y.to
56
+ } : y;
57
+ }
58
+ /**
59
+ * Current positions of Yjs relative positions; null when unresolvable. `state` must match the current Y document:
60
+ * inside a remote (y-sync) transaction this is the new state, never the old one.
61
+ */
62
+ function resolveY(state, y) {
63
+ const ystate = ySyncPluginKey.getState(state);
64
+ if (!ystate) return null;
65
+ const mapping = positionMapping(state);
66
+ const from = relativePositionToAbsolutePosition(ystate.doc, ystate.type, y.from, mapping);
67
+ const to = relativePositionToAbsolutePosition(ystate.doc, ystate.type, y.to, mapping);
68
+ if (from === null || to === null || from > to) return null;
69
+ return {
70
+ from,
71
+ to
72
+ };
73
+ }
74
+ /** Yjs-backed anchor resolution: relative positions survive remote changes and undo/redo. */
75
+ const yjsAnchorResolver = {
76
+ isYSync: (tr) => tr.getMeta(ySyncPluginKey)?.isChangeOrigin === true,
77
+ isRemoteChange: (tr) => {
78
+ const ysync = tr.getMeta(ySyncPluginKey);
79
+ return ysync?.isChangeOrigin === true && !ysync.isUndoRedoOperation;
80
+ },
81
+ capture: (state, range, startInside) => ySyncPluginKey.getState(state) ? captureY(state, range, startInside) : null,
82
+ resolve: (state, token) => resolveY(state, token),
83
+ stopUndoCapture: (state) => {
84
+ const undoManager = yUndoPluginKey.getState(state)?.undoManager;
85
+ undoManager?.stopCapturing();
86
+ return !!undoManager;
87
+ }
88
+ };
89
+ //#endregion
90
+ export { yjsAnchorResolver };
91
+
92
+ //# sourceMappingURL=anchor-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anchor-resolver.js","names":[],"sources":["../../../src/features/collab/anchor-resolver.ts"],"sourcesContent":["import type { Node as PMNode } from '@tiptap/pm/model'\nimport type { EditorState } from '@tiptap/pm/state'\nimport { absolutePositionToRelativePosition, relativePositionToAbsolutePosition, ySyncPluginKey, yUndoPluginKey } from '@tiptap/y-tiptap'\nimport * as Y from 'yjs'\nimport type { AnchorResolver } from '../../core'\n\n// The Yjs implementation of core's `AnchorResolver` seam (anchors survive remote changes and undo/redo). Moved here\n// from core so that only editors with the collab feature bundle Yjs relative positions.\n\ninterface YAnchor { from: Y.RelativePosition, to: Y.RelativePosition }\n\n/** Y type → rendered ProseMirror node (text runs: their text nodes), as y-tiptap's position helpers read it. */\ntype YMapping = Parameters<typeof absolutePositionToRelativePosition>[2]\n\nconst positionMappings = new WeakMap<PMNode, YMapping>()\n\n/**\n * Y ↔ ProseMirror pairs covering all of `state.doc`, for the position conversions below. The binding's own mapping is\n * not reliable for that: after a page load it is often empty or partial (it only fills for nodes touched by later\n * edits), and a missing entry counts as size 0, so ranges resolve to garbage or not at all. The pairs are derived by\n * walking the Y fragment and the document in parallel (element ↔ node, one XmlText ↔ a run of text nodes) into a\n * private map, so the binding's diffing state is never touched. Cached per document; the binding's mapping when the\n * structures do not line up (a Yjs update the editor has not rendered yet).\n */\nfunction positionMapping(state: EditorState): YMapping {\n const { type, binding } = ySyncPluginKey.getState(state)\n const cached = positionMappings.get(state.doc)\n if (cached) return cached\n const mapping: YMapping = new Map()\n const pair = (y: Y.XmlFragment | Y.XmlElement, node: PMNode): boolean => {\n const runs: (PMNode | PMNode[])[] = []\n node.forEach((child) => {\n const last = runs[runs.length - 1]\n if (child.isText && Array.isArray(last)) last.push(child)\n else runs.push(child.isText ? [child] : child)\n })\n const children = y.toArray()\n // Blocks a plugin appended to the document right after a Yjs render (TrailingNode after a document that ends in a\n // list or speaker line) reach the Y fragment only with the next local edit; the ones before them still pair up.\n if (y === type ? children.length > runs.length : children.length !== runs.length) return false\n return children.every((child, i) => {\n const run = runs[i]!\n if (child instanceof Y.XmlText) {\n if (!Array.isArray(run) || child.length !== run.reduce((sum, text) => sum + text.nodeSize, 0)) return false\n mapping.set(child, run)\n return true\n }\n if (!(child instanceof Y.XmlElement) || Array.isArray(run) || child.nodeName !== run.type.name) return false\n mapping.set(child, run)\n return pair(child, run)\n })\n }\n if (!pair(type, state.doc)) return binding.mapping\n positionMappings.set(state.doc, mapping)\n return mapping\n}\n\n/** [from, to] as Yjs relative positions; see `captureRange` for `startInside`. */\nfunction captureY(state: EditorState, { from, to }: { from: number, to: number }, startInside: boolean): YAnchor | null {\n const { type, doc } = ySyncPluginKey.getState(state)\n const mapping = positionMapping(state)\n const y = {\n from: absolutePositionToRelativePosition(from, type, mapping),\n to: absolutePositionToRelativePosition(to, type, mapping),\n }\n if (!startInside || from === to) return y\n const start = Y.createAbsolutePositionFromRelativePosition(y.from, doc)\n return start ? { from: Y.createRelativePositionFromTypeIndex(start.type, start.index, 0), to: y.to } : y\n}\n\n/**\n * Current positions of Yjs relative positions; null when unresolvable. `state` must match the current Y document:\n * inside a remote (y-sync) transaction this is the new state, never the old one.\n */\nfunction resolveY(state: EditorState, y: YAnchor): { from: number, to: number } | null {\n const ystate = ySyncPluginKey.getState(state)\n if (!ystate) return null\n const mapping = positionMapping(state)\n const from = relativePositionToAbsolutePosition(ystate.doc, ystate.type, y.from, mapping)\n const to = relativePositionToAbsolutePosition(ystate.doc, ystate.type, y.to, mapping)\n if (from === null || to === null || from > to) return null\n return { from, to }\n}\n\n/** Yjs-backed anchor resolution: relative positions survive remote changes and undo/redo. */\nexport const yjsAnchorResolver: AnchorResolver = {\n isYSync: tr => tr.getMeta(ySyncPluginKey)?.isChangeOrigin === true,\n isRemoteChange: (tr) => {\n const ysync = tr.getMeta(ySyncPluginKey) as { isChangeOrigin?: boolean, isUndoRedoOperation?: boolean } | undefined\n return ysync?.isChangeOrigin === true && !ysync.isUndoRedoOperation\n },\n capture: (state, range, startInside) => ySyncPluginKey.getState(state) ? captureY(state, range, startInside) : null,\n resolve: (state, token) => resolveY(state, token as YAnchor),\n stopUndoCapture: (state) => {\n const undoManager = yUndoPluginKey.getState(state)?.undoManager\n undoManager?.stopCapturing()\n return !!undoManager\n },\n}\n"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { EditorFeature } from "../../core/feature.js";
2
+ import "../../core/index.js";
3
+ import { AnyExtension } from "@tiptap/core";
4
+ //#region src/features/collab/feature.d.ts
5
+ /** What a framework binding supplies to the collab feature. */
6
+ export interface CollabUi {
7
+ /** Extensions added before `Collaboration` while a session exists (framework state-sync plugins). */
8
+ extensions?: AnyExtension[];
9
+ }
10
+ /**
11
+ * Real-time collaboration through Yjs. Active only with a session on the surface (`collaboration` prop): the Y.Doc
12
+ * is then the document (`Collaboration`, which brings the per-user undo/redo; core turns its own history off), and a
13
+ * provider adds remote carets (`CollaborationCaret`, labelled with the session's `user`). Without a session the
14
+ * feature contributes no extensions, so the editor behaves like a standalone one. It also supplies `DocAnchors` with
15
+ * the Yjs-backed `AnchorResolver`, so anchored ranges (AI reviews, ghost text, chat ops) survive concurrent edits.
16
+ *
17
+ * Pairs with the server of `@ecsplico/editor/nuxt` (or any Hocuspocus server on the matching advanced schema).
18
+ * A surface given a `collaboration` session requires this feature and throws otherwise.
19
+ */
20
+ export declare function collabFeatureCore(ui?: CollabUi): EditorFeature<never>;
21
+ //#endregion
22
+ //# sourceMappingURL=feature.d.ts.map
@@ -0,0 +1,36 @@
1
+ import { yjsAnchorResolver } from "./anchor-resolver.js";
2
+ import { Collaboration } from "@tiptap/extension-collaboration";
3
+ import { CollaborationCaret } from "@tiptap/extension-collaboration-caret";
4
+ //#region src/features/collab/feature.ts
5
+ /**
6
+ * Real-time collaboration through Yjs. Active only with a session on the surface (`collaboration` prop): the Y.Doc
7
+ * is then the document (`Collaboration`, which brings the per-user undo/redo; core turns its own history off), and a
8
+ * provider adds remote carets (`CollaborationCaret`, labelled with the session's `user`). Without a session the
9
+ * feature contributes no extensions, so the editor behaves like a standalone one. It also supplies `DocAnchors` with
10
+ * the Yjs-backed `AnchorResolver`, so anchored ranges (AI reviews, ghost text, chat ops) survive concurrent edits.
11
+ *
12
+ * Pairs with the server of `@ecsplico/editor/nuxt` (or any Hocuspocus server on the matching advanced schema).
13
+ * A surface given a `collaboration` session requires this feature and throws otherwise.
14
+ */
15
+ function collabFeatureCore(ui = {}) {
16
+ return {
17
+ id: "collab",
18
+ anchorResolver: () => yjsAnchorResolver,
19
+ extensions: ({ collaboration }) => {
20
+ if (!collaboration) return [];
21
+ if (collaboration.token !== void 0 && collaboration.provider) collaboration.provider.configuration.token = collaboration.token;
22
+ return [
23
+ ...ui.extensions ?? [],
24
+ Collaboration.configure({ document: collaboration.ydoc }),
25
+ ...collaboration.provider ? [CollaborationCaret.configure({
26
+ provider: collaboration.provider,
27
+ ...collaboration.user && { user: collaboration.user }
28
+ })] : []
29
+ ];
30
+ }
31
+ };
32
+ }
33
+ //#endregion
34
+ export { collabFeatureCore };
35
+
36
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature.js","names":[],"sources":["../../../src/features/collab/feature.ts"],"sourcesContent":["import type { AnyExtension } from '@tiptap/core'\nimport { Collaboration } from '@tiptap/extension-collaboration'\nimport { CollaborationCaret } from '@tiptap/extension-collaboration-caret'\nimport type { EditorFeature } from '../../core'\nimport { yjsAnchorResolver } from './anchor-resolver'\n\n/** What a framework binding supplies to the collab feature. */\nexport interface CollabUi {\n /** Extensions added before `Collaboration` while a session exists (framework state-sync plugins). */\n extensions?: AnyExtension[]\n}\n\n/**\n * Real-time collaboration through Yjs. Active only with a session on the surface (`collaboration` prop): the Y.Doc\n * is then the document (`Collaboration`, which brings the per-user undo/redo; core turns its own history off), and a\n * provider adds remote carets (`CollaborationCaret`, labelled with the session's `user`). Without a session the\n * feature contributes no extensions, so the editor behaves like a standalone one. It also supplies `DocAnchors` with\n * the Yjs-backed `AnchorResolver`, so anchored ranges (AI reviews, ghost text, chat ops) survive concurrent edits.\n *\n * Pairs with the server of `@ecsplico/editor/nuxt` (or any Hocuspocus server on the matching advanced schema).\n * A surface given a `collaboration` session requires this feature and throws otherwise.\n */\nexport function collabFeatureCore(ui: CollabUi = {}): EditorFeature<never> {\n return {\n id: 'collab',\n anchorResolver: () => yjsAnchorResolver,\n extensions: ({ collaboration }) => {\n if (!collaboration) return []\n if (collaboration.token !== undefined && collaboration.provider) collaboration.provider.configuration.token = collaboration.token\n return [\n ...(ui.extensions ?? []),\n Collaboration.configure({ document: collaboration.ydoc }),\n ...(collaboration.provider\n ? [CollaborationCaret.configure({ provider: collaboration.provider, ...(collaboration.user && { user: collaboration.user }) })]\n : []),\n ]\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AAsBA,SAAgB,kBAAkB,KAAe,CAAC,GAAyB;CACzE,OAAO;EACL,IAAI;EACJ,sBAAsB;EACtB,aAAa,EAAE,oBAAoB;GACjC,IAAI,CAAC,eAAe,OAAO,CAAC;GAC5B,IAAI,cAAc,UAAU,KAAA,KAAa,cAAc,UAAU,cAAc,SAAS,cAAc,QAAQ,cAAc;GAC5H,OAAO;IACL,GAAI,GAAG,cAAc,CAAC;IACtB,cAAc,UAAU,EAAE,UAAU,cAAc,KAAK,CAAC;IACxD,GAAI,cAAc,WACd,CAAC,mBAAmB,UAAU;KAAE,UAAU,cAAc;KAAU,GAAI,cAAc,QAAQ,EAAE,MAAM,cAAc,KAAK;IAAG,CAAC,CAAC,IAC5H,CAAC;GACP;EACF;CACF;AACF"}
@@ -0,0 +1,3 @@
1
+ import { yjsAnchorResolver } from "./anchor-resolver.js";
2
+ import { CollabUi, collabFeatureCore } from "./feature.js";
3
+ export { type CollabUi, collabFeatureCore, yjsAnchorResolver };
@@ -0,0 +1,3 @@
1
+ import { yjsAnchorResolver } from "./anchor-resolver.js";
2
+ import { collabFeatureCore } from "./feature.js";
3
+ export { collabFeatureCore, yjsAnchorResolver };
@@ -0,0 +1,7 @@
1
+ import { ReactFeature } from "../../react/EditorSurface.js";
2
+ import "../../react/index.js";
3
+ //#region src/features/collab/react.d.ts
4
+ /** The collab feature of the React surface: the framework-free core (no state sync is needed). */
5
+ export declare function collabFeature(): ReactFeature;
6
+ //#endregion
7
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1,10 @@
1
+ import { collabFeatureCore } from "./feature.js";
2
+ //#region src/features/collab/react.ts
3
+ /** The collab feature of the React surface: the framework-free core (no state sync is needed). */
4
+ function collabFeature() {
5
+ return collabFeatureCore();
6
+ }
7
+ //#endregion
8
+ export { collabFeature };
9
+
10
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","names":[],"sources":["../../../src/features/collab/react.ts"],"sourcesContent":["import type { ReactFeature } from '../../react'\nimport { collabFeatureCore } from './feature'\n\n/** The collab feature of the React surface: the framework-free core (no state sync is needed). */\nexport function collabFeature(): ReactFeature {\n return collabFeatureCore()\n}\n"],"mappings":";;;AAIA,SAAgB,gBAA8B;CAC5C,OAAO,kBAAkB;AAC3B"}
@@ -0,0 +1,6 @@
1
+ import { VueFeature } from "../../vue/index.js";
2
+ //#region src/features/collab/vue.d.ts
3
+ /** The collab feature of the Vue surface: the core plus `VueStateSync` (keeps `@tiptap/vue-3`'s reactive state current). */
4
+ export declare function collabFeature(): VueFeature;
5
+ //#endregion
6
+ //# sourceMappingURL=vue.d.ts.map
@@ -0,0 +1,37 @@
1
+ import { collabFeatureCore } from "./feature.js";
2
+ import { Extension } from "@tiptap/core";
3
+ import { Plugin } from "@tiptap/pm/state";
4
+ //#region src/features/collab/vue.ts
5
+ /**
6
+ * `@tiptap/vue-3`'s `Editor.state` is a debounced ref that `beforeTransaction` refreshes; `registerPlugin` (the drag
7
+ * handle, bubble menus) reconfigures the view first. y-sync's plugin view dispatches a transaction while the views are
8
+ * being rebuilt, and that transaction would be applied to the stale state: the views get rebuilt twice with the old
9
+ * plugin list and `Y.UndoManager` is destroyed once more than it is restored, leaving it without its own origin: undo
10
+ * works, redo is dead. Keeping the ref current whenever the view takes a state removes the window.
11
+ */
12
+ const VueStateSync = Extension.create({
13
+ name: "collabVueStateSync",
14
+ addProseMirrorPlugins() {
15
+ const editor = this.editor;
16
+ return [new Plugin({ view: (view) => {
17
+ const updateState = view.updateState;
18
+ if (!updateState.vueStateSync) {
19
+ const wrapped = function(state) {
20
+ if (editor.reactiveState && editor.reactiveState.value !== state) editor.reactiveState.value = state;
21
+ updateState.call(this, state);
22
+ };
23
+ Object.assign(wrapped, { vueStateSync: true });
24
+ view.updateState = wrapped;
25
+ }
26
+ return {};
27
+ } })];
28
+ }
29
+ });
30
+ /** The collab feature of the Vue surface: the core plus `VueStateSync` (keeps `@tiptap/vue-3`'s reactive state current). */
31
+ function collabFeature() {
32
+ return collabFeatureCore({ extensions: [VueStateSync] });
33
+ }
34
+ //#endregion
35
+ export { collabFeature };
36
+
37
+ //# sourceMappingURL=vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.js","names":[],"sources":["../../../src/features/collab/vue.ts"],"sourcesContent":["import { Extension } from '@tiptap/core'\nimport type { EditorState } from '@tiptap/pm/state'\nimport { Plugin } from '@tiptap/pm/state'\nimport type { VueFeature } from '../../vue'\nimport { collabFeatureCore } from './feature'\n\n/**\n * `@tiptap/vue-3`'s `Editor.state` is a debounced ref that `beforeTransaction` refreshes; `registerPlugin` (the drag\n * handle, bubble menus) reconfigures the view first. y-sync's plugin view dispatches a transaction while the views are\n * being rebuilt, and that transaction would be applied to the stale state: the views get rebuilt twice with the old\n * plugin list and `Y.UndoManager` is destroyed once more than it is restored, leaving it without its own origin: undo\n * works, redo is dead. Keeping the ref current whenever the view takes a state removes the window.\n */\nconst VueStateSync = Extension.create({\n name: 'collabVueStateSync',\n addProseMirrorPlugins() {\n const editor = this.editor as unknown as { reactiveState?: { value: EditorState } }\n return [new Plugin({\n view: (view) => {\n const updateState = view.updateState\n // The view outlives its plugin views (every reconfiguration recreates them): wrap once.\n if (!(updateState as { vueStateSync?: boolean }).vueStateSync) {\n const wrapped = function (this: typeof view, state: EditorState) {\n if (editor.reactiveState && editor.reactiveState.value !== state) editor.reactiveState.value = state\n updateState.call(this, state)\n }\n Object.assign(wrapped, { vueStateSync: true })\n view.updateState = wrapped\n }\n return {}\n },\n })]\n },\n})\n\n/** The collab feature of the Vue surface: the core plus `VueStateSync` (keeps `@tiptap/vue-3`'s reactive state current). */\nexport function collabFeature(): VueFeature {\n return collabFeatureCore({ extensions: [VueStateSync] })\n}\n"],"mappings":";;;;;;;;;;;AAaA,MAAM,eAAe,UAAU,OAAO;CACpC,MAAM;CACN,wBAAwB;EACtB,MAAM,SAAS,KAAK;EACpB,OAAO,CAAC,IAAI,OAAO,EACjB,OAAO,SAAS;GACd,MAAM,cAAc,KAAK;GAEzB,IAAI,CAAE,YAA2C,cAAc;IAC7D,MAAM,UAAU,SAA6B,OAAoB;KAC/D,IAAI,OAAO,iBAAiB,OAAO,cAAc,UAAU,OAAO,OAAO,cAAc,QAAQ;KAC/F,YAAY,KAAK,MAAM,KAAK;IAC9B;IACA,OAAO,OAAO,SAAS,EAAE,cAAc,KAAK,CAAC;IAC7C,KAAK,cAAc;GACrB;GACA,OAAO,CAAC;EACV,EACF,CAAC,CAAC;CACJ;AACF,CAAC;;AAGD,SAAgB,gBAA4B;CAC1C,OAAO,kBAAkB,EAAE,YAAY,CAAC,YAAY,EAAE,CAAC;AACzD"}
@@ -0,0 +1,71 @@
1
+ import { AuthorIdentity } from "../../core/feature.js";
2
+ import { DocAnchor } from "../../core/doc-anchors.js";
3
+ import "../../core/index.js";
4
+ import { Editor, Extension } from "@tiptap/core";
5
+ import { EditorState, PluginKey } from "@tiptap/pm/state";
6
+ import { DecorationSet } from "@tiptap/pm/view";
7
+ import * as Y from "yjs";
8
+ //#region src/features/comments/comments-plugin.d.ts
9
+ export interface CommentsState {
10
+ /** Current range of every thread id that has a `comment` mark in the document (first to last marked character). */
11
+ ranges: ReadonlyMap<string, {
12
+ from: number;
13
+ to: number;
14
+ }>;
15
+ /** The thread the user is looking at (clicked text or card): stronger highlight, shown even when resolved. */
16
+ active: string | null;
17
+ /** Ids of the existing threads and of the resolved ones among them; set by `useComments` from the Y.Doc. */
18
+ known: ReadonlySet<string>;
19
+ hidden: ReadonlySet<string>;
20
+ /**
21
+ * Ranges a host `CommentsModel` resolved for threads that have no `comment` mark (anchors stored with the thread);
22
+ * mapped through edits, highlighted like marked text and merged into `ranges` (a mark's range wins).
23
+ */
24
+ modelRanges: ReadonlyMap<string, {
25
+ from: number;
26
+ to: number;
27
+ }>;
28
+ /** The captured selection a new comment is being written for, before its thread exists. */
29
+ draft: DocAnchor | null;
30
+ decorations: DecorationSet;
31
+ }
32
+ export type CommentsMeta = Partial<Pick<CommentsState, 'active' | 'known' | 'hidden' | 'draft' | 'modelRanges'>>;
33
+ export interface CommentsOptions {
34
+ /** The commenting user; `null` (default) means no comments. */
35
+ user: () => AuthorIdentity | null;
36
+ /** The Y.Doc the threads live in; `null` (default: standalone editors) means no comments. */
37
+ doc: () => Y.Doc | null;
38
+ /** Whether comments are available at all; default: there is a `doc` and a `user`. A host model sets it from its snapshot. */
39
+ available?: () => boolean;
40
+ /** Whether the user may compose a comment now; default: available and the editor is editable. */
41
+ canComment?: () => boolean;
42
+ }
43
+ export declare const commentsKey: PluginKey<CommentsState>;
44
+ /**
45
+ * Highlights of the comment threads: the `comment` marks only store each thread's range, the visible highlight is a
46
+ * local inline decoration per marked text node, driven by the thread state `useComments` dispatches (`known`, `hidden`)
47
+ * and by the active thread. Marks of unknown threads (lost thread data) get no highlight and are no click target.
48
+ * Clicking highlighted text activates its thread. Client-only: not part of the Vue-free schema; the `CommentMark`
49
+ * must be in the schema. Modelled on AiSelectionHighlight; the draft range is a DocAnchor.
50
+ */
51
+ export declare const Comments: Extension<CommentsOptions, any>;
52
+ /** The plugin state of `Comments`; undefined when the extension is not registered. */
53
+ export declare function commentsState(state: EditorState): CommentsState | undefined;
54
+ /** Activates thread `id` (`null`: none). `reveal` also selects its text and scrolls it into view. */
55
+ export declare function setActiveComment(editor: Editor, id: string | null, { reveal }?: {
56
+ reveal?: boolean;
57
+ }): void;
58
+ /** Starts a comment on the current (non-empty) selection: captures it as the draft, highlighted until cancelled or added. */
59
+ export declare function startCommentDraft(editor: Editor): void;
60
+ /** Drops the draft and releases its anchor. */
61
+ export declare function cancelCommentDraft(editor: Editor): void;
62
+ /** The Y.Doc the threads of `editor` live in (the collaboration session's), `null` for a standalone editor. */
63
+ export declare function commentsDoc(editor: Editor): Y.Doc | null;
64
+ /** The user `editor` comments as (the configured `Comments` extension's `user`), `null` when it has none. */
65
+ export declare function commentsUser(editor: Editor): AuthorIdentity | null;
66
+ /** Whether `editor` has comments at all: its `Comments` extension has a user and a Y.Doc, or the host model says so. */
67
+ export declare function commentsAvailable(editor: Editor): boolean;
68
+ /** Whether the user may compose a comment on `editor` now (see `CommentsSnapshot.canComment`). */
69
+ export declare function commentsCanComment(editor: Editor): boolean;
70
+ //#endregion
71
+ //# sourceMappingURL=comments-plugin.d.ts.map
@@ -0,0 +1,185 @@
1
+ import { captureRange, releaseRanges, resolveRange } from "../../core/doc-anchors.js";
2
+ import { selectionRange } from "../../core/selection-range.js";
3
+ import { Extension } from "@tiptap/core";
4
+ import { Plugin, PluginKey, TextSelection } from "@tiptap/pm/state";
5
+ import { Decoration, DecorationSet } from "@tiptap/pm/view";
6
+ //#region src/features/comments/comments-plugin.ts
7
+ const commentsKey = new PluginKey("comments");
8
+ const EMPTY_STATE = {
9
+ ranges: /* @__PURE__ */ new Map(),
10
+ active: null,
11
+ known: /* @__PURE__ */ new Set(),
12
+ hidden: /* @__PURE__ */ new Set(),
13
+ modelRanges: /* @__PURE__ */ new Map(),
14
+ draft: null,
15
+ decorations: DecorationSet.empty
16
+ };
17
+ /**
18
+ * Highlights of the comment threads: the `comment` marks only store each thread's range, the visible highlight is a
19
+ * local inline decoration per marked text node, driven by the thread state `useComments` dispatches (`known`, `hidden`)
20
+ * and by the active thread. Marks of unknown threads (lost thread data) get no highlight and are no click target.
21
+ * Clicking highlighted text activates its thread. Client-only: not part of the Vue-free schema; the `CommentMark`
22
+ * must be in the schema. Modelled on AiSelectionHighlight; the draft range is a DocAnchor.
23
+ */
24
+ const Comments = Extension.create({
25
+ name: "comments",
26
+ addOptions: () => ({
27
+ user: () => null,
28
+ doc: () => null
29
+ }),
30
+ addProseMirrorPlugins() {
31
+ return [new Plugin({
32
+ key: commentsKey,
33
+ state: {
34
+ init: () => EMPTY_STATE,
35
+ apply(tr, prev, _oldState, state) {
36
+ const meta = tr.getMeta(commentsKey);
37
+ if (!tr.docChanged && !meta) return prev;
38
+ return recompute(state, {
39
+ ...prev,
40
+ modelRanges: tr.docChanged ? mapRanges(prev.modelRanges, tr) : prev.modelRanges,
41
+ ...meta
42
+ });
43
+ }
44
+ },
45
+ props: {
46
+ decorations: (state) => commentsKey.getState(state)?.decorations ?? null,
47
+ handleClick(view, pos) {
48
+ const value = commentsKey.getState(view.state);
49
+ if (!value) return false;
50
+ const $pos = view.state.doc.resolve(pos);
51
+ const active = threadIdsOf(($pos.nodeAfter ?? $pos.nodeBefore)?.marks ?? []).filter((id) => value.known.has(id) && !value.hidden.has(id))[0] ?? null;
52
+ if (active !== value.active) view.dispatch(view.state.tr.setMeta(commentsKey, { active }).setMeta("addToHistory", false));
53
+ return false;
54
+ }
55
+ }
56
+ })];
57
+ }
58
+ });
59
+ /** Thread ids of the `comment` marks among `marks`. */
60
+ function threadIdsOf(marks) {
61
+ const ids = [];
62
+ for (const mark of marks) if (mark.type.name === "comment" && typeof mark.attrs.id === "string" && mark.attrs.id) ids.push(mark.attrs.id);
63
+ return ids;
64
+ }
65
+ /** `ranges` carried through the edits of `tr`; ranges the edits collapsed are dropped. */
66
+ function mapRanges(ranges, tr) {
67
+ if (!ranges.size) return ranges;
68
+ const mapped = /* @__PURE__ */ new Map();
69
+ for (const [id, range] of ranges) {
70
+ const from = tr.mapping.map(range.from, 1);
71
+ const to = tr.mapping.map(range.to, -1);
72
+ if (from < to) mapped.set(id, {
73
+ from,
74
+ to
75
+ });
76
+ }
77
+ return mapped;
78
+ }
79
+ /** `next` with `ranges` and `decorations` rebuilt from `state.doc` in one walk; a draft whose range is gone is dropped. */
80
+ function recompute(state, next) {
81
+ const ranges = /* @__PURE__ */ new Map();
82
+ const decorations = [];
83
+ state.doc.descendants((node, pos) => {
84
+ if (!node.isText) return;
85
+ const end = pos + node.nodeSize;
86
+ for (const id of threadIdsOf(node.marks)) {
87
+ const range = ranges.get(id);
88
+ if (range) {
89
+ range.from = Math.min(range.from, pos);
90
+ range.to = Math.max(range.to, end);
91
+ } else ranges.set(id, {
92
+ from: pos,
93
+ to: end
94
+ });
95
+ if (!next.known.has(id) || next.hidden.has(id) && id !== next.active) continue;
96
+ decorations.push(Decoration.inline(pos, end, {
97
+ "class": id === next.active ? "comment-hl comment-hl--active" : "comment-hl",
98
+ "data-comment-id": id
99
+ }));
100
+ }
101
+ });
102
+ for (const [id, range] of next.modelRanges) {
103
+ const to = Math.min(range.to, state.doc.content.size);
104
+ if (ranges.has(id) || range.from >= to) continue;
105
+ ranges.set(id, {
106
+ from: range.from,
107
+ to
108
+ });
109
+ if (!next.known.has(id) || next.hidden.has(id) && id !== next.active) continue;
110
+ decorations.push(Decoration.inline(range.from, to, {
111
+ "class": id === next.active ? "comment-hl comment-hl--active" : "comment-hl",
112
+ "data-comment-id": id
113
+ }));
114
+ }
115
+ let draft = next.draft;
116
+ const draftRange = draft && resolveRange(state, draft);
117
+ if (!draftRange) draft = null;
118
+ else if (draftRange.from < draftRange.to) decorations.push(Decoration.inline(draftRange.from, draftRange.to, { class: "comment-hl comment-hl--draft" }));
119
+ return {
120
+ ...next,
121
+ ranges,
122
+ draft,
123
+ decorations: decorations.length ? DecorationSet.create(state.doc, decorations) : DecorationSet.empty
124
+ };
125
+ }
126
+ /** The plugin state of `Comments`; undefined when the extension is not registered. */
127
+ function commentsState(state) {
128
+ return commentsKey.getState(state);
129
+ }
130
+ /** Activates thread `id` (`null`: none). `reveal` also selects its text and scrolls it into view. */
131
+ function setActiveComment(editor, id, { reveal = false } = {}) {
132
+ const value = !editor.isDestroyed && commentsKey.getState(editor.state);
133
+ if (!value) return;
134
+ const tr = editor.state.tr.setMeta(commentsKey, { active: id }).setMeta("addToHistory", false);
135
+ const range = reveal && id ? value.ranges.get(id) : void 0;
136
+ if (range) tr.setSelection(TextSelection.create(tr.doc, range.from, range.to)).scrollIntoView();
137
+ editor.view.dispatch(tr);
138
+ }
139
+ /** Starts a comment on the current (non-empty) selection: captures it as the draft, highlighted until cancelled or added. */
140
+ function startCommentDraft(editor) {
141
+ const value = !editor.isDestroyed && commentsKey.getState(editor.state);
142
+ if (!value) return;
143
+ const range = selectionRange(editor.state);
144
+ if (range.from >= range.to) return;
145
+ if (value.draft) releaseRanges(editor, [value.draft]);
146
+ const draft = captureRange(editor, range, { startInside: true });
147
+ editor.view.dispatch(editor.state.tr.setMeta(commentsKey, {
148
+ draft,
149
+ active: null
150
+ }).setMeta("addToHistory", false));
151
+ }
152
+ /** Drops the draft and releases its anchor. */
153
+ function cancelCommentDraft(editor) {
154
+ const draft = !editor.isDestroyed && commentsKey.getState(editor.state)?.draft;
155
+ if (!draft) return;
156
+ editor.view.dispatch(editor.state.tr.setMeta(commentsKey, { draft: null }).setMeta("addToHistory", false));
157
+ releaseRanges(editor, [draft]);
158
+ }
159
+ function commentsExtension(editor) {
160
+ return editor.extensionManager.extensions.find((e) => e.name === "comments");
161
+ }
162
+ /** The Y.Doc the threads of `editor` live in (the collaboration session's), `null` for a standalone editor. */
163
+ function commentsDoc(editor) {
164
+ return commentsExtension(editor)?.options.doc() ?? null;
165
+ }
166
+ /** The user `editor` comments as (the configured `Comments` extension's `user`), `null` when it has none. */
167
+ function commentsUser(editor) {
168
+ return commentsExtension(editor)?.options.user() ?? null;
169
+ }
170
+ /** Whether `editor` has comments at all: its `Comments` extension has a user and a Y.Doc, or the host model says so. */
171
+ function commentsAvailable(editor) {
172
+ const extension = !editor.isDestroyed ? commentsExtension(editor) : void 0;
173
+ if (!extension) return false;
174
+ return extension.options.available ? extension.options.available() : !!extension.options.doc() && !!extension.options.user();
175
+ }
176
+ /** Whether the user may compose a comment on `editor` now (see `CommentsSnapshot.canComment`). */
177
+ function commentsCanComment(editor) {
178
+ const extension = !editor.isDestroyed ? commentsExtension(editor) : void 0;
179
+ if (!extension) return false;
180
+ return extension.options.canComment ? extension.options.canComment() : commentsAvailable(editor) && editor.isEditable;
181
+ }
182
+ //#endregion
183
+ export { Comments, cancelCommentDraft, commentsAvailable, commentsCanComment, commentsDoc, commentsKey, commentsState, commentsUser, setActiveComment, startCommentDraft };
184
+
185
+ //# sourceMappingURL=comments-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"comments-plugin.js","names":[],"sources":["../../../src/features/comments/comments-plugin.ts"],"sourcesContent":["import { type Editor, Extension } from '@tiptap/core'\nimport type { Mark } from '@tiptap/pm/model'\nimport { type EditorState, Plugin, PluginKey, TextSelection, type Transaction } from '@tiptap/pm/state'\nimport { Decoration, DecorationSet } from '@tiptap/pm/view'\nimport type * as Y from 'yjs'\nimport { captureRange, type AuthorIdentity, type DocAnchor, releaseRanges, resolveRange, selectionRange } from '../../core'\n\nexport interface CommentsState {\n /** Current range of every thread id that has a `comment` mark in the document (first to last marked character). */\n ranges: ReadonlyMap<string, { from: number, to: number }>\n /** The thread the user is looking at (clicked text or card): stronger highlight, shown even when resolved. */\n active: string | null\n /** Ids of the existing threads and of the resolved ones among them; set by `useComments` from the Y.Doc. */\n known: ReadonlySet<string>\n hidden: ReadonlySet<string>\n /**\n * Ranges a host `CommentsModel` resolved for threads that have no `comment` mark (anchors stored with the thread);\n * mapped through edits, highlighted like marked text and merged into `ranges` (a mark's range wins).\n */\n modelRanges: ReadonlyMap<string, { from: number, to: number }>\n /** The captured selection a new comment is being written for, before its thread exists. */\n draft: DocAnchor | null\n decorations: DecorationSet\n}\n\nexport type CommentsMeta = Partial<Pick<CommentsState, 'active' | 'known' | 'hidden' | 'draft' | 'modelRanges'>>\n\nexport interface CommentsOptions {\n /** The commenting user; `null` (default) means no comments. */\n user: () => AuthorIdentity | null\n /** The Y.Doc the threads live in; `null` (default: standalone editors) means no comments. */\n doc: () => Y.Doc | null\n /** Whether comments are available at all; default: there is a `doc` and a `user`. A host model sets it from its snapshot. */\n available?: () => boolean\n /** Whether the user may compose a comment now; default: available and the editor is editable. */\n canComment?: () => boolean\n}\n\nexport const commentsKey = new PluginKey<CommentsState>('comments')\n\nconst EMPTY_STATE: CommentsState = { ranges: new Map(), active: null, known: new Set(), hidden: new Set(), modelRanges: new Map(), draft: null, decorations: DecorationSet.empty }\n\n/**\n * Highlights of the comment threads: the `comment` marks only store each thread's range, the visible highlight is a\n * local inline decoration per marked text node, driven by the thread state `useComments` dispatches (`known`, `hidden`)\n * and by the active thread. Marks of unknown threads (lost thread data) get no highlight and are no click target.\n * Clicking highlighted text activates its thread. Client-only: not part of the Vue-free schema; the `CommentMark`\n * must be in the schema. Modelled on AiSelectionHighlight; the draft range is a DocAnchor.\n */\nexport const Comments = Extension.create<CommentsOptions>({\n name: 'comments',\n addOptions: () => ({ user: () => null, doc: () => null }),\n\n addProseMirrorPlugins() {\n return [\n new Plugin<CommentsState>({\n key: commentsKey,\n state: {\n init: () => EMPTY_STATE,\n // DocAnchors (priority 1000) applies first, so the draft anchor resolves against this transaction.\n apply(tr, prev, _oldState, state) {\n const meta = tr.getMeta(commentsKey) as CommentsMeta | undefined\n if (!tr.docChanged && !meta) return prev\n return recompute(state, { ...prev, modelRanges: tr.docChanged ? mapRanges(prev.modelRanges, tr) : prev.modelRanges, ...meta })\n },\n },\n props: {\n decorations: state => commentsKey.getState(state)?.decorations ?? null,\n handleClick(view, pos) {\n const value = commentsKey.getState(view.state)\n if (!value) return false\n const $pos = view.state.doc.resolve(pos)\n const node = $pos.nodeAfter ?? $pos.nodeBefore\n const ids = threadIdsOf(node?.marks ?? []).filter(id => value.known.has(id) && !value.hidden.has(id))\n const active = ids[0] ?? null\n if (active !== value.active) {\n view.dispatch(view.state.tr.setMeta(commentsKey, { active } satisfies CommentsMeta).setMeta('addToHistory', false))\n }\n return false\n },\n },\n }),\n ]\n },\n})\n\n/** Thread ids of the `comment` marks among `marks`. */\nfunction threadIdsOf(marks: readonly Mark[]): string[] {\n const ids: string[] = []\n for (const mark of marks) {\n if (mark.type.name === 'comment' && typeof mark.attrs.id === 'string' && mark.attrs.id) ids.push(mark.attrs.id)\n }\n return ids\n}\n\n/** `ranges` carried through the edits of `tr`; ranges the edits collapsed are dropped. */\nfunction mapRanges(ranges: CommentsState['modelRanges'], tr: Transaction): CommentsState['modelRanges'] {\n if (!ranges.size) return ranges\n const mapped = new Map<string, { from: number, to: number }>()\n for (const [id, range] of ranges) {\n const from = tr.mapping.map(range.from, 1)\n const to = tr.mapping.map(range.to, -1)\n if (from < to) mapped.set(id, { from, to })\n }\n return mapped\n}\n\n/** `next` with `ranges` and `decorations` rebuilt from `state.doc` in one walk; a draft whose range is gone is dropped. */\nfunction recompute(state: EditorState, next: CommentsState): CommentsState {\n const ranges = new Map<string, { from: number, to: number }>()\n const decorations: Decoration[] = []\n state.doc.descendants((node, pos) => {\n if (!node.isText) return\n const end = pos + node.nodeSize\n for (const id of threadIdsOf(node.marks)) {\n const range = ranges.get(id)\n if (range) {\n range.from = Math.min(range.from, pos)\n range.to = Math.max(range.to, end)\n }\n else ranges.set(id, { from: pos, to: end })\n if (!next.known.has(id) || (next.hidden.has(id) && id !== next.active)) continue\n decorations.push(Decoration.inline(pos, end, { 'class': id === next.active ? 'comment-hl comment-hl--active' : 'comment-hl', 'data-comment-id': id }))\n }\n })\n for (const [id, range] of next.modelRanges) {\n const to = Math.min(range.to, state.doc.content.size)\n if (ranges.has(id) || range.from >= to) continue\n ranges.set(id, { from: range.from, to })\n if (!next.known.has(id) || (next.hidden.has(id) && id !== next.active)) continue\n decorations.push(Decoration.inline(range.from, to, { 'class': id === next.active ? 'comment-hl comment-hl--active' : 'comment-hl', 'data-comment-id': id }))\n }\n let draft = next.draft\n const draftRange = draft && resolveRange(state, draft)\n if (!draftRange) draft = null\n else if (draftRange.from < draftRange.to) decorations.push(Decoration.inline(draftRange.from, draftRange.to, { class: 'comment-hl comment-hl--draft' }))\n return { ...next, ranges, draft, decorations: decorations.length ? DecorationSet.create(state.doc, decorations) : DecorationSet.empty }\n}\n\n/** The plugin state of `Comments`; undefined when the extension is not registered. */\nexport function commentsState(state: EditorState): CommentsState | undefined {\n return commentsKey.getState(state)\n}\n\n/** Activates thread `id` (`null`: none). `reveal` also selects its text and scrolls it into view. */\nexport function setActiveComment(editor: Editor, id: string | null, { reveal = false }: { reveal?: boolean } = {}): void {\n const value = !editor.isDestroyed && commentsKey.getState(editor.state)\n if (!value) return\n const tr = editor.state.tr.setMeta(commentsKey, { active: id } satisfies CommentsMeta).setMeta('addToHistory', false)\n const range = reveal && id ? value.ranges.get(id) : undefined\n if (range) tr.setSelection(TextSelection.create(tr.doc, range.from, range.to)).scrollIntoView()\n editor.view.dispatch(tr)\n}\n\n/** Starts a comment on the current (non-empty) selection: captures it as the draft, highlighted until cancelled or added. */\nexport function startCommentDraft(editor: Editor): void {\n const value = !editor.isDestroyed && commentsKey.getState(editor.state)\n if (!value) return\n const range = selectionRange(editor.state)\n if (range.from >= range.to) return\n if (value.draft) releaseRanges(editor, [value.draft])\n const draft = captureRange(editor, range, { startInside: true })\n editor.view.dispatch(editor.state.tr.setMeta(commentsKey, { draft, active: null } satisfies CommentsMeta).setMeta('addToHistory', false))\n}\n\n/** Drops the draft and releases its anchor. */\nexport function cancelCommentDraft(editor: Editor): void {\n const draft = !editor.isDestroyed && commentsKey.getState(editor.state)?.draft\n if (!draft) return\n editor.view.dispatch(editor.state.tr.setMeta(commentsKey, { draft: null } satisfies CommentsMeta).setMeta('addToHistory', false))\n releaseRanges(editor, [draft])\n}\n\nfunction commentsExtension(editor: Editor): typeof Comments | undefined {\n return editor.extensionManager.extensions.find(e => e.name === 'comments') as typeof Comments | undefined\n}\n\n/** The Y.Doc the threads of `editor` live in (the collaboration session's), `null` for a standalone editor. */\nexport function commentsDoc(editor: Editor): Y.Doc | null {\n return commentsExtension(editor)?.options.doc() ?? null\n}\n\n/** The user `editor` comments as (the configured `Comments` extension's `user`), `null` when it has none. */\nexport function commentsUser(editor: Editor): AuthorIdentity | null {\n return commentsExtension(editor)?.options.user() ?? null\n}\n\n/** Whether `editor` has comments at all: its `Comments` extension has a user and a Y.Doc, or the host model says so. */\nexport function commentsAvailable(editor: Editor): boolean {\n const extension = !editor.isDestroyed ? commentsExtension(editor) : undefined\n if (!extension) return false\n return extension.options.available ? extension.options.available() : !!extension.options.doc() && !!extension.options.user()\n}\n\n/** Whether the user may compose a comment on `editor` now (see `CommentsSnapshot.canComment`). */\nexport function commentsCanComment(editor: Editor): boolean {\n const extension = !editor.isDestroyed ? commentsExtension(editor) : undefined\n if (!extension) return false\n return extension.options.canComment ? extension.options.canComment() : commentsAvailable(editor) && editor.isEditable\n}\n"],"mappings":"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"}