@bendyline/squisq-editor-react 2.13.21 → 2.13.22

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/dist/index.js CHANGED
@@ -244,7 +244,7 @@ import {
244
244
  videoEmbedParagraphJson,
245
245
  viewStateFromBinding,
246
246
  writeHeadingViewState
247
- } from "./chunk-HISFC5LM.js";
247
+ } from "./chunk-LZO3HOCQ.js";
248
248
  import {
249
249
  EditorProvider,
250
250
  applySourceEditsToText,
@@ -291,7 +291,7 @@ import {
291
291
  } from "./chunk-HLU6ZBS7.js";
292
292
  import {
293
293
  RecorderButton
294
- } from "./chunk-RHH2PVCL.js";
294
+ } from "./chunk-5O3RU2HO.js";
295
295
  import {
296
296
  RecorderDeviceQuickPicks,
297
297
  RecorderDeviceSettingsPanel,
@@ -316,7 +316,7 @@ import {
316
316
  unshownSlidesWarning,
317
317
  useMediaDevices,
318
318
  useMediaRecorder
319
- } from "./chunk-ECS2FFXA.js";
319
+ } from "./chunk-APTVXGK6.js";
320
320
  import {
321
321
  DEFAULT_RECORDER_DEVICE_SETTINGS,
322
322
  buildRecorderAudioConstraints,
@@ -330,7 +330,7 @@ import {
330
330
  } from "./chunk-UYB5CPRE.js";
331
331
  import {
332
332
  TeleprompterView
333
- } from "./chunk-PQSFLC2R.js";
333
+ } from "./chunk-GI2D2XS5.js";
334
334
  import {
335
335
  DEFAULT_TELEPROMPTER_PREFS,
336
336
  EYE_LINE_FRACTION,
@@ -361,7 +361,7 @@ import {
361
361
  useStreamPreview,
362
362
  useTeleprompter,
363
363
  vadConfigForSensitivity
364
- } from "./chunk-CWSV5YGZ.js";
364
+ } from "./chunk-JCIK2QU5.js";
365
365
  import {
366
366
  buildFilename,
367
367
  requestMicStream,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  RecorderButton
3
- } from "../chunk-RHH2PVCL.js";
3
+ } from "../chunk-5O3RU2HO.js";
4
4
  import {
5
5
  RecorderDeviceQuickPicks,
6
6
  RecorderDeviceSettingsPanel,
@@ -14,7 +14,7 @@ import {
14
14
  requestScreenStream,
15
15
  useMediaDevices,
16
16
  useMediaRecorder
17
- } from "../chunk-ECS2FFXA.js";
17
+ } from "../chunk-APTVXGK6.js";
18
18
  import {
19
19
  DEFAULT_RECORDER_DEVICE_SETTINGS,
20
20
  buildRecorderAudioConstraints,
@@ -27,7 +27,7 @@ import "../chunk-UYB5CPRE.js";
27
27
  import {
28
28
  requestCameraStream,
29
29
  useStreamPreview
30
- } from "../chunk-CWSV5YGZ.js";
30
+ } from "../chunk-JCIK2QU5.js";
31
31
  import {
32
32
  buildFilename,
33
33
  requestMicStream,
@@ -5,7 +5,7 @@ import {
5
5
  RawEditor,
6
6
  WysiwygEditor,
7
7
  useEditorContextMenuItems
8
- } from "../chunk-HISFC5LM.js";
8
+ } from "../chunk-LZO3HOCQ.js";
9
9
  import {
10
10
  EditorProvider,
11
11
  useEditorContext,
@@ -16,11 +16,11 @@ import "../chunk-A2H3JOA5.js";
16
16
  import "../chunk-F6URHAW6.js";
17
17
  import "../chunk-SSEE55FT.js";
18
18
  import "../chunk-HLU6ZBS7.js";
19
- import "../chunk-ECS2FFXA.js";
19
+ import "../chunk-APTVXGK6.js";
20
20
  import "../chunk-LRZJD5YD.js";
21
21
  import "../chunk-UYB5CPRE.js";
22
- import "../chunk-PQSFLC2R.js";
23
- import "../chunk-CWSV5YGZ.js";
22
+ import "../chunk-GI2D2XS5.js";
23
+ import "../chunk-JCIK2QU5.js";
24
24
  import "../chunk-DNJ6HOES.js";
25
25
  import "../chunk-GG35EBRB.js";
26
26
  export {
@@ -8545,13 +8545,25 @@
8545
8545
  overflow: hidden;
8546
8546
  visibility: hidden;
8547
8547
  }
8548
- @container squisq-toolbar (max-width: 900px) {
8549
- .squisq-toolbar-view-tab:has(.squisq-toolbar-view-tab-label--short) .squisq-toolbar-view-tab-label--long {
8548
+ .squisq-toolbar-view-tab-icon {
8549
+ display: none;
8550
+ align-items: center;
8551
+ height: 1lh;
8552
+ transform: translateY(1px);
8553
+ }
8554
+ @container squisq-toolbar (max-width: 520px) {
8555
+ .squisq-toolbar-view-tab:has(.squisq-toolbar-view-tab-label--short, .squisq-toolbar-view-tab-icon) .squisq-toolbar-view-tab-label--long {
8550
8556
  display: none;
8551
8557
  }
8552
8558
  .squisq-toolbar-view-tab-label--short {
8553
8559
  display: inline-block;
8554
8560
  }
8561
+ .squisq-toolbar-view-tab-icon {
8562
+ display: inline-flex;
8563
+ }
8564
+ .squisq-toolbar-view-tab {
8565
+ padding-inline: 10px;
8566
+ }
8555
8567
  }
8556
8568
  .squisq-toolbar-view-tab:hover {
8557
8569
  color: var(--squisq-text-strong);
@@ -12841,7 +12853,7 @@ button.squisq-view-menu-radio-row:focus-visible {
12841
12853
  position: absolute;
12842
12854
  top: 0;
12843
12855
  right: 0;
12844
- width: 12px;
12856
+ width: var(--squisq-raw-editor-breathing, 12px);
12845
12857
  height: 100%;
12846
12858
  background: var(--squisq-surface);
12847
12859
  pointer-events: none;
@@ -12851,7 +12863,7 @@ button.squisq-view-menu-radio-row:focus-visible {
12851
12863
  content: "";
12852
12864
  position: absolute;
12853
12865
  top: 0;
12854
- right: 12px;
12866
+ right: var(--squisq-raw-editor-breathing, 12px);
12855
12867
  width: 1px;
12856
12868
  height: 100%;
12857
12869
  background: var(--squisq-desk-border);
@@ -12861,6 +12873,9 @@ button.squisq-view-menu-radio-row:focus-visible {
12861
12873
  .squisq-editor-shell[data-theme=dark] .squisq-raw-editor-container .monaco-editor .margin::before {
12862
12874
  background: var(--squisq-surface-sunken);
12863
12875
  }
12876
+ .squisq-raw-editor-container .monaco-editor .margin-view-overlays .line-numbers {
12877
+ translate: var(--squisq-raw-editor-number-inset, 0px) 0;
12878
+ }
12864
12879
  .squisq-editor-with-gutter > .squisq-outline,
12865
12880
  .squisq-editor-with-gutter > .squisq-inline-preview-gutter {
12866
12881
  flex: 0 0 auto;
@@ -15138,6 +15153,45 @@ button.squisq-view-menu-radio-row:focus-visible {
15138
15153
  color: var(--squisq-text-soft);
15139
15154
  }
15140
15155
 
15156
+ /* src/styles/touch-dialogs.css */
15157
+ @media (pointer: coarse) {
15158
+ .squisq-link-dialog-overlay,
15159
+ .squisq-doc-settings-overlay {
15160
+ align-items: flex-start;
15161
+ padding-top: max(calc(env(safe-area-inset-top, 0px) + 16px), min(12vh, 96px));
15162
+ padding-bottom: calc(max(env(safe-area-inset-bottom, 0px), var(--squisq-keyboard-inset, 0px)) + 16px);
15163
+ }
15164
+ .squisq-link-dialog,
15165
+ .squisq-doc-settings-dialog {
15166
+ max-height: 100%;
15167
+ }
15168
+ .squisq-link-dialog-body {
15169
+ min-height: 0;
15170
+ overflow-y: auto;
15171
+ }
15172
+ .squisq-link-dialog-input,
15173
+ .squisq-doc-settings-input {
15174
+ font-size: 16px;
15175
+ }
15176
+ }
15177
+
15178
+ /* src/styles/narrow-screens.css */
15179
+ @container squisq-toolbar (max-width: 760px) {
15180
+ .squisq-version-history-popover--with-diff {
15181
+ flex-direction: column-reverse;
15182
+ min-width: 0;
15183
+ }
15184
+ .squisq-version-history-popover--with-diff .squisq-version-history-list-pane {
15185
+ width: auto;
15186
+ max-height: 30vh;
15187
+ border-left: 0;
15188
+ border-bottom: 1px solid var(--squisq-border);
15189
+ }
15190
+ .squisq-version-history-popover--with-diff .squisq-version-history-diff-body {
15191
+ height: 40vh;
15192
+ }
15193
+ }
15194
+
15141
15195
  /* src/styles/navigation-sheet.css */
15142
15196
  .squisq-navigation-sheet {
15143
15197
  --squisq-navigation-sheet-progress: 0;
@@ -19797,7 +19851,8 @@ button.squisq-ascii-timeline-track-name:focus-visible {
19797
19851
  font-style: italic;
19798
19852
  }
19799
19853
  .squisq-proof-tooltip {
19800
- max-width: 320px;
19854
+ width: max-content;
19855
+ max-width: min(320px, calc(100vw - 16px));
19801
19856
  background: var(--squisq-surface-overlay);
19802
19857
  border: 1px solid var(--squisq-border);
19803
19858
  border-radius: 8px;
@@ -19887,6 +19942,55 @@ button.squisq-ascii-timeline-track-name:focus-visible {
19887
19942
  color: var(--squisq-text-strong);
19888
19943
  outline: none;
19889
19944
  }
19945
+ .squisq-proof-tooltip-link {
19946
+ display: flex;
19947
+ align-items: center;
19948
+ gap: 6px;
19949
+ margin-top: 5px;
19950
+ padding-top: 5px;
19951
+ border-top: 1px solid var(--squisq-border-subtle);
19952
+ }
19953
+ .squisq-proof-tooltip-link .squisq-proof-tooltip-action {
19954
+ flex: 0 0 auto;
19955
+ color: var(--squisq-accent-strong);
19956
+ font-weight: 600;
19957
+ }
19958
+ .squisq-proof-tooltip-link-href {
19959
+ min-width: 0;
19960
+ overflow: hidden;
19961
+ text-overflow: ellipsis;
19962
+ white-space: nowrap;
19963
+ color: var(--squisq-text-faint);
19964
+ font-size: 11px;
19965
+ }
19966
+ .squisq-proof-tooltip[data-trigger=tap] {
19967
+ max-width: min(340px, calc(100vw - 16px));
19968
+ padding: 10px 12px;
19969
+ font-size: 14px;
19970
+ }
19971
+ .squisq-proof-tooltip[data-trigger=tap] .squisq-proof-tooltip-suggestions {
19972
+ gap: 8px;
19973
+ margin-top: 8px;
19974
+ }
19975
+ .squisq-proof-tooltip[data-trigger=tap] .squisq-proof-tooltip-chip {
19976
+ min-height: 40px;
19977
+ padding: 8px 14px;
19978
+ font-size: 15px;
19979
+ }
19980
+ .squisq-proof-tooltip[data-trigger=tap] .squisq-proof-tooltip-more,
19981
+ .squisq-proof-tooltip[data-trigger=tap] .squisq-proof-tooltip-action {
19982
+ min-height: 40px;
19983
+ padding: 8px 10px;
19984
+ font-size: 13px;
19985
+ }
19986
+ .squisq-proof-tooltip[data-trigger=tap] .squisq-proof-tooltip-link-href {
19987
+ font-size: 12px;
19988
+ }
19989
+ @media (pointer: coarse) {
19990
+ .squisq-proof-menu-item {
19991
+ padding: 10px 12px;
19992
+ }
19993
+ }
19890
19994
  .squisq-proof-status {
19891
19995
  cursor: pointer;
19892
19996
  user-select: none;
@@ -19988,9 +20092,13 @@ button.squisq-ascii-timeline-track-name:focus-visible {
19988
20092
  background: var(--squisq-surface-hover);
19989
20093
  color: var(--squisq-text);
19990
20094
  }
19991
- .squisq-proof-tooltip[data-theme=dark] .squisq-proof-tooltip-actions {
20095
+ .squisq-proof-tooltip[data-theme=dark] .squisq-proof-tooltip-actions,
20096
+ .squisq-proof-tooltip[data-theme=dark] .squisq-proof-tooltip-link {
19992
20097
  border-top-color: var(--squisq-border-subtle);
19993
20098
  }
20099
+ .squisq-proof-tooltip[data-theme=dark] .squisq-proof-tooltip-link .squisq-proof-tooltip-action {
20100
+ color: var(--squisq-accent-strong);
20101
+ }
19994
20102
  .squisq-review-panel {
19995
20103
  width: 260px;
19996
20104
  flex: 0 0 260px;
@@ -312,6 +312,6 @@ declare function stepScroll(currentPx: number, targetPx: number, dtMs: number, m
312
312
  declare function prompterVarsFromTheme(theme: Theme): Record<string, string>;
313
313
  /** Inject {@link TELEPROMPTER_CSS} into a document once (main doc or a float window). */
314
314
  declare function ensureTeleprompterStyles(doc: Document): void;
315
- declare const TELEPROMPTER_CSS = "\n.squisq-teleprompter-root {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 0;\n background: var(--squisq-bg, #f5f5f5);\n outline: none;\n}\n.squisq-teleprompter-stage {\n position: relative;\n flex: 1;\n min-height: 0;\n display: flex;\n}\n\n.squisq-teleprompter-surface {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n background: var(--squisq-prompter-bg, #101014);\n color: var(--squisq-prompter-text, #f5f5f2);\n font-family: var(--squisq-prompter-font, system-ui, sans-serif);\n user-select: none;\n}\n.squisq-teleprompter-flip {\n position: absolute;\n inset: 0;\n}\n.squisq-teleprompter-surface--mirrored .squisq-teleprompter-flip {\n transform: scaleX(-1);\n}\n.squisq-teleprompter-scroll {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n will-change: transform;\n padding: 40vh 8% 60vh;\n box-sizing: border-box;\n}\n.squisq-teleprompter-line-guide {\n position: absolute;\n left: 0;\n right: 0;\n pointer-events: none;\n z-index: 2;\n}\n.squisq-teleprompter-line-guide::before,\n.squisq-teleprompter-line-guide::after {\n content: '';\n position: absolute;\n top: 50%;\n border: 9px solid transparent;\n transform: translateY(-50%);\n}\n.squisq-teleprompter-line-guide::before {\n left: 6px;\n border-left-color: var(--squisq-prompter-accent, #e8b64c);\n}\n.squisq-teleprompter-line-guide::after {\n right: 6px;\n border-right-color: var(--squisq-prompter-accent, #e8b64c);\n}\n.squisq-teleprompter-guide-band {\n position: absolute;\n left: 0;\n right: 0;\n background: color-mix(in srgb, var(--squisq-prompter-accent, #e8b64c) 9%, transparent);\n pointer-events: none;\n z-index: 1;\n}\n\n.squisq-teleprompter-block-marker {\n display: block;\n margin: 1.1em 0 0.35em;\n font-size: 0.38em;\n font-weight: 600;\n letter-spacing: 0.14em;\n text-transform: uppercase;\n color: var(--squisq-prompter-muted, #9a9aa0);\n border-top: 1px solid color-mix(in srgb, var(--squisq-prompter-muted, #9a9aa0) 35%, transparent);\n padding-top: 0.6em;\n}\n.squisq-teleprompter-para {\n margin: 0 0 0.55em;\n line-height: 1.4;\n font-weight: 500;\n}\n.squisq-teleprompter-word {\n opacity: 0.45;\n transition: color 0.1s linear, opacity 0.1s linear;\n}\n.squisq-teleprompter-word--read {\n opacity: 0.9;\n}\n.squisq-teleprompter-word--active {\n opacity: 1;\n font-weight: 800;\n color: var(--squisq-prompter-accent, #e8b64c);\n}\n\n.squisq-teleprompter-countdown {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 3;\n background: color-mix(in srgb, var(--squisq-prompter-bg, #101014) 72%, transparent);\n}\n.squisq-teleprompter-countdown-digit {\n font-size: 18vmin;\n font-weight: 800;\n color: var(--squisq-prompter-accent, #e8b64c);\n animation: squisq-prompter-pulse 1s ease-in-out infinite;\n}\n.squisq-teleprompter-recdot {\n position: absolute;\n top: 14px;\n right: 16px;\n z-index: 4;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: #e5484d;\n box-shadow: 0 0 0 3px color-mix(in srgb, #e5484d 30%, transparent);\n animation: squisq-prompter-pulse 1.4s ease-in-out infinite;\n}\n/* Counter-flip overlays so they stay readable in mirror mode. */\n.squisq-teleprompter-surface--mirrored .squisq-teleprompter-countdown,\n.squisq-teleprompter-surface--mirrored .squisq-teleprompter-recdot {\n transform: scaleX(-1);\n}\n\n.squisq-teleprompter-selfview {\n position: absolute;\n right: 14px;\n bottom: 14px;\n width: 160px;\n border-radius: 8px;\n border: 2px solid color-mix(in srgb, #e5484d 60%, transparent);\n z-index: 5;\n background: #000;\n}\n\n.squisq-teleprompter-review {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 10px;\n padding: 8px 12px;\n border-top: 1px solid var(--squisq-border, #e5e7eb);\n background: var(--squisq-surface, var(--squisq-bg, #fff));\n color: var(--squisq-text, #111827);\n font-size: 12.5px;\n}\n.squisq-teleprompter-review audio {\n height: 28px;\n max-width: 260px;\n}\n.squisq-teleprompter-review button {\n font: inherit;\n color: inherit;\n background: var(--squisq-input-bg, #fff);\n border: 1px solid var(--squisq-border, #d1d5db);\n border-radius: 6px;\n padding: 4px 10px;\n cursor: pointer;\n}\n\n.squisq-teleprompter-float-note {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n color: var(--squisq-text-muted, #4b5563);\n font-size: 14px;\n}\n\n.squisq-teleprompter-controls {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 10px;\n padding: 8px 12px;\n border-top: 1px solid var(--squisq-border, #e5e7eb);\n background: var(--squisq-surface, var(--squisq-bg, #fff));\n color: var(--squisq-text, #111827);\n font-size: 12.5px;\n}\n.squisq-teleprompter-controls .squisq-teleprompter-group {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n white-space: nowrap;\n}\n.squisq-teleprompter-controls button {\n font: inherit;\n color: inherit;\n background: var(--squisq-input-bg, #fff);\n border: 1px solid var(--squisq-border, #d1d5db);\n border-radius: 6px;\n padding: 4px 10px;\n cursor: pointer;\n}\n.squisq-teleprompter-controls button:hover {\n background: var(--squisq-surface-hover, #f3f4f6);\n}\n.squisq-teleprompter-controls button[aria-pressed='true'] {\n background: var(--squisq-text, #111827);\n color: var(--squisq-bg, #fff);\n border-color: var(--squisq-text, #111827);\n}\n.squisq-teleprompter-controls select,\n.squisq-teleprompter-controls input[type='range'] {\n font: inherit;\n color: inherit;\n background: var(--squisq-input-bg, #fff);\n border: 1px solid var(--squisq-border, #d1d5db);\n border-radius: 6px;\n max-width: 170px;\n}\n.squisq-teleprompter-controls input[type='range'] {\n border: none;\n background: transparent;\n width: 110px;\n}\n.squisq-teleprompter-meter {\n position: relative;\n width: 64px;\n height: 8px;\n border-radius: 4px;\n overflow: hidden;\n background: var(--squisq-border, #e5e7eb);\n}\n.squisq-teleprompter-meter-fill {\n position: absolute;\n inset: 0 auto 0 0;\n background: #9ca3af;\n transition: width 0.08s linear;\n}\n.squisq-teleprompter-meter--voice .squisq-teleprompter-meter-fill {\n background: #30a46c;\n}\n\n@keyframes squisq-prompter-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.45; }\n}\n@media (prefers-reduced-motion: reduce) {\n .squisq-teleprompter-countdown-digit,\n .squisq-teleprompter-recdot {\n animation: none;\n }\n .squisq-teleprompter-word {\n transition: none;\n }\n}\n";
315
+ declare const TELEPROMPTER_CSS = "\n.squisq-teleprompter-root {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n min-height: 0;\n background: var(--squisq-bg, #f5f5f5);\n outline: none;\n}\n.squisq-teleprompter-stage {\n position: relative;\n flex: 1;\n min-height: 0;\n display: flex;\n}\n\n.squisq-teleprompter-surface {\n position: relative;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n background: var(--squisq-prompter-bg, #101014);\n color: var(--squisq-prompter-text, #f5f5f2);\n font-family: var(--squisq-prompter-font, system-ui, sans-serif);\n user-select: none;\n}\n.squisq-teleprompter-flip {\n position: absolute;\n inset: 0;\n}\n.squisq-teleprompter-surface--mirrored .squisq-teleprompter-flip {\n transform: scaleX(-1);\n}\n.squisq-teleprompter-scroll {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n will-change: transform;\n padding: 40vh 8% 60vh;\n box-sizing: border-box;\n}\n.squisq-teleprompter-line-guide {\n position: absolute;\n left: 0;\n right: 0;\n pointer-events: none;\n z-index: 2;\n}\n.squisq-teleprompter-line-guide::before,\n.squisq-teleprompter-line-guide::after {\n content: '';\n position: absolute;\n top: 50%;\n border: 9px solid transparent;\n transform: translateY(-50%);\n}\n.squisq-teleprompter-line-guide::before {\n left: 6px;\n border-left-color: var(--squisq-prompter-accent, #e8b64c);\n}\n.squisq-teleprompter-line-guide::after {\n right: 6px;\n border-right-color: var(--squisq-prompter-accent, #e8b64c);\n}\n.squisq-teleprompter-guide-band {\n position: absolute;\n left: 0;\n right: 0;\n background: color-mix(in srgb, var(--squisq-prompter-accent, #e8b64c) 9%, transparent);\n pointer-events: none;\n z-index: 1;\n}\n\n.squisq-teleprompter-block-marker {\n display: block;\n margin: 1.1em 0 0.35em;\n font-size: 0.38em;\n font-weight: 600;\n letter-spacing: 0.14em;\n text-transform: uppercase;\n color: var(--squisq-prompter-muted, #9a9aa0);\n border-top: 1px solid color-mix(in srgb, var(--squisq-prompter-muted, #9a9aa0) 35%, transparent);\n padding-top: 0.6em;\n}\n.squisq-teleprompter-para {\n margin: 0 0 0.55em;\n line-height: 1.4;\n font-weight: 500;\n}\n.squisq-teleprompter-word {\n opacity: 0.45;\n transition: color 0.1s linear, opacity 0.1s linear;\n}\n.squisq-teleprompter-word--read {\n opacity: 0.9;\n}\n.squisq-teleprompter-word--active {\n opacity: 1;\n font-weight: 800;\n color: var(--squisq-prompter-accent, #e8b64c);\n}\n\n.squisq-teleprompter-countdown {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 3;\n background: color-mix(in srgb, var(--squisq-prompter-bg, #101014) 72%, transparent);\n}\n.squisq-teleprompter-countdown-digit {\n font-size: 18vmin;\n font-weight: 800;\n color: var(--squisq-prompter-accent, #e8b64c);\n animation: squisq-prompter-pulse 1s ease-in-out infinite;\n}\n.squisq-teleprompter-recdot {\n position: absolute;\n top: 14px;\n right: 16px;\n z-index: 4;\n width: 14px;\n height: 14px;\n border-radius: 50%;\n background: #e5484d;\n box-shadow: 0 0 0 3px color-mix(in srgb, #e5484d 30%, transparent);\n animation: squisq-prompter-pulse 1.4s ease-in-out infinite;\n}\n/* Counter-flip overlays so they stay readable in mirror mode. */\n.squisq-teleprompter-surface--mirrored .squisq-teleprompter-countdown,\n.squisq-teleprompter-surface--mirrored .squisq-teleprompter-recdot {\n transform: scaleX(-1);\n}\n\n.squisq-teleprompter-selfview {\n position: absolute;\n right: 14px;\n bottom: 14px;\n width: 160px;\n border-radius: 8px;\n border: 2px solid color-mix(in srgb, #e5484d 60%, transparent);\n z-index: 5;\n background: #000;\n}\n\n.squisq-teleprompter-review {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 10px;\n padding: 8px 12px;\n border-top: 1px solid var(--squisq-border, #e5e7eb);\n background: var(--squisq-surface, var(--squisq-bg, #fff));\n color: var(--squisq-text, #111827);\n font-size: 12.5px;\n}\n.squisq-teleprompter-review audio {\n height: 28px;\n max-width: 260px;\n}\n.squisq-teleprompter-review button {\n font: inherit;\n color: inherit;\n background: var(--squisq-input-bg, #fff);\n border: 1px solid var(--squisq-border, #d1d5db);\n border-radius: 6px;\n padding: 4px 10px;\n cursor: pointer;\n}\n\n.squisq-teleprompter-float-note {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 12px;\n color: var(--squisq-text-muted, #4b5563);\n font-size: 14px;\n}\n\n.squisq-teleprompter-controls {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 10px;\n padding: 8px 12px;\n border-top: 1px solid var(--squisq-border, #e5e7eb);\n background: var(--squisq-surface, var(--squisq-bg, #fff));\n color: var(--squisq-text, #111827);\n font-size: 12.5px;\n}\n.squisq-teleprompter-controls .squisq-teleprompter-group {\n display: inline-flex;\n align-items: center;\n /* Voice pace (button, sensitivity, microphone, meter) is wider than a\n phone; wrap within the group rather than run off the bar. */\n flex-wrap: wrap;\n max-width: 100%;\n gap: 6px;\n white-space: nowrap;\n}\n.squisq-teleprompter-controls button {\n font: inherit;\n color: inherit;\n background: var(--squisq-input-bg, #fff);\n border: 1px solid var(--squisq-border, #d1d5db);\n border-radius: 6px;\n padding: 4px 10px;\n cursor: pointer;\n}\n.squisq-teleprompter-controls button:hover {\n background: var(--squisq-surface-hover, #f3f4f6);\n}\n.squisq-teleprompter-controls button[aria-pressed='true'] {\n background: var(--squisq-text, #111827);\n color: var(--squisq-bg, #fff);\n border-color: var(--squisq-text, #111827);\n}\n.squisq-teleprompter-controls select,\n.squisq-teleprompter-controls input[type='range'] {\n font: inherit;\n color: inherit;\n background: var(--squisq-input-bg, #fff);\n border: 1px solid var(--squisq-border, #d1d5db);\n border-radius: 6px;\n max-width: 170px;\n}\n.squisq-teleprompter-controls input[type='range'] {\n border: none;\n background: transparent;\n width: 110px;\n}\n.squisq-teleprompter-meter {\n position: relative;\n width: 64px;\n height: 8px;\n border-radius: 4px;\n overflow: hidden;\n background: var(--squisq-border, #e5e7eb);\n}\n.squisq-teleprompter-meter-fill {\n position: absolute;\n inset: 0 auto 0 0;\n background: #9ca3af;\n transition: width 0.08s linear;\n}\n.squisq-teleprompter-meter--voice .squisq-teleprompter-meter-fill {\n background: #30a46c;\n}\n\n@keyframes squisq-prompter-pulse {\n 0%, 100% { opacity: 1; }\n 50% { opacity: 0.45; }\n}\n@media (prefers-reduced-motion: reduce) {\n .squisq-teleprompter-countdown-digit,\n .squisq-teleprompter-recdot {\n animation: none;\n }\n .squisq-teleprompter-word {\n transition: none;\n }\n}\n";
316
316
 
317
317
  export { EYE_LINE_FRACTION, type ExecuteNarrationSaveDeps, FloatingWindowHandle, type NarrationSavePlan, type NarrationSavePlanArgs, type NarrationSaveProgress, type NarrationSaveResult, NarrationStage, NarrationStageHandle, type NarrationStageProps, PCM_WORKLET_NAME, PCM_WORKLET_SOURCE, TELEPROMPTER_CSS, TeleprompterController, TeleprompterControls, type TeleprompterControlsProps, TeleprompterRecordingDeps, TeleprompterSurface, type TeleprompterSurfaceProps, TeleprompterView, type TeleprompterViewProps, type TokenLineMap, buildNarrationSavePlan, cameraVideoLine, ensureTeleprompterStyles, executeNarrationSave, insertNarrationPreamble, measureTokenLines, narrationAnnotationLine, prompterVarsFromTheme, registerPcmWorklet, stepScroll, targetOffsetFor };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TeleprompterView
3
- } from "../chunk-PQSFLC2R.js";
3
+ } from "../chunk-GI2D2XS5.js";
4
4
  import {
5
5
  DEFAULT_TELEPROMPTER_PREFS,
6
6
  EYE_LINE_FRACTION,
@@ -31,7 +31,7 @@ import {
31
31
  useNarrationStage,
32
32
  useTeleprompter,
33
33
  vadConfigForSensitivity
34
- } from "../chunk-CWSV5YGZ.js";
34
+ } from "../chunk-JCIK2QU5.js";
35
35
  import "../chunk-DNJ6HOES.js";
36
36
  import "../chunk-GG35EBRB.js";
37
37
  export {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bendyline/squisq-editor-react",
3
- "version": "2.13.21",
3
+ "version": "2.13.22",
4
4
  "description": "React editor shell with raw/WYSIWYG/preview modes for Squisq documents",
5
5
  "license": "MIT",
6
6
  "author": "Bendyline",
@@ -102,12 +102,12 @@
102
102
  }
103
103
  },
104
104
  "dependencies": {
105
- "@bendyline/squisq": "2.13.14",
105
+ "@bendyline/squisq": "2.13.15",
106
106
  "@bendyline/squisq-calc": "2.11.2",
107
- "@bendyline/squisq-formats": "2.8.16",
108
- "@bendyline/squisq-grid-react": "2.11.43",
109
- "@bendyline/squisq-react": "2.12.26",
110
- "@bendyline/squisq-video-react": "2.5.27",
107
+ "@bendyline/squisq-formats": "2.8.17",
108
+ "@bendyline/squisq-grid-react": "2.11.44",
109
+ "@bendyline/squisq-react": "2.12.27",
110
+ "@bendyline/squisq-video-react": "2.5.28",
111
111
  "@fortawesome/fontawesome-free": "7.3.1",
112
112
  "@tiptap/core": "2.27.3",
113
113
  "@tiptap/extension-heading": "2.27.3",