@dxos/plugin-transcription 0.8.4-main.abd8ff62ef → 0.8.4-main.bc2380dfbc

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 (262) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +1 -1
  3. package/dist/lib/neutral/TranscriptionArticle-L6XANBH5.mjs +54 -0
  4. package/dist/lib/neutral/TranscriptionArticle-L6XANBH5.mjs.map +7 -0
  5. package/dist/lib/neutral/TranscriptionPlugin.mjs +34 -0
  6. package/dist/lib/neutral/TranscriptionPlugin.mjs.map +7 -0
  7. package/dist/lib/neutral/TranscriptionPlugin.node.mjs +25 -0
  8. package/dist/lib/neutral/TranscriptionPlugin.node.mjs.map +7 -0
  9. package/dist/lib/neutral/TranscriptionPlugin.workerd.mjs +21 -0
  10. package/dist/lib/neutral/TranscriptionPlugin.workerd.mjs.map +7 -0
  11. package/dist/lib/neutral/blueprint-definition-HOXDG5QP.mjs +15 -0
  12. package/dist/lib/neutral/blueprint-definition-HOXDG5QP.mjs.map +7 -0
  13. package/dist/lib/neutral/blueprints/index.mjs +8 -0
  14. package/dist/lib/neutral/capabilities/index.mjs +17 -0
  15. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  16. package/dist/lib/{browser/chunk-NQQK7UZQ.mjs → neutral/chunk-2O3ONPRZ.mjs} +94 -40
  17. package/dist/lib/neutral/chunk-2O3ONPRZ.mjs.map +7 -0
  18. package/dist/lib/{browser/chunk-L4HW35L6.mjs → neutral/chunk-5FXU36PN.mjs} +19 -10
  19. package/dist/lib/neutral/chunk-5FXU36PN.mjs.map +7 -0
  20. package/dist/lib/neutral/chunk-GL4RS533.mjs +22 -0
  21. package/dist/lib/neutral/chunk-GL4RS533.mjs.map +7 -0
  22. package/dist/lib/{browser/index.mjs → neutral/chunk-ILSA3DU7.mjs} +32 -70
  23. package/dist/lib/neutral/chunk-ILSA3DU7.mjs.map +7 -0
  24. package/dist/lib/neutral/chunk-Y5EQAFFR.mjs +8 -0
  25. package/dist/lib/neutral/chunk-Y5EQAFFR.mjs.map +7 -0
  26. package/dist/lib/{browser/blueprints/index.mjs → neutral/chunk-ZR4BH4QQ.mjs} +4 -5
  27. package/dist/lib/neutral/chunk-ZR4BH4QQ.mjs.map +7 -0
  28. package/dist/lib/{browser → neutral}/components/index.mjs +83 -18
  29. package/dist/lib/neutral/components/index.mjs.map +7 -0
  30. package/dist/lib/neutral/containers/index.mjs +9 -0
  31. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  32. package/dist/lib/{browser/create-ULR5DPJZ.mjs → neutral/create-RRWRIUSR.mjs} +4 -4
  33. package/dist/lib/neutral/create-RRWRIUSR.mjs.map +7 -0
  34. package/dist/lib/{browser → neutral}/hooks/index.mjs +5 -3
  35. package/dist/lib/neutral/index.mjs +44 -0
  36. package/dist/lib/neutral/meta.json +1 -0
  37. package/dist/lib/neutral/meta.mjs +8 -0
  38. package/dist/lib/{browser/open-SFMPLZVW.mjs → neutral/open-CVMX5KXZ.mjs} +5 -5
  39. package/dist/lib/neutral/open-CVMX5KXZ.mjs.map +7 -0
  40. package/dist/lib/neutral/operation-handler-NXMOAXFP.mjs +13 -0
  41. package/dist/lib/neutral/operation-handler-NXMOAXFP.mjs.map +7 -0
  42. package/dist/lib/neutral/operations/index.mjs +8 -0
  43. package/dist/lib/neutral/plugin.mjs +16 -0
  44. package/dist/lib/neutral/plugin.mjs.map +7 -0
  45. package/dist/lib/neutral/react-surface-YMZRO242.mjs +26 -0
  46. package/dist/lib/neutral/react-surface-YMZRO242.mjs.map +7 -0
  47. package/dist/lib/{browser/summarize-BDFX4APN.mjs → neutral/summarize-LA7TRW7A.mjs} +5 -5
  48. package/dist/lib/neutral/summarize-LA7TRW7A.mjs.map +7 -0
  49. package/dist/lib/neutral/text-content-F4ASMITB.mjs +30 -0
  50. package/dist/lib/neutral/text-content-F4ASMITB.mjs.map +7 -0
  51. package/dist/lib/neutral/transcriber-ABHATBVH.mjs +59 -0
  52. package/dist/lib/neutral/transcriber-ABHATBVH.mjs.map +7 -0
  53. package/dist/lib/neutral/translations.mjs +24 -0
  54. package/dist/lib/neutral/translations.mjs.map +7 -0
  55. package/dist/lib/neutral/types/index.mjs +10 -0
  56. package/dist/lib/neutral/types/index.mjs.map +7 -0
  57. package/dist/types/src/TranscriptionPlugin.d.ts.map +1 -1
  58. package/dist/types/src/TranscriptionPlugin.node.d.ts.map +1 -1
  59. package/dist/types/src/TranscriptionPlugin.workerd.d.ts +4 -0
  60. package/dist/types/src/TranscriptionPlugin.workerd.d.ts.map +1 -0
  61. package/dist/types/src/capabilities/index.d.ts +5 -1
  62. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/text-content.d.ts +8 -0
  64. package/dist/types/src/capabilities/text-content.d.ts.map +1 -0
  65. package/dist/types/src/components/Oracle/Oracle.d.ts +24 -0
  66. package/dist/types/src/components/Oracle/Oracle.d.ts.map +1 -0
  67. package/dist/types/src/components/Oracle/Oracle.stories.d.ts +32 -0
  68. package/dist/types/src/components/Oracle/Oracle.stories.d.ts.map +1 -0
  69. package/dist/types/src/components/Oracle/index.d.ts +2 -0
  70. package/dist/types/src/components/Oracle/index.d.ts.map +1 -0
  71. package/dist/types/src/components/Transcription/Transcription.d.ts +0 -5
  72. package/dist/types/src/components/Transcription/Transcription.d.ts.map +1 -1
  73. package/dist/types/src/components/Transcription/Transcription.stories.d.ts +13 -16
  74. package/dist/types/src/components/Transcription/Transcription.stories.d.ts.map +1 -1
  75. package/dist/types/src/components/index.d.ts +1 -0
  76. package/dist/types/src/components/index.d.ts.map +1 -1
  77. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.d.ts +6 -0
  78. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.d.ts.map +1 -0
  79. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.stories.d.ts +28 -0
  80. package/dist/types/src/containers/TranscriptionArticle/TranscriptionArticle.stories.d.ts.map +1 -0
  81. package/dist/types/src/containers/TranscriptionArticle/index.d.ts +2 -0
  82. package/dist/types/src/containers/TranscriptionArticle/index.d.ts.map +1 -0
  83. package/dist/types/src/containers/index.d.ts +1 -1
  84. package/dist/types/src/containers/index.d.ts.map +1 -1
  85. package/dist/types/src/enrichment/conversation.test.d.ts +2 -0
  86. package/dist/types/src/enrichment/conversation.test.d.ts.map +1 -0
  87. package/dist/types/src/enrichment/operations.d.ts +200 -0
  88. package/dist/types/src/enrichment/operations.d.ts.map +1 -0
  89. package/dist/types/src/enrichment/parser.d.ts +26 -0
  90. package/dist/types/src/enrichment/parser.d.ts.map +1 -0
  91. package/dist/types/src/enrichment/stream-simulator.d.ts +38 -0
  92. package/dist/types/src/enrichment/stream-simulator.d.ts.map +1 -0
  93. package/dist/types/src/hooks/index.d.ts +2 -1
  94. package/dist/types/src/hooks/index.d.ts.map +1 -1
  95. package/dist/types/src/hooks/useFeedModelAdapter.d.ts +12 -0
  96. package/dist/types/src/hooks/useFeedModelAdapter.d.ts.map +1 -0
  97. package/dist/types/src/hooks/useTranscriptionRecording.d.ts +12 -0
  98. package/dist/types/src/hooks/useTranscriptionRecording.d.ts.map +1 -0
  99. package/dist/types/src/index.d.ts +3 -4
  100. package/dist/types/src/index.d.ts.map +1 -1
  101. package/dist/types/src/normalization/message-normalizer.d.ts +7 -5
  102. package/dist/types/src/normalization/message-normalizer.d.ts.map +1 -1
  103. package/dist/types/src/normalization/normalization.d.ts +180 -1
  104. package/dist/types/src/normalization/normalization.d.ts.map +1 -1
  105. package/dist/types/src/operations/create.d.ts +2 -2
  106. package/dist/types/src/operations/create.d.ts.map +1 -1
  107. package/dist/types/src/operations/index.d.ts +0 -1
  108. package/dist/types/src/operations/index.d.ts.map +1 -1
  109. package/dist/types/src/operations/open.d.ts +2 -2
  110. package/dist/types/src/operations/open.d.ts.map +1 -1
  111. package/dist/types/src/operations/summarize.d.ts +2 -2
  112. package/dist/types/src/operations/summarize.d.ts.map +1 -1
  113. package/dist/types/src/plugin.d.ts +4 -0
  114. package/dist/types/src/plugin.d.ts.map +1 -0
  115. package/dist/types/src/stories/FileTranscription.stories.d.ts +5 -3
  116. package/dist/types/src/stories/FileTranscription.stories.d.ts.map +1 -1
  117. package/dist/types/src/stories/KeyWordRecognition.stories.d.ts.map +1 -1
  118. package/dist/types/src/stories/{MicrophoneTranscription.stories.d.ts → LiveTranscription.stories.d.ts} +4 -4
  119. package/dist/types/src/stories/LiveTranscription.stories.d.ts.map +1 -0
  120. package/dist/types/src/stories/TranscriptionStory.d.ts +11 -13
  121. package/dist/types/src/stories/TranscriptionStory.d.ts.map +1 -1
  122. package/dist/types/src/stories/common.d.ts +46 -0
  123. package/dist/types/src/stories/common.d.ts.map +1 -0
  124. package/dist/types/src/testing/testing.d.ts +5 -6
  125. package/dist/types/src/testing/testing.d.ts.map +1 -1
  126. package/dist/types/src/transcriber/transcriber.d.ts +4 -4
  127. package/dist/types/src/transcriber/transcriber.d.ts.map +1 -1
  128. package/dist/types/src/transcriber/transcription-manager.d.ts +6 -4
  129. package/dist/types/src/transcriber/transcription-manager.d.ts.map +1 -1
  130. package/dist/types/src/translations.d.ts +2 -0
  131. package/dist/types/src/translations.d.ts.map +1 -1
  132. package/dist/types/src/{operations/definitions.d.ts → types/TranscriptOperation.d.ts} +1 -1
  133. package/dist/types/src/types/TranscriptOperation.d.ts.map +1 -0
  134. package/dist/types/src/types/TranscriptionCapabilities.d.ts +17 -0
  135. package/dist/types/src/types/TranscriptionCapabilities.d.ts.map +1 -0
  136. package/dist/types/src/types/index.d.ts +2 -2
  137. package/dist/types/src/types/index.d.ts.map +1 -1
  138. package/dist/types/tsconfig.tsbuildinfo +1 -1
  139. package/package.json +125 -94
  140. package/src/TranscriptionPlugin.node.ts +3 -31
  141. package/src/TranscriptionPlugin.test.ts +3 -3
  142. package/src/TranscriptionPlugin.tsx +3 -31
  143. package/src/TranscriptionPlugin.workerd.ts +18 -0
  144. package/src/blueprints/transcription-blueprint.ts +1 -1
  145. package/src/capabilities/index.ts +1 -0
  146. package/src/capabilities/react-surface.tsx +2 -2
  147. package/src/capabilities/text-content.ts +33 -0
  148. package/src/capabilities/transcriber.ts +1 -1
  149. package/src/components/Oracle/Oracle.stories.tsx +147 -0
  150. package/src/components/Oracle/Oracle.tsx +141 -0
  151. package/src/components/Oracle/index.ts +5 -0
  152. package/src/components/Transcription/Transcription.stories.tsx +116 -150
  153. package/src/components/Transcription/Transcription.tsx +7 -13
  154. package/src/components/index.ts +1 -0
  155. package/src/containers/TranscriptionArticle/TranscriptionArticle.stories.tsx +61 -0
  156. package/src/containers/TranscriptionArticle/TranscriptionArticle.tsx +62 -0
  157. package/src/containers/TranscriptionArticle/index.ts +5 -0
  158. package/src/containers/index.ts +1 -1
  159. package/src/enrichment/conversation.test.ts +162 -0
  160. package/src/enrichment/conversation.txt +23 -0
  161. package/src/enrichment/operations.ts +268 -0
  162. package/src/enrichment/parser.ts +101 -0
  163. package/src/enrichment/stream-simulator.ts +125 -0
  164. package/src/hooks/index.ts +2 -1
  165. package/src/hooks/useFeedModelAdapter.ts +46 -0
  166. package/src/hooks/useTranscriptionRecording.ts +87 -0
  167. package/src/index.ts +3 -9
  168. package/src/normalization/message-normalizer.ts +25 -13
  169. package/src/normalization/normalization.test.ts +3 -37
  170. package/src/normalization/normalization.ts +6 -7
  171. package/src/operations/create.ts +2 -2
  172. package/src/operations/index.ts +0 -2
  173. package/src/operations/open.ts +2 -2
  174. package/src/operations/summarize.ts +3 -3
  175. package/src/plugin.ts +11 -0
  176. package/src/stories/FileTranscription.stories.tsx +49 -175
  177. package/src/stories/KeyWordRecognition.stories.tsx +7 -9
  178. package/src/stories/LiveTranscription.stories.tsx +153 -0
  179. package/src/stories/TranscriptionStory.tsx +32 -24
  180. package/src/stories/common.ts +233 -0
  181. package/src/testing/testing.ts +20 -27
  182. package/src/transcriber/transcriber.test.ts +9 -9
  183. package/src/transcriber/transcriber.ts +18 -14
  184. package/src/transcriber/transcription-manager.ts +14 -9
  185. package/src/translations.ts +3 -0
  186. package/src/{operations/definitions.ts → types/TranscriptOperation.ts} +2 -0
  187. package/src/types/TranscriptionCapabilities.ts +39 -0
  188. package/src/types/index.ts +2 -2
  189. package/dist/lib/browser/blueprints/index.mjs.map +0 -7
  190. package/dist/lib/browser/chunk-3L623EVL.mjs +0 -17
  191. package/dist/lib/browser/chunk-3L623EVL.mjs.map +0 -7
  192. package/dist/lib/browser/chunk-L4HW35L6.mjs.map +0 -7
  193. package/dist/lib/browser/chunk-NQQK7UZQ.mjs.map +0 -7
  194. package/dist/lib/browser/components/index.mjs.map +0 -7
  195. package/dist/lib/browser/create-ULR5DPJZ.mjs.map +0 -7
  196. package/dist/lib/browser/index.mjs.map +0 -7
  197. package/dist/lib/browser/meta.json +0 -1
  198. package/dist/lib/browser/open-SFMPLZVW.mjs.map +0 -7
  199. package/dist/lib/browser/operations/index.mjs +0 -13
  200. package/dist/lib/browser/operations/index.mjs.map +0 -7
  201. package/dist/lib/browser/summarize-BDFX4APN.mjs.map +0 -7
  202. package/dist/lib/browser/types/index.mjs +0 -10
  203. package/dist/lib/node-esm/blueprints/index.mjs +0 -32
  204. package/dist/lib/node-esm/blueprints/index.mjs.map +0 -7
  205. package/dist/lib/node-esm/chunk-7UIZWCD4.mjs +0 -112
  206. package/dist/lib/node-esm/chunk-7UIZWCD4.mjs.map +0 -7
  207. package/dist/lib/node-esm/chunk-C3AE2NYJ.mjs +0 -181
  208. package/dist/lib/node-esm/chunk-C3AE2NYJ.mjs.map +0 -7
  209. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  210. package/dist/lib/node-esm/chunk-KO3IOD2O.mjs +0 -19
  211. package/dist/lib/node-esm/chunk-KO3IOD2O.mjs.map +0 -7
  212. package/dist/lib/node-esm/chunk-MQK4R6GT.mjs +0 -245
  213. package/dist/lib/node-esm/chunk-MQK4R6GT.mjs.map +0 -7
  214. package/dist/lib/node-esm/chunk-O533NBMK.mjs +0 -37
  215. package/dist/lib/node-esm/chunk-O533NBMK.mjs.map +0 -7
  216. package/dist/lib/node-esm/components/index.mjs +0 -208
  217. package/dist/lib/node-esm/components/index.mjs.map +0 -7
  218. package/dist/lib/node-esm/create-A5QHNWRF.mjs +0 -22
  219. package/dist/lib/node-esm/create-A5QHNWRF.mjs.map +0 -7
  220. package/dist/lib/node-esm/hooks/index.mjs +0 -18
  221. package/dist/lib/node-esm/index.mjs +0 -474
  222. package/dist/lib/node-esm/index.mjs.map +0 -7
  223. package/dist/lib/node-esm/meta.json +0 -1
  224. package/dist/lib/node-esm/open-OI24QNTO.mjs +0 -28
  225. package/dist/lib/node-esm/open-OI24QNTO.mjs.map +0 -7
  226. package/dist/lib/node-esm/operations/index.mjs +0 -14
  227. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  228. package/dist/lib/node-esm/summarize-3UNN24I2.mjs +0 -79
  229. package/dist/lib/node-esm/summarize-3UNN24I2.mjs.map +0 -7
  230. package/dist/lib/node-esm/types/index.mjs +0 -11
  231. package/dist/types/src/containers/TranscriptionContainer/TranscriptionContainer.d.ts +0 -6
  232. package/dist/types/src/containers/TranscriptionContainer/TranscriptionContainer.d.ts.map +0 -1
  233. package/dist/types/src/containers/TranscriptionContainer/index.d.ts +0 -2
  234. package/dist/types/src/containers/TranscriptionContainer/index.d.ts.map +0 -1
  235. package/dist/types/src/hooks/useQueueModelAdapter.d.ts +0 -8
  236. package/dist/types/src/hooks/useQueueModelAdapter.d.ts.map +0 -1
  237. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  238. package/dist/types/src/stories/MicrophoneTranscription.stories.d.ts.map +0 -1
  239. package/dist/types/src/stories/useIsSpeaking.d.ts +0 -3
  240. package/dist/types/src/stories/useIsSpeaking.d.ts.map +0 -1
  241. package/dist/types/src/types/capabilities.d.ts +0 -19
  242. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  243. package/dist/types/src/types/defs.d.ts +0 -5
  244. package/dist/types/src/types/defs.d.ts.map +0 -1
  245. package/src/containers/TranscriptionContainer/TranscriptionContainer.tsx +0 -35
  246. package/src/containers/TranscriptionContainer/index.ts +0 -5
  247. package/src/hooks/useQueueModelAdapter.ts +0 -66
  248. package/src/stories/MicrophoneTranscription.stories.tsx +0 -264
  249. package/src/stories/useIsSpeaking.tsx +0 -40
  250. package/src/types/capabilities.ts +0 -39
  251. package/src/types/defs.ts +0 -9
  252. /package/dist/lib/{browser/hooks → neutral/blueprints}/index.mjs.map +0 -0
  253. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  254. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs.map +0 -0
  255. /package/dist/lib/{browser → neutral}/chunk-KAEXRX3Y.mjs +0 -0
  256. /package/dist/lib/{browser → neutral}/chunk-KAEXRX3Y.mjs.map +0 -0
  257. /package/dist/lib/{browser → neutral}/chunk-MLRJWAQH.mjs +0 -0
  258. /package/dist/lib/{browser → neutral}/chunk-MLRJWAQH.mjs.map +0 -0
  259. /package/dist/lib/{browser/types → neutral/hooks}/index.mjs.map +0 -0
  260. /package/dist/lib/{node-esm/hooks → neutral}/index.mjs.map +0 -0
  261. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/meta.mjs.map} +0 -0
  262. /package/dist/lib/{node-esm/types → neutral/operations}/index.mjs.map +0 -0
