@bendyline/squisq-editor-react 2.11.27 → 2.12.1
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 +1 -0
- package/dist/{chunk-TRBNNRLK.js → chunk-4SZ3UWSL.js} +2 -1
- package/dist/{chunk-LR6Q2MK4.js → chunk-H3XGOKPT.js} +1 -1
- package/dist/{chunk-K4Z2GIX4.js → chunk-HLU6ZBS7.js} +1 -1
- package/dist/{chunk-OCQEWWHI.js → chunk-KI5XQWRU.js} +1 -1
- package/dist/{chunk-IRFFIMKM.js → chunk-MJPL4QUR.js} +1696 -1109
- package/dist/{chunk-V2OLZOYJ.js → chunk-PXO3D42N.js} +2 -2
- package/dist/{chunk-UFK47ZAI.js → chunk-TCGWKYME.js} +116 -53
- package/dist/chunk-UYB5CPRE.js +235 -0
- package/dist/{chunk-HSWWEWT4.js → chunk-WMNL2WEI.js} +110 -22
- package/dist/image-editor/index.js +2 -2
- package/dist/index.d.ts +8 -37
- package/dist/index.js +20 -24
- package/dist/json-editor/index.js +3 -3
- package/dist/recorder/index.js +3 -3
- package/dist/review/index.js +2 -2
- package/dist/shell/index.d.ts +1 -1
- package/dist/shell/index.js +7 -7
- package/dist/{shell-xuF3vK5Z.d.ts → shell-D9E73nri.d.ts} +3 -3
- package/dist/styles/index.css +174 -40
- package/package.json +7 -6
- package/dist/chunk-GS7QWYFT.js +0 -9
|
@@ -61,6 +61,103 @@ function escapeLinkLabel(text) {
|
|
|
61
61
|
return text.replace(/([\\[\]])/g, "\\$1");
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
+
// src/markdownQuote.ts
|
|
65
|
+
function isQuoteLine(line) {
|
|
66
|
+
return line.startsWith("> ") || line.trimEnd() === ">";
|
|
67
|
+
}
|
|
68
|
+
function quoteLineContent(line) {
|
|
69
|
+
return line.trimEnd() === ">" ? "" : line.slice(2);
|
|
70
|
+
}
|
|
71
|
+
var RE_QUOTE_BLOCK_START = /^ {0,3}(?:#{1,6}(?:\s|$)|>|[-*+]\s|\d+[.)]\s|```|~~~|\||(?:-{3,}|\*{3,}|_{3,})\s*$)/;
|
|
72
|
+
var RE_LIST_ITEM_LINE = /^\s*(?:[-*+]|\d+[.)])\s/;
|
|
73
|
+
function quoteBlockRunEnd(body, start) {
|
|
74
|
+
const first = body[start].trimStart();
|
|
75
|
+
const fence = /^(`{3,}|~{3,})/.exec(first)?.[1];
|
|
76
|
+
if (fence) {
|
|
77
|
+
for (let k2 = start + 1; k2 < body.length; k2++) {
|
|
78
|
+
if (body[k2].trimStart().startsWith(fence)) return k2 + 1;
|
|
79
|
+
}
|
|
80
|
+
return body.length;
|
|
81
|
+
}
|
|
82
|
+
const repeats = (marker) => {
|
|
83
|
+
let k2 = start + 1;
|
|
84
|
+
while (k2 < body.length && body[k2].trimStart().startsWith(marker)) k2++;
|
|
85
|
+
return k2;
|
|
86
|
+
};
|
|
87
|
+
if (first.startsWith("|")) return repeats("|");
|
|
88
|
+
if (first.startsWith(">")) return repeats(">");
|
|
89
|
+
if (!RE_LIST_ITEM_LINE.test(body[start])) return start + 1;
|
|
90
|
+
const continuesList = (line) => line !== void 0 && (RE_LIST_ITEM_LINE.test(line) || /^\s+\S/.test(line));
|
|
91
|
+
let k = start + 1;
|
|
92
|
+
while (k < body.length) {
|
|
93
|
+
if (continuesList(body[k])) {
|
|
94
|
+
k++;
|
|
95
|
+
} else if (body[k] === "" && continuesList(body[k + 1])) {
|
|
96
|
+
k += 2;
|
|
97
|
+
} else {
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
return k;
|
|
102
|
+
}
|
|
103
|
+
function quoteBodyToHtml(body, convert) {
|
|
104
|
+
const parts = [];
|
|
105
|
+
let afterBlock = false;
|
|
106
|
+
for (let k = 0; k < body.length; ) {
|
|
107
|
+
const content = body[k];
|
|
108
|
+
if (RE_QUOTE_BLOCK_START.test(content)) {
|
|
109
|
+
const end = quoteBlockRunEnd(body, k);
|
|
110
|
+
parts.push(convert.markdownToHtml(body.slice(k, end).join("\n")));
|
|
111
|
+
afterBlock = true;
|
|
112
|
+
k = end;
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
if (content === "" && afterBlock) {
|
|
116
|
+
afterBlock = false;
|
|
117
|
+
k++;
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
parts.push(content ? `<p>${convert.inlineToHtml(content)}</p>` : "<p></p>");
|
|
121
|
+
afterBlock = false;
|
|
122
|
+
k++;
|
|
123
|
+
}
|
|
124
|
+
return parts.join("");
|
|
125
|
+
}
|
|
126
|
+
function quoteBodyToMarkdown(inner, convert) {
|
|
127
|
+
const out = [];
|
|
128
|
+
let rest = inner.trim();
|
|
129
|
+
let afterBlock = false;
|
|
130
|
+
while (rest.length > 0) {
|
|
131
|
+
const paragraph = /^<p\b[^>]*>(.*?)<\/p>/s.exec(rest);
|
|
132
|
+
if (paragraph) {
|
|
133
|
+
if (afterBlock) out.push(">");
|
|
134
|
+
afterBlock = false;
|
|
135
|
+
const inline = convert.htmlToInline(paragraph[1]);
|
|
136
|
+
if (!inline.trim()) {
|
|
137
|
+
out.push(">");
|
|
138
|
+
} else {
|
|
139
|
+
for (const quoteLine of inline.split("\n")) out.push("> " + quoteLine);
|
|
140
|
+
}
|
|
141
|
+
rest = rest.slice(paragraph[0].length).trimStart();
|
|
142
|
+
continue;
|
|
143
|
+
}
|
|
144
|
+
const tag = /^<([a-z][a-z0-9]*)\b/i.exec(rest)?.[1];
|
|
145
|
+
const element = tag ? convert.matchBalancedTag(rest, 0, tag) : null;
|
|
146
|
+
if (!element) {
|
|
147
|
+
if (afterBlock) out.push(">");
|
|
148
|
+
const inline = convert.htmlToInline(rest);
|
|
149
|
+
for (const quoteLine of inline.split("\n")) out.push(inline.trim() ? "> " + quoteLine : ">");
|
|
150
|
+
break;
|
|
151
|
+
}
|
|
152
|
+
if (afterBlock) out.push(">");
|
|
153
|
+
const blockLines = convert.htmlToMarkdown(rest.slice(0, element.end)).replace(/\n+$/, "").split("\n");
|
|
154
|
+
for (const blockLine of blockLines) out.push(blockLine ? "> " + blockLine : ">");
|
|
155
|
+
afterBlock = true;
|
|
156
|
+
rest = rest.slice(element.end).trimStart();
|
|
157
|
+
}
|
|
158
|
+
return out;
|
|
159
|
+
}
|
|
160
|
+
|
|
64
161
|
// src/tiptapBridge.ts
|
|
65
162
|
var MARKDOWN_ESCAPE_ATTR = "data-md-escape";
|
|
66
163
|
var RE_BOLD_STAR = /\*\*(?![\s*])(.+?)(?<![\s*])\*\*/g;
|
|
@@ -162,6 +259,13 @@ function joinWrappedCodeSpans(lines) {
|
|
|
162
259
|
function leavesCodeSpanOpen(text) {
|
|
163
260
|
return text.replace(RE_INLINE_CODE, "").includes(BACKTICK);
|
|
164
261
|
}
|
|
262
|
+
var QUOTE_CONVERTERS = {
|
|
263
|
+
markdownToHtml: (markdown) => markdownToTiptap(markdown),
|
|
264
|
+
inlineToHtml: (text) => inlineToHtml(text),
|
|
265
|
+
htmlToMarkdown: (html) => tiptapToMarkdown(html),
|
|
266
|
+
htmlToInline: (html) => htmlToInline(html),
|
|
267
|
+
matchBalancedTag: (html, start, tag) => matchBalancedTag(html, start, tag)
|
|
268
|
+
};
|
|
165
269
|
function markdownToTiptap(markdown) {
|
|
166
270
|
if (!markdown.trim()) return "<p></p>";
|
|
167
271
|
const html = markdown.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
@@ -377,9 +481,7 @@ function markdownToTiptap(markdown) {
|
|
|
377
481
|
i++;
|
|
378
482
|
quoteLines.push(quoteLineContent(lines[i]));
|
|
379
483
|
}
|
|
380
|
-
pushBlock(
|
|
381
|
-
`<blockquote>${quoteLines.map((quoteLine) => quoteLine ? `<p>${inlineToHtml(quoteLine)}</p>` : "<p></p>").join("")}</blockquote>`
|
|
382
|
-
);
|
|
484
|
+
pushBlock(`<blockquote>${quoteBodyToHtml(quoteLines, QUOTE_CONVERTERS)}</blockquote>`);
|
|
383
485
|
continue;
|
|
384
486
|
}
|
|
385
487
|
const taskMatch = line.match(/^([ \t]*)[-*+]\s+\[([xX ])\]\s*(.*)$/);
|
|
@@ -513,20 +615,10 @@ function tiptapToMarkdown(html) {
|
|
|
513
615
|
remaining = remaining.slice(codeMatch[0].length);
|
|
514
616
|
continue;
|
|
515
617
|
}
|
|
516
|
-
const bqMatch =
|
|
618
|
+
const bqMatch = /^<blockquote\b/.test(remaining) ? matchBalancedTag(remaining, 0, "blockquote") : null;
|
|
517
619
|
if (bqMatch) {
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
const inline = htmlToInline(paragraph);
|
|
521
|
-
if (!inline.trim()) {
|
|
522
|
-
lines.push(">");
|
|
523
|
-
continue;
|
|
524
|
-
}
|
|
525
|
-
for (const quoteLine of inline.split("\n")) {
|
|
526
|
-
lines.push("> " + quoteLine);
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
const next = remaining.slice(bqMatch[0].length);
|
|
620
|
+
lines.push(...quoteBodyToMarkdown(bqMatch.inner, QUOTE_CONVERTERS));
|
|
621
|
+
const next = remaining.slice(bqMatch.end);
|
|
530
622
|
if (!/^\s*<blockquote>/.test(next)) lines.push("");
|
|
531
623
|
remaining = next;
|
|
532
624
|
continue;
|
|
@@ -803,12 +895,6 @@ function isIndentedCodeLine(line) {
|
|
|
803
895
|
function stripCodeIndent(line) {
|
|
804
896
|
return line.startsWith(" ") ? line.slice(1) : line.slice(4);
|
|
805
897
|
}
|
|
806
|
-
function isQuoteLine(line) {
|
|
807
|
-
return line.startsWith("> ") || line.trimEnd() === ">";
|
|
808
|
-
}
|
|
809
|
-
function quoteLineContent(line) {
|
|
810
|
-
return line.trimEnd() === ">" ? "" : line.slice(2);
|
|
811
|
-
}
|
|
812
898
|
function stripHardBreak(line) {
|
|
813
899
|
if (/\S {2,}$/.test(line)) return line.replace(/ {2,}$/, "");
|
|
814
900
|
if (line.endsWith("\\") && isEscapedMarkdownCharacter(`${line}x`, line.length)) {
|
|
@@ -1242,6 +1328,8 @@ function restoreLeadingSpaces(text) {
|
|
|
1242
1328
|
}
|
|
1243
1329
|
|
|
1244
1330
|
export {
|
|
1331
|
+
mediaEditNodeAttributeName,
|
|
1332
|
+
mediaEditKeysFor,
|
|
1245
1333
|
mediaEditNodeAttributes,
|
|
1246
1334
|
formatLinkDestination,
|
|
1247
1335
|
escapeLinkLabel,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C as CodeContext, E as EditorHostMode, S as SceneTextChannel, a as CalcEngineFactory, b as EditorView$1, c as CsvSourceMeta, X as XlsxSourceMeta, F as FormulaEditRecord } from './shell-
|
|
2
|
-
export { A as ApplySourceEditsOptions, B as BlockInsertionBuilder, d as BlockInsertionContext, e as BlockPlacement, f as BlockRange, g as BlockSlice, h as BlockTagVisibility, i as CodeContextSection, j as CoverImageSaveOutput, D as DashboardImageSaveOutput, k as DocumentLinkCandidate, l as DocumentLinkProvider, m as EditorActions, n as EditorColorScheme, o as EditorContextMenuContext, p as EditorContextMenuItem, q as EditorContextMenuItemVisibility, r as EditorContextMenuProvider, s as EditorContextMenuProviderProps, t as EditorContextValue, u as EditorInsertMenuItem, v as EditorMode, w as EditorProvider, x as EditorProviderProps, y as EditorSelectionInfo, z as EditorShell, G as EditorShellProps, H as EditorState, I as FindOptions, J as FindRequest, K as FormulaSessionOptions, L as ImageDisplayMode, M as IngestedSidecar, N as InsertBlockOptions, O as LayoutMode, P as MentionCandidate, Q as MentionProvider, R as OutlineBlock, T as OutlineInsertion, U as PreviewPanel, V as PreviewPanelProps, W as RawEditor, Y as RawEditorProps, Z as ThemeInheritance, _ as ViewPreferences, $ as WriteCanvasSettings, a0 as WysiwygEditor, a1 as WysiwygEditorProps, a2 as XLSX_LOCKED_REASON, a3 as XlsxFormulaSession, a4 as applySourceEditsToText, a5 as blockInsertionPoint, a6 as createXlsxFormulaSession, a7 as getBlockSlices, a8 as headingDepthForInsertion, a9 as ingestSidecarBytes, aa as joinBlockAt, ab as lineToOffset, ac as minimalReplaceEdit, ad as normalizeSourceEdits, ae as offsetToLine, af as resolveOutlineInsertion, ag as sliceIndexAtOffset, ah as sourceOutline, ai as spliceBlock, aj as useEditorContext, ak as useEditorContextMenuItems, al as useEditorInsertMenuItems } from './shell-
|
|
1
|
+
import { C as CodeContext, E as EditorHostMode, S as SceneTextChannel, a as CalcEngineFactory, b as EditorView$1, c as CsvSourceMeta, X as XlsxSourceMeta, F as FormulaEditRecord } from './shell-D9E73nri.js';
|
|
2
|
+
export { A as ApplySourceEditsOptions, B as BlockInsertionBuilder, d as BlockInsertionContext, e as BlockPlacement, f as BlockRange, g as BlockSlice, h as BlockTagVisibility, i as CodeContextSection, j as CoverImageSaveOutput, D as DashboardImageSaveOutput, k as DocumentLinkCandidate, l as DocumentLinkProvider, m as EditorActions, n as EditorColorScheme, o as EditorContextMenuContext, p as EditorContextMenuItem, q as EditorContextMenuItemVisibility, r as EditorContextMenuProvider, s as EditorContextMenuProviderProps, t as EditorContextValue, u as EditorInsertMenuItem, v as EditorMode, w as EditorProvider, x as EditorProviderProps, y as EditorSelectionInfo, z as EditorShell, G as EditorShellProps, H as EditorState, I as FindOptions, J as FindRequest, K as FormulaSessionOptions, L as ImageDisplayMode, M as IngestedSidecar, N as InsertBlockOptions, O as LayoutMode, P as MentionCandidate, Q as MentionProvider, R as OutlineBlock, T as OutlineInsertion, U as PreviewPanel, V as PreviewPanelProps, W as RawEditor, Y as RawEditorProps, Z as ThemeInheritance, _ as ViewPreferences, $ as WriteCanvasSettings, a0 as WysiwygEditor, a1 as WysiwygEditorProps, a2 as XLSX_LOCKED_REASON, a3 as XlsxFormulaSession, a4 as applySourceEditsToText, a5 as blockInsertionPoint, a6 as createXlsxFormulaSession, a7 as getBlockSlices, a8 as headingDepthForInsertion, a9 as ingestSidecarBytes, aa as joinBlockAt, ab as lineToOffset, ac as minimalReplaceEdit, ad as normalizeSourceEdits, ae as offsetToLine, af as resolveOutlineInsertion, ag as sliceIndexAtOffset, ah as sourceOutline, ai as spliceBlock, aj as useEditorContext, ak as useEditorContextMenuItems, al as useEditorInsertMenuItems } from './shell-D9E73nri.js';
|
|
3
3
|
import * as react from 'react';
|
|
4
4
|
import { ReactNode, CSSProperties, ReactElement } from 'react';
|
|
5
5
|
import { Doc, ScheduledClip, VideoPlacement, VideoPipSize, VideoPipShape, VideoPipPosition, MediaEdits, MediaProvider, Theme, CustomTemplateDefinition, ThemeSeedColors, ViewportPreset, ViewportConfig, Block, MediaEntry, DiagramEdgeAnchor } from '@bendyline/squisq/schemas';
|
|
@@ -988,11 +988,11 @@ declare function ViewSwitcher({ className }: ViewSwitcherProps): react.JSX.Eleme
|
|
|
988
988
|
interface ToolbarProps {
|
|
989
989
|
/** Additional class name */
|
|
990
990
|
className?: string;
|
|
991
|
-
/** Whether the
|
|
991
|
+
/** Whether the Attachments panel is currently shown */
|
|
992
992
|
showFiles?: boolean;
|
|
993
993
|
/** Number of files currently available through the MediaProvider. */
|
|
994
994
|
fileCount?: number;
|
|
995
|
-
/** Toggle the
|
|
995
|
+
/** Toggle the Attachments panel. When provided, an "Attachments" button appears in the toolbar. */
|
|
996
996
|
onToggleFiles?: () => void;
|
|
997
997
|
/** Content rendered at the left edge of the toolbar, before the view tabs. */
|
|
998
998
|
slotLeft?: ReactNode;
|
|
@@ -1256,19 +1256,6 @@ declare function findTransitionEntry(value: string): TransitionCatalogEntry | un
|
|
|
1256
1256
|
*/
|
|
1257
1257
|
declare function transitionLabel(value: string): string;
|
|
1258
1258
|
|
|
1259
|
-
/**
|
|
1260
|
-
* blockProperties
|
|
1261
|
-
*
|
|
1262
|
-
* Generic read/write of a single block-meta key on a heading's Pandoc `{…}`
|
|
1263
|
-
* attribute block (stored as the `dataBlockAttrs` inner string in the WYSIWYG
|
|
1264
|
-
* heading node — no braces, matching `tiptapBridge`).
|
|
1265
|
-
*
|
|
1266
|
-
* The transition family (which spans three coupled keys) has its own helpers
|
|
1267
|
-
* in `headingTransition.ts`; this module covers the standalone scalar keys the
|
|
1268
|
-
* block-properties palette edits — `duration`, `startTime`, `x`, `y`, … — all
|
|
1269
|
-
* of which are plain `key=value` params. Parse/serialize is delegated to the
|
|
1270
|
-
* shared core helpers so quoting and ordering match the parser exactly.
|
|
1271
|
-
*/
|
|
1272
1259
|
/** Parse a `dataBlockAttrs` inner string into its flat `key → value` map. */
|
|
1273
1260
|
declare function readBlockAttrsParams(inner: string | null | undefined): Record<string, string>;
|
|
1274
1261
|
/** Read a single block-meta param, or '' when unset. */
|
|
@@ -1288,23 +1275,6 @@ declare function setBlockAttrsValue(inner: string | null | undefined, key: strin
|
|
|
1288
1275
|
*/
|
|
1289
1276
|
declare function summarizeBlockProps(blockAttrs: string | null | undefined, templateParams: string | null | undefined): string;
|
|
1290
1277
|
|
|
1291
|
-
/**
|
|
1292
|
-
* BlockPropertiesPopover
|
|
1293
|
-
*
|
|
1294
|
-
* The on-canvas "block properties" palette — the sibling of the block-template
|
|
1295
|
-
* badge. Anchored at the `.squisq-props-badge` chip on a heading, it edits the
|
|
1296
|
-
* block's playback/animation metadata:
|
|
1297
|
-
*
|
|
1298
|
-
* - Transition (type / direction / duration) — stored in `{[…]}` params
|
|
1299
|
-
* - Duration (`duration`) — stored in Pandoc `dataBlockAttrs`
|
|
1300
|
-
* - Start time (`startTime`) — stored in Pandoc `dataBlockAttrs`
|
|
1301
|
-
*
|
|
1302
|
-
* The popover holds the `dataBlockAttrs` inner string as working state and
|
|
1303
|
-
* re-derives each control from it, so successive edits compose. Every change
|
|
1304
|
-
* serializes a new inner and bubbles up through `onChange`; the host applies it
|
|
1305
|
-
* to the heading node. Positioning/portal/outside-click mirror
|
|
1306
|
-
* `TemplateBadgePopover`.
|
|
1307
|
-
*/
|
|
1308
1278
|
interface BlockPropertiesPopoverProps {
|
|
1309
1279
|
/** DOMRect of the badge that triggered the popover (viewport coords). */
|
|
1310
1280
|
anchorRect: DOMRect;
|
|
@@ -1378,7 +1348,7 @@ interface MediaBinProps {
|
|
|
1378
1348
|
/** Fired whenever the panel scans media and knows the current entry count. */
|
|
1379
1349
|
onCountChange?: (count: number) => void;
|
|
1380
1350
|
/**
|
|
1381
|
-
* Opens the host's media recorder. When provided, the
|
|
1351
|
+
* Opens the host's media recorder. When provided, the Attachments header shows a
|
|
1382
1352
|
* compact Record button beside Upload.
|
|
1383
1353
|
*/
|
|
1384
1354
|
onRecord?: () => void;
|
|
@@ -1392,7 +1362,7 @@ interface MediaBinProps {
|
|
|
1392
1362
|
allowBinaryDownloads?: boolean;
|
|
1393
1363
|
/**
|
|
1394
1364
|
* Relative path of an entry to highlight and scroll into view — how the
|
|
1395
|
-
* data card's "Show in
|
|
1365
|
+
* data card's "Show in Attachments" lands on the file it names.
|
|
1396
1366
|
*/
|
|
1397
1367
|
highlightPath?: string | null;
|
|
1398
1368
|
}
|
|
@@ -3495,6 +3465,7 @@ interface RecorderSlide {
|
|
|
3495
3465
|
declare function buildRecorderSlideDeck(doc: Doc, theme: Theme, viewport: ViewportConfig): RecorderSlide[];
|
|
3496
3466
|
|
|
3497
3467
|
interface RecorderSlidesPanelProps {
|
|
3468
|
+
onBuildShown?: (blockId: string, step: number, sourceText: string) => void;
|
|
3498
3469
|
slides: RecorderSlide[];
|
|
3499
3470
|
/** Active slide index — controlled by the host. */
|
|
3500
3471
|
index: number;
|
|
@@ -3507,7 +3478,7 @@ interface RecorderSlidesPanelProps {
|
|
|
3507
3478
|
/** Block ids already first-shown this take; drives the progress dots. */
|
|
3508
3479
|
shownBlockIds?: ReadonlySet<string>;
|
|
3509
3480
|
}
|
|
3510
|
-
declare function RecorderSlidesPanel({ slides, index, onIndexChange, viewport, basePath, mediaProvider, recording, shownBlockIds, }: RecorderSlidesPanelProps): react.JSX.Element;
|
|
3481
|
+
declare function RecorderSlidesPanel({ slides, index, onIndexChange, viewport, basePath, mediaProvider, recording, shownBlockIds, onBuildShown, }: RecorderSlidesPanelProps): react.JSX.Element;
|
|
3511
3482
|
|
|
3512
3483
|
/**
|
|
3513
3484
|
* Pure decision helpers for the Record media dialog's slides mode — the peer
|
package/dist/index.js
CHANGED
|
@@ -233,7 +233,7 @@ import {
|
|
|
233
233
|
videoEmbedParagraphJson,
|
|
234
234
|
viewStateFromBinding,
|
|
235
235
|
writeHeadingViewState
|
|
236
|
-
} from "./chunk-
|
|
236
|
+
} from "./chunk-MJPL4QUR.js";
|
|
237
237
|
import {
|
|
238
238
|
EditorProvider,
|
|
239
239
|
applySourceEditsToText,
|
|
@@ -254,7 +254,7 @@ import {
|
|
|
254
254
|
useBlockNavigator,
|
|
255
255
|
useEditorContext,
|
|
256
256
|
useEditorInsertMenuItems
|
|
257
|
-
} from "./chunk-
|
|
257
|
+
} from "./chunk-4SZ3UWSL.js";
|
|
258
258
|
import {
|
|
259
259
|
SPEECH_INPUT_SAMPLE_RATE,
|
|
260
260
|
isSpeechInputProviderFactory,
|
|
@@ -263,24 +263,24 @@ import {
|
|
|
263
263
|
import "./chunk-V4NBQF5C.js";
|
|
264
264
|
import {
|
|
265
265
|
JsonEditor
|
|
266
|
-
} from "./chunk-
|
|
266
|
+
} from "./chunk-PXO3D42N.js";
|
|
267
267
|
import {
|
|
268
268
|
MarkdownEscape
|
|
269
|
-
} from "./chunk-
|
|
269
|
+
} from "./chunk-KI5XQWRU.js";
|
|
270
270
|
import {
|
|
271
271
|
markdownToTiptap,
|
|
272
272
|
tiptapToMarkdown
|
|
273
|
-
} from "./chunk-
|
|
273
|
+
} from "./chunk-WMNL2WEI.js";
|
|
274
274
|
import {
|
|
275
275
|
ImageEditor,
|
|
276
276
|
ImageViewer,
|
|
277
277
|
imageEditorReducer,
|
|
278
278
|
initialImageEditorState,
|
|
279
279
|
useImageEditor
|
|
280
|
-
} from "./chunk-
|
|
280
|
+
} from "./chunk-HLU6ZBS7.js";
|
|
281
281
|
import {
|
|
282
282
|
RecorderButton
|
|
283
|
-
} from "./chunk-
|
|
283
|
+
} from "./chunk-H3XGOKPT.js";
|
|
284
284
|
import {
|
|
285
285
|
RecorderDeviceQuickPicks,
|
|
286
286
|
RecorderDeviceSettingsPanel,
|
|
@@ -305,7 +305,7 @@ import {
|
|
|
305
305
|
unshownSlidesWarning,
|
|
306
306
|
useMediaDevices,
|
|
307
307
|
useMediaRecorder
|
|
308
|
-
} from "./chunk-
|
|
308
|
+
} from "./chunk-TCGWKYME.js";
|
|
309
309
|
import {
|
|
310
310
|
DEFAULT_RECORDER_DEVICE_SETTINGS,
|
|
311
311
|
buildRecorderAudioConstraints,
|
|
@@ -314,7 +314,9 @@ import {
|
|
|
314
314
|
buildRecorderScreenConstraints,
|
|
315
315
|
recorderBitsPerSecond
|
|
316
316
|
} from "./chunk-LRZJD5YD.js";
|
|
317
|
-
import
|
|
317
|
+
import {
|
|
318
|
+
Icon
|
|
319
|
+
} from "./chunk-UYB5CPRE.js";
|
|
318
320
|
import {
|
|
319
321
|
TeleprompterView
|
|
320
322
|
} from "./chunk-DJS5I5NO.js";
|
|
@@ -380,13 +382,7 @@ function FolderView({
|
|
|
380
382
|
});
|
|
381
383
|
return /* @__PURE__ */ jsxs("div", { className: "squisq-folder-view", "data-theme": theme, style: { height }, children: [
|
|
382
384
|
/* @__PURE__ */ jsxs("div", { className: "squisq-folder-view-header", children: [
|
|
383
|
-
/* @__PURE__ */ jsx(
|
|
384
|
-
"i",
|
|
385
|
-
{
|
|
386
|
-
className: "fa-regular fa-folder-open squisq-folder-view-header-icon",
|
|
387
|
-
"aria-hidden": "true"
|
|
388
|
-
}
|
|
389
|
-
),
|
|
385
|
+
/* @__PURE__ */ jsx(Icon, { icon: "fa-regular fa-folder-open", className: "squisq-folder-view-header-icon" }),
|
|
390
386
|
/* @__PURE__ */ jsx("span", { className: "squisq-folder-view-title", children: name }),
|
|
391
387
|
/* @__PURE__ */ jsxs("span", { className: "squisq-folder-view-count", children: [
|
|
392
388
|
entries.length,
|
|
@@ -404,10 +400,10 @@ function FolderView({
|
|
|
404
400
|
/* @__PURE__ */ jsx("span", { className: "squisq-folder-view-item-icon", children: iconFor(entry) }),
|
|
405
401
|
/* @__PURE__ */ jsx("span", { className: "squisq-folder-view-item-name", children: entry.name }),
|
|
406
402
|
entry.isDirectory && /* @__PURE__ */ jsx(
|
|
407
|
-
|
|
403
|
+
Icon,
|
|
408
404
|
{
|
|
409
|
-
|
|
410
|
-
|
|
405
|
+
icon: "fa-solid fa-chevron-right",
|
|
406
|
+
className: "squisq-folder-view-item-chevron"
|
|
411
407
|
}
|
|
412
408
|
)
|
|
413
409
|
]
|
|
@@ -415,11 +411,11 @@ function FolderView({
|
|
|
415
411
|
) }, entry.path)) }) }),
|
|
416
412
|
/* @__PURE__ */ jsxs("div", { className: "squisq-folder-view-actions", children: [
|
|
417
413
|
/* @__PURE__ */ jsxs("button", { type: "button", className: "squisq-folder-view-new", onClick: onNewDocument, children: [
|
|
418
|
-
/* @__PURE__ */ jsx(
|
|
414
|
+
/* @__PURE__ */ jsx(Icon, { icon: "fa-solid fa-plus" }),
|
|
419
415
|
" New document"
|
|
420
416
|
] }),
|
|
421
417
|
onNewFolder && /* @__PURE__ */ jsxs("button", { type: "button", className: "squisq-folder-view-new-folder", onClick: onNewFolder, children: [
|
|
422
|
-
/* @__PURE__ */ jsx(
|
|
418
|
+
/* @__PURE__ */ jsx(Icon, { icon: "fa-regular fa-folder" }),
|
|
423
419
|
" New folder"
|
|
424
420
|
] })
|
|
425
421
|
] })
|
|
@@ -428,12 +424,12 @@ function FolderView({
|
|
|
428
424
|
var IMAGE_RE = /\.(png|jpe?g|gif|svg|webp|bmp|avif)$/i;
|
|
429
425
|
function defaultIconFor(entry) {
|
|
430
426
|
if (entry.isDirectory) {
|
|
431
|
-
return /* @__PURE__ */ jsx(
|
|
427
|
+
return /* @__PURE__ */ jsx(Icon, { icon: "fa-regular fa-folder fa-fw" });
|
|
432
428
|
}
|
|
433
429
|
if (IMAGE_RE.test(entry.name)) {
|
|
434
|
-
return /* @__PURE__ */ jsx(
|
|
430
|
+
return /* @__PURE__ */ jsx(Icon, { icon: "fa-regular fa-file-image fa-fw" });
|
|
435
431
|
}
|
|
436
|
-
return /* @__PURE__ */ jsx(
|
|
432
|
+
return /* @__PURE__ */ jsx(Icon, { icon: "fa-regular fa-file-lines fa-fw" });
|
|
437
433
|
}
|
|
438
434
|
|
|
439
435
|
// src/ViewSwitcher.tsx
|
package/dist/recorder/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
RecorderButton
|
|
3
|
-
} from "../chunk-
|
|
3
|
+
} from "../chunk-H3XGOKPT.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-
|
|
17
|
+
} from "../chunk-TCGWKYME.js";
|
|
18
18
|
import {
|
|
19
19
|
DEFAULT_RECORDER_DEVICE_SETTINGS,
|
|
20
20
|
buildRecorderAudioConstraints,
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
buildRecorderScreenConstraints,
|
|
24
24
|
recorderBitsPerSecond
|
|
25
25
|
} from "../chunk-LRZJD5YD.js";
|
|
26
|
-
import "../chunk-
|
|
26
|
+
import "../chunk-UYB5CPRE.js";
|
|
27
27
|
import {
|
|
28
28
|
buildTimingJson,
|
|
29
29
|
encodeTimingJson,
|
package/dist/review/index.js
CHANGED
|
@@ -19,9 +19,9 @@ import {
|
|
|
19
19
|
updateReviewDecorations,
|
|
20
20
|
useReview,
|
|
21
21
|
useReviewState
|
|
22
|
-
} from "../chunk-
|
|
22
|
+
} from "../chunk-4SZ3UWSL.js";
|
|
23
23
|
import "../chunk-DNEVUOBZ.js";
|
|
24
|
-
import "../chunk-
|
|
24
|
+
import "../chunk-WMNL2WEI.js";
|
|
25
25
|
|
|
26
26
|
// src/review/proofingAdapter.ts
|
|
27
27
|
import {
|
package/dist/shell/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { h as BlockTagVisibility, k as DocumentLinkCandidate, l as DocumentLinkProvider, m as EditorActions, n as EditorColorScheme, o as EditorContextMenuContext, p as EditorContextMenuItem, q as EditorContextMenuItemVisibility, r as EditorContextMenuProvider, s as EditorContextMenuProviderProps, t as EditorContextValue, E as EditorHostMode, u as EditorInsertMenuItem, v as EditorMode, w as EditorProvider, x as EditorProviderProps, z as EditorShell, G as EditorShellProps, H as EditorState, b as EditorView, L as ImageDisplayMode, O as LayoutMode, P as MentionCandidate, Q as MentionProvider, U as PreviewPanel, V as PreviewPanelProps, W as RawEditor, Y as RawEditorProps, Z as ThemeInheritance, _ as ViewPreferences, a0 as WysiwygEditor, a1 as WysiwygEditorProps, aj as useEditorContext, ak as useEditorContextMenuItems, al as useEditorInsertMenuItems } from '../shell-
|
|
1
|
+
export { h as BlockTagVisibility, k as DocumentLinkCandidate, l as DocumentLinkProvider, m as EditorActions, n as EditorColorScheme, o as EditorContextMenuContext, p as EditorContextMenuItem, q as EditorContextMenuItemVisibility, r as EditorContextMenuProvider, s as EditorContextMenuProviderProps, t as EditorContextValue, E as EditorHostMode, u as EditorInsertMenuItem, v as EditorMode, w as EditorProvider, x as EditorProviderProps, z as EditorShell, G as EditorShellProps, H as EditorState, b as EditorView, L as ImageDisplayMode, O as LayoutMode, P as MentionCandidate, Q as MentionProvider, U as PreviewPanel, V as PreviewPanelProps, W as RawEditor, Y as RawEditorProps, Z as ThemeInheritance, _ as ViewPreferences, a0 as WysiwygEditor, a1 as WysiwygEditorProps, aj as useEditorContext, ak as useEditorContextMenuItems, al as useEditorInsertMenuItems } from '../shell-D9E73nri.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import '@bendyline/squisq/table';
|
|
4
4
|
import '@bendyline/squisq-calc';
|
package/dist/shell/index.js
CHANGED
|
@@ -5,20 +5,20 @@ import {
|
|
|
5
5
|
RawEditor,
|
|
6
6
|
WysiwygEditor,
|
|
7
7
|
useEditorContextMenuItems
|
|
8
|
-
} from "../chunk-
|
|
8
|
+
} from "../chunk-MJPL4QUR.js";
|
|
9
9
|
import {
|
|
10
10
|
EditorProvider,
|
|
11
11
|
useEditorContext,
|
|
12
12
|
useEditorInsertMenuItems
|
|
13
|
-
} from "../chunk-
|
|
13
|
+
} from "../chunk-4SZ3UWSL.js";
|
|
14
14
|
import "../chunk-DNEVUOBZ.js";
|
|
15
15
|
import "../chunk-V4NBQF5C.js";
|
|
16
|
-
import "../chunk-
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
19
|
-
import "../chunk-
|
|
16
|
+
import "../chunk-KI5XQWRU.js";
|
|
17
|
+
import "../chunk-WMNL2WEI.js";
|
|
18
|
+
import "../chunk-HLU6ZBS7.js";
|
|
19
|
+
import "../chunk-TCGWKYME.js";
|
|
20
20
|
import "../chunk-LRZJD5YD.js";
|
|
21
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-UYB5CPRE.js";
|
|
22
22
|
import "../chunk-DJS5I5NO.js";
|
|
23
23
|
import "../chunk-ZS6G2P57.js";
|
|
24
24
|
import "../chunk-DNJ6HOES.js";
|
|
@@ -1252,7 +1252,7 @@ interface EditorShellProps {
|
|
|
1252
1252
|
minHeight?: string;
|
|
1253
1253
|
/** See `minHeight`. Upper bound of the auto-grow range. */
|
|
1254
1254
|
maxHeight?: string;
|
|
1255
|
-
/** Optional MediaProvider for the
|
|
1255
|
+
/** Optional MediaProvider for the Attachments panel. When set (even to null), an Attachments toggle appears in the toolbar. */
|
|
1256
1256
|
mediaProvider?: MediaProvider | null;
|
|
1257
1257
|
/**
|
|
1258
1258
|
* Processed-audio render manager for media-edit recipes (denoise,
|
|
@@ -1313,7 +1313,7 @@ interface EditorShellProps {
|
|
|
1313
1313
|
/** Show the Files toggle in the toolbar. Defaults to true when mediaProvider is passed. */
|
|
1314
1314
|
showFilesToggle?: boolean;
|
|
1315
1315
|
/**
|
|
1316
|
-
* Open the
|
|
1316
|
+
* Open the Attachments panel when its accessory bin becomes non-empty. The user
|
|
1317
1317
|
* can still close it normally; it opens again only when the visible count
|
|
1318
1318
|
* changes. Defaults to false.
|
|
1319
1319
|
*/
|
|
@@ -1331,7 +1331,7 @@ interface EditorShellProps {
|
|
|
1331
1331
|
*/
|
|
1332
1332
|
showInsertControls?: boolean;
|
|
1333
1333
|
/**
|
|
1334
|
-
* Whether the
|
|
1334
|
+
* Whether the Attachments panel offers browser downloads for its binary entries.
|
|
1335
1335
|
* Defaults to true. Pass false to remove the built-in download affordance.
|
|
1336
1336
|
*/
|
|
1337
1337
|
allowBinaryDownloads?: boolean;
|