@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 @@
1
+ {"version":3,"file":"table-model.js","names":[],"sources":["../../../src/features/composites/table-model.ts"],"sourcesContent":["import type { Translate } from '../../i18n'\nimport type { CompositeMetaField } from './kinds'\nimport type { CompositeRow } from './rows'\n\n// The framework-free part of the Bausteine table (`CompositeTable` on Vue and React): column specs, cell text and sort\n// keys. Columns beyond the fixed ones derive from the meta fields of the kinds present in the document.\n\n/** A sort key; `null` is an empty value, which sorts last in either direction. */\nexport type SortValue = string | number | null\n\nexport interface ColumnSpec {\n id: string\n label: string\n /** Number columns read better flush right, next to their tabular numerals. */\n align?: 'end'\n sort: (row: CompositeRow) => SortValue\n}\n\nexport interface FieldColumn extends ColumnSpec {\n field: CompositeMetaField\n}\n\n/** Id prefix of the columns derived from meta fields. */\nexport const FIELD_PREFIX = 'meta:'\n\n/** The \"no filter\" value of a field's select filter. */\nexport const FILTER_ALL = '__all__'\n\nconst isEmpty = (value: unknown): boolean => value === undefined || value === null || value === ''\nconst finiteNumber = (value: unknown): number | null => {\n if (isEmpty(value)) return null\n const number = Number(value)\n return Number.isFinite(number) ? number : null\n}\nconst numberFormat = new Intl.NumberFormat('de-DE')\nconst dateFormat = new Intl.DateTimeFormat('de-DE', { day: '2-digit', month: '2-digit', year: 'numeric' })\n\n/** German, numeric-aware ordering of two sort keys' text. */\nexport const collator = new Intl.Collator('de', { numeric: true })\n\n/** The field of `row`'s kind with key `key`. */\nexport const fieldOf = (row: CompositeRow, key: string): CompositeMetaField | undefined => row.fields.find(field => field.key === key)\n\n/** `2026-05-01` → `01.05.2026`; parsed by hand because `new Date('2026-05-01')` is UTC and can show the previous day. */\nfunction formatDate(value: string): string {\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})/.exec(value)\n const date = match ? new Date(Number(match[1]), Number(match[2]) - 1, Number(match[3])) : new Date(value)\n return Number.isNaN(date.getTime()) ? value : dateFormat.format(date)\n}\n\n/** The cell text of `row`'s field `key`; empty when the value is unset or the row's kind does not have the field. */\nexport function fieldText(row: CompositeRow, key: string): string {\n const field = fieldOf(row, key)\n const value = row.meta[key]\n if (!field || isEmpty(value)) return ''\n if (field.type === 'select') return field.options?.find(option => option.value === value)?.label ?? String(value)\n if (field.type === 'date') return formatDate(String(value))\n if (field.type === 'number') {\n const number = finiteNumber(value)\n return number === null ? String(value) : numberFormat.format(number)\n }\n return String(value)\n}\n\n/** The sort key of `row`'s field `key`: numbers as numbers, selects by their label, everything else as text. */\nexport function fieldSort(row: CompositeRow, key: string): SortValue {\n const field = fieldOf(row, key)\n const value = row.meta[key]\n if (!field || isEmpty(value)) return null\n if (field.type === 'number') return finiteNumber(value) ?? String(value)\n // ISO dates order correctly as plain strings; select values are ordered by what the user reads.\n if (field.type === 'select') return fieldText(row, key)\n return String(value)\n}\n\n/**\n * One column per field key in use, in kind order; the first kind that has the key decides label and type.\n * `textarea` fields (long text such as a transcript) get no column: a table cell can only show a truncated fragment.\n */\nexport function fieldColumnsOf(rows: readonly CompositeRow[], kinds: readonly { id: string }[]): FieldColumn[] {\n const firstRowOfKind = new Map<string, CompositeRow>()\n for (const row of rows) if (!firstRowOfKind.has(row.kind)) firstRowOfKind.set(row.kind, row)\n const seen = new Map<string, FieldColumn>()\n for (const kind of kinds) {\n for (const field of firstRowOfKind.get(kind.id)?.fields ?? []) {\n if (field.type === 'textarea' || seen.has(field.key)) continue\n seen.set(field.key, {\n id: `${FIELD_PREFIX}${field.key}`,\n label: field.label,\n align: field.type === 'number' ? 'end' : undefined,\n sort: row => fieldSort(row, field.key),\n field,\n })\n }\n }\n return [...seen.values()]\n}\n\n/** All columns: title and kind, then the field columns, then tags and summary. */\nexport function columnSpecsOf(fieldColumns: readonly FieldColumn[], t: Translate): ColumnSpec[] {\n return [\n { id: 'title', label: t('composites.table.column.composite'), sort: row => row.title.trim() || null },\n { id: 'kind', label: t('composites.table.column.kind'), sort: row => row.kindLabel },\n ...fieldColumns,\n { id: 'tags', label: t('composites.table.column.tags'), sort: row => row.tags.join(', ') || null },\n // Never empty: absence is a value here, so descending puts the summarized Bausteine first.\n { id: 'summary', label: t('composites.table.column.summary'), sort: row => (row.description.trim() ? 1 : 0) },\n ]\n}\n\n/** `rows` ordered by `sort`, descending when `desc`; empty values last whatever the direction. */\nexport function sortRows(rows: readonly CompositeRow[], sort: ColumnSpec['sort'], desc: boolean): CompositeRow[] {\n const factor = desc ? -1 : 1\n return [...rows].sort((a, b) => {\n const x = sort(a)\n const y = sort(b)\n if (x === null || y === null) return x === y ? 0 : x === null ? 1 : -1\n if (typeof x === 'number' && typeof y === 'number') return (x - y) * factor\n return collator.compare(String(x), String(y)) * factor\n })\n}\n\n/** `list` with `value` added, or removed when present. Pure: returns the new list, the caller assigns it. */\nexport function toggled(list: readonly string[], value: string): string[] {\n return list.includes(value) ? list.filter(item => item !== value) : [...list, value]\n}\n\nexport const hasText = (value: string) => value.trim() !== ''\n\n/** Long text fields show a truncated fragment in a cell, with the full text as its title. */\nexport const isLongText = (field: CompositeMetaField) => field.type === 'text' || field.type === 'textarea'\n"],"mappings":";;AAuBA,MAAa,eAAe;;AAG5B,MAAa,aAAa;AAE1B,MAAM,WAAW,UAA4B,UAAU,KAAA,KAAa,UAAU,QAAQ,UAAU;AAChG,MAAM,gBAAgB,UAAkC;CACtD,IAAI,QAAQ,KAAK,GAAG,OAAO;CAC3B,MAAM,SAAS,OAAO,KAAK;CAC3B,OAAO,OAAO,SAAS,MAAM,IAAI,SAAS;AAC5C;AACA,MAAM,eAAe,IAAI,KAAK,aAAa,OAAO;AAClD,MAAM,aAAa,IAAI,KAAK,eAAe,SAAS;CAAE,KAAK;CAAW,OAAO;CAAW,MAAM;AAAU,CAAC;;AAGzG,MAAa,WAAW,IAAI,KAAK,SAAS,MAAM,EAAE,SAAS,KAAK,CAAC;;AAGjE,MAAa,WAAW,KAAmB,QAAgD,IAAI,OAAO,MAAK,UAAS,MAAM,QAAQ,GAAG;;AAGrI,SAAS,WAAW,OAAuB;CACzC,MAAM,QAAQ,2BAA2B,KAAK,KAAK;CACnD,MAAM,OAAO,QAAQ,IAAI,KAAK,OAAO,MAAM,EAAE,GAAG,OAAO,MAAM,EAAE,IAAI,GAAG,OAAO,MAAM,EAAE,CAAC,IAAI,IAAI,KAAK,KAAK;CACxG,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,IAAI,QAAQ,WAAW,OAAO,IAAI;AACtE;;AAGA,SAAgB,UAAU,KAAmB,KAAqB;CAChE,MAAM,QAAQ,QAAQ,KAAK,GAAG;CAC9B,MAAM,QAAQ,IAAI,KAAK;CACvB,IAAI,CAAC,SAAS,QAAQ,KAAK,GAAG,OAAO;CACrC,IAAI,MAAM,SAAS,UAAU,OAAO,MAAM,SAAS,MAAK,WAAU,OAAO,UAAU,KAAK,CAAC,EAAE,SAAS,OAAO,KAAK;CAChH,IAAI,MAAM,SAAS,QAAQ,OAAO,WAAW,OAAO,KAAK,CAAC;CAC1D,IAAI,MAAM,SAAS,UAAU;EAC3B,MAAM,SAAS,aAAa,KAAK;EACjC,OAAO,WAAW,OAAO,OAAO,KAAK,IAAI,aAAa,OAAO,MAAM;CACrE;CACA,OAAO,OAAO,KAAK;AACrB;;AAGA,SAAgB,UAAU,KAAmB,KAAwB;CACnE,MAAM,QAAQ,QAAQ,KAAK,GAAG;CAC9B,MAAM,QAAQ,IAAI,KAAK;CACvB,IAAI,CAAC,SAAS,QAAQ,KAAK,GAAG,OAAO;CACrC,IAAI,MAAM,SAAS,UAAU,OAAO,aAAa,KAAK,KAAK,OAAO,KAAK;CAEvE,IAAI,MAAM,SAAS,UAAU,OAAO,UAAU,KAAK,GAAG;CACtD,OAAO,OAAO,KAAK;AACrB;;;;;AAMA,SAAgB,eAAe,MAA+B,OAAiD;CAC7G,MAAM,iCAAiB,IAAI,IAA0B;CACrD,KAAK,MAAM,OAAO,MAAM,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,GAAG,eAAe,IAAI,IAAI,MAAM,GAAG;CAC3F,MAAM,uBAAO,IAAI,IAAyB;CAC1C,KAAK,MAAM,QAAQ,OACjB,KAAK,MAAM,SAAS,eAAe,IAAI,KAAK,EAAE,CAAC,EAAE,UAAU,CAAC,GAAG;EAC7D,IAAI,MAAM,SAAS,cAAc,KAAK,IAAI,MAAM,GAAG,GAAG;EACtD,KAAK,IAAI,MAAM,KAAK;GAClB,IAAI,GAAG,eAAe,MAAM;GAC5B,OAAO,MAAM;GACb,OAAO,MAAM,SAAS,WAAW,QAAQ,KAAA;GACzC,OAAM,QAAO,UAAU,KAAK,MAAM,GAAG;GACrC;EACF,CAAC;CACH;CAEF,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC;AAC1B;;AAGA,SAAgB,cAAc,cAAsC,GAA4B;CAC9F,OAAO;EACL;GAAE,IAAI;GAAS,OAAO,EAAE,mCAAmC;GAAG,OAAM,QAAO,IAAI,MAAM,KAAK,KAAK;EAAK;EACpG;GAAE,IAAI;GAAQ,OAAO,EAAE,8BAA8B;GAAG,OAAM,QAAO,IAAI;EAAU;EACnF,GAAG;EACH;GAAE,IAAI;GAAQ,OAAO,EAAE,8BAA8B;GAAG,OAAM,QAAO,IAAI,KAAK,KAAK,IAAI,KAAK;EAAK;EAEjG;GAAE,IAAI;GAAW,OAAO,EAAE,iCAAiC;GAAG,OAAM,QAAQ,IAAI,YAAY,KAAK,IAAI,IAAI;EAAG;CAC9G;AACF;;AAGA,SAAgB,SAAS,MAA+B,MAA0B,MAA+B;CAC/G,MAAM,SAAS,OAAO,KAAK;CAC3B,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,GAAG,MAAM;EAC9B,MAAM,IAAI,KAAK,CAAC;EAChB,MAAM,IAAI,KAAK,CAAC;EAChB,IAAI,MAAM,QAAQ,MAAM,MAAM,OAAO,MAAM,IAAI,IAAI,MAAM,OAAO,IAAI;EACpE,IAAI,OAAO,MAAM,YAAY,OAAO,MAAM,UAAU,QAAQ,IAAI,KAAK;EACrE,OAAO,SAAS,QAAQ,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI;CAClD,CAAC;AACH;;AAGA,SAAgB,QAAQ,MAAyB,OAAyB;CACxE,OAAO,KAAK,SAAS,KAAK,IAAI,KAAK,QAAO,SAAQ,SAAS,KAAK,IAAI,CAAC,GAAG,MAAM,KAAK;AACrF;AAEA,MAAa,WAAW,UAAkB,MAAM,KAAK,MAAM;;AAG3D,MAAa,cAAc,UAA8B,MAAM,SAAS,UAAU,MAAM,SAAS"}
@@ -0,0 +1,11 @@
1
+ import { MessageKey } from "../../i18n/index.js";
2
+ import { TreeRoot } from "../../settings/values.js";
3
+ import "../../settings/index.js";
4
+ //#region src/features/composites/tree-root.d.ts
5
+ /** Message keys of the labels of the settings radio; resolve them with `t`. */
6
+ export declare const TREE_ROOT_KEYS: Record<TreeRoot, {
7
+ labelKey: MessageKey;
8
+ descriptionKey: MessageKey;
9
+ }>;
10
+ //#endregion
11
+ //# sourceMappingURL=tree-root.d.ts.map
@@ -0,0 +1,16 @@
1
+ //#region src/features/composites/tree-root.ts
2
+ /** Message keys of the labels of the settings radio; resolve them with `t`. */
3
+ const TREE_ROOT_KEYS = {
4
+ folders: {
5
+ labelKey: "composites.settings.treeRoot.folders.label",
6
+ descriptionKey: "composites.settings.treeRoot.folders.description"
7
+ },
8
+ file: {
9
+ labelKey: "composites.settings.treeRoot.file.label",
10
+ descriptionKey: "composites.settings.treeRoot.file.description"
11
+ }
12
+ };
13
+ //#endregion
14
+ export { TREE_ROOT_KEYS };
15
+
16
+ //# sourceMappingURL=tree-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-root.js","names":[],"sources":["../../../src/features/composites/tree-root.ts"],"sourcesContent":["import type { MessageKey } from '../../i18n'\nimport type { TreeRoot } from '../../settings'\n\n/** Message keys of the labels of the settings radio; resolve them with `t`. */\nexport const TREE_ROOT_KEYS: Record<TreeRoot, { labelKey: MessageKey, descriptionKey: MessageKey }> = {\n folders: { labelKey: 'composites.settings.treeRoot.folders.label', descriptionKey: 'composites.settings.treeRoot.folders.description' },\n file: { labelKey: 'composites.settings.treeRoot.file.label', descriptionKey: 'composites.settings.treeRoot.file.description' },\n}\n"],"mappings":";;AAIA,MAAa,iBAAyF;CACpG,SAAS;EAAE,UAAU;EAA8C,gBAAgB;CAAmD;CACtI,MAAM;EAAE,UAAU;EAA2C,gBAAgB;CAAgD;AAC/H"}
@@ -0,0 +1,18 @@
1
+ import { CompositeRow } from "./rows.js";
2
+ import { CompositeAnchor, CompositeFrame } from "./anchors.js";
3
+ import { MaybeRefOrGetter } from "vue";
4
+ import { Editor } from "@tiptap/core";
5
+ //#region src/features/composites/use-composite-anchors.d.ts
6
+ /**
7
+ * Measures the title line and box of every row's composite, relative to the editor's scroll container (`host`), kept
8
+ * current after transactions, resizes and row changes (see `observeCompositeAnchors`). An overlay teleported into `host`
9
+ * and positioned `absolute` from these numbers scrolls with the document and needs no scroll listener. Anchors are
10
+ * empty while the editor is not laid out (hidden by a table view, say).
11
+ */
12
+ export declare function useCompositeAnchors(editor: MaybeRefOrGetter<Editor | undefined>, rows: MaybeRefOrGetter<readonly CompositeRow[]>): {
13
+ host: Readonly<import("vue").Ref<HTMLElement | null, HTMLElement | null>>;
14
+ anchors: Readonly<import("vue").Ref<ReadonlyMap<string, CompositeAnchor>, ReadonlyMap<string, CompositeAnchor>>>;
15
+ frame: Readonly<import("vue").Ref<CompositeFrame | null, CompositeFrame | null>>;
16
+ };
17
+ //#endregion
18
+ //# sourceMappingURL=use-composite-anchors.d.ts.map
@@ -0,0 +1,42 @@
1
+ import { createStore } from "../../core/store.js";
2
+ import { observeCompositeAnchors } from "./anchors.js";
3
+ import { useStoreRef } from "../../vue/store-ref.js";
4
+ import { shallowRef, toValue, watch } from "vue";
5
+ //#region src/features/composites/use-composite-anchors.ts
6
+ /** What the refs show while no editor is observed. */
7
+ const NO_HOST = createStore(null);
8
+ const NO_ANCHORS = createStore(/* @__PURE__ */ new Map());
9
+ const NO_FRAME = createStore(null);
10
+ /**
11
+ * Measures the title line and box of every row's composite, relative to the editor's scroll container (`host`), kept
12
+ * current after transactions, resizes and row changes (see `observeCompositeAnchors`). An overlay teleported into `host`
13
+ * and positioned `absolute` from these numbers scrolls with the document and needs no scroll listener. Anchors are
14
+ * empty while the editor is not laid out (hidden by a table view, say).
15
+ */
16
+ function useCompositeAnchors(editor, rows) {
17
+ const model = shallowRef();
18
+ const host = useStoreRef(() => model.value?.host ?? NO_HOST);
19
+ const anchors = useStoreRef(() => model.value?.anchors ?? NO_ANCHORS);
20
+ const frame = useStoreRef(() => model.value?.frame ?? NO_FRAME);
21
+ watch(() => toValue(editor), (instance, _previous, onCleanup) => {
22
+ const next = observeCompositeAnchors(instance, () => toValue(rows));
23
+ model.value = next;
24
+ onCleanup(() => {
25
+ next.dispose();
26
+ model.value = void 0;
27
+ });
28
+ }, {
29
+ immediate: true,
30
+ flush: "post"
31
+ });
32
+ watch(() => toValue(rows), () => model.value?.refresh(), { flush: "post" });
33
+ return {
34
+ host,
35
+ anchors,
36
+ frame
37
+ };
38
+ }
39
+ //#endregion
40
+ export { useCompositeAnchors };
41
+
42
+ //# sourceMappingURL=use-composite-anchors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-composite-anchors.js","names":[],"sources":["../../../src/features/composites/use-composite-anchors.ts"],"sourcesContent":["import type { Editor } from '@tiptap/core'\nimport { type MaybeRefOrGetter, shallowRef, toValue, watch } from 'vue'\nimport { createStore } from '../../core/store'\nimport { useStoreRef } from '../../vue/store-ref'\nimport { type CompositeAnchor, type CompositeAnchorsHandle, type CompositeFrame, observeCompositeAnchors } from './anchors'\nimport type { CompositeRow } from './rows'\n\n/** What the refs show while no editor is observed. */\nconst NO_HOST = createStore<HTMLElement | null>(null)\nconst NO_ANCHORS = createStore<ReadonlyMap<string, CompositeAnchor>>(new Map())\nconst NO_FRAME = createStore<CompositeFrame | null>(null)\n\n/**\n * Measures the title line and box of every row's composite, relative to the editor's scroll container (`host`), kept\n * current after transactions, resizes and row changes (see `observeCompositeAnchors`). An overlay teleported into `host`\n * and positioned `absolute` from these numbers scrolls with the document and needs no scroll listener. Anchors are\n * empty while the editor is not laid out (hidden by a table view, say).\n */\nexport function useCompositeAnchors(editor: MaybeRefOrGetter<Editor | undefined>, rows: MaybeRefOrGetter<readonly CompositeRow[]>) {\n const model = shallowRef<CompositeAnchorsHandle>()\n const host = useStoreRef(() => model.value?.host ?? NO_HOST)\n const anchors = useStoreRef(() => model.value?.anchors ?? NO_ANCHORS)\n const frame = useStoreRef(() => model.value?.frame ?? NO_FRAME)\n\n watch(() => toValue(editor), (instance, _previous, onCleanup) => {\n const next = observeCompositeAnchors(instance, () => toValue(rows))\n model.value = next\n onCleanup(() => {\n next.dispose()\n model.value = undefined\n })\n }, { immediate: true, flush: 'post' })\n watch(() => toValue(rows), () => model.value?.refresh(), { flush: 'post' })\n\n return { host, anchors, frame }\n}\n"],"mappings":";;;;;;AAQA,MAAM,UAAU,YAAgC,IAAI;AACpD,MAAM,aAAa,4BAAkD,IAAI,IAAI,CAAC;AAC9E,MAAM,WAAW,YAAmC,IAAI;;;;;;;AAQxD,SAAgB,oBAAoB,QAA8C,MAAiD;CACjI,MAAM,QAAQ,WAAmC;CACjD,MAAM,OAAO,kBAAkB,MAAM,OAAO,QAAQ,OAAO;CAC3D,MAAM,UAAU,kBAAkB,MAAM,OAAO,WAAW,UAAU;CACpE,MAAM,QAAQ,kBAAkB,MAAM,OAAO,SAAS,QAAQ;CAE9D,YAAY,QAAQ,MAAM,IAAI,UAAU,WAAW,cAAc;EAC/D,MAAM,OAAO,wBAAwB,gBAAgB,QAAQ,IAAI,CAAC;EAClE,MAAM,QAAQ;EACd,gBAAgB;GACd,KAAK,QAAQ;GACb,MAAM,QAAQ,KAAA;EAChB,CAAC;CACH,GAAG;EAAE,WAAW;EAAM,OAAO;CAAO,CAAC;CACrC,YAAY,QAAQ,IAAI,SAAS,MAAM,OAAO,QAAQ,GAAG,EAAE,OAAO,OAAO,CAAC;CAE1E,OAAO;EAAE;EAAM;EAAS;CAAM;AAChC"}
@@ -0,0 +1,25 @@
1
+ import { CompositeMention, CompositeRow } from "./rows.js";
2
+ import { CompositeKindCount } from "./rows-model.js";
3
+ import { ComputedRef, MaybeRefOrGetter } from "vue";
4
+ import { Editor } from "@tiptap/core";
5
+ //#region src/features/composites/use-composite-rows.d.ts
6
+ /** The live metadata read model of an editor's document as Vue refs (see `useCompositeRows`). */
7
+ export interface CompositeRowsModel {
8
+ /** Every composite in document order. */
9
+ rows: ComputedRef<readonly CompositeRow[]>;
10
+ /** Distinct tags of all composites, sorted (German collation). */
11
+ tags: ComputedRef<readonly string[]>;
12
+ /** Kinds in use with their counts: configured kinds in their configured order, then unknown ones in order of appearance. */
13
+ kinds: ComputedRef<readonly CompositeKindCount[]>;
14
+ /** Distinct `@mention` chips of the document. */
15
+ mentions: ComputedRef<readonly CompositeMention[]>;
16
+ /** The innermost composite around the selection head, `null` outside of any. */
17
+ focused: ComputedRef<CompositeRow | null>;
18
+ }
19
+ /**
20
+ * The composites of `editor`'s document as rows, kept current (see `createCompositeRows`). Follows the editor when the
21
+ * source changes; a missing editor yields empty lists. Use the `setComposite*` helpers to write.
22
+ */
23
+ export declare function useCompositeRows(editor: MaybeRefOrGetter<Editor | undefined>): CompositeRowsModel;
24
+ //#endregion
25
+ //# sourceMappingURL=use-composite-rows.d.ts.map
@@ -0,0 +1,28 @@
1
+ import { createCompositeRows } from "./rows-model.js";
2
+ import { useStoreRef } from "../../vue/store-ref.js";
3
+ import { computed, shallowRef, toValue, watch } from "vue";
4
+ //#region src/features/composites/use-composite-rows.ts
5
+ /**
6
+ * The composites of `editor`'s document as rows, kept current (see `createCompositeRows`). Follows the editor when the
7
+ * source changes; a missing editor yields empty lists. Use the `setComposite*` helpers to write.
8
+ */
9
+ function useCompositeRows(editor) {
10
+ const model = shallowRef(createCompositeRows(void 0));
11
+ const state = useStoreRef(() => model.value.state);
12
+ watch(() => toValue(editor), (instance, _previous, onCleanup) => {
13
+ const next = createCompositeRows(instance);
14
+ model.value = next;
15
+ onCleanup(() => next.dispose());
16
+ }, { immediate: true });
17
+ return {
18
+ rows: computed(() => state.value.rows),
19
+ tags: computed(() => state.value.tags),
20
+ kinds: computed(() => state.value.kinds),
21
+ mentions: computed(() => state.value.mentions),
22
+ focused: computed(() => state.value.focused)
23
+ };
24
+ }
25
+ //#endregion
26
+ export { useCompositeRows };
27
+
28
+ //# sourceMappingURL=use-composite-rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-composite-rows.js","names":[],"sources":["../../../src/features/composites/use-composite-rows.ts"],"sourcesContent":["import type { Editor } from '@tiptap/core'\nimport { computed, type ComputedRef, type MaybeRefOrGetter, shallowRef, toValue, watch } from 'vue'\nimport { useStoreRef } from '../../vue/store-ref'\nimport type { CompositeMention, CompositeRow } from './rows'\nimport { type CompositeKindCount, createCompositeRows } from './rows-model'\n\n/** The live metadata read model of an editor's document as Vue refs (see `useCompositeRows`). */\nexport interface CompositeRowsModel {\n /** Every composite in document order. */\n rows: ComputedRef<readonly CompositeRow[]>\n /** Distinct tags of all composites, sorted (German collation). */\n tags: ComputedRef<readonly string[]>\n /** Kinds in use with their counts: configured kinds in their configured order, then unknown ones in order of appearance. */\n kinds: ComputedRef<readonly CompositeKindCount[]>\n /** Distinct `@mention` chips of the document. */\n mentions: ComputedRef<readonly CompositeMention[]>\n /** The innermost composite around the selection head, `null` outside of any. */\n focused: ComputedRef<CompositeRow | null>\n}\n\n/**\n * The composites of `editor`'s document as rows, kept current (see `createCompositeRows`). Follows the editor when the\n * source changes; a missing editor yields empty lists. Use the `setComposite*` helpers to write.\n */\nexport function useCompositeRows(editor: MaybeRefOrGetter<Editor | undefined>): CompositeRowsModel {\n const model = shallowRef(createCompositeRows(undefined))\n const state = useStoreRef(() => model.value.state)\n\n watch(() => toValue(editor), (instance, _previous, onCleanup) => {\n const next = createCompositeRows(instance)\n model.value = next\n onCleanup(() => next.dispose())\n }, { immediate: true })\n\n return {\n rows: computed(() => state.value.rows),\n tags: computed(() => state.value.tags),\n kinds: computed(() => state.value.kinds),\n mentions: computed(() => state.value.mentions),\n focused: computed(() => state.value.focused),\n }\n}\n"],"mappings":";;;;;;;;AAwBA,SAAgB,iBAAiB,QAAkE;CACjG,MAAM,QAAQ,WAAW,oBAAoB,KAAA,CAAS,CAAC;CACvD,MAAM,QAAQ,kBAAkB,MAAM,MAAM,KAAK;CAEjD,YAAY,QAAQ,MAAM,IAAI,UAAU,WAAW,cAAc;EAC/D,MAAM,OAAO,oBAAoB,QAAQ;EACzC,MAAM,QAAQ;EACd,gBAAgB,KAAK,QAAQ,CAAC;CAChC,GAAG,EAAE,WAAW,KAAK,CAAC;CAEtB,OAAO;EACL,MAAM,eAAe,MAAM,MAAM,IAAI;EACrC,MAAM,eAAe,MAAM,MAAM,IAAI;EACrC,OAAO,eAAe,MAAM,MAAM,KAAK;EACvC,UAAU,eAAe,MAAM,MAAM,QAAQ;EAC7C,SAAS,eAAe,MAAM,MAAM,OAAO;CAC7C;AACF"}
@@ -0,0 +1,23 @@
1
+ import { VueFeature } from "../../vue/index.js";
2
+ import { CompositeFeatureOptions } from "./feature.js";
3
+ import _default from "./components/CompositeChrome.vue.js";
4
+ import _default$1 from "./components/CompositeDetails.vue.js";
5
+ import _default$2 from "./components/CompositeFieldEditor.vue.js";
6
+ import _default$3 from "./components/CompositeInspector.vue.js";
7
+ import _default$4 from "./components/CompositeStatusMenu.vue.js";
8
+ import _default$5 from "./components/CompositeSummaryEditor.vue.js";
9
+ import _default$6 from "./components/CompositeTable.vue.js";
10
+ import _default$7 from "./components/CompositeTagsEditor.vue.js";
11
+ import _default$8 from "./components/CompositeView.vue.js";
12
+ import _default$9 from "./components/SettingsEditingTab.vue.js";
13
+ import { useCompositeAnchors } from "./use-composite-anchors.js";
14
+ import { CompositeRowsModel, useCompositeRows } from "./use-composite-rows.js";
15
+ //#region src/features/composites/vue.d.ts
16
+ /**
17
+ * The Vue composites feature (Nuxt UI): see `compositeFeatureCore`. The host places `CompositeTable` and
18
+ * `CompositeInspector` beside the editor.
19
+ */
20
+ export declare function compositeFeature(options?: CompositeFeatureOptions): VueFeature;
21
+ //#endregion
22
+ export { _default as CompositeChrome, _default$1 as CompositeDetails, _default$2 as CompositeFieldEditor, _default$3 as CompositeInspector, type CompositeRowsModel, _default$4 as CompositeStatusMenu, _default$5 as CompositeSummaryEditor, _default$6 as CompositeTable, _default$7 as CompositeTagsEditor, _default$8 as CompositeView, _default$9 as SettingsEditingTab, useCompositeAnchors, useCompositeRows };
23
+ //# sourceMappingURL=vue.d.ts.map
@@ -0,0 +1,30 @@
1
+ import { compositeFeatureCore } from "./feature.js";
2
+ import { useCompositeAnchors } from "./use-composite-anchors.js";
3
+ import { useCompositeRows } from "./use-composite-rows.js";
4
+ import _sfc_main$2 from "./components/CompositeFieldEditor.js";
5
+ import _sfc_main$5 from "./components/CompositeSummaryEditor.js";
6
+ import _sfc_main$1 from "./components/CompositeDetails.js";
7
+ import _sfc_main$4 from "./components/CompositeStatusMenu.js";
8
+ import _sfc_main$7 from "./components/CompositeTagsEditor.js";
9
+ import _sfc_main from "./components/CompositeChrome.js";
10
+ import _sfc_main$8 from "./components/CompositeView.js";
11
+ import _sfc_main$9 from "./components/SettingsEditingTab.js";
12
+ import _sfc_main$3 from "./components/CompositeInspector.js";
13
+ import _sfc_main$6 from "./components/CompositeTable.js";
14
+ import { VueNodeViewRenderer } from "@tiptap/vue-3";
15
+ //#region src/features/composites/vue.ts
16
+ /**
17
+ * The Vue composites feature (Nuxt UI): see `compositeFeatureCore`. The host places `CompositeTable` and
18
+ * `CompositeInspector` beside the editor.
19
+ */
20
+ function compositeFeature(options = {}) {
21
+ return compositeFeatureCore({
22
+ chrome: _sfc_main,
23
+ settingsTab: _sfc_main$9,
24
+ nodeViews: { composite: VueNodeViewRenderer(_sfc_main$8) }
25
+ }, options);
26
+ }
27
+ //#endregion
28
+ export { _sfc_main as CompositeChrome, _sfc_main$1 as CompositeDetails, _sfc_main$2 as CompositeFieldEditor, _sfc_main$3 as CompositeInspector, _sfc_main$4 as CompositeStatusMenu, _sfc_main$5 as CompositeSummaryEditor, _sfc_main$6 as CompositeTable, _sfc_main$7 as CompositeTagsEditor, _sfc_main$8 as CompositeView, _sfc_main$9 as SettingsEditingTab, compositeFeature, useCompositeAnchors, useCompositeRows };
29
+
30
+ //# sourceMappingURL=vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vue.js","names":["CompositeChrome","SettingsEditingTab","CompositeView"],"sources":["../../../src/features/composites/vue.ts"],"sourcesContent":["import { VueNodeViewRenderer } from '@tiptap/vue-3'\nimport type { Component } from 'vue'\nimport type { VueFeature } from '../../vue'\nimport CompositeChrome from './components/CompositeChrome.vue'\nimport CompositeView from './components/CompositeView.vue'\nimport SettingsEditingTab from './components/SettingsEditingTab.vue'\nimport { type CompositeFeatureOptions, compositeFeatureCore } from './feature'\n\nexport { default as CompositeChrome } from './components/CompositeChrome.vue'\nexport { default as CompositeDetails } from './components/CompositeDetails.vue'\nexport { default as CompositeFieldEditor } from './components/CompositeFieldEditor.vue'\nexport { default as CompositeInspector } from './components/CompositeInspector.vue'\nexport { default as CompositeStatusMenu } from './components/CompositeStatusMenu.vue'\nexport { default as CompositeSummaryEditor } from './components/CompositeSummaryEditor.vue'\nexport { default as CompositeTable } from './components/CompositeTable.vue'\nexport { default as CompositeTagsEditor } from './components/CompositeTagsEditor.vue'\nexport { default as CompositeView } from './components/CompositeView.vue'\nexport { default as SettingsEditingTab } from './components/SettingsEditingTab.vue'\nexport { useCompositeAnchors } from './use-composite-anchors'\nexport { type CompositeRowsModel, useCompositeRows } from './use-composite-rows'\n\n/**\n * The Vue composites feature (Nuxt UI): see `compositeFeatureCore`. The host places `CompositeTable` and\n * `CompositeInspector` beside the editor.\n */\nexport function compositeFeature(options: CompositeFeatureOptions = {}): VueFeature {\n return compositeFeatureCore<Component>({\n chrome: CompositeChrome,\n settingsTab: SettingsEditingTab,\n nodeViews: { composite: VueNodeViewRenderer(CompositeView) },\n }, options)\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAyBA,SAAgB,iBAAiB,UAAmC,CAAC,GAAe;CAClF,OAAO,qBAAgC;EACrC,QAAQA;EACR,aAAaC;EACb,WAAW,EAAE,WAAW,oBAAoBC,WAAa,EAAE;CAC7D,GAAG,OAAO;AACZ"}
@@ -0,0 +1,30 @@
1
+ //#region src/features/media/assets.d.ts
2
+ /** One stored file of a document; `name` is the file name inside the package's `assets/` directory. */
3
+ export interface AssetRecord {
4
+ name: string;
5
+ /** Original file name as uploaded (shown in downloads). */
6
+ filename: string;
7
+ mimeType: string;
8
+ size: number;
9
+ createdAt: string;
10
+ }
11
+ /** `assets.json` of a document package. */
12
+ export interface AssetManifest {
13
+ version: 1;
14
+ assets: Record<string, AssetRecord>;
15
+ }
16
+ /** `<uuid>.<ext>`: the random name an upload is stored under. */
17
+ export declare const ASSET_NAME: RegExp;
18
+ /** Document ids the asset endpoints accept (host document uuids, or `SCRATCH_DOCUMENT_ID`). */
19
+ export declare const ASSET_DOCUMENT_ID: RegExp;
20
+ /** Owner of uploads made by editors that are not bound to a stored document (e.g. the playground). */
21
+ export declare const SCRATCH_DOCUMENT_ID = "scratch";
22
+ /** URL of asset `name` of document `documentId`. */
23
+ export declare function assetUrl(documentId: string, name: string): string;
24
+ /** Parses an asset URL (as embedded in `src` attributes); null for anything else. */
25
+ export declare function assetRefOf(src: string): {
26
+ documentId: string;
27
+ name: string;
28
+ } | null;
29
+ //#endregion
30
+ //# sourceMappingURL=assets.d.ts.map
@@ -0,0 +1,26 @@
1
+ //#region src/features/media/assets.ts
2
+ /** `<uuid>.<ext>`: the random name an upload is stored under. */
3
+ const ASSET_NAME = /^[0-9a-f-]{36}\.[a-z0-9]{1,8}$/;
4
+ /** Document ids the asset endpoints accept (host document uuids, or `SCRATCH_DOCUMENT_ID`). */
5
+ const ASSET_DOCUMENT_ID = /^[A-Za-z0-9_-]{1,64}$/;
6
+ /** Owner of uploads made by editors that are not bound to a stored document (e.g. the playground). */
7
+ const SCRATCH_DOCUMENT_ID = "scratch";
8
+ const ASSET_URL_PREFIX = "/api/editor/assets/";
9
+ /** URL of asset `name` of document `documentId`. */
10
+ function assetUrl(documentId, name) {
11
+ return `${ASSET_URL_PREFIX}${documentId}/${name}`;
12
+ }
13
+ /** Parses an asset URL (as embedded in `src` attributes); null for anything else. */
14
+ function assetRefOf(src) {
15
+ if (!src.startsWith(ASSET_URL_PREFIX)) return null;
16
+ const [documentId, name, ...rest] = src.slice(19).split("/");
17
+ if (rest.length || !documentId || !name || !ASSET_DOCUMENT_ID.test(documentId) || !ASSET_NAME.test(name)) return null;
18
+ return {
19
+ documentId,
20
+ name
21
+ };
22
+ }
23
+ //#endregion
24
+ export { ASSET_DOCUMENT_ID, ASSET_NAME, SCRATCH_DOCUMENT_ID, assetRefOf, assetUrl };
25
+
26
+ //# sourceMappingURL=assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets.js","names":[],"sources":["../../../src/features/media/assets.ts"],"sourcesContent":["// Vue-free and server-importable: the asset endpoints, the host store and the client all agree on these shapes.\n// Every uploaded file belongs to one document (a package directory in the host's store) and is addressed by\n// `/api/editor/assets/<documentId>/<name>`.\n\n/** One stored file of a document; `name` is the file name inside the package's `assets/` directory. */\nexport interface AssetRecord {\n name: string\n /** Original file name as uploaded (shown in downloads). */\n filename: string\n mimeType: string\n size: number\n createdAt: string\n}\n\n/** `assets.json` of a document package. */\nexport interface AssetManifest {\n version: 1\n assets: Record<string, AssetRecord>\n}\n\n/** `<uuid>.<ext>`: the random name an upload is stored under. */\nexport const ASSET_NAME = /^[0-9a-f-]{36}\\.[a-z0-9]{1,8}$/\n\n/** Document ids the asset endpoints accept (host document uuids, or `SCRATCH_DOCUMENT_ID`). */\nexport const ASSET_DOCUMENT_ID = /^[A-Za-z0-9_-]{1,64}$/\n\n/** Owner of uploads made by editors that are not bound to a stored document (e.g. the playground). */\nexport const SCRATCH_DOCUMENT_ID = 'scratch'\n\nconst ASSET_URL_PREFIX = '/api/editor/assets/'\n\n/** URL of asset `name` of document `documentId`. */\nexport function assetUrl(documentId: string, name: string): string {\n return `${ASSET_URL_PREFIX}${documentId}/${name}`\n}\n\n/** Parses an asset URL (as embedded in `src` attributes); null for anything else. */\nexport function assetRefOf(src: string): { documentId: string, name: string } | null {\n if (!src.startsWith(ASSET_URL_PREFIX)) return null\n const [documentId, name, ...rest] = src.slice(ASSET_URL_PREFIX.length).split('/')\n if (rest.length || !documentId || !name || !ASSET_DOCUMENT_ID.test(documentId) || !ASSET_NAME.test(name)) return null\n return { documentId, name }\n}\n"],"mappings":";;AAqBA,MAAa,aAAa;;AAG1B,MAAa,oBAAoB;;AAGjC,MAAa,sBAAsB;AAEnC,MAAM,mBAAmB;;AAGzB,SAAgB,SAAS,YAAoB,MAAsB;CACjE,OAAO,GAAG,mBAAmB,WAAW,GAAG;AAC7C;;AAGA,SAAgB,WAAW,KAA0D;CACnF,IAAI,CAAC,IAAI,WAAW,gBAAgB,GAAG,OAAO;CAC9C,MAAM,CAAC,YAAY,MAAM,GAAG,QAAQ,IAAI,MAAM,EAAuB,CAAC,CAAC,MAAM,GAAG;CAChF,IAAI,KAAK,UAAU,CAAC,cAAc,CAAC,QAAQ,CAAC,kBAAkB,KAAK,UAAU,KAAK,CAAC,WAAW,KAAK,IAAI,GAAG,OAAO;CACjH,OAAO;EAAE;EAAY;CAAK;AAC5B"}
@@ -0,0 +1,25 @@
1
+ import { ReadonlyStore } from "../../core/store.js";
2
+ //#region src/features/media/audio-recorder.d.ts
3
+ /** `denied`: the microphone permission was refused; `unsupported`: no microphone or `MediaRecorder` in this browser. */
4
+ export type AudioRecorderStatus = 'idle' | 'recording' | 'denied' | 'unsupported';
5
+ /** What the recorder shows: its status and the whole seconds recorded so far. */
6
+ export interface AudioRecorderState {
7
+ status: AudioRecorderStatus;
8
+ seconds: number;
9
+ }
10
+ /** The recorder's handle: observe `state`, then `start`, and `stop` (the file) or `cancel`. */
11
+ export interface AudioRecorder {
12
+ state: ReadonlyStore<AudioRecorderState>;
13
+ /** Asks for the microphone and starts recording; `denied`/`unsupported` instead when that fails. Other errors throw. */
14
+ start(): Promise<void>;
15
+ /** Ends the recording; the recorded file, null when nothing was recorded. */
16
+ stop(): Promise<File | null>;
17
+ /** Ends the recording (or a pending microphone request) and discards it. */
18
+ cancel(): void;
19
+ /** Releases the microphone and the timer (a `cancel`); idempotent. The bindings call it when their scope ends. */
20
+ dispose(): void;
21
+ }
22
+ /** Records audio from the microphone in the browser (MediaRecorder). Framework-free; call `dispose()` when done. */
23
+ export declare function createAudioRecorder(): AudioRecorder;
24
+ //#endregion
25
+ //# sourceMappingURL=audio-recorder.d.ts.map
@@ -0,0 +1,123 @@
1
+ import { createStore } from "../../core/store.js";
2
+ import { MEDIA_TYPES } from "./schema.js";
3
+ //#region src/features/media/audio-recorder.ts
4
+ /** Upload types tried in order; the first one this browser can record wins (Chrome/Firefox: WebM, Safari: MP4). */
5
+ const RECORDING_TYPES = [
6
+ "audio/webm",
7
+ "audio/mp4",
8
+ "audio/ogg"
9
+ ];
10
+ /** Records audio from the microphone in the browser (MediaRecorder). Framework-free; call `dispose()` when done. */
11
+ function createAudioRecorder() {
12
+ const state = createStore({
13
+ status: "idle",
14
+ seconds: 0
15
+ });
16
+ let recording = null;
17
+ let requesting = false;
18
+ let attempt = 0;
19
+ const setStatus = (status) => state.set({
20
+ ...state.get(),
21
+ status
22
+ });
23
+ /** Stops recorder, timer and microphone; returns what was being recorded. */
24
+ function end() {
25
+ const current = recording;
26
+ recording = null;
27
+ if (!current) return null;
28
+ clearInterval(current.timer);
29
+ if (current.recorder.state !== "inactive") current.recorder.stop();
30
+ for (const track of current.stream.getTracks()) track.stop();
31
+ return current;
32
+ }
33
+ async function start() {
34
+ if (recording || requesting) return;
35
+ const type = "MediaRecorder" in window ? RECORDING_TYPES.find((t) => MediaRecorder.isTypeSupported(t)) : void 0;
36
+ if (!type || !navigator.mediaDevices?.getUserMedia) {
37
+ setStatus("unsupported");
38
+ return;
39
+ }
40
+ const current = ++attempt;
41
+ requesting = true;
42
+ let stream;
43
+ try {
44
+ stream = await navigator.mediaDevices.getUserMedia({ audio: true });
45
+ } catch (error) {
46
+ if (current !== attempt) return;
47
+ if (error instanceof DOMException && error.name === "NotAllowedError") {
48
+ setStatus("denied");
49
+ return;
50
+ }
51
+ throw error;
52
+ } finally {
53
+ requesting = false;
54
+ }
55
+ const tracks = stream.getTracks();
56
+ if (current !== attempt) {
57
+ for (const track of tracks) track.stop();
58
+ return;
59
+ }
60
+ let recorder;
61
+ try {
62
+ recorder = new MediaRecorder(stream, { mimeType: type });
63
+ } catch (error) {
64
+ for (const track of tracks) track.stop();
65
+ throw error;
66
+ }
67
+ const parts = [];
68
+ recorder.addEventListener("dataavailable", (event) => {
69
+ if (event.data.size) parts.push(event.data);
70
+ });
71
+ recorder.start();
72
+ const startedAt = Date.now();
73
+ const timer = window.setInterval(() => {
74
+ state.set({
75
+ ...state.get(),
76
+ seconds: Math.floor((Date.now() - startedAt) / 1e3)
77
+ });
78
+ }, 1e3);
79
+ recording = {
80
+ recorder,
81
+ stream,
82
+ type,
83
+ parts,
84
+ timer
85
+ };
86
+ state.set({
87
+ status: "recording",
88
+ seconds: 0
89
+ });
90
+ }
91
+ async function stop() {
92
+ const current = recording;
93
+ if (!current) return null;
94
+ const { promise: stopped, resolve } = Promise.withResolvers();
95
+ if (current.recorder.state === "inactive") resolve();
96
+ else current.recorder.addEventListener("stop", () => resolve(), { once: true });
97
+ end();
98
+ setStatus("idle");
99
+ await stopped;
100
+ if (!current.parts.length) return null;
101
+ const stamp = (/* @__PURE__ */ new Date()).toISOString().slice(0, 19).replace(/[T:]/g, "-");
102
+ return new File(current.parts, `aufnahme-${stamp}.${MEDIA_TYPES[current.type].ext}`, { type: current.type });
103
+ }
104
+ function cancel() {
105
+ attempt++;
106
+ end();
107
+ state.set({
108
+ status: "idle",
109
+ seconds: 0
110
+ });
111
+ }
112
+ return {
113
+ state,
114
+ start,
115
+ stop,
116
+ cancel,
117
+ dispose: cancel
118
+ };
119
+ }
120
+ //#endregion
121
+ export { createAudioRecorder };
122
+
123
+ //# sourceMappingURL=audio-recorder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-recorder.js","names":[],"sources":["../../../src/features/media/audio-recorder.ts"],"sourcesContent":["import { createStore, type ReadonlyStore } from '../../core/store'\nimport { MEDIA_TYPES } from './schema'\n\n/** `denied`: the microphone permission was refused; `unsupported`: no microphone or `MediaRecorder` in this browser. */\nexport type AudioRecorderStatus = 'idle' | 'recording' | 'denied' | 'unsupported'\n\n/** What the recorder shows: its status and the whole seconds recorded so far. */\nexport interface AudioRecorderState {\n status: AudioRecorderStatus\n seconds: number\n}\n\n/** The recorder's handle: observe `state`, then `start`, and `stop` (the file) or `cancel`. */\nexport interface AudioRecorder {\n state: ReadonlyStore<AudioRecorderState>\n /** Asks for the microphone and starts recording; `denied`/`unsupported` instead when that fails. Other errors throw. */\n start(): Promise<void>\n /** Ends the recording; the recorded file, null when nothing was recorded. */\n stop(): Promise<File | null>\n /** Ends the recording (or a pending microphone request) and discards it. */\n cancel(): void\n /** Releases the microphone and the timer (a `cancel`); idempotent. The bindings call it when their scope ends. */\n dispose(): void\n}\n\n/** Upload types tried in order; the first one this browser can record wins (Chrome/Firefox: WebM, Safari: MP4). */\nconst RECORDING_TYPES = ['audio/webm', 'audio/mp4', 'audio/ogg']\n\ninterface Recording {\n recorder: MediaRecorder\n stream: MediaStream\n type: string\n parts: Blob[]\n timer: number\n}\n\n/** Records audio from the microphone in the browser (MediaRecorder). Framework-free; call `dispose()` when done. */\nexport function createAudioRecorder(): AudioRecorder {\n const state = createStore<AudioRecorderState>({ status: 'idle', seconds: 0 })\n let recording: Recording | null = null\n let requesting = false\n // Bumped by cancel(): a start() still waiting for the microphone permission then drops the stream it gets.\n let attempt = 0\n\n const setStatus = (status: AudioRecorderStatus) => state.set({ ...state.get(), status })\n\n /** Stops recorder, timer and microphone; returns what was being recorded. */\n function end(): Recording | null {\n const current = recording\n recording = null\n if (!current) return null\n clearInterval(current.timer)\n if (current.recorder.state !== 'inactive') current.recorder.stop()\n for (const track of current.stream.getTracks()) track.stop()\n return current\n }\n\n async function start() {\n if (recording || requesting) return\n const type = 'MediaRecorder' in window ? RECORDING_TYPES.find(t => MediaRecorder.isTypeSupported(t)) : undefined\n // `mediaDevices` is missing outside secure contexts (plain http on a non-localhost host).\n if (!type || !navigator.mediaDevices?.getUserMedia) {\n setStatus('unsupported')\n return\n }\n const current = ++attempt\n requesting = true\n let stream: MediaStream\n try {\n stream = await navigator.mediaDevices.getUserMedia({ audio: true })\n } catch (error) {\n if (current !== attempt) return\n if (error instanceof DOMException && error.name === 'NotAllowedError') {\n setStatus('denied')\n return\n }\n throw error\n } finally {\n requesting = false\n }\n const tracks = stream.getTracks()\n if (current !== attempt) {\n for (const track of tracks) track.stop()\n return\n }\n let recorder: MediaRecorder\n try {\n recorder = new MediaRecorder(stream, { mimeType: type })\n } catch (error) {\n for (const track of tracks) track.stop()\n throw error\n }\n const parts: Blob[] = []\n recorder.addEventListener('dataavailable', (event) => {\n if (event.data.size) parts.push(event.data)\n })\n recorder.start()\n const startedAt = Date.now()\n const timer = window.setInterval(() => {\n state.set({ ...state.get(), seconds: Math.floor((Date.now() - startedAt) / 1000) })\n }, 1000)\n recording = { recorder, stream, type, parts, timer }\n state.set({ status: 'recording', seconds: 0 })\n }\n\n async function stop(): Promise<File | null> {\n const current = recording\n if (!current) return null\n // The last `dataavailable` arrives right before `stop`. A recorder whose microphone went away has stopped already.\n const { promise: stopped, resolve } = Promise.withResolvers<void>()\n if (current.recorder.state === 'inactive') resolve()\n else current.recorder.addEventListener('stop', () => resolve(), { once: true })\n end()\n setStatus('idle')\n await stopped\n if (!current.parts.length) return null\n const stamp = new Date().toISOString().slice(0, 19).replace(/[T:]/g, '-')\n return new File(current.parts, `aufnahme-${stamp}.${MEDIA_TYPES[current.type]!.ext}`, { type: current.type })\n }\n\n function cancel() {\n attempt++\n end()\n state.set({ status: 'idle', seconds: 0 })\n }\n\n return { state, start, stop, cancel, dispose: cancel }\n}\n"],"mappings":";;;;AA0BA,MAAM,kBAAkB;CAAC;CAAc;CAAa;AAAW;;AAW/D,SAAgB,sBAAqC;CACnD,MAAM,QAAQ,YAAgC;EAAE,QAAQ;EAAQ,SAAS;CAAE,CAAC;CAC5E,IAAI,YAA8B;CAClC,IAAI,aAAa;CAEjB,IAAI,UAAU;CAEd,MAAM,aAAa,WAAgC,MAAM,IAAI;EAAE,GAAG,MAAM,IAAI;EAAG;CAAO,CAAC;;CAGvF,SAAS,MAAwB;EAC/B,MAAM,UAAU;EAChB,YAAY;EACZ,IAAI,CAAC,SAAS,OAAO;EACrB,cAAc,QAAQ,KAAK;EAC3B,IAAI,QAAQ,SAAS,UAAU,YAAY,QAAQ,SAAS,KAAK;EACjE,KAAK,MAAM,SAAS,QAAQ,OAAO,UAAU,GAAG,MAAM,KAAK;EAC3D,OAAO;CACT;CAEA,eAAe,QAAQ;EACrB,IAAI,aAAa,YAAY;EAC7B,MAAM,OAAO,mBAAmB,SAAS,gBAAgB,MAAK,MAAK,cAAc,gBAAgB,CAAC,CAAC,IAAI,KAAA;EAEvG,IAAI,CAAC,QAAQ,CAAC,UAAU,cAAc,cAAc;GAClD,UAAU,aAAa;GACvB;EACF;EACA,MAAM,UAAU,EAAE;EAClB,aAAa;EACb,IAAI;EACJ,IAAI;GACF,SAAS,MAAM,UAAU,aAAa,aAAa,EAAE,OAAO,KAAK,CAAC;EACpE,SAAS,OAAO;GACd,IAAI,YAAY,SAAS;GACzB,IAAI,iBAAiB,gBAAgB,MAAM,SAAS,mBAAmB;IACrE,UAAU,QAAQ;IAClB;GACF;GACA,MAAM;EACR,UAAU;GACR,aAAa;EACf;EACA,MAAM,SAAS,OAAO,UAAU;EAChC,IAAI,YAAY,SAAS;GACvB,KAAK,MAAM,SAAS,QAAQ,MAAM,KAAK;GACvC;EACF;EACA,IAAI;EACJ,IAAI;GACF,WAAW,IAAI,cAAc,QAAQ,EAAE,UAAU,KAAK,CAAC;EACzD,SAAS,OAAO;GACd,KAAK,MAAM,SAAS,QAAQ,MAAM,KAAK;GACvC,MAAM;EACR;EACA,MAAM,QAAgB,CAAC;EACvB,SAAS,iBAAiB,kBAAkB,UAAU;GACpD,IAAI,MAAM,KAAK,MAAM,MAAM,KAAK,MAAM,IAAI;EAC5C,CAAC;EACD,SAAS,MAAM;EACf,MAAM,YAAY,KAAK,IAAI;EAC3B,MAAM,QAAQ,OAAO,kBAAkB;GACrC,MAAM,IAAI;IAAE,GAAG,MAAM,IAAI;IAAG,SAAS,KAAK,OAAO,KAAK,IAAI,IAAI,aAAa,GAAI;GAAE,CAAC;EACpF,GAAG,GAAI;EACP,YAAY;GAAE;GAAU;GAAQ;GAAM;GAAO;EAAM;EACnD,MAAM,IAAI;GAAE,QAAQ;GAAa,SAAS;EAAE,CAAC;CAC/C;CAEA,eAAe,OAA6B;EAC1C,MAAM,UAAU;EAChB,IAAI,CAAC,SAAS,OAAO;EAErB,MAAM,EAAE,SAAS,SAAS,YAAY,QAAQ,cAAoB;EAClE,IAAI,QAAQ,SAAS,UAAU,YAAY,QAAQ;OAC9C,QAAQ,SAAS,iBAAiB,cAAc,QAAQ,GAAG,EAAE,MAAM,KAAK,CAAC;EAC9E,IAAI;EACJ,UAAU,MAAM;EAChB,MAAM;EACN,IAAI,CAAC,QAAQ,MAAM,QAAQ,OAAO;EAClC,MAAM,yBAAQ,IAAI,KAAK,EAAA,CAAE,YAAY,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,QAAQ,SAAS,GAAG;EACxE,OAAO,IAAI,KAAK,QAAQ,OAAO,YAAY,MAAM,GAAG,YAAY,QAAQ,KAAK,CAAE,OAAO,EAAE,MAAM,QAAQ,KAAK,CAAC;CAC9G;CAEA,SAAS,SAAS;EAChB;EACA,IAAI;EACJ,MAAM,IAAI;GAAE,QAAQ;GAAQ,SAAS;EAAE,CAAC;CAC1C;CAEA,OAAO;EAAE;EAAO;EAAO;EAAM;EAAQ,SAAS;CAAO;AACvD"}
@@ -0,0 +1,152 @@
1
+ import { captureRange, releaseRanges, resolveRange } from "../../../core/doc-anchors.js";
2
+ import { fetchErrorMessage } from "../../../core/fetch-error.js";
3
+ import { useUiKit } from "../../../vue/kit/use-ui-kit.js";
4
+ import { useEditorI18n } from "../../../vue/use-editor-i18n.js";
5
+ import "../upload.js";
6
+ import { useNotifier } from "../../../vue/use-notifier.js";
7
+ import { useAudioRecorder } from "../use-audio-recorder.js";
8
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, onBeforeUnmount, openBlock, ref, shallowRef, toDisplayString, unref, withCtx } from "vue";
9
+ //#region src/features/media/components/AudioRecorderModal.vue
10
+ const _hoisted_1 = { class: "flex flex-col items-center gap-3 py-2" };
11
+ const _hoisted_2 = {
12
+ key: 0,
13
+ class: "text-sm text-[var(--sk-danger)]"
14
+ };
15
+ const _hoisted_3 = ["aria-label"];
16
+ const _hoisted_4 = {
17
+ key: 0,
18
+ class: "size-2.5 animate-pulse rounded-full bg-[var(--sk-danger)]"
19
+ };
20
+ const _hoisted_5 = { class: "flex w-full justify-end gap-2" };
21
+ /**
22
+ * „Audio aufnehmen“, opened by `openAudioRecorder(editor)` (toolbar „Aufnahme“): records in the browser and imports the
23
+ * file through `importFiles` (upload, wrapped by the pipeline's `wrapImport` stage) where the caret was when the modal opened.
24
+ * Nothing enters the (possibly shared) document before the upload succeeded.
25
+ */
26
+ const _sfc_main = /*@__PURE__*/ defineComponent({
27
+ __name: "AudioRecorderModal",
28
+ props: { editor: {} },
29
+ setup(__props) {
30
+ const props = __props;
31
+ const { Button: UButton, Modal: UModal } = useUiKit();
32
+ const { t } = useEditorI18n();
33
+ const notify = useNotifier(() => props.editor);
34
+ const { state, seconds, start, stop, cancel } = useAudioRecorder();
35
+ const open = ref(false);
36
+ /** Stopping, uploading and inserting a recording. */
37
+ const inserting = ref(false);
38
+ /** The recording once stopped; kept after a failed upload so „Erneut hochladen“ can retry it. */
39
+ const recorded = shallowRef(null);
40
+ let anchor = null;
41
+ const notice = computed(() => {
42
+ if (state.value === "denied") return t("media.recorder.denied");
43
+ if (state.value === "unsupported") return t("media.recorder.unsupported");
44
+ return null;
45
+ });
46
+ const clock = computed(() => `${String(Math.floor(seconds.value / 60)).padStart(2, "0")}:${String(seconds.value % 60).padStart(2, "0")}`);
47
+ function onTransaction({ transaction }) {
48
+ if (!transaction.getMeta("audioRecorderOpen") || open.value || !props.editor.isEditable) return;
49
+ const { head } = props.editor.state.selection;
50
+ anchor = captureRange(props.editor, {
51
+ from: head,
52
+ to: head
53
+ });
54
+ open.value = true;
55
+ }
56
+ props.editor.on("transaction", onTransaction);
57
+ async function record() {
58
+ try {
59
+ await start();
60
+ } catch (error) {
61
+ notify({
62
+ title: t("media.recorder.failed"),
63
+ description: fetchErrorMessage(error),
64
+ kind: "error"
65
+ });
66
+ }
67
+ }
68
+ async function insert() {
69
+ if (inserting.value) return;
70
+ inserting.value = true;
71
+ try {
72
+ const file = recorded.value ?? await stop();
73
+ if (!file) return;
74
+ recorded.value = file;
75
+ const pos = anchor ? resolveRange(props.editor.state, anchor)?.from : void 0;
76
+ if (!await props.editor.storage.media.importFiles(props.editor, [file], pos)) return;
77
+ if (!props.editor.isDestroyed) close();
78
+ } catch (error) {
79
+ notify({
80
+ title: t("media.recorder.failed"),
81
+ description: fetchErrorMessage(error),
82
+ kind: "error"
83
+ });
84
+ } finally {
85
+ inserting.value = false;
86
+ }
87
+ }
88
+ /** Ends the flow: discards a running or unsent recording and releases the caret anchor. */
89
+ function close() {
90
+ cancel();
91
+ recorded.value = null;
92
+ if (anchor) releaseRanges(props.editor, [anchor]);
93
+ anchor = null;
94
+ open.value = false;
95
+ }
96
+ onBeforeUnmount(() => {
97
+ props.editor.off("transaction", onTransaction);
98
+ if (anchor) releaseRanges(props.editor, [anchor]);
99
+ });
100
+ return (_ctx, _cache) => {
101
+ return openBlock(), createBlock(unref(UModal), {
102
+ open: open.value,
103
+ title: unref(t)("media.recorder.title"),
104
+ dismissible: !inserting.value,
105
+ close: { disabled: inserting.value },
106
+ "onUpdate:open": _cache[0] || (_cache[0] = (value) => {
107
+ if (!value) close();
108
+ })
109
+ }, {
110
+ body: withCtx(() => [createElementVNode("div", _hoisted_1, [notice.value ? (openBlock(), createElementBlock("p", _hoisted_2, toDisplayString(notice.value), 1)) : createCommentVNode("v-if", true), createElementVNode("div", {
111
+ class: normalizeClass(["flex items-center gap-2 font-mono text-3xl tabular-nums", unref(state) === "recording" ? "text-[var(--sk-fg-highlighted)]" : "text-[var(--sk-muted)]"]),
112
+ role: "timer",
113
+ "aria-label": unref(t)("media.recorder.duration")
114
+ }, [unref(state) === "recording" ? (openBlock(), createElementBlock("span", _hoisted_4)) : createCommentVNode("v-if", true), createTextVNode(" " + toDisplayString(clock.value), 1)], 10, _hoisted_3)])]),
115
+ footer: withCtx(() => [createElementVNode("div", _hoisted_5, [createVNode(unref(UButton), {
116
+ label: unref(t)("media.recorder.cancel"),
117
+ color: "neutral",
118
+ variant: "ghost",
119
+ disabled: inserting.value,
120
+ onClick: close
121
+ }, null, 8, ["label", "disabled"]), unref(state) === "recording" || inserting.value ? (openBlock(), createBlock(unref(UButton), {
122
+ key: 0,
123
+ label: unref(t)("media.recorder.stopInsert"),
124
+ icon: "i-lucide-square",
125
+ loading: inserting.value,
126
+ onClick: insert
127
+ }, null, 8, ["label", "loading"])) : recorded.value ? (openBlock(), createBlock(unref(UButton), {
128
+ key: 1,
129
+ label: unref(t)("media.recorder.retry"),
130
+ icon: "i-lucide-upload",
131
+ onClick: insert
132
+ }, null, 8, ["label"])) : (openBlock(), createBlock(unref(UButton), {
133
+ key: 2,
134
+ label: unref(t)("media.recorder.start"),
135
+ icon: "i-lucide-mic",
136
+ disabled: unref(state) === "unsupported",
137
+ onClick: record
138
+ }, null, 8, ["label", "disabled"]))])]),
139
+ _: 1
140
+ }, 8, [
141
+ "open",
142
+ "title",
143
+ "dismissible",
144
+ "close"
145
+ ]);
146
+ };
147
+ }
148
+ });
149
+ //#endregion
150
+ export { _sfc_main as default };
151
+
152
+ //# sourceMappingURL=AudioRecorderModal.js.map