@@ -1,208 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- DocumentAdapter
4
- } from "../chunk-C3AE2NYJ.mjs";
5
- import {
6
- renderByline
7
- } from "../chunk-O533NBMK.mjs";
8
- import "../chunk-HSLMI22Q.mjs";
9
-
10
- // src/components/Transcription/Transcription.tsx
11
- import React from "react";
12
- import { useThemeContext } from "@dxos/react-ui";
13
- import { useTextEditor } from "@dxos/react-ui-editor";
14
- import { autoScroll, createBasicExtensions, createMarkdownExtensions, createThemeExtensions, decorateMarkdown, documentSlots, preview } from "@dxos/ui-editor";
15
- import { composable, composableProps } from "@dxos/ui-theme";
16
- import { isTruthy } from "@dxos/util";
17
-
18
- // src/components/Transcription/transcription-extension.ts
19
- import { RangeSetBuilder } from "@codemirror/state";
20
- import { EditorView, GutterMarker, ViewPlugin, gutter } from "@codemirror/view";
21
- import { format } from "date-fns/format";
22
- import { intervalToDuration } from "date-fns/intervalToDuration";
23
- import { addEventListener, combine } from "@dxos/async";
24
- var transcription = ({ model, started }) => {
25
- return [
26
- // Show timestamps in the gutter.
27
- gutter({
28
- class: "cm-timestamp-gutter",
29
- lineMarkerChange: (update) => update.docChanged || update.viewportChanged,
30
- markers: (view) => {
31
- const start = getStartTime(started, model.chunks[0]);
32
- const builder = new RangeSetBuilder();
33
- for (const { from, to } of view.visibleRanges) {
34
- let line = view.state.doc.lineAt(from);
35
- while (line.from <= to) {
36
- const block = model.getChunkAtLine(line.number)?.blocks[0];
37
- const timestamp = block?._tag === "transcript" && block.started;
38
- if (timestamp) {
39
- builder.add(line.from, line.from, new TimestampMarker(line.number, new Date(timestamp), start));
40
- }
41
- if (line.to + 1 > view.state.doc.length) {
42
- break;
43
- }
44
- line = view.state.doc.lineAt(line.to + 1);
45
- }
46
- }
47
- return builder.finish();
48
- }
49
- }),
50
- // Listen for model updates.
51
- ViewPlugin.fromClass(class {
52
- _controls;
53
- _cleanup;
54
- _adapter;
55
- _initialized = false;
56
- constructor(view) {
57
- this._adapter = new DocumentAdapter(view);
58
- const scroller = view.scrollDOM;
59
- let isAutoScrolling = false;
60
- let hasScrolled = false;
61
- let timeout;
62
- const scrollToBottom = (smooth = false) => {
63
- scroller.style.scrollBehavior = smooth ? "smooth" : "";
64
- scroller.classList.add("cm-hide-scrollbar");
65
- isAutoScrolling = true;
66
- clearTimeout(timeout);
67
- timeout = setTimeout(() => {
68
- this._controls?.classList.add("opacity-0");
69
- scroller.classList.remove("cm-hide-scrollbar");
70
- isAutoScrolling = false;
71
- }, 500);
72
- view.dispatch({
73
- effects: EditorView.scrollIntoView(view.state.doc.length, {
74
- y: "end"
75
- })
76
- });
77
- };
78
- this._cleanup = combine(addEventListener(view.scrollDOM, "scroll", () => {
79
- if (!isAutoScrolling) {
80
- hasScrolled = true;
81
- this._controls?.classList.remove("opacity-0");
82
- }
83
- }), model.update.on(() => {
84
- const autoScroll2 = scroller.scrollHeight - scroller.scrollTop - scroller.clientHeight === 0 || !hasScrolled;
85
- model.sync(this._adapter);
86
- if (autoScroll2) {
87
- scrollToBottom(true);
88
- }
89
- }));
90
- }
91
- update(_update) {
92
- if (!this._initialized) {
93
- this._initialized = true;
94
- setTimeout(() => {
95
- model.sync(this._adapter);
96
- });
97
- }
98
- }
99
- destroy() {
100
- this._controls?.remove();
101
- this._cleanup();
102
- }
103
- }),
104
- EditorView.theme({
105
- ".cm-gutters": {
106
- backgroundColor: "var(--color-base-surface)"
107
- },
108
- ".cm-timestamp-gutter": {
109
- width: "6rem",
110
- paddingLeft: "0.5rem",
111
- paddingRight: "1rem"
112
- },
113
- ".cm-timestamp-gutter > .cm-gutterElement > div": {
114
- display: "inline-flex",
115
- textAlign: "right",
116
- padding: "3px"
117
- }
118
- })
119
- ];
120
- };
121
- var TimestampMarker = class extends GutterMarker {
122
- _line;
123
- _timestamp;
124
- _started;
125
- constructor(_line, _timestamp, _started) {
126
- super(), this._line = _line, this._timestamp = _timestamp, this._started = _started;
127
- }
128
- eq(other) {
129
- return this._timestamp === other._timestamp;
130
- }
131
- toDOM(view) {
132
- const el = document.createElement("div");
133
- el.className = "text-sm text-subdued hover:bg-hover-surface cursor-pointer";
134
- el.textContent = formatTimestamp(this._timestamp, this._started);
135
- el.onclick = () => {
136
- const pos = view.state.doc.line(this._line).from;
137
- view.dispatch({
138
- effects: EditorView.scrollIntoView(pos, {
139
- y: "start"
140
- })
141
- });
142
- };
143
- return el;
144
- }
145
- };
146
- var getStartTime = (started, message) => {
147
- if (started) {
148
- return started;
149
- }
150
- if (message?.blocks[0]?._tag === "transcript" && message.blocks[0].started) {
151
- return new Date(message.blocks[0].started);
152
- }
153
- return void 0;
154
- };
155
- var formatTimestamp = (timestamp, relative) => {
156
- if (relative) {
157
- const pad = (n = 0) => String(n).padStart(2, "0");
158
- const { hours, minutes, seconds } = intervalToDuration({
159
- start: relative,
160
- end: timestamp
161
- });
162
- return `${pad(hours)}:${pad(minutes)}:${pad(seconds)}`;
163
- } else {
164
- return format(timestamp, "HH:mm:ss");
165
- }
166
- };
167
-
168
- // src/components/Transcription/Transcription.tsx
169
- var Transcription = composable(({ transcript: object, model, children, ...props }, forwardedRef) => {
170
- const { themeMode } = useThemeContext();
171
- const { parentRef } = useTextEditor(() => {
172
- return {
173
- extensions: [
174
- createBasicExtensions({
175
- readOnly: true,
176
- lineWrapping: true,
177
- search: true
178
- }),
179
- createMarkdownExtensions(),
180
- createThemeExtensions({
181
- themeMode,
182
- slots: documentSlots
183
- }),
184
- decorateMarkdown(),
185
- preview(),
186
- transcription({
187
- model,
188
- started: object?.started ? new Date(object.started) : void 0
189
- }),
190
- autoScroll()
191
- ].filter(isTruthy)
192
- };
193
- }, [
194
- model
195
- ]);
196
- return /* @__PURE__ */ React.createElement("div", {
197
- ...composableProps(props, {
198
- classNames: "dx-container"
199
- }),
200
- ref: parentRef,
201
- "data-popover-collision-boundary": true
202
- });
203
- });
204
- export {
205
- Transcription,
206
- renderByline
207
- };
208
- //# sourceMappingURL=index.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../src/components/Transcription/Transcription.tsx", "../../../../src/components/Transcription/transcription-extension.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { useThemeContext } from '@dxos/react-ui';\nimport { useTextEditor } from '@dxos/react-ui-editor';\nimport { type Message, type Transcript } from '@dxos/types';\nimport {\n autoScroll,\n createBasicExtensions,\n createMarkdownExtensions,\n createThemeExtensions,\n decorateMarkdown,\n documentSlots,\n preview,\n} from '@dxos/ui-editor';\nimport { composable, composableProps } from '@dxos/ui-theme';\nimport { isTruthy } from '@dxos/util';\n\nimport { type SerializationModel } from '../../model';\nimport { renderByline } from '../../util';\nimport { transcription } from './transcription-extension';\n\nexport { renderByline };\n\nexport type TranscriptionProps = {\n transcript?: Transcript.Transcript;\n model: SerializationModel<Message.Message>;\n // TODO(burdon): Are these still in use?\n attendableId?: string;\n ignoreAttention?: boolean;\n};\n\n/**\n * Transcript component implemented using the editor.\n */\nexport const Transcription = composable<HTMLDivElement, TranscriptionProps>(\n ({ transcript: object, model, children, ...props }, forwardedRef) => {\n const { themeMode } = useThemeContext();\n const { parentRef } = useTextEditor(() => {\n return {\n extensions: [\n createBasicExtensions({ readOnly: true, lineWrapping: true, search: true }),\n createMarkdownExtensions(),\n createThemeExtensions({ themeMode, slots: documentSlots }),\n decorateMarkdown(),\n preview(),\n transcription({ model, started: object?.started ? new Date(object.started) : undefined }),\n autoScroll(),\n ].filter(isTruthy),\n };\n }, [model]);\n\n return (\n <div\n {...composableProps(props, { classNames: 'dx-container' })}\n ref={parentRef}\n data-popover-collision-boundary={true /* TODO(thure): Make this a constant and document it. */}\n />\n );\n },\n);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Extension, RangeSetBuilder } from '@codemirror/state';\nimport { EditorView, GutterMarker, ViewPlugin, type ViewUpdate, gutter } from '@codemirror/view';\nimport { format } from 'date-fns/format';\nimport { intervalToDuration } from 'date-fns/intervalToDuration';\n\nimport { type CleanupFn, addEventListener, combine } from '@dxos/async';\nimport { type Message } from '@dxos/types';\n\nimport { DocumentAdapter, type SerializationModel } from '../../model';\n\n/**\n * Data structure that maps Chunks queue to lines with transcript state.\n */\nexport type TranscriptionOptions = {\n model: SerializationModel<Message.Message>;\n started?: Date;\n};\n\n/**\n * Scrolling transcript with timestamps.\n */\nexport const transcription = ({ model, started }: TranscriptionOptions): Extension => {\n return [\n // Show timestamps in the gutter.\n gutter({\n class: 'cm-timestamp-gutter',\n lineMarkerChange: (update) => update.docChanged || update.viewportChanged,\n markers: (view) => {\n const start = getStartTime(started, model.chunks[0]);\n const builder = new RangeSetBuilder<GutterMarker>();\n for (const { from, to } of view.visibleRanges) {\n let line = view.state.doc.lineAt(from);\n while (line.from <= to) {\n const block = model.getChunkAtLine(line.number)?.blocks[0];\n const timestamp = block?._tag === 'transcript' && block.started;\n if (timestamp) {\n builder.add(line.from, line.from, new TimestampMarker(line.number, new Date(timestamp), start));\n }\n\n if (line.to + 1 > view.state.doc.length) {\n break;\n }\n\n line = view.state.doc.lineAt(line.to + 1);\n }\n }\n\n return builder.finish();\n },\n }),\n\n // Listen for model updates.\n ViewPlugin.fromClass(\n class {\n private readonly _controls?: HTMLDivElement;\n private readonly _cleanup: CleanupFn;\n private readonly _adapter: DocumentAdapter;\n private _initialized = false;\n\n constructor(view: EditorView) {\n this._adapter = new DocumentAdapter(view);\n\n const scroller = view.scrollDOM;\n let isAutoScrolling = false;\n let hasScrolled = false;\n\n let timeout: NodeJS.Timeout | undefined;\n const scrollToBottom = (smooth = false) => {\n scroller.style.scrollBehavior = smooth ? 'smooth' : '';\n\n // Temporarily hide scrollbar to prevent flicker.\n scroller.classList.add('cm-hide-scrollbar');\n isAutoScrolling = true;\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n this._controls?.classList.add('opacity-0');\n scroller.classList.remove('cm-hide-scrollbar');\n isAutoScrolling = false;\n }, 500);\n\n // Scroll to bottom.\n view.dispatch({\n effects: EditorView.scrollIntoView(view.state.doc.length, { y: 'end' }),\n });\n };\n\n // Event listeners.\n this._cleanup = combine(\n addEventListener(view.scrollDOM, 'scroll', () => {\n if (!isAutoScrolling) {\n hasScrolled = true;\n this._controls?.classList.remove('opacity-0');\n }\n }),\n\n model.update.on(() => {\n // Check if clamped to bottom.\n const autoScroll =\n scroller.scrollHeight - scroller.scrollTop - scroller.clientHeight === 0 || !hasScrolled;\n\n // Sync.\n model.sync(this._adapter);\n\n // Scroll.\n if (autoScroll) {\n scrollToBottom(true);\n }\n }),\n );\n }\n\n update(_update: ViewUpdate) {\n // Initial sync.\n if (!this._initialized) {\n this._initialized = true;\n setTimeout(() => {\n model.sync(this._adapter);\n });\n }\n }\n\n destroy() {\n this._controls?.remove();\n this._cleanup();\n }\n },\n ),\n\n EditorView.theme({\n '.cm-gutters': {\n backgroundColor: 'var(--color-base-surface)',\n },\n '.cm-timestamp-gutter': {\n width: '6rem',\n paddingLeft: '0.5rem',\n paddingRight: '1rem',\n },\n '.cm-timestamp-gutter > .cm-gutterElement > div': {\n display: 'inline-flex',\n textAlign: 'right',\n padding: '3px',\n },\n }),\n ];\n};\n\n/**\n * Gutter marker that displays a timestamp.\n */\nclass TimestampMarker extends GutterMarker {\n constructor(\n readonly _line: number,\n readonly _timestamp: Date,\n readonly _started?: Date,\n ) {\n super();\n }\n\n override eq(other: this) {\n return this._timestamp === other._timestamp;\n }\n\n override toDOM(view: EditorView) {\n const el = document.createElement('div');\n el.className = 'text-sm text-subdued hover:bg-hover-surface cursor-pointer';\n el.textContent = formatTimestamp(this._timestamp, this._started);\n // TODO(burdon): Click to bookmark or copy hyperlink.\n el.onclick = () => {\n const pos = view.state.doc.line(this._line).from;\n view.dispatch({\n effects: EditorView.scrollIntoView(pos, { y: 'start' }),\n });\n };\n\n return el;\n }\n}\n\nconst getStartTime = (started?: Date, message?: Message.Message): Date | undefined => {\n if (started) {\n return started;\n }\n\n if (message?.blocks[0]?._tag === 'transcript' && message.blocks[0].started) {\n return new Date(message.blocks[0].started);\n }\n\n return undefined;\n};\n\nconst formatTimestamp = (timestamp: Date, relative?: Date) => {\n if (relative) {\n const pad = (n = 0) => String(n).padStart(2, '0');\n const { hours, minutes, seconds } = intervalToDuration({ start: relative, end: timestamp });\n return `${pad(hours)}:${pad(minutes)}:${pad(seconds)}`;\n } else {\n return format(timestamp, 'HH:mm:ss');\n }\n};\n"],
5
- "mappings": "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",
6
- "names": ["React", "useThemeContext", "useTextEditor", "autoScroll", "createBasicExtensions", "createMarkdownExtensions", "createThemeExtensions", "decorateMarkdown", "documentSlots", "preview", "composable", "composableProps", "isTruthy", "RangeSetBuilder", "EditorView", "GutterMarker", "ViewPlugin", "gutter", "format", "intervalToDuration", "addEventListener", "combine", "transcription", "model", "started", "gutter", "class", "lineMarkerChange", "update", "docChanged", "viewportChanged", "markers", "view", "start", "getStartTime", "chunks", "builder", "RangeSetBuilder", "from", "to", "visibleRanges", "line", "state", "doc", "lineAt", "block", "getChunkAtLine", "number", "blocks", "timestamp", "_tag", "add", "TimestampMarker", "Date", "length", "finish", "ViewPlugin", "fromClass", "_controls", "_cleanup", "_adapter", "_initialized", "DocumentAdapter", "scroller", "scrollDOM", "isAutoScrolling", "hasScrolled", "timeout", "scrollToBottom", "smooth", "style", "scrollBehavior", "classList", "clearTimeout", "setTimeout", "remove", "dispatch", "effects", "EditorView", "scrollIntoView", "y", "combine", "addEventListener", "on", "autoScroll", "scrollHeight", "scrollTop", "clientHeight", "sync", "_update", "destroy", "theme", "backgroundColor", "width", "paddingLeft", "paddingRight", "display", "textAlign", "padding", "GutterMarker", "_line", "_timestamp", "_started", "eq", "other", "toDOM", "el", "document", "createElement", "className", "textContent", "formatTimestamp", "onclick", "pos", "message", "undefined", "relative", "pad", "n", "String", "padStart", "hours", "minutes", "seconds", "intervalToDuration", "end", "format", "Transcription", "composable", "transcript", "object", "model", "children", "props", "forwardedRef", "themeMode", "useThemeContext", "parentRef", "useTextEditor", "extensions", "createBasicExtensions", "readOnly", "lineWrapping", "search", "createMarkdownExtensions", "createThemeExtensions", "slots", "documentSlots", "decorateMarkdown", "preview", "transcription", "started", "Date", "undefined", "autoScroll", "filter", "isTruthy", "div", "composableProps", "classNames", "ref", "data-popover-collision-boundary"]
7
- }
@@ -1,22 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- Create
4
- } from "./chunk-7UIZWCD4.mjs";
5
- import "./chunk-HSLMI22Q.mjs";
6
-
7
- // src/operations/create.ts
8
- import * as Effect from "effect/Effect";
9
- import { Operation } from "@dxos/compute";
10
- import { Feed, Ref } from "@dxos/echo";
11
- import { Transcript } from "@dxos/types";
12
- var handler = Create.pipe(Operation.withHandler(Effect.fn(function* ({ space }) {
13
- const feed = space.db.add(Feed.make());
14
- return {
15
- object: Transcript.make(Ref.make(feed))
16
- };
17
- })));
18
- var create_default = handler;
19
- export {
20
- create_default as default
21
- };
22
- //# sourceMappingURL=create-A5QHNWRF.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/operations/create.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/compute';\nimport { Feed, Ref } from '@dxos/echo';\nimport { Transcript } from '@dxos/types';\n\nimport { Create } from './definitions';\n\nconst handler: Operation.WithHandler<typeof Create> = Create.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ space }) {\n const feed = space.db.add(Feed.make());\n return {\n object: Transcript.make(Ref.make(feed)),\n };\n }),\n ),\n);\n\nexport default handler;\n"],
5
- "mappings": ";;;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAC1B,SAASC,MAAMC,WAAW;AAC1B,SAASC,kBAAkB;AAI3B,IAAMC,UAAgDC,OAAOC,KAC3DC,UAAUC,YACDC,UAAG,WAAW,EAAEC,MAAK,GAAE;AAC5B,QAAMC,OAAOD,MAAME,GAAGC,IAAIC,KAAKC,KAAI,CAAA;AACnC,SAAO;IACLC,QAAQC,WAAWF,KAAKG,IAAIH,KAAKJ,IAAAA,CAAAA;EACnC;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,iBAAeP;",
6
- "names": ["Effect", "Operation", "Feed", "Ref", "Transcript", "handler", "Create", "pipe", "Operation", "withHandler", "fn", "space", "feed", "db", "add", "Feed", "make", "object", "Transcript", "Ref"]
7
- }
@@ -1,18 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- useAudioFile,
4
- useAudioTrack,
5
- useQueueModelAdapter,
6
- useTranscriber,
7
- useVoiceInput
8
- } from "../chunk-MQK4R6GT.mjs";
9
- import "../chunk-C3AE2NYJ.mjs";
10
- import "../chunk-HSLMI22Q.mjs";
11
- export {
12
- useAudioFile,
13
- useAudioTrack,
14
- useQueueModelAdapter,
15
- useTranscriber,
16
- useVoiceInput
17
- };
18
- //# sourceMappingURL=index.mjs.map