@bendyline/squisq-editor-react 2.4.1 → 2.4.3
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.
- package/NOTICE.md +2 -0
- package/THIRD_PARTY_LICENSES.txt +0 -52
- package/dist/{chunk-KR4VLXUM.js → chunk-JGW6BJZJ.js} +250 -2393
- package/dist/{chunk-LJRHKXDV.js → chunk-PEI5EBEN.js} +1 -1
- package/dist/{chunk-LOTY7AOS.js → chunk-PKGBWNUQ.js} +4 -4
- package/dist/index.d.ts +14 -3
- package/dist/index.js +3 -3
- package/dist/recorder/index.d.ts +1 -1
- package/dist/recorder/index.js +2 -2
- package/dist/{recorder-C5tAYUE3.d.ts → recorder-C0Tkyu5W.d.ts} +1 -1
- package/dist/shell/index.js +2 -2
- package/dist/styles/index.css +23 -6
- package/package.json +6 -4
|
@@ -1061,15 +1061,15 @@ function captureSummary(micOn, cameraOn, screenOn, systemAudioOn) {
|
|
|
1061
1061
|
function recordingFilenameSeed(source, stream, audioRequested) {
|
|
1062
1062
|
if (source === "mic") return "audio";
|
|
1063
1063
|
const hasAudio = stream ? stream.getAudioTracks().length > 0 : audioRequested;
|
|
1064
|
-
if (source === "camera") return hasAudio ? "camera
|
|
1065
|
-
return hasAudio ? "screen
|
|
1064
|
+
if (source === "camera") return hasAudio ? "camera-audio" : "camera";
|
|
1065
|
+
return hasAudio ? "screen-audio" : "screen";
|
|
1066
1066
|
}
|
|
1067
1067
|
function dualFilenameSeeds(screenStream, cameraStream, systemAudioRequested, micRequested) {
|
|
1068
1068
|
const screenHasAudio = screenStream ? screenStream.getAudioTracks().length > 0 : systemAudioRequested;
|
|
1069
1069
|
const cameraHasAudio = cameraStream ? cameraStream.getAudioTracks().length > 0 : micRequested;
|
|
1070
1070
|
return {
|
|
1071
|
-
screen: screenHasAudio ? "screen
|
|
1072
|
-
camera: cameraHasAudio ? "camera
|
|
1071
|
+
screen: screenHasAudio ? "screen-audio" : "screen",
|
|
1072
|
+
camera: cameraHasAudio ? "camera-audio" : "camera"
|
|
1073
1073
|
};
|
|
1074
1074
|
}
|
|
1075
1075
|
function RecorderModal({
|
package/dist/index.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ import { PluginKey } from '@tiptap/pm/state';
|
|
|
22
22
|
import { Node } from '@tiptap/pm/model';
|
|
23
23
|
import { RenderResult } from 'mermaid';
|
|
24
24
|
export { JsonEditor, JsonEditorProps } from './json-editor/index.js';
|
|
25
|
-
export { C as CameraStreamOptions, a as CaptureKind, R as RecordedBookmark, b as RecorderButton, c as RecorderButtonProps, d as RecorderCameraLane, e as RecorderCameraSaveResult, f as RecorderColorScheme, g as RecorderModal, h as RecorderModalProps, i as RecorderNarrationOptions, j as RecorderPanel, k as RecorderPanelProps, l as RecorderSaveResult, m as RecorderSource, n as RecorderState, o as ResolvedFormat, S as ScreenStreamHandle, p as ScreenStreamOptions, T as TimingJson, U as UseMediaRecorderOptions, q as UseMediaRecorderResult, r as buildFilename, s as buildTimingJson, t as encodeTimingJson, u as getCaptureKind, v as requestCameraStream, w as requestMicStream, x as requestScreenStream, y as resolveFormat, z as supportsDisplayMedia, A as supportsMediaRecorder, B as supportsUserMedia, D as timingPathFor, E as useMediaRecorder, F as useStreamPreview } from './recorder-
|
|
25
|
+
export { C as CameraStreamOptions, a as CaptureKind, R as RecordedBookmark, b as RecorderButton, c as RecorderButtonProps, d as RecorderCameraLane, e as RecorderCameraSaveResult, f as RecorderColorScheme, g as RecorderModal, h as RecorderModalProps, i as RecorderNarrationOptions, j as RecorderPanel, k as RecorderPanelProps, l as RecorderSaveResult, m as RecorderSource, n as RecorderState, o as ResolvedFormat, S as ScreenStreamHandle, p as ScreenStreamOptions, T as TimingJson, U as UseMediaRecorderOptions, q as UseMediaRecorderResult, r as buildFilename, s as buildTimingJson, t as encodeTimingJson, u as getCaptureKind, v as requestCameraStream, w as requestMicStream, x as requestScreenStream, y as resolveFormat, z as supportsDisplayMedia, A as supportsMediaRecorder, B as supportsUserMedia, D as timingPathFor, E as useMediaRecorder, F as useStreamPreview } from './recorder-C0Tkyu5W.js';
|
|
26
26
|
export { EYE_LINE_FRACTION, NarrationSavePlan, NarrationSaveResult, NarrationStage, NarrationStageProps, PCM_WORKLET_NAME, PCM_WORKLET_SOURCE, TELEPROMPTER_CSS, TeleprompterControls, TeleprompterControlsProps, TeleprompterSurface, TeleprompterSurfaceProps, TeleprompterView, TeleprompterViewProps, TokenLineMap, buildNarrationSavePlan, cameraVideoLine, ensureTeleprompterStyles, executeNarrationSave, insertNarrationPreamble, measureTokenLines, narrationAnnotationLine, prompterVarsFromTheme, registerPcmWorklet, stepScroll, targetOffsetFor } from './teleprompter/index.js';
|
|
27
27
|
export { C as CanvasSink, D as DEFAULT_TELEPROMPTER_PREFS, F as FloatOpenOptions, a as FloatTier, b as FloatingWindowHandle, c as FloatingWindowManager, M as MicAnalysisHandle, d as MicAnalysisStatus, N as NarrationRecorderController, e as NarrationRecorderState, f as NarrationStageHandle, g as NarrationTake, P as PrompterTransport, T as TeleprompterController, h as TeleprompterPrefs, i as TeleprompterRecordingDeps, U as UseNarrationStageOptions, j as createFloatingWindowManager, k as detectFloatTiers, u as useFloatingWindow, l as useMicAnalysis, m as useNarrationRecorder, n as useNarrationStage, o as useTeleprompter, v as vadConfigForSensitivity } from './useNarrationStage-Bqo18PBw.js';
|
|
28
28
|
import '@bendyline/squisq/versions';
|
|
@@ -232,10 +232,18 @@ interface TimelineClock {
|
|
|
232
232
|
toggle: () => void;
|
|
233
233
|
/** Jump to a time (clamped to `[0, total]`). */
|
|
234
234
|
seek: (t: number) => void;
|
|
235
|
+
/**
|
|
236
|
+
* Registers the single media host driven by this clock. Keeping registration
|
|
237
|
+
* on the clock lets every play entry point (transport button or composition
|
|
238
|
+
* preview) unlock active media inside the originating browser gesture.
|
|
239
|
+
*/
|
|
240
|
+
registerMediaHost?: (host: HTMLElement | null) => void;
|
|
235
241
|
}
|
|
236
242
|
|
|
237
243
|
interface TimelineTrackProps {
|
|
238
244
|
height?: number;
|
|
245
|
+
/** Base path used when a media source is not resolved by MediaContext. */
|
|
246
|
+
basePath?: string;
|
|
239
247
|
/**
|
|
240
248
|
* Doc used for bar geometry / timing. Callers pass the narration-timed
|
|
241
249
|
* projection so the track matches what actually plays; falls back to the
|
|
@@ -247,10 +255,13 @@ interface TimelineTrackProps {
|
|
|
247
255
|
clock?: TimelineClock;
|
|
248
256
|
/** Reuse an already-resolved schedule instead of deriving it from the doc. */
|
|
249
257
|
schedule?: ScheduledClip[];
|
|
250
|
-
/**
|
|
258
|
+
/**
|
|
259
|
+
* @deprecated Preview panes are visual-only and no longer take audio
|
|
260
|
+
* ownership. Retained so existing callers remain source-compatible.
|
|
261
|
+
*/
|
|
251
262
|
videoVisible?: boolean;
|
|
252
263
|
}
|
|
253
|
-
declare function TimelineTrack({ height, doc: docProp, clock, schedule,
|
|
264
|
+
declare function TimelineTrack({ height, basePath, doc: docProp, clock, schedule, }: TimelineTrackProps): react_jsx_runtime.JSX.Element | null;
|
|
254
265
|
|
|
255
266
|
interface TimelineVideoPanelProps {
|
|
256
267
|
schedule: ScheduledClip[];
|
package/dist/index.js
CHANGED
|
@@ -194,7 +194,7 @@ import {
|
|
|
194
194
|
usePreviewSettings,
|
|
195
195
|
useTimelineData,
|
|
196
196
|
useTreeViewData
|
|
197
|
-
} from "./chunk-
|
|
197
|
+
} from "./chunk-JGW6BJZJ.js";
|
|
198
198
|
import "./chunk-V4NBQF5C.js";
|
|
199
199
|
import {
|
|
200
200
|
JsonEditor
|
|
@@ -212,14 +212,14 @@ import {
|
|
|
212
212
|
} from "./chunk-V44VP242.js";
|
|
213
213
|
import {
|
|
214
214
|
RecorderButton
|
|
215
|
-
} from "./chunk-
|
|
215
|
+
} from "./chunk-PEI5EBEN.js";
|
|
216
216
|
import {
|
|
217
217
|
RecorderModal,
|
|
218
218
|
RecorderPanel,
|
|
219
219
|
getCaptureKind,
|
|
220
220
|
requestScreenStream,
|
|
221
221
|
useMediaRecorder
|
|
222
|
-
} from "./chunk-
|
|
222
|
+
} from "./chunk-PKGBWNUQ.js";
|
|
223
223
|
import "./chunk-GS7QWYFT.js";
|
|
224
224
|
import {
|
|
225
225
|
TeleprompterView
|
package/dist/recorder/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { C as CameraStreamOptions, a as CaptureKind, R as RecordedBookmark, b as RecorderButton, c as RecorderButtonProps, d as RecorderCameraLane, e as RecorderCameraSaveResult, f as RecorderColorScheme, g as RecorderModal, h as RecorderModalProps, j as RecorderPanel, k as RecorderPanelProps, l as RecorderSaveResult, m as RecorderSource, n as RecorderState, o as ResolvedFormat, S as ScreenStreamHandle, p as ScreenStreamOptions, T as TimingJson, U as UseMediaRecorderOptions, q as UseMediaRecorderResult, r as buildFilename, s as buildTimingJson, t as encodeTimingJson, u as getCaptureKind, v as requestCameraStream, w as requestMicStream, x as requestScreenStream, y as resolveFormat, z as supportsDisplayMedia, A as supportsMediaRecorder, B as supportsUserMedia, D as timingPathFor, E as useMediaRecorder, F as useStreamPreview } from '../recorder-
|
|
1
|
+
export { C as CameraStreamOptions, a as CaptureKind, R as RecordedBookmark, b as RecorderButton, c as RecorderButtonProps, d as RecorderCameraLane, e as RecorderCameraSaveResult, f as RecorderColorScheme, g as RecorderModal, h as RecorderModalProps, j as RecorderPanel, k as RecorderPanelProps, l as RecorderSaveResult, m as RecorderSource, n as RecorderState, o as ResolvedFormat, S as ScreenStreamHandle, p as ScreenStreamOptions, T as TimingJson, U as UseMediaRecorderOptions, q as UseMediaRecorderResult, r as buildFilename, s as buildTimingJson, t as encodeTimingJson, u as getCaptureKind, v as requestCameraStream, w as requestMicStream, x as requestScreenStream, y as resolveFormat, z as supportsDisplayMedia, A as supportsMediaRecorder, B as supportsUserMedia, D as timingPathFor, E as useMediaRecorder, F as useStreamPreview } from '../recorder-C0Tkyu5W.js';
|
|
2
2
|
import 'react/jsx-runtime';
|
|
3
3
|
import '@bendyline/squisq/schemas';
|
|
4
4
|
import '@bendyline/squisq/storage';
|
package/dist/recorder/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
RecorderButton
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-PEI5EBEN.js";
|
|
4
4
|
import {
|
|
5
5
|
RecorderModal,
|
|
6
6
|
RecorderPanel,
|
|
7
7
|
getCaptureKind,
|
|
8
8
|
requestScreenStream,
|
|
9
9
|
useMediaRecorder
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-PKGBWNUQ.js";
|
|
11
11
|
import "../chunk-GS7QWYFT.js";
|
|
12
12
|
import {
|
|
13
13
|
buildFilename,
|
|
@@ -55,7 +55,7 @@ declare function supportsDisplayMedia(): boolean;
|
|
|
55
55
|
* source-aware `seed`; dedicated narration callers omit it and retain the
|
|
56
56
|
* historical `narration-*` default.
|
|
57
57
|
*/
|
|
58
|
-
type RecordingFilenameSeed = 'audio' | 'camera' | 'camera
|
|
58
|
+
type RecordingFilenameSeed = 'audio' | 'camera' | 'camera-audio' | 'screen' | 'screen-audio';
|
|
59
59
|
declare function buildFilename(kind: CaptureKind, extension: string, basename?: string, seed?: RecordingFilenameSeed): string;
|
|
60
60
|
|
|
61
61
|
/**
|
package/dist/shell/index.js
CHANGED
|
@@ -5,11 +5,11 @@ import {
|
|
|
5
5
|
RawEditor,
|
|
6
6
|
WysiwygEditor,
|
|
7
7
|
useEditorContext
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-JGW6BJZJ.js";
|
|
9
9
|
import "../chunk-V4NBQF5C.js";
|
|
10
10
|
import "../chunk-WLJ623UZ.js";
|
|
11
11
|
import "../chunk-V44VP242.js";
|
|
12
|
-
import "../chunk-
|
|
12
|
+
import "../chunk-PKGBWNUQ.js";
|
|
13
13
|
import "../chunk-GS7QWYFT.js";
|
|
14
14
|
import "../chunk-V6Z7GG55.js";
|
|
15
15
|
import "../chunk-PDCKJCOS.js";
|
package/dist/styles/index.css
CHANGED
|
@@ -9079,6 +9079,9 @@
|
|
|
9079
9079
|
.squisq-wysiwyg-editor li {
|
|
9080
9080
|
margin: 0.25em 0;
|
|
9081
9081
|
}
|
|
9082
|
+
.squisq-wysiwyg-editor li > p {
|
|
9083
|
+
margin: 0;
|
|
9084
|
+
}
|
|
9082
9085
|
.squisq-wysiwyg-editor ul[data-type=taskList] {
|
|
9083
9086
|
list-style: none;
|
|
9084
9087
|
padding-left: 0;
|
|
@@ -9229,10 +9232,13 @@
|
|
|
9229
9232
|
background: #f3f4f6;
|
|
9230
9233
|
color: #111827;
|
|
9231
9234
|
}
|
|
9232
|
-
.squisq-preview-seg-btn--active
|
|
9235
|
+
.squisq-preview-seg-btn--active {
|
|
9236
|
+
background: var(--squisq-accent, #2563eb);
|
|
9237
|
+
color: var(--squisq-text-on-accent, #fff);
|
|
9238
|
+
}
|
|
9233
9239
|
.squisq-preview-seg-btn--active:hover {
|
|
9234
|
-
background: #2563eb;
|
|
9235
|
-
color: #fff;
|
|
9240
|
+
background: var(--squisq-accent-hover, var(--squisq-accent, #2563eb));
|
|
9241
|
+
color: var(--squisq-text-on-accent, #fff);
|
|
9236
9242
|
}
|
|
9237
9243
|
.squisq-preview-controls {
|
|
9238
9244
|
display: flex;
|
|
@@ -9752,6 +9758,8 @@
|
|
|
9752
9758
|
--squisq-input-bg: #fff;
|
|
9753
9759
|
--squisq-text: #1f2937;
|
|
9754
9760
|
--squisq-text-muted: #6b7280;
|
|
9761
|
+
--squisq-editor-background: #ffffff;
|
|
9762
|
+
--squisq-editor-foreground: #1f2937;
|
|
9755
9763
|
}
|
|
9756
9764
|
.squisq-editor-shell[data-theme=dark] {
|
|
9757
9765
|
--squisq-bg: #1f2937;
|
|
@@ -9759,6 +9767,8 @@
|
|
|
9759
9767
|
--squisq-input-bg: #374151;
|
|
9760
9768
|
--squisq-text: #e5e7eb;
|
|
9761
9769
|
--squisq-text-muted: #9ca3af;
|
|
9770
|
+
--squisq-editor-background: #1e1e1e;
|
|
9771
|
+
--squisq-editor-foreground: #d4d4d4;
|
|
9762
9772
|
}
|
|
9763
9773
|
.squisq-editor-shell[data-theme=dark] {
|
|
9764
9774
|
color: #e5e7eb;
|
|
@@ -9868,10 +9878,13 @@
|
|
|
9868
9878
|
background: #374151;
|
|
9869
9879
|
color: #f9fafb;
|
|
9870
9880
|
}
|
|
9871
|
-
.squisq-editor-shell[data-theme=dark] .squisq-preview-seg-btn--active
|
|
9881
|
+
.squisq-editor-shell[data-theme=dark] .squisq-preview-seg-btn--active {
|
|
9882
|
+
background: var(--squisq-accent, #2563eb);
|
|
9883
|
+
color: var(--squisq-text-on-accent, #fff);
|
|
9884
|
+
}
|
|
9872
9885
|
.squisq-editor-shell[data-theme=dark] .squisq-preview-seg-btn--active:hover {
|
|
9873
|
-
background: #2563eb;
|
|
9874
|
-
color: #fff;
|
|
9886
|
+
background: var(--squisq-accent-hover, var(--squisq-accent, #2563eb));
|
|
9887
|
+
color: var(--squisq-text-on-accent, #fff);
|
|
9875
9888
|
}
|
|
9876
9889
|
.squisq-editor-shell[data-theme=dark] .squisq-toolbar-overflow-menu {
|
|
9877
9890
|
background: #1f2937;
|
|
@@ -11550,6 +11563,10 @@
|
|
|
11550
11563
|
min-width: 0;
|
|
11551
11564
|
min-height: 0;
|
|
11552
11565
|
}
|
|
11566
|
+
.squisq-raw-editor-container {
|
|
11567
|
+
background: var(--squisq-editor-background, #ffffff);
|
|
11568
|
+
color: var(--squisq-editor-foreground, #1f2937);
|
|
11569
|
+
}
|
|
11553
11570
|
.squisq-raw-editor-container .monaco-editor .margin {
|
|
11554
11571
|
position: relative;
|
|
11555
11572
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bendyline/squisq-editor-react",
|
|
3
|
-
"version": "2.4.
|
|
3
|
+
"version": "2.4.3",
|
|
4
4
|
"description": "React editor shell with raw/WYSIWYG/preview modes for Squisq documents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Bendyline",
|
|
@@ -84,10 +84,12 @@
|
|
|
84
84
|
"react-dom": "^18.0.0 || ^19.0.0"
|
|
85
85
|
},
|
|
86
86
|
"dependencies": {
|
|
87
|
-
"@bendyline/squisq": "2.4.
|
|
88
|
-
"@bendyline/squisq-formats": "2.3.
|
|
89
|
-
"@bendyline/squisq-react": "2.4.
|
|
87
|
+
"@bendyline/squisq": "2.4.3",
|
|
88
|
+
"@bendyline/squisq-formats": "2.3.7",
|
|
89
|
+
"@bendyline/squisq-react": "2.4.3",
|
|
90
90
|
"@fortawesome/fontawesome-free": "7.2.0",
|
|
91
|
+
"@tiptap/core": "2.27.2",
|
|
92
|
+
"@tiptap/extension-heading": "2.27.2",
|
|
91
93
|
"@tiptap/extension-image": "2.27.2",
|
|
92
94
|
"@tiptap/extension-link": "2.27.2",
|
|
93
95
|
"@tiptap/extension-mention": "2.27.2",
|