@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.
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RecorderModal
3
- } from "./chunk-LOTY7AOS.js";
3
+ } from "./chunk-PKGBWNUQ.js";
4
4
 
5
5
  // src/recorder/RecorderButton.tsx
6
6
  import { useCallback, useState } from "react";
@@ -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+audio" : "camera";
1065
- return hasAudio ? "screen+audio" : "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+audio" : "screen",
1072
- camera: cameraHasAudio ? "camera+audio" : "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-C5tAYUE3.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-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
- /** Whether the docked video monitor is currently visible. */
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, videoVisible, }: TimelineTrackProps): react_jsx_runtime.JSX.Element | null;
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-KR4VLXUM.js";
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-LJRHKXDV.js";
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-LOTY7AOS.js";
222
+ } from "./chunk-PKGBWNUQ.js";
223
223
  import "./chunk-GS7QWYFT.js";
224
224
  import {
225
225
  TeleprompterView
@@ -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-C5tAYUE3.js';
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';
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  RecorderButton
3
- } from "../chunk-LJRHKXDV.js";
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-LOTY7AOS.js";
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+audio' | 'screen' | 'screen+audio';
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
  /**
@@ -5,11 +5,11 @@ import {
5
5
  RawEditor,
6
6
  WysiwygEditor,
7
7
  useEditorContext
8
- } from "../chunk-KR4VLXUM.js";
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-LOTY7AOS.js";
12
+ import "../chunk-PKGBWNUQ.js";
13
13
  import "../chunk-GS7QWYFT.js";
14
14
  import "../chunk-V6Z7GG55.js";
15
15
  import "../chunk-PDCKJCOS.js";
@@ -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.1",
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.1",
88
- "@bendyline/squisq-formats": "2.3.5",
89
- "@bendyline/squisq-react": "2.4.1",
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",