@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,76 @@
1
+ import { Extension } from "@tiptap/core";
2
+ //#region src/core/metadata.ts
3
+ function createMetadataRegistry(options = {}) {
4
+ const lists = {};
5
+ const created = /* @__PURE__ */ new Map();
6
+ const seen = /* @__PURE__ */ new Map();
7
+ const remember = (into, list, items) => {
8
+ let byId = into.get(list);
9
+ if (!byId) into.set(list, byId = /* @__PURE__ */ new Map());
10
+ for (const item of items) byId.set(item.id, item);
11
+ };
12
+ const withCreated = (list, items) => [...items, ...[...created.get(list)?.values() ?? []].filter((i) => !items.some((s) => s.id === i.id))];
13
+ let host = {};
14
+ const fallback = {};
15
+ const apply = () => {
16
+ const next = {
17
+ ...fallback,
18
+ ...host
19
+ };
20
+ for (const key of Object.keys(lists)) if (!(key in next)) delete lists[key];
21
+ Object.assign(lists, next);
22
+ };
23
+ return {
24
+ lists,
25
+ replace(metadata) {
26
+ host = metadata;
27
+ apply();
28
+ },
29
+ defaults(metadata) {
30
+ Object.assign(fallback, metadata);
31
+ apply();
32
+ },
33
+ has: (list) => list in lists,
34
+ async search(list, q) {
35
+ const source = lists[list];
36
+ if (!source) return [];
37
+ if (typeof source !== "function") return filterMetadataItems(withCreated(list, source), q.query);
38
+ const items = await source(q);
39
+ remember(seen, list, items);
40
+ const extra = filterMetadataItems(withCreated(list, items).slice(items.length), q.query);
41
+ return [...items, ...extra];
42
+ },
43
+ known(list) {
44
+ const source = lists[list];
45
+ if (source && typeof source !== "function") return withCreated(list, source);
46
+ return withCreated(list, [...seen.get(list)?.values() ?? []]);
47
+ },
48
+ create(list, item) {
49
+ remember(created, list, [item]);
50
+ options.onCreate?.(list, item);
51
+ }
52
+ };
53
+ }
54
+ /** Case-insensitive; label-prefix matches first, then substring (same order as server/api/editor/users.get.ts); max `limit`. */
55
+ function filterMetadataItems(items, query, limit = 20) {
56
+ const q = query.trim().toLowerCase();
57
+ const matches = items.filter((i) => i.label.toLowerCase().includes(q)).sort((a, b) => a.label.localeCompare(b.label, "de"));
58
+ const prefix = matches.filter((i) => i.label.toLowerCase().startsWith(q));
59
+ return [...prefix, ...matches.filter((i) => !prefix.includes(i))].slice(0, limit);
60
+ }
61
+ /** Makes the host's metadata registry reachable as `editor.storage.metadata.registry` (see `metadataOf`). */
62
+ const Metadata = Extension.create({
63
+ name: "metadata",
64
+ addOptions() {
65
+ return { registry: null };
66
+ },
67
+ addStorage() {
68
+ if (!this.options.registry) throw new Error("tiptap-editor: Metadata.configure({ registry }) fehlt");
69
+ return { registry: this.options.registry };
70
+ }
71
+ });
72
+ const metadataOf = (editor) => editor.storage.metadata.registry;
73
+ //#endregion
74
+ export { Metadata, createMetadataRegistry, filterMetadataItems, metadataOf };
75
+
76
+ //# sourceMappingURL=metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","names":[],"sources":["../../src/core/metadata.ts"],"sourcesContent":["import { type Editor, Extension } from '@tiptap/core'\nimport type { EditorMetadata, MetadataItem, MetadataQuery, MetadataSource } from './metadata-types'\n\nexport interface MetadataRegistry {\n /** Current sources by list name; one object mutated in place on `replace`/`defaults` (not observable). */\n readonly lists: Readonly<Record<string, MetadataSource>>\n /** Sets the host's lists; lists the host does not supply fall back to `defaults`. */\n replace(metadata: EditorMetadata): void\n /** Adds fallback lists (features' built-in sources) used for every list name the host does not supply. */\n defaults(metadata: EditorMetadata): void\n has(list: string): boolean\n /** Array source → `filterMetadataItems`; function source → its awaited result; unknown list → `[]`. */\n search(list: string, q: MetadataQuery): Promise<MetadataItem[]>\n /** Array source: the array; function source: union (by id) of everything searches returned so far, plus created items. */\n known(list: string): readonly MetadataItem[]\n /** Adds `item` to `known(list)`, then reports it via `onCreate`. */\n create(list: string, item: MetadataItem): void\n}\n\nexport function createMetadataRegistry(options: { onCreate?: (list: string, item: MetadataItem) => void } = {}): MetadataRegistry {\n const lists: Record<string, MetadataSource> = {}\n // Per list, by id: items created in this editor (merged into every search, so a new item is suggested before the\n // host's source knows it) and everything function sources returned. Kept across `replace`.\n const created = new Map<string, Map<string, MetadataItem>>()\n const seen = new Map<string, Map<string, MetadataItem>>()\n\n const remember = (into: Map<string, Map<string, MetadataItem>>, list: string, items: readonly MetadataItem[]) => {\n let byId = into.get(list)\n if (!byId) into.set(list, byId = new Map())\n for (const item of items) byId.set(item.id, item)\n }\n const withCreated = (list: string, items: readonly MetadataItem[]) =>\n [...items, ...[...(created.get(list)?.values() ?? [])].filter(i => !items.some(s => s.id === i.id))]\n\n // The host's lists over the features' fallbacks; applied whenever either changes.\n let host: EditorMetadata = {}\n const fallback: EditorMetadata = {}\n const apply = () => {\n const next = { ...fallback, ...host }\n for (const key of Object.keys(lists)) if (!(key in next)) delete lists[key]\n Object.assign(lists, next)\n }\n\n return {\n lists,\n replace(metadata) {\n host = metadata\n apply()\n },\n defaults(metadata) {\n Object.assign(fallback, metadata)\n apply()\n },\n has: list => list in lists,\n async search(list, q) {\n const source = lists[list]\n if (!source) return []\n if (typeof source !== 'function') return filterMetadataItems(withCreated(list, source), q.query)\n const items = await source(q)\n remember(seen, list, items)\n const extra = filterMetadataItems(withCreated(list, items).slice(items.length), q.query)\n return [...items, ...extra]\n },\n known(list) {\n const source = lists[list]\n if (source && typeof source !== 'function') return withCreated(list, source)\n return withCreated(list, [...(seen.get(list)?.values() ?? [])])\n },\n create(list, item) {\n remember(created, list, [item])\n options.onCreate?.(list, item)\n },\n }\n}\n\n/** Case-insensitive; label-prefix matches first, then substring (same order as server/api/editor/users.get.ts); max `limit`. */\nexport function filterMetadataItems(items: readonly MetadataItem[], query: string, limit = 20): MetadataItem[] {\n const q = query.trim().toLowerCase()\n const matches = items\n .filter(i => i.label.toLowerCase().includes(q))\n .sort((a, b) => a.label.localeCompare(b.label, 'de'))\n const prefix = matches.filter(i => i.label.toLowerCase().startsWith(q))\n return [...prefix, ...matches.filter(i => !prefix.includes(i))].slice(0, limit)\n}\n\n/** Makes the host's metadata registry reachable as `editor.storage.metadata.registry` (see `metadataOf`). */\nexport const Metadata = Extension.create<{ registry: MetadataRegistry | null }, { registry: MetadataRegistry }>({\n name: 'metadata',\n\n addOptions() {\n return { registry: null }\n },\n\n addStorage() {\n if (!this.options.registry) throw new Error('tiptap-editor: Metadata.configure({ registry }) fehlt')\n return { registry: this.options.registry }\n },\n})\n\ndeclare module '@tiptap/core' {\n interface Storage {\n metadata: { registry: MetadataRegistry }\n }\n}\n\nexport const metadataOf = (editor: Editor): MetadataRegistry => editor.storage.metadata.registry\n"],"mappings":";;AAmBA,SAAgB,uBAAuB,UAAqE,CAAC,GAAqB;CAChI,MAAM,QAAwC,CAAC;CAG/C,MAAM,0BAAU,IAAI,IAAuC;CAC3D,MAAM,uBAAO,IAAI,IAAuC;CAExD,MAAM,YAAY,MAA8C,MAAc,UAAmC;EAC/G,IAAI,OAAO,KAAK,IAAI,IAAI;EACxB,IAAI,CAAC,MAAM,KAAK,IAAI,MAAM,uBAAO,IAAI,IAAI,CAAC;EAC1C,KAAK,MAAM,QAAQ,OAAO,KAAK,IAAI,KAAK,IAAI,IAAI;CAClD;CACA,MAAM,eAAe,MAAc,UACjC,CAAC,GAAG,OAAO,GAAG,CAAC,GAAI,QAAQ,IAAI,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC,CAAE,CAAC,CAAC,QAAO,MAAK,CAAC,MAAM,MAAK,MAAK,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;CAGrG,IAAI,OAAuB,CAAC;CAC5B,MAAM,WAA2B,CAAC;CAClC,MAAM,cAAc;EAClB,MAAM,OAAO;GAAE,GAAG;GAAU,GAAG;EAAK;EACpC,KAAK,MAAM,OAAO,OAAO,KAAK,KAAK,GAAG,IAAI,EAAE,OAAO,OAAO,OAAO,MAAM;EACvE,OAAO,OAAO,OAAO,IAAI;CAC3B;CAEA,OAAO;EACL;EACA,QAAQ,UAAU;GAChB,OAAO;GACP,MAAM;EACR;EACA,SAAS,UAAU;GACjB,OAAO,OAAO,UAAU,QAAQ;GAChC,MAAM;EACR;EACA,MAAK,SAAQ,QAAQ;EACrB,MAAM,OAAO,MAAM,GAAG;GACpB,MAAM,SAAS,MAAM;GACrB,IAAI,CAAC,QAAQ,OAAO,CAAC;GACrB,IAAI,OAAO,WAAW,YAAY,OAAO,oBAAoB,YAAY,MAAM,MAAM,GAAG,EAAE,KAAK;GAC/F,MAAM,QAAQ,MAAM,OAAO,CAAC;GAC5B,SAAS,MAAM,MAAM,KAAK;GAC1B,MAAM,QAAQ,oBAAoB,YAAY,MAAM,KAAK,CAAC,CAAC,MAAM,MAAM,MAAM,GAAG,EAAE,KAAK;GACvF,OAAO,CAAC,GAAG,OAAO,GAAG,KAAK;EAC5B;EACA,MAAM,MAAM;GACV,MAAM,SAAS,MAAM;GACrB,IAAI,UAAU,OAAO,WAAW,YAAY,OAAO,YAAY,MAAM,MAAM;GAC3E,OAAO,YAAY,MAAM,CAAC,GAAI,KAAK,IAAI,IAAI,CAAC,EAAE,OAAO,KAAK,CAAC,CAAE,CAAC;EAChE;EACA,OAAO,MAAM,MAAM;GACjB,SAAS,SAAS,MAAM,CAAC,IAAI,CAAC;GAC9B,QAAQ,WAAW,MAAM,IAAI;EAC/B;CACF;AACF;;AAGA,SAAgB,oBAAoB,OAAgC,OAAe,QAAQ,IAAoB;CAC7G,MAAM,IAAI,MAAM,KAAK,CAAC,CAAC,YAAY;CACnC,MAAM,UAAU,MACb,QAAO,MAAK,EAAE,MAAM,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAC9C,MAAM,GAAG,MAAM,EAAE,MAAM,cAAc,EAAE,OAAO,IAAI,CAAC;CACtD,MAAM,SAAS,QAAQ,QAAO,MAAK,EAAE,MAAM,YAAY,CAAC,CAAC,WAAW,CAAC,CAAC;CACtE,OAAO,CAAC,GAAG,QAAQ,GAAG,QAAQ,QAAO,MAAK,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK;AAChF;;AAGA,MAAa,WAAW,UAAU,OAA8E;CAC9G,MAAM;CAEN,aAAa;EACX,OAAO,EAAE,UAAU,KAAK;CAC1B;CAEA,aAAa;EACX,IAAI,CAAC,KAAK,QAAQ,UAAU,MAAM,IAAI,MAAM,uDAAuD;EACnG,OAAO,EAAE,UAAU,KAAK,QAAQ,SAAS;CAC3C;AACF,CAAC;AAQD,MAAa,cAAc,WAAqC,OAAO,QAAQ,SAAS"}
@@ -0,0 +1,31 @@
1
+ //#region src/core/notify.d.ts
2
+ /**
3
+ * A user-facing notice (toast). The framework layer renders it: the UI kit's notifier on the Vue surface (Nuxt UI
4
+ * `useToast` or PrimeVue `useToast`; `kind` maps to the kit's colour/severity), sonner on the React surface. `id` deduplicates: a notice with the id of a visible one replaces it.
5
+ */
6
+ export interface Notice {
7
+ id?: string;
8
+ title: string;
9
+ description?: string;
10
+ kind?: 'info' | 'success' | 'warning' | 'error';
11
+ /** Iconify name (`i-lucide-…`). */
12
+ icon?: string;
13
+ /** Milliseconds until it closes; 0 keeps it until a notice with the same `id` replaces it. Default: the framework's. */
14
+ duration?: number;
15
+ /** One button on the notice (e.g. „Rückgängig“); activating it also closes the notice. */
16
+ action?: {
17
+ label: string;
18
+ onClick: () => void;
19
+ };
20
+ }
21
+ /**
22
+ * Shows a notice; features reach it through `FeatureContext.notify`, app-level models through `EditorContext.notify`.
23
+ * `dismiss(id)` closes the visible notice with that id (a persistent `duration: 0` progress notice); absent on notifiers that cannot.
24
+ */
25
+ export type Notifier = ((notice: Notice) => void) & {
26
+ dismiss?: (id: string) => void;
27
+ };
28
+ /** Drops every notice: the default of headless contexts. */
29
+ export declare const silentNotifier: Notifier;
30
+ //#endregion
31
+ //# sourceMappingURL=notify.d.ts.map
@@ -0,0 +1,7 @@
1
+ //#region src/core/notify.ts
2
+ /** Drops every notice: the default of headless contexts. */
3
+ const silentNotifier = () => {};
4
+ //#endregion
5
+ export { silentNotifier };
6
+
7
+ //# sourceMappingURL=notify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.js","names":[],"sources":["../../src/core/notify.ts"],"sourcesContent":["/**\n * A user-facing notice (toast). The framework layer renders it: the UI kit's notifier on the Vue surface (Nuxt UI\n * `useToast` or PrimeVue `useToast`; `kind` maps to the kit's colour/severity), sonner on the React surface. `id` deduplicates: a notice with the id of a visible one replaces it.\n */\nexport interface Notice {\n id?: string\n title: string\n description?: string\n kind?: 'info' | 'success' | 'warning' | 'error'\n /** Iconify name (`i-lucide-…`). */\n icon?: string\n /** Milliseconds until it closes; 0 keeps it until a notice with the same `id` replaces it. Default: the framework's. */\n duration?: number\n /** One button on the notice (e.g. „Rückgängig“); activating it also closes the notice. */\n action?: { label: string, onClick: () => void }\n}\n\n/**\n * Shows a notice; features reach it through `FeatureContext.notify`, app-level models through `EditorContext.notify`.\n * `dismiss(id)` closes the visible notice with that id (a persistent `duration: 0` progress notice); absent on notifiers that cannot.\n */\nexport type Notifier = ((notice: Notice) => void) & { dismiss?: (id: string) => void }\n\n/** Drops every notice: the default of headless contexts. */\nexport const silentNotifier: Notifier = () => {}\n"],"mappings":";;AAwBA,MAAa,uBAAiC,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { AiBlockDataProvider, AiContext, BlockPipeline, ConversionProvider, EditorFeature, EditorPreset } from "./feature.js";
2
+ import { Editor, Extension, JSONContent } from "@tiptap/core";
3
+ //#region src/core/pipeline.d.ts
4
+ /**
5
+ * Tiptap Markdown parsing and identity transforms: what an editor without contributing features does. Every
6
+ * `::: kind` … `:::` fence becomes an `opaqueFence` that keeps its text verbatim (a feature that knows kinds, composites,
7
+ * parses those first); an editor without that node parses the fences as text.
8
+ */
9
+ export declare const DEFAULT_BLOCK_PIPELINE: BlockPipeline;
10
+ export interface PresetStorage {
11
+ pipeline: BlockPipeline;
12
+ conversions: readonly ConversionProvider[];
13
+ aiContext?: EditorFeature['aiContext'];
14
+ aiBlockData?: AiBlockDataProvider;
15
+ formatAiResult?: EditorFeature['formatAiResult'];
16
+ }
17
+ declare module '@tiptap/core' {
18
+ interface Storage {
19
+ editorPreset: PresetStorage;
20
+ }
21
+ }
22
+ /** Makes the preset's resolved pipeline, conversion providers and AI hooks reachable from the editor instance (`pipelineOf`, `conversionsOf`, `aiContextOf`). */
23
+ export declare function presetExtension(preset: EditorPreset): Extension;
24
+ /** The pipeline `editor` was created with (the defaults for an editor without a preset). */
25
+ export declare const pipelineOf: (editor: Editor) => BlockPipeline;
26
+ /** The conversion providers of the preset `editor` was created with, in feature order. */
27
+ export declare const conversionsOf: (editor: Editor) => readonly ConversionProvider[];
28
+ /** What AI knows about `editor`'s document model: the merged `aiContext` of the preset's features, else no kinds, no blocks and a flat structure. */
29
+ export declare function aiContextOf(editor: Editor): {
30
+ kinds: NonNullable<AiContext['kinds']>;
31
+ blocks: NonNullable<AiContext['blocks']>;
32
+ structure: NonNullable<AiContext['structure']>;
33
+ };
34
+ /** The preset's `formatAiResult` hook, or null when no feature contributes one. */
35
+ export declare const formatAiResultOf: (editor: Editor) => ((markdown: string, heading?: string) => string) | null;
36
+ /** The merged `aiBlockData` of the preset's features; without contributors it resolves to no data. */
37
+ export declare const aiBlockDataOf: (editor: Editor) => AiBlockDataProvider;
38
+ /**
39
+ * `markdown` as document JSON (`parsed`: parse, then normalize) and as the blocks to insert (`blocks`: `parsed` after
40
+ * the segment stage). `parsed` is never changed by segmenting. Inline replacements use `parsed`, block insertion and
41
+ * file import use `blocks`.
42
+ */
43
+ export declare function parseBlocks(editor: Editor, markdown: string): {
44
+ parsed: JSONContent;
45
+ blocks: JSONContent[];
46
+ };
47
+ /** Applies the structure stage to blocks about to be inserted (AI block insertion, file import). */
48
+ export declare const structureBlocks: (editor: Editor, blocks: JSONContent[]) => JSONContent[];
49
+ /** Applies the file-wrapping stage to the blocks of an imported file. */
50
+ export declare const wrapImportBlocks: (editor: Editor, file: File, blocks: JSONContent[]) => JSONContent[];
51
+ //#endregion
52
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1,78 @@
1
+ import { opaqueFenceJSON, splitCompositeFences } from "./fences.js";
2
+ import { Extension } from "@tiptap/core";
3
+ //#region src/core/pipeline.ts
4
+ /**
5
+ * Tiptap Markdown parsing and identity transforms: what an editor without contributing features does. Every
6
+ * `::: kind` … `:::` fence becomes an `opaqueFence` that keeps its text verbatim (a feature that knows kinds, composites,
7
+ * parses those first); an editor without that node parses the fences as text.
8
+ */
9
+ const DEFAULT_BLOCK_PIPELINE = {
10
+ parseMarkdown: (editor, markdown) => {
11
+ const parse = (text) => editor.markdown?.parse(text).content ?? [];
12
+ const segments = editor.schema.nodes.opaqueFence ? splitCompositeFences(markdown) : [];
13
+ if (!segments.some((segment) => "inner" in segment)) return parse(markdown);
14
+ return segments.flatMap((segment) => "inner" in segment ? [opaqueFenceJSON(segment)] : parse(segment.markdown));
15
+ },
16
+ normalize: (_editor, blocks) => blocks,
17
+ segment: (_editor, blocks) => blocks,
18
+ structure: (_editor, blocks) => blocks,
19
+ wrapImport: (_editor, _file, blocks) => blocks,
20
+ migrateContent: (content) => content
21
+ };
22
+ /** Makes the preset's resolved pipeline, conversion providers and AI hooks reachable from the editor instance (`pipelineOf`, `conversionsOf`, `aiContextOf`). */
23
+ function presetExtension(preset) {
24
+ return Extension.create({
25
+ name: "editorPreset",
26
+ addStorage: () => ({
27
+ pipeline: preset.pipeline,
28
+ conversions: preset.conversions,
29
+ ...preset.aiContext && { aiContext: preset.aiContext },
30
+ ...preset.aiBlockData && { aiBlockData: preset.aiBlockData },
31
+ ...preset.formatAiResult && { formatAiResult: preset.formatAiResult }
32
+ })
33
+ });
34
+ }
35
+ /** The pipeline `editor` was created with (the defaults for an editor without a preset). */
36
+ const pipelineOf = (editor) => editor.storage.editorPreset?.pipeline ?? DEFAULT_BLOCK_PIPELINE;
37
+ /** The conversion providers of the preset `editor` was created with, in feature order. */
38
+ const conversionsOf = (editor) => editor.storage.editorPreset?.conversions ?? [];
39
+ /** What AI knows about `editor`'s document model: the merged `aiContext` of the preset's features, else no kinds, no blocks and a flat structure. */
40
+ function aiContextOf(editor) {
41
+ const context = editor.storage.editorPreset?.aiContext?.(editor);
42
+ return {
43
+ kinds: context?.kinds ?? [],
44
+ blocks: context?.blocks ?? [],
45
+ structure: context?.structure ?? "flat"
46
+ };
47
+ }
48
+ /** The preset's `formatAiResult` hook, or null when no feature contributes one. */
49
+ const formatAiResultOf = (editor) => {
50
+ const format = editor.storage.editorPreset?.formatAiResult;
51
+ return format ? (markdown, heading) => format(editor, markdown, heading) : null;
52
+ };
53
+ /** The merged `aiBlockData` of the preset's features; without contributors it resolves to no data. */
54
+ const aiBlockDataOf = (editor) => editor.storage.editorPreset?.aiBlockData ?? (() => []);
55
+ /**
56
+ * `markdown` as document JSON (`parsed`: parse, then normalize) and as the blocks to insert (`blocks`: `parsed` after
57
+ * the segment stage). `parsed` is never changed by segmenting. Inline replacements use `parsed`, block insertion and
58
+ * file import use `blocks`.
59
+ */
60
+ function parseBlocks(editor, markdown) {
61
+ const pipeline = pipelineOf(editor);
62
+ const content = pipeline.normalize(editor, pipeline.parseMarkdown(editor, markdown));
63
+ return {
64
+ parsed: {
65
+ type: "doc",
66
+ content
67
+ },
68
+ blocks: pipeline.segment(editor, [...content])
69
+ };
70
+ }
71
+ /** Applies the structure stage to blocks about to be inserted (AI block insertion, file import). */
72
+ const structureBlocks = (editor, blocks) => pipelineOf(editor).structure(editor, blocks);
73
+ /** Applies the file-wrapping stage to the blocks of an imported file. */
74
+ const wrapImportBlocks = (editor, file, blocks) => pipelineOf(editor).wrapImport(editor, file, blocks);
75
+ //#endregion
76
+ export { DEFAULT_BLOCK_PIPELINE, aiBlockDataOf, aiContextOf, conversionsOf, formatAiResultOf, parseBlocks, pipelineOf, presetExtension, structureBlocks, wrapImportBlocks };
77
+
78
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","names":[],"sources":["../../src/core/pipeline.ts"],"sourcesContent":["import { type Editor, Extension, type JSONContent } from '@tiptap/core'\nimport { opaqueFenceJSON, splitCompositeFences } from './fences'\nimport type { AiBlockDataProvider, AiContext, BlockPipeline, ConversionProvider, EditorFeature, EditorPreset } from './feature'\n\n/**\n * Tiptap Markdown parsing and identity transforms: what an editor without contributing features does. Every\n * `::: kind` … `:::` fence becomes an `opaqueFence` that keeps its text verbatim (a feature that knows kinds, composites,\n * parses those first); an editor without that node parses the fences as text.\n */\nexport const DEFAULT_BLOCK_PIPELINE: BlockPipeline = {\n parseMarkdown: (editor, markdown) => {\n const parse = (text: string) => editor.markdown?.parse(text).content ?? []\n const segments = editor.schema.nodes.opaqueFence ? splitCompositeFences(markdown) : []\n if (!segments.some(segment => 'inner' in segment)) return parse(markdown)\n return segments.flatMap(segment => 'inner' in segment ? [opaqueFenceJSON(segment)] : parse(segment.markdown))\n },\n normalize: (_editor, blocks) => blocks,\n segment: (_editor, blocks) => blocks,\n structure: (_editor, blocks) => blocks,\n wrapImport: (_editor, _file, blocks) => blocks,\n migrateContent: content => content,\n}\n\nexport interface PresetStorage {\n pipeline: BlockPipeline\n conversions: readonly ConversionProvider[]\n aiContext?: EditorFeature['aiContext']\n aiBlockData?: AiBlockDataProvider\n formatAiResult?: EditorFeature['formatAiResult']\n}\n\ndeclare module '@tiptap/core' {\n interface Storage { editorPreset: PresetStorage }\n}\n\n/** Makes the preset's resolved pipeline, conversion providers and AI hooks reachable from the editor instance (`pipelineOf`, `conversionsOf`, `aiContextOf`). */\nexport function presetExtension(preset: EditorPreset): Extension {\n return Extension.create({\n name: 'editorPreset',\n addStorage: (): PresetStorage => ({\n pipeline: preset.pipeline,\n conversions: preset.conversions,\n ...(preset.aiContext && { aiContext: preset.aiContext }),\n ...(preset.aiBlockData && { aiBlockData: preset.aiBlockData }),\n ...(preset.formatAiResult && { formatAiResult: preset.formatAiResult }),\n }),\n })\n}\n\n/** The pipeline `editor` was created with (the defaults for an editor without a preset). */\nexport const pipelineOf = (editor: Editor): BlockPipeline => editor.storage.editorPreset?.pipeline ?? DEFAULT_BLOCK_PIPELINE\n\n/** The conversion providers of the preset `editor` was created with, in feature order. */\nexport const conversionsOf = (editor: Editor): readonly ConversionProvider[] => editor.storage.editorPreset?.conversions ?? []\n\n/** What AI knows about `editor`'s document model: the merged `aiContext` of the preset's features, else no kinds, no blocks and a flat structure. */\nexport function aiContextOf(editor: Editor): { kinds: NonNullable<AiContext['kinds']>, blocks: NonNullable<AiContext['blocks']>, structure: NonNullable<AiContext['structure']> } {\n const context = editor.storage.editorPreset?.aiContext?.(editor)\n return { kinds: context?.kinds ?? [], blocks: context?.blocks ?? [], structure: context?.structure ?? 'flat' }\n}\n\n/** The preset's `formatAiResult` hook, or null when no feature contributes one. */\nexport const formatAiResultOf = (editor: Editor): ((markdown: string, heading?: string) => string) | null => {\n const format = editor.storage.editorPreset?.formatAiResult\n return format ? (markdown, heading) => format(editor, markdown, heading) : null\n}\n\n/** The merged `aiBlockData` of the preset's features; without contributors it resolves to no data. */\nexport const aiBlockDataOf = (editor: Editor): AiBlockDataProvider => editor.storage.editorPreset?.aiBlockData ?? (() => [])\n\n/**\n * `markdown` as document JSON (`parsed`: parse, then normalize) and as the blocks to insert (`blocks`: `parsed` after\n * the segment stage). `parsed` is never changed by segmenting. Inline replacements use `parsed`, block insertion and\n * file import use `blocks`.\n */\nexport function parseBlocks(editor: Editor, markdown: string): { parsed: JSONContent, blocks: JSONContent[] } {\n const pipeline = pipelineOf(editor)\n const content = pipeline.normalize(editor, pipeline.parseMarkdown(editor, markdown))\n return { parsed: { type: 'doc', content }, blocks: pipeline.segment(editor, [...content]) }\n}\n\n/** Applies the structure stage to blocks about to be inserted (AI block insertion, file import). */\nexport const structureBlocks = (editor: Editor, blocks: JSONContent[]): JSONContent[] => pipelineOf(editor).structure(editor, blocks)\n\n/** Applies the file-wrapping stage to the blocks of an imported file. */\nexport const wrapImportBlocks = (editor: Editor, file: File, blocks: JSONContent[]): JSONContent[] => pipelineOf(editor).wrapImport(editor, file, blocks)\n"],"mappings":";;;;;;;;AASA,MAAa,yBAAwC;CACnD,gBAAgB,QAAQ,aAAa;EACnC,MAAM,SAAS,SAAiB,OAAO,UAAU,MAAM,IAAI,CAAC,CAAC,WAAW,CAAC;EACzE,MAAM,WAAW,OAAO,OAAO,MAAM,cAAc,qBAAqB,QAAQ,IAAI,CAAC;EACrF,IAAI,CAAC,SAAS,MAAK,YAAW,WAAW,OAAO,GAAG,OAAO,MAAM,QAAQ;EACxE,OAAO,SAAS,SAAQ,YAAW,WAAW,UAAU,CAAC,gBAAgB,OAAO,CAAC,IAAI,MAAM,QAAQ,QAAQ,CAAC;CAC9G;CACA,YAAY,SAAS,WAAW;CAChC,UAAU,SAAS,WAAW;CAC9B,YAAY,SAAS,WAAW;CAChC,aAAa,SAAS,OAAO,WAAW;CACxC,iBAAgB,YAAW;AAC7B;;AAeA,SAAgB,gBAAgB,QAAiC;CAC/D,OAAO,UAAU,OAAO;EACtB,MAAM;EACN,mBAAkC;GAChC,UAAU,OAAO;GACjB,aAAa,OAAO;GACpB,GAAI,OAAO,aAAa,EAAE,WAAW,OAAO,UAAU;GACtD,GAAI,OAAO,eAAe,EAAE,aAAa,OAAO,YAAY;GAC5D,GAAI,OAAO,kBAAkB,EAAE,gBAAgB,OAAO,eAAe;EACvE;CACF,CAAC;AACH;;AAGA,MAAa,cAAc,WAAkC,OAAO,QAAQ,cAAc,YAAY;;AAGtG,MAAa,iBAAiB,WAAkD,OAAO,QAAQ,cAAc,eAAe,CAAC;;AAG7H,SAAgB,YAAY,QAAsJ;CAChL,MAAM,UAAU,OAAO,QAAQ,cAAc,YAAY,MAAM;CAC/D,OAAO;EAAE,OAAO,SAAS,SAAS,CAAC;EAAG,QAAQ,SAAS,UAAU,CAAC;EAAG,WAAW,SAAS,aAAa;CAAO;AAC/G;;AAGA,MAAa,oBAAoB,WAA4E;CAC3G,MAAM,SAAS,OAAO,QAAQ,cAAc;CAC5C,OAAO,UAAU,UAAU,YAAY,OAAO,QAAQ,UAAU,OAAO,IAAI;AAC7E;;AAGA,MAAa,iBAAiB,WAAwC,OAAO,QAAQ,cAAc,sBAAsB,CAAC;;;;;;AAO1H,SAAgB,YAAY,QAAgB,UAAkE;CAC5G,MAAM,WAAW,WAAW,MAAM;CAClC,MAAM,UAAU,SAAS,UAAU,QAAQ,SAAS,cAAc,QAAQ,QAAQ,CAAC;CACnF,OAAO;EAAE,QAAQ;GAAE,MAAM;GAAO;EAAQ;EAAG,QAAQ,SAAS,QAAQ,QAAQ,CAAC,GAAG,OAAO,CAAC;CAAE;AAC5F;;AAGA,MAAa,mBAAmB,QAAgB,WAAyC,WAAW,MAAM,CAAC,CAAC,UAAU,QAAQ,MAAM;;AAGpI,MAAa,oBAAoB,QAAgB,MAAY,WAAyC,WAAW,MAAM,CAAC,CAAC,WAAW,QAAQ,MAAM,MAAM"}
@@ -0,0 +1,55 @@
1
+ import { Node } from "@tiptap/pm/model";
2
+ //#region src/core/schema/abilities.d.ts
3
+ /** Ability ids. Hosts may add their own strings; these are the ones the editor itself checks. */
4
+ export declare const ABILITY: {
5
+ readonly marks: "format.marks";
6
+ readonly headings: "format.headings";
7
+ readonly lists: "format.lists";
8
+ readonly blockquote: "format.blockquote";
9
+ readonly codeBlock: "format.codeBlock";
10
+ readonly rule: "format.rule";
11
+ readonly blockContent: "block.content";
12
+ readonly composite: "format.composite";
13
+ readonly transcript: "transcript.segment";
14
+ readonly media: "insert.media";
15
+ readonly record: "insert.record";
16
+ readonly mention: "insert.mention";
17
+ readonly tag: "insert.tag";
18
+ readonly aiRewrite: "ai.rewrite";
19
+ readonly aiGenerate: "ai.generate";
20
+ readonly aiAutocomplete: "ai.autocomplete";
21
+ readonly blockDelete: "block.delete";
22
+ readonly blockDuplicate: "block.duplicate";
23
+ readonly blockConvert: "block.convert";
24
+ readonly compositeMeta: "composite.meta";
25
+ readonly compositeSummarize: "composite.summarize";
26
+ readonly compositeExport: "composite.export";
27
+ readonly compositeTranscribe: "composite.transcribe";
28
+ };
29
+ export type Ability = (typeof ABILITY)[keyof typeof ABILITY] | (string & {});
30
+ /** How a node changes the abilities of everything inside it: `grants`, then `revokes`; `own` only applies when it is the innermost node. */
31
+ export interface AbilityRule {
32
+ grants?: readonly Ability[];
33
+ revokes?: readonly Ability[];
34
+ own?: readonly Ability[];
35
+ }
36
+ export type AbilityRuleSource = AbilityRule | ((node: Node) => AbilityRule);
37
+ /** Everything a plain paragraph at document root can do. `composite.*` are `own` abilities of composites only. */
38
+ export declare const ROOT_ABILITIES: readonly Ability[];
39
+ /** Text-editing abilities an atom block (image/audio/video) or a tags row can never have. */
40
+ export declare const TEXT_ABILITIES: readonly Ability[];
41
+ /** Node/mark type → ability its creation/toggling needs (toolbar fallback, shortcut + input-rule gate). */
42
+ export declare const TYPE_ABILITIES: Readonly<Record<string, Ability>>;
43
+ /**
44
+ * Abilities at the end of `chain` (ancestors from depth 1 down to and including the innermost node):
45
+ * start with `root`; per node add its `grants`, remove its `revokes`; finally add the innermost node's `own`.
46
+ */
47
+ export declare function resolveAbilities(rules: ReadonlyMap<string, AbilityRuleSource>, root: readonly Ability[], chain: readonly Node[]): ReadonlySet<Ability>;
48
+ declare module '@tiptap/core' {
49
+ interface NodeConfig<Options, Storage> {
50
+ /** Abilities this node grants/revokes for its content (`own`: only when it is the innermost node). Host rules override it. */
51
+ abilities?: AbilityRuleSource;
52
+ }
53
+ }
54
+ //#endregion
55
+ //# sourceMappingURL=abilities.d.ts.map
@@ -0,0 +1,113 @@
1
+ //#region src/core/schema/abilities.ts
2
+ /** Ability ids. Hosts may add their own strings; these are the ones the editor itself checks. */
3
+ const ABILITY = {
4
+ marks: "format.marks",
5
+ headings: "format.headings",
6
+ lists: "format.lists",
7
+ blockquote: "format.blockquote",
8
+ codeBlock: "format.codeBlock",
9
+ rule: "format.rule",
10
+ blockContent: "block.content",
11
+ composite: "format.composite",
12
+ transcript: "transcript.segment",
13
+ media: "insert.media",
14
+ record: "insert.record",
15
+ mention: "insert.mention",
16
+ tag: "insert.tag",
17
+ aiRewrite: "ai.rewrite",
18
+ aiGenerate: "ai.generate",
19
+ aiAutocomplete: "ai.autocomplete",
20
+ blockDelete: "block.delete",
21
+ blockDuplicate: "block.duplicate",
22
+ blockConvert: "block.convert",
23
+ compositeMeta: "composite.meta",
24
+ compositeSummarize: "composite.summarize",
25
+ compositeExport: "composite.export",
26
+ compositeTranscribe: "composite.transcribe"
27
+ };
28
+ /** Everything a plain paragraph at document root can do. `composite.*` are `own` abilities of composites only. */
29
+ const ROOT_ABILITIES = [
30
+ ABILITY.marks,
31
+ ABILITY.headings,
32
+ ABILITY.lists,
33
+ ABILITY.blockquote,
34
+ ABILITY.codeBlock,
35
+ ABILITY.rule,
36
+ ABILITY.blockContent,
37
+ ABILITY.composite,
38
+ ABILITY.transcript,
39
+ ABILITY.media,
40
+ ABILITY.record,
41
+ ABILITY.mention,
42
+ ABILITY.tag,
43
+ ABILITY.aiRewrite,
44
+ ABILITY.aiGenerate,
45
+ ABILITY.aiAutocomplete,
46
+ ABILITY.blockDelete,
47
+ ABILITY.blockDuplicate,
48
+ ABILITY.blockConvert
49
+ ];
50
+ /** Text-editing abilities an atom block (image/audio/video) or a tags row can never have. */
51
+ const TEXT_ABILITIES = [
52
+ ABILITY.marks,
53
+ ABILITY.headings,
54
+ ABILITY.lists,
55
+ ABILITY.blockquote,
56
+ ABILITY.codeBlock,
57
+ ABILITY.rule,
58
+ ABILITY.blockContent,
59
+ ABILITY.composite,
60
+ ABILITY.transcript,
61
+ ABILITY.media,
62
+ ABILITY.record,
63
+ ABILITY.mention,
64
+ ABILITY.tag,
65
+ ABILITY.aiRewrite,
66
+ ABILITY.aiGenerate,
67
+ ABILITY.aiAutocomplete
68
+ ];
69
+ /** Node/mark type → ability its creation/toggling needs (toolbar fallback, shortcut + input-rule gate). */
70
+ const TYPE_ABILITIES = {
71
+ bold: ABILITY.marks,
72
+ italic: ABILITY.marks,
73
+ strike: ABILITY.marks,
74
+ code: ABILITY.marks,
75
+ heading: ABILITY.headings,
76
+ bulletList: ABILITY.lists,
77
+ orderedList: ABILITY.lists,
78
+ listItem: ABILITY.lists,
79
+ taskList: ABILITY.lists,
80
+ taskItem: ABILITY.lists,
81
+ blockquote: ABILITY.blockquote,
82
+ codeBlock: ABILITY.codeBlock,
83
+ horizontalRule: ABILITY.rule,
84
+ composite: ABILITY.composite,
85
+ transcriptSegment: ABILITY.transcript,
86
+ image: ABILITY.media,
87
+ audio: ABILITY.media,
88
+ video: ABILITY.media,
89
+ file: ABILITY.media,
90
+ mention: ABILITY.mention,
91
+ tag: ABILITY.tag
92
+ };
93
+ /**
94
+ * Abilities at the end of `chain` (ancestors from depth 1 down to and including the innermost node):
95
+ * start with `root`; per node add its `grants`, remove its `revokes`; finally add the innermost node's `own`.
96
+ */
97
+ function resolveAbilities(rules, root, chain) {
98
+ const set = new Set(root);
99
+ let own;
100
+ for (const node of chain) {
101
+ const source = rules.get(node.type.name);
102
+ const rule = typeof source === "function" ? source(node) : source;
103
+ for (const ability of rule?.grants ?? []) set.add(ability);
104
+ for (const ability of rule?.revokes ?? []) set.delete(ability);
105
+ own = rule?.own;
106
+ }
107
+ for (const ability of own ?? []) set.add(ability);
108
+ return set;
109
+ }
110
+ //#endregion
111
+ export { ABILITY, ROOT_ABILITIES, TEXT_ABILITIES, TYPE_ABILITIES, resolveAbilities };
112
+
113
+ //# sourceMappingURL=abilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abilities.js","names":[],"sources":["../../../src/core/schema/abilities.ts"],"sourcesContent":["import type { Node as PMNode } from '@tiptap/pm/model'\n\n// Vue-free and server-importable: node schemas shared with the server declare their rule via `NodeConfig.abilities`.\n\n/** Ability ids. Hosts may add their own strings; these are the ones the editor itself checks. */\nexport const ABILITY = {\n marks: 'format.marks',\n headings: 'format.headings',\n lists: 'format.lists',\n blockquote: 'format.blockquote',\n codeBlock: 'format.codeBlock',\n rule: 'format.rule',\n blockContent: 'block.content',\n composite: 'format.composite',\n transcript: 'transcript.segment',\n media: 'insert.media',\n record: 'insert.record',\n mention: 'insert.mention',\n tag: 'insert.tag',\n aiRewrite: 'ai.rewrite',\n aiGenerate: 'ai.generate',\n aiAutocomplete: 'ai.autocomplete',\n blockDelete: 'block.delete',\n blockDuplicate: 'block.duplicate',\n blockConvert: 'block.convert',\n compositeMeta: 'composite.meta',\n compositeSummarize: 'composite.summarize',\n compositeExport: 'composite.export',\n compositeTranscribe: 'composite.transcribe',\n} as const\n\nexport type Ability = (typeof ABILITY)[keyof typeof ABILITY] | (string & {})\n\n/** How a node changes the abilities of everything inside it: `grants`, then `revokes`; `own` only applies when it is the innermost node. */\nexport interface AbilityRule {\n grants?: readonly Ability[]\n revokes?: readonly Ability[]\n own?: readonly Ability[]\n}\n\nexport type AbilityRuleSource = AbilityRule | ((node: PMNode) => AbilityRule)\n\n/** Everything a plain paragraph at document root can do. `composite.*` are `own` abilities of composites only. */\nexport const ROOT_ABILITIES: readonly Ability[] = [\n ABILITY.marks, ABILITY.headings, ABILITY.lists, ABILITY.blockquote, ABILITY.codeBlock, ABILITY.rule, ABILITY.blockContent, ABILITY.composite,\n ABILITY.transcript, ABILITY.media, ABILITY.record, ABILITY.mention, ABILITY.tag, ABILITY.aiRewrite, ABILITY.aiGenerate,\n ABILITY.aiAutocomplete, ABILITY.blockDelete, ABILITY.blockDuplicate, ABILITY.blockConvert,\n]\n\n/** Text-editing abilities an atom block (image/audio/video) or a tags row can never have. */\nexport const TEXT_ABILITIES: readonly Ability[] = [\n ABILITY.marks, ABILITY.headings, ABILITY.lists, ABILITY.blockquote, ABILITY.codeBlock, ABILITY.rule, ABILITY.blockContent, ABILITY.composite,\n ABILITY.transcript, ABILITY.media, ABILITY.record, ABILITY.mention, ABILITY.tag, ABILITY.aiRewrite, ABILITY.aiGenerate,\n ABILITY.aiAutocomplete,\n]\n\n/** Node/mark type → ability its creation/toggling needs (toolbar fallback, shortcut + input-rule gate). */\nexport const TYPE_ABILITIES: Readonly<Record<string, Ability>> = {\n bold: ABILITY.marks,\n italic: ABILITY.marks,\n strike: ABILITY.marks,\n code: ABILITY.marks,\n heading: ABILITY.headings,\n bulletList: ABILITY.lists,\n orderedList: ABILITY.lists,\n listItem: ABILITY.lists,\n taskList: ABILITY.lists,\n taskItem: ABILITY.lists,\n blockquote: ABILITY.blockquote,\n codeBlock: ABILITY.codeBlock,\n horizontalRule: ABILITY.rule,\n composite: ABILITY.composite,\n transcriptSegment: ABILITY.transcript,\n image: ABILITY.media,\n audio: ABILITY.media,\n video: ABILITY.media,\n file: ABILITY.media,\n mention: ABILITY.mention,\n tag: ABILITY.tag,\n}\n\n/**\n * Abilities at the end of `chain` (ancestors from depth 1 down to and including the innermost node):\n * start with `root`; per node add its `grants`, remove its `revokes`; finally add the innermost node's `own`.\n */\nexport function resolveAbilities(rules: ReadonlyMap<string, AbilityRuleSource>, root: readonly Ability[], chain: readonly PMNode[]): ReadonlySet<Ability> {\n const set = new Set<Ability>(root)\n let own: readonly Ability[] | undefined\n for (const node of chain) {\n const source = rules.get(node.type.name)\n const rule = typeof source === 'function' ? source(node) : source\n for (const ability of rule?.grants ?? []) set.add(ability)\n for (const ability of rule?.revokes ?? []) set.delete(ability)\n own = rule?.own\n }\n for (const ability of own ?? []) set.add(ability)\n return set\n}\n\ndeclare module '@tiptap/core' {\n interface NodeConfig<Options, Storage> {\n /** Abilities this node grants/revokes for its content (`own`: only when it is the innermost node). Host rules override it. */\n abilities?: AbilityRuleSource\n }\n}\n"],"mappings":";;AAKA,MAAa,UAAU;CACrB,OAAO;CACP,UAAU;CACV,OAAO;CACP,YAAY;CACZ,WAAW;CACX,MAAM;CACN,cAAc;CACd,WAAW;CACX,YAAY;CACZ,OAAO;CACP,QAAQ;CACR,SAAS;CACT,KAAK;CACL,WAAW;CACX,YAAY;CACZ,gBAAgB;CAChB,aAAa;CACb,gBAAgB;CAChB,cAAc;CACd,eAAe;CACf,oBAAoB;CACpB,iBAAiB;CACjB,qBAAqB;AACvB;;AAcA,MAAa,iBAAqC;CAChD,QAAQ;CAAO,QAAQ;CAAU,QAAQ;CAAO,QAAQ;CAAY,QAAQ;CAAW,QAAQ;CAAM,QAAQ;CAAc,QAAQ;CACnI,QAAQ;CAAY,QAAQ;CAAO,QAAQ;CAAQ,QAAQ;CAAS,QAAQ;CAAK,QAAQ;CAAW,QAAQ;CAC5G,QAAQ;CAAgB,QAAQ;CAAa,QAAQ;CAAgB,QAAQ;AAC/E;;AAGA,MAAa,iBAAqC;CAChD,QAAQ;CAAO,QAAQ;CAAU,QAAQ;CAAO,QAAQ;CAAY,QAAQ;CAAW,QAAQ;CAAM,QAAQ;CAAc,QAAQ;CACnI,QAAQ;CAAY,QAAQ;CAAO,QAAQ;CAAQ,QAAQ;CAAS,QAAQ;CAAK,QAAQ;CAAW,QAAQ;CAC5G,QAAQ;AACV;;AAGA,MAAa,iBAAoD;CAC/D,MAAM,QAAQ;CACd,QAAQ,QAAQ;CAChB,QAAQ,QAAQ;CAChB,MAAM,QAAQ;CACd,SAAS,QAAQ;CACjB,YAAY,QAAQ;CACpB,aAAa,QAAQ;CACrB,UAAU,QAAQ;CAClB,UAAU,QAAQ;CAClB,UAAU,QAAQ;CAClB,YAAY,QAAQ;CACpB,WAAW,QAAQ;CACnB,gBAAgB,QAAQ;CACxB,WAAW,QAAQ;CACnB,mBAAmB,QAAQ;CAC3B,OAAO,QAAQ;CACf,OAAO,QAAQ;CACf,OAAO,QAAQ;CACf,MAAM,QAAQ;CACd,SAAS,QAAQ;CACjB,KAAK,QAAQ;AACf;;;;;AAMA,SAAgB,iBAAiB,OAA+C,MAA0B,OAAgD;CACxJ,MAAM,MAAM,IAAI,IAAa,IAAI;CACjC,IAAI;CACJ,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,SAAS,MAAM,IAAI,KAAK,KAAK,IAAI;EACvC,MAAM,OAAO,OAAO,WAAW,aAAa,OAAO,IAAI,IAAI;EAC3D,KAAK,MAAM,WAAW,MAAM,UAAU,CAAC,GAAG,IAAI,IAAI,OAAO;EACzD,KAAK,MAAM,WAAW,MAAM,WAAW,CAAC,GAAG,IAAI,OAAO,OAAO;EAC7D,MAAM,MAAM;CACd;CACA,KAAK,MAAM,WAAW,OAAO,CAAC,GAAG,IAAI,IAAI,OAAO;CAChD,OAAO;AACT"}
@@ -0,0 +1,29 @@
1
+ import { Node } from "@tiptap/pm/model";
2
+ //#region src/core/schema/block-ids.d.ts
3
+ /** Node attribute holding a block's stable ID; rendered as `data-id`. */
4
+ export declare const BLOCK_ID_ATTR = "id";
5
+ /** The built-in block types: every type that can be a top-level block (paragraphs nested in lists and quotes get one too). Other nodes opt in with `editorBlock: true`. */
6
+ export declare const BLOCK_ID_TYPES: readonly string[];
7
+ /** A fresh block ID (UUID v4; unlike `crypto.randomUUID()` also available outside secure contexts). */
8
+ export declare const newBlockId: () => string;
9
+ /** The block ID of `node`; `null` for node types without IDs and for blocks that have none yet. */
10
+ export declare function blockIdOf(node: Node): string | null;
11
+ /** The block with ID `id` (top-level or nested) and its position in `doc`, or `null`. */
12
+ export declare function findBlockById(doc: Node, id: string): {
13
+ node: Node;
14
+ pos: number;
15
+ } | null;
16
+ /**
17
+ * `doc` with a fresh ID on every block that has none or repeats an earlier block's ID, or `null` when all IDs are
18
+ * present and unique. For content no editor has touched: JSON seeds, Yjs state from before block IDs, server inserts.
19
+ */
20
+ export declare function assignBlockIds(doc: Node): Node | null;
21
+ /**
22
+ * Stable block IDs. `@tiptap/extension-unique-id` assigns IDs only in the local user's transactions: it skips
23
+ * `y-sync$` (remote Yjs) transactions, gives the new half of a split a fresh ID (also the speaker segment's own Enter,
24
+ * whose new half starts without an ID) and strips IDs from pasted and copy-dropped content. Part of
25
+ * `schemaExtensions()`, so the server schema, the JSON mirror and the Yjs state carry the attribute.
26
+ */
27
+ export declare const BlockId: import("@tiptap/core").Extension<import("@tiptap/extension-unique-id").UniqueIDOptions, any>;
28
+ //#endregion
29
+ //# sourceMappingURL=block-ids.d.ts.map
@@ -0,0 +1,134 @@
1
+ import { combineTransactionSteps, findChildrenInRange, getChangedRanges, getExtensionField, splitExtensions } from "@tiptap/core";
2
+ import { Plugin, PluginKey } from "@tiptap/pm/state";
3
+ import { UniqueID } from "@tiptap/extension-unique-id";
4
+ import { Transform } from "@tiptap/pm/transform";
5
+ import { v4 } from "uuid";
6
+ //#region src/core/schema/block-ids.ts
7
+ /** Node attribute holding a block's stable ID; rendered as `data-id`. */
8
+ const BLOCK_ID_ATTR = "id";
9
+ /** The built-in block types: every type that can be a top-level block (paragraphs nested in lists and quotes get one too). Other nodes opt in with `editorBlock: true`. */
10
+ const BLOCK_ID_TYPES = [
11
+ "paragraph",
12
+ "heading",
13
+ "bulletList",
14
+ "orderedList",
15
+ "blockquote",
16
+ "codeBlock",
17
+ "image",
18
+ "audio",
19
+ "video",
20
+ "file",
21
+ "horizontalRule",
22
+ "transcriptSegment",
23
+ "composite"
24
+ ];
25
+ /** The node types among `extensions` that carry a block ID: `editorBlock` declared, else built-in (same rule as `NodeFlags`). */
26
+ const blockTypesOf = (extensions) => splitExtensions(extensions).nodeExtensions.filter((ext) => getExtensionField(ext, "editorBlock") ?? BLOCK_ID_TYPES.includes(ext.name)).map((ext) => ext.name);
27
+ const carriesId = (node) => node.type.spec.editorBlock === true;
28
+ /** A fresh block ID (UUID v4; unlike `crypto.randomUUID()` also available outside secure contexts). */
29
+ const newBlockId = () => v4();
30
+ /** The block ID of `node`; `null` for node types without IDs and for blocks that have none yet. */
31
+ function blockIdOf(node) {
32
+ const id = carriesId(node) ? node.attrs["id"] : null;
33
+ return typeof id === "string" && id ? id : null;
34
+ }
35
+ /** The block with ID `id` (top-level or nested) and its position in `doc`, or `null`. */
36
+ function findBlockById(doc, id) {
37
+ let found = null;
38
+ doc.descendants((node, pos) => {
39
+ if (found) return false;
40
+ if (blockIdOf(node) === id) found = {
41
+ node,
42
+ pos
43
+ };
44
+ return !found && !node.isTextblock;
45
+ });
46
+ return found;
47
+ }
48
+ /**
49
+ * `doc` with a fresh ID on every block that has none or repeats an earlier block's ID, or `null` when all IDs are
50
+ * present and unique. For content no editor has touched: JSON seeds, Yjs state from before block IDs, server inserts.
51
+ */
52
+ function assignBlockIds(doc) {
53
+ const tr = new Transform(doc);
54
+ const seen = /* @__PURE__ */ new Set();
55
+ doc.descendants((node, pos) => {
56
+ if (carriesId(node)) {
57
+ const id = blockIdOf(node);
58
+ if (id && !seen.has(id)) seen.add(id);
59
+ else tr.setNodeAttribute(pos, "id", newBlockId());
60
+ }
61
+ return !node.isTextblock;
62
+ });
63
+ return tr.docChanged ? tr.doc : null;
64
+ }
65
+ /**
66
+ * UniqueID only compares IDs within the changed ranges, so a block inserted with an ID that exists elsewhere in the
67
+ * document (Alt-drop of a drag-handle drag, `insertContent` of a copied block's JSON) would keep the duplicate. This
68
+ * gives such inserted blocks a fresh ID; the block that was already there keeps its own.
69
+ */
70
+ const dedupeInserted = () => new Plugin({
71
+ key: new PluginKey("blockIdDedupe"),
72
+ appendTransaction(transactions, oldState, newState) {
73
+ if (!transactions.some((tr) => tr.docChanged) || transactions.some((tr) => tr.getMeta("y-sync$"))) return;
74
+ const transform = combineTransactionSteps(oldState.doc, [...transactions]);
75
+ const inverse = transform.mapping.invert();
76
+ const inserted = /* @__PURE__ */ new Map();
77
+ for (const { newRange } of getChangedRanges(transform)) for (const { node, pos } of findChildrenInRange(newState.doc, newRange, carriesId)) {
78
+ const id = blockIdOf(node);
79
+ if (id && inverse.mapResult(pos).deleted) inserted.set(pos, id);
80
+ }
81
+ if (!inserted.size) return;
82
+ const total = /* @__PURE__ */ new Map();
83
+ const ofInserted = /* @__PURE__ */ new Map();
84
+ for (const id of inserted.values()) ofInserted.set(id, (ofInserted.get(id) ?? 0) + 1);
85
+ newState.doc.descendants((node) => {
86
+ const id = blockIdOf(node);
87
+ if (id && ofInserted.has(id)) total.set(id, (total.get(id) ?? 0) + 1);
88
+ return !node.isTextblock;
89
+ });
90
+ const tr = newState.tr;
91
+ const kept = /* @__PURE__ */ new Set();
92
+ for (const [pos, id] of [...inserted].sort(([a], [b]) => a - b)) {
93
+ if ((total.get(id) ?? 0) < 2) continue;
94
+ if (total.get(id) === ofInserted.get(id) && !kept.has(id)) {
95
+ kept.add(id);
96
+ continue;
97
+ }
98
+ tr.setNodeAttribute(pos, "id", newBlockId());
99
+ }
100
+ if (!tr.docChanged) return;
101
+ return tr.setStoredMarks(newState.storedMarks).setMeta("__uniqueIDTransaction", true);
102
+ }
103
+ });
104
+ /**
105
+ * Stable block IDs. `@tiptap/extension-unique-id` assigns IDs only in the local user's transactions: it skips
106
+ * `y-sync$` (remote Yjs) transactions, gives the new half of a split a fresh ID (also the speaker segment's own Enter,
107
+ * whose new half starts without an ID) and strips IDs from pasted and copy-dropped content. Part of
108
+ * `schemaExtensions()`, so the server schema, the JSON mirror and the Yjs state carry the attribute.
109
+ */
110
+ const BlockId = UniqueID.extend({
111
+ addGlobalAttributes() {
112
+ this.options.types = blockTypesOf(this.extensions);
113
+ return this.parent?.() ?? [];
114
+ },
115
+ onCreate(event) {
116
+ const { extensions } = this.editor.extensionManager;
117
+ if (extensions.some((ext) => ext.name === "collaboration")) return;
118
+ this.options.types = blockTypesOf(extensions);
119
+ this.parent?.(event);
120
+ },
121
+ addProseMirrorPlugins() {
122
+ this.options.types = blockTypesOf(this.editor.extensionManager.extensions);
123
+ const plugins = this.parent?.() ?? [];
124
+ this.storage.needsInitialIdGeneration = false;
125
+ return [...plugins, dedupeInserted()];
126
+ }
127
+ }).configure({
128
+ attributeName: "id",
129
+ generateID: newBlockId
130
+ });
131
+ //#endregion
132
+ export { BLOCK_ID_ATTR, BLOCK_ID_TYPES, BlockId, assignBlockIds, blockIdOf, findBlockById, newBlockId };
133
+
134
+ //# sourceMappingURL=block-ids.js.map