@bendyline/squisq-editor-react 2.11.24 → 2.11.26
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/{chunk-E7JVS6N5.js → chunk-IRFFIMKM.js} +1059 -893
- package/dist/index.d.ts +3 -3
- package/dist/index.js +18 -8
- package/dist/monaco.js +1 -0
- package/dist/shell/index.d.ts +1 -1
- package/dist/shell/index.js +1 -1
- package/dist/{shell-Cg6Px8fs.d.ts → shell-xuF3vK5Z.d.ts} +9 -3
- package/dist/styles/index.css +46 -4
- package/package.json +4 -4
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-xuF3vK5Z.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-xuF3vK5Z.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';
|
|
@@ -1544,7 +1544,7 @@ interface UseMonacoLoaderResult {
|
|
|
1544
1544
|
}
|
|
1545
1545
|
/** Start Monaco and the requested language profile before a React editor mounts. */
|
|
1546
1546
|
declare function preloadMonaco(requestedLanguages?: MonacoLanguageRequest, options?: MonacoLanguageLoadOptions): Promise<typeof monaco_editor>;
|
|
1547
|
-
/**
|
|
1547
|
+
/** Register completion and snippet UI before a React editor can mount. */
|
|
1548
1548
|
declare function preloadMonacoSuggestions(): Promise<void>;
|
|
1549
1549
|
/** Subscribe to the shared Monaco namespace and a demand-loaded language profile. */
|
|
1550
1550
|
declare function useMonacoLoader(requestedLanguages?: MonacoLanguageRequest, options?: MonacoLanguageLoadOptions): UseMonacoLoaderResult;
|
package/dist/index.js
CHANGED
|
@@ -154,6 +154,7 @@ import {
|
|
|
154
154
|
moveItemDownOp,
|
|
155
155
|
moveItemUpOp,
|
|
156
156
|
moveNodeOp,
|
|
157
|
+
navigateViewTabs,
|
|
157
158
|
nextTimelineEventId,
|
|
158
159
|
normalizeMermaidFlowchartShape,
|
|
159
160
|
outdentItemOp,
|
|
@@ -232,7 +233,7 @@ import {
|
|
|
232
233
|
videoEmbedParagraphJson,
|
|
233
234
|
viewStateFromBinding,
|
|
234
235
|
writeHeadingViewState
|
|
235
|
-
} from "./chunk-
|
|
236
|
+
} from "./chunk-IRFFIMKM.js";
|
|
236
237
|
import {
|
|
237
238
|
EditorProvider,
|
|
238
239
|
applySourceEditsToText,
|
|
@@ -436,6 +437,7 @@ function defaultIconFor(entry) {
|
|
|
436
437
|
}
|
|
437
438
|
|
|
438
439
|
// src/ViewSwitcher.tsx
|
|
440
|
+
import { useEffect, useState } from "react";
|
|
439
441
|
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
440
442
|
var VIEWS = [
|
|
441
443
|
{ id: "wysiwyg", label: "Write", shortcutKey: "1" },
|
|
@@ -444,6 +446,8 @@ var VIEWS = [
|
|
|
444
446
|
];
|
|
445
447
|
function ViewSwitcher({ className }) {
|
|
446
448
|
const { activeView, setActiveView, editorMode } = useEditorContext();
|
|
449
|
+
const [focusedView, setFocusedView] = useState(activeView);
|
|
450
|
+
useEffect(() => setFocusedView(activeView), [activeView]);
|
|
447
451
|
const visibleViews = editorMode === "code" ? VIEWS.filter((v) => v.id === "raw") : VIEWS;
|
|
448
452
|
if (visibleViews.length <= 1) return null;
|
|
449
453
|
return /* @__PURE__ */ jsx2(
|
|
@@ -455,8 +459,14 @@ function ViewSwitcher({ className }) {
|
|
|
455
459
|
children: visibleViews.map((view) => /* @__PURE__ */ jsxs2(
|
|
456
460
|
"button",
|
|
457
461
|
{
|
|
462
|
+
type: "button",
|
|
458
463
|
role: "tab",
|
|
464
|
+
tabIndex: focusedView === view.id ? 0 : -1,
|
|
465
|
+
onFocus: () => setFocusedView(view.id),
|
|
459
466
|
"aria-selected": activeView === view.id,
|
|
467
|
+
onKeyDown: (event) => {
|
|
468
|
+
navigateViewTabs(event);
|
|
469
|
+
},
|
|
460
470
|
className: `squisq-view-tab ${activeView === view.id ? "squisq-view-tab--active" : ""}`,
|
|
461
471
|
onClick: () => setActiveView(view.id),
|
|
462
472
|
title: `${view.label} (${platformShortcut(`Shift+${view.shortcutKey}`)})`,
|
|
@@ -474,11 +484,11 @@ function ViewSwitcher({ className }) {
|
|
|
474
484
|
// src/ThemeCustomizerPanel.tsx
|
|
475
485
|
import {
|
|
476
486
|
useCallback,
|
|
477
|
-
useEffect,
|
|
487
|
+
useEffect as useEffect2,
|
|
478
488
|
useLayoutEffect,
|
|
479
489
|
useMemo,
|
|
480
490
|
useRef,
|
|
481
|
-
useState
|
|
491
|
+
useState as useState2
|
|
482
492
|
} from "react";
|
|
483
493
|
import { deriveScale, isHex, serializeTheme } from "@bendyline/squisq/schemas";
|
|
484
494
|
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
@@ -492,22 +502,22 @@ function ThemeCustomizerPanel({
|
|
|
492
502
|
onReset,
|
|
493
503
|
triggerLabel
|
|
494
504
|
}) {
|
|
495
|
-
const [open, setOpen] =
|
|
496
|
-
const [draft, setDraft] =
|
|
497
|
-
const [popoverPosition, setPopoverPosition] =
|
|
505
|
+
const [open, setOpen] = useState2(false);
|
|
506
|
+
const [draft, setDraft] = useState2(() => themeToDraft(value));
|
|
507
|
+
const [popoverPosition, setPopoverPosition] = useState2(null);
|
|
498
508
|
const containerRef = useRef(null);
|
|
499
509
|
const triggerRef = useRef(null);
|
|
500
510
|
const close = useCallback(() => setOpen(false), []);
|
|
501
511
|
useEscapeDismissal(open, close, triggerRef);
|
|
502
512
|
const externalIdRef = useRef(value?.id ?? null);
|
|
503
|
-
|
|
513
|
+
useEffect2(() => {
|
|
504
514
|
const incomingId = value?.id ?? null;
|
|
505
515
|
if (incomingId !== externalIdRef.current) {
|
|
506
516
|
externalIdRef.current = incomingId;
|
|
507
517
|
setDraft(themeToDraft(value));
|
|
508
518
|
}
|
|
509
519
|
}, [value]);
|
|
510
|
-
|
|
520
|
+
useEffect2(() => {
|
|
511
521
|
if (!open) return;
|
|
512
522
|
const handler = (e) => {
|
|
513
523
|
if (containerRef.current && !containerRef.current.contains(e.target)) {
|
package/dist/monaco.js
CHANGED
|
@@ -6,6 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-V4NBQF5C.js";
|
|
7
7
|
|
|
8
8
|
// src/monacoFeatures.ts
|
|
9
|
+
import "monaco-editor/esm/vs/editor/contrib/suggest/browser/suggestMemory.js";
|
|
9
10
|
import "monaco-editor/esm/vs/editor/browser/coreCommands.js";
|
|
10
11
|
import "monaco-editor/esm/vs/editor/browser/widget/codeEditor/codeEditorWidget.js";
|
|
11
12
|
import "monaco-editor/esm/vs/editor/contrib/bracketMatching/browser/bracketMatching.js";
|
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-xuF3vK5Z.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import '@bendyline/squisq/table';
|
|
4
4
|
import '@bendyline/squisq-calc';
|
package/dist/shell/index.js
CHANGED
|
@@ -1190,6 +1190,8 @@ interface WriteCanvasSettings {
|
|
|
1190
1190
|
type EditorHostMode = 'document' | 'chat';
|
|
1191
1191
|
|
|
1192
1192
|
interface EditorShellProps {
|
|
1193
|
+
/** Accessible name for the editing surface, separate from its empty placeholder. */
|
|
1194
|
+
ariaLabel?: string;
|
|
1193
1195
|
/** Initial markdown content */
|
|
1194
1196
|
initialMarkdown?: string;
|
|
1195
1197
|
/** Initial active view (default: 'wysiwyg') */
|
|
@@ -1757,7 +1759,7 @@ interface EditorShellProps {
|
|
|
1757
1759
|
* Complete markdown editor shell with toolbar, view switcher, and three
|
|
1758
1760
|
* editing modes: Raw (Monaco), WYSIWYG (Tiptap), and Preview.
|
|
1759
1761
|
*/
|
|
1760
|
-
declare function EditorShell({ initialMarkdown, initialView, hostMode, defaultViewportPreset, articleId, basePath, onChange, onLinkClick, showCodeCopyButton, onCopyCode, colorScheme, className, height, minHeight, maxHeight, mediaProvider, mediaEditRenders, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, showFilesToggle, showFilesWhenNotEmpty, showFormattingControls, showInsertControls, allowBinaryDownloads, toolbarSlotLeft, toolbarSlotAfterActions, toolbarSlotRight, summarizationDesigner, statusBarSlotRight, sidePanelSlot, reviewProviders, showPlayTab, allowPresentationWindow, allowPresentationFullscreen, allowPrint, submitOnEnter, calcEngineFactory, codeContext, fullWidth, uxFont, thinMargins, writeCanvasSettings, showStatusBar, imageDisplayMode, fileName, saveCoverImageOutput, saveDashboardImageOutput, language, findMode, onFindModeChange, findRequest, findShortcut, mentionProvider, proofing, proofingDefaultEnabled, proofingSpellingEnabled, proofingGrammarEnabled, proofingIgnoreStore, speechInput, documentLinkProvider, fenceRenderers, linkSchemes, allowRecording, allowNarrate, preserveSourceWrapping, placeholder, readOnly, imageSrc, imageAlt, imageMode, imageEditorContainer, onImageExport, inlinePreview, inlinePreviewWidth, outline, outlineWidth, blockTags, blockTagVisibility, themeInheritance, viewPreferences, onViewPreferencesChange, themeOverride, defaultThemeId, defaultThemeLabel, }: EditorShellProps): react.JSX.Element;
|
|
1762
|
+
declare function EditorShell({ ariaLabel, initialMarkdown, initialView, hostMode, defaultViewportPreset, articleId, basePath, onChange, onLinkClick, showCodeCopyButton, onCopyCode, colorScheme, className, height, minHeight, maxHeight, mediaProvider, mediaEditRenders, workspaceContainer, allowVersioning, versionBasename, versioningPrunePolicy, versioningAutoSaveIdleMs, onSaveVersion, showFilesToggle, showFilesWhenNotEmpty, showFormattingControls, showInsertControls, allowBinaryDownloads, toolbarSlotLeft, toolbarSlotAfterActions, toolbarSlotRight, summarizationDesigner, statusBarSlotRight, sidePanelSlot, reviewProviders, showPlayTab, allowPresentationWindow, allowPresentationFullscreen, allowPrint, submitOnEnter, calcEngineFactory, codeContext, fullWidth, uxFont, thinMargins, writeCanvasSettings, showStatusBar, imageDisplayMode, fileName, saveCoverImageOutput, saveDashboardImageOutput, language, findMode, onFindModeChange, findRequest, findShortcut, mentionProvider, proofing, proofingDefaultEnabled, proofingSpellingEnabled, proofingGrammarEnabled, proofingIgnoreStore, speechInput, documentLinkProvider, fenceRenderers, linkSchemes, allowRecording, allowNarrate, preserveSourceWrapping, placeholder, readOnly, imageSrc, imageAlt, imageMode, imageEditorContainer, onImageExport, inlinePreview, inlinePreviewWidth, outline, outlineWidth, blockTags, blockTagVisibility, themeInheritance, viewPreferences, onViewPreferencesChange, themeOverride, defaultThemeId, defaultThemeLabel, }: EditorShellProps): react.JSX.Element;
|
|
1761
1763
|
|
|
1762
1764
|
/**
|
|
1763
1765
|
* Shared editor context menu.
|
|
@@ -1815,6 +1817,8 @@ declare function EditorContextMenuProvider({ rootRef, readOnly, children, }: Edi
|
|
|
1815
1817
|
* Syncs changes back to EditorContext on every keystroke (debounced).
|
|
1816
1818
|
*/
|
|
1817
1819
|
interface RawEditorProps {
|
|
1820
|
+
/** Accessible name shared by Monaco and its loading fallback. */
|
|
1821
|
+
ariaLabel?: string;
|
|
1818
1822
|
/**
|
|
1819
1823
|
* Monaco editor theme name (default: `'vs'`). Accepts Monaco's built-in
|
|
1820
1824
|
* theme ids (`'vs'`, `'vs-dark'`, `'hc-black'`) — which are transparently
|
|
@@ -1843,9 +1847,11 @@ interface RawEditorProps {
|
|
|
1843
1847
|
* Raw markdown editor using Monaco Editor.
|
|
1844
1848
|
* Binds to the shared EditorContext for source synchronization.
|
|
1845
1849
|
*/
|
|
1846
|
-
declare function RawEditor({ monacoTheme, minimap, fontSize, wordWrap, className, submitOnEnter, readOnly, }: RawEditorProps): react.JSX.Element;
|
|
1850
|
+
declare function RawEditor({ ariaLabel, monacoTheme, minimap, fontSize, wordWrap, className, submitOnEnter, readOnly, }: RawEditorProps): react.JSX.Element;
|
|
1847
1851
|
|
|
1848
1852
|
interface WysiwygEditorProps {
|
|
1853
|
+
/** Accessible name of this multiline text input. */
|
|
1854
|
+
ariaLabel?: string;
|
|
1849
1855
|
/**
|
|
1850
1856
|
* Placeholder text when the editor is empty. If omitted, one of several
|
|
1851
1857
|
* rotating prompts is picked at random on mount. Pass a fixed string to
|
|
@@ -1880,7 +1886,7 @@ interface WysiwygEditorProps {
|
|
|
1880
1886
|
* Rich WYSIWYG markdown editor built on Tiptap (ProseMirror).
|
|
1881
1887
|
* Binds to the shared EditorContext for source synchronization.
|
|
1882
1888
|
*/
|
|
1883
|
-
declare function WysiwygEditor({ placeholder, className, submitOnEnter, readOnly, writeCanvasSettings, onOpenFilesPanel, calcEngineFactory, }: WysiwygEditorProps): react.JSX.Element;
|
|
1889
|
+
declare function WysiwygEditor({ ariaLabel, placeholder, className, submitOnEnter, readOnly, writeCanvasSettings, onOpenFilesPanel, calcEngineFactory, }: WysiwygEditorProps): react.JSX.Element;
|
|
1884
1890
|
|
|
1885
1891
|
interface PreviewPanelProps {
|
|
1886
1892
|
/** Base path for resolving media URLs in DocPlayer */
|
package/dist/styles/index.css
CHANGED
|
@@ -7948,12 +7948,15 @@
|
|
|
7948
7948
|
align-items: flex-end;
|
|
7949
7949
|
box-sizing: border-box;
|
|
7950
7950
|
}
|
|
7951
|
-
.squisq-toolbar-view-tab-
|
|
7951
|
+
.squisq-toolbar-view-tab-list,
|
|
7952
|
+
.squisq-toolbar-view-tab-wrap,
|
|
7953
|
+
.squisq-toolbar-use-menu {
|
|
7952
7954
|
display: flex;
|
|
7953
7955
|
align-items: flex-end;
|
|
7954
7956
|
align-self: stretch;
|
|
7955
7957
|
}
|
|
7956
|
-
.squisq-toolbar-use-tab
|
|
7958
|
+
.squisq-toolbar-use-tab,
|
|
7959
|
+
.squisq-toolbar-use-menu {
|
|
7957
7960
|
position: relative;
|
|
7958
7961
|
border-bottom: 2px solid transparent;
|
|
7959
7962
|
}
|
|
@@ -7966,10 +7969,11 @@
|
|
|
7966
7969
|
border-bottom-color: var(--squisq-accent);
|
|
7967
7970
|
}
|
|
7968
7971
|
.squisq-toolbar-use-tab > .squisq-toolbar-view-tab:focus-visible,
|
|
7969
|
-
.squisq-toolbar-use-
|
|
7972
|
+
.squisq-toolbar-use-menu > .squisq-use-mode-trigger:focus-visible {
|
|
7970
7973
|
outline: none;
|
|
7971
7974
|
}
|
|
7972
|
-
.squisq-toolbar-use-tab:has(> .squisq-toolbar-view-tab:focus-visible
|
|
7975
|
+
.squisq-toolbar-use-tab:has(> .squisq-toolbar-view-tab:focus-visible)::after,
|
|
7976
|
+
.squisq-toolbar-use-menu:has(> .squisq-use-mode-trigger:focus-visible)::after {
|
|
7973
7977
|
content: "";
|
|
7974
7978
|
position: absolute;
|
|
7975
7979
|
inset: 2px 0 4px;
|
|
@@ -12203,6 +12207,9 @@
|
|
|
12203
12207
|
right: 0;
|
|
12204
12208
|
z-index: 90;
|
|
12205
12209
|
min-width: 200px;
|
|
12210
|
+
max-width: calc(100vw - 16px);
|
|
12211
|
+
box-sizing: border-box;
|
|
12212
|
+
overflow-y: auto;
|
|
12206
12213
|
margin-top: 4px;
|
|
12207
12214
|
padding: 6px 0;
|
|
12208
12215
|
background: var(--squisq-bg);
|
|
@@ -12210,6 +12217,7 @@
|
|
|
12210
12217
|
border-radius: 6px;
|
|
12211
12218
|
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
|
|
12212
12219
|
color: var(--squisq-text);
|
|
12220
|
+
font-family: var(--squisq-ux-font, system-ui, sans-serif);
|
|
12213
12221
|
}
|
|
12214
12222
|
.squisq-view-menu-row {
|
|
12215
12223
|
display: flex;
|
|
@@ -12223,10 +12231,39 @@
|
|
|
12223
12231
|
.squisq-view-menu-row:hover {
|
|
12224
12232
|
background: var(--squisq-row-hover);
|
|
12225
12233
|
}
|
|
12234
|
+
button.squisq-view-menu-row,
|
|
12235
|
+
button.squisq-view-menu-radio-row {
|
|
12236
|
+
width: 100%;
|
|
12237
|
+
border: 0;
|
|
12238
|
+
background: transparent;
|
|
12239
|
+
color: inherit;
|
|
12240
|
+
font-family: inherit;
|
|
12241
|
+
text-align: left;
|
|
12242
|
+
}
|
|
12243
|
+
button.squisq-view-menu-row:focus-visible,
|
|
12244
|
+
button.squisq-view-menu-radio-row:focus-visible {
|
|
12245
|
+
outline: 2px solid var(--squisq-accent);
|
|
12246
|
+
outline-offset: -2px;
|
|
12247
|
+
}
|
|
12226
12248
|
.squisq-view-menu-checkbox {
|
|
12227
12249
|
margin: 0;
|
|
12228
12250
|
cursor: pointer;
|
|
12229
12251
|
}
|
|
12252
|
+
.squisq-view-menu-checkbox,
|
|
12253
|
+
.squisq-view-menu-radio {
|
|
12254
|
+
display: inline-flex;
|
|
12255
|
+
align-items: center;
|
|
12256
|
+
justify-content: center;
|
|
12257
|
+
width: 13px;
|
|
12258
|
+
height: 13px;
|
|
12259
|
+
flex-shrink: 0;
|
|
12260
|
+
border: 1px solid var(--squisq-border-strong);
|
|
12261
|
+
color: var(--squisq-accent-strong);
|
|
12262
|
+
font-size: 10px;
|
|
12263
|
+
}
|
|
12264
|
+
.squisq-view-menu-radio {
|
|
12265
|
+
border-radius: 50%;
|
|
12266
|
+
}
|
|
12230
12267
|
.squisq-view-menu-label {
|
|
12231
12268
|
flex: 1;
|
|
12232
12269
|
}
|
|
@@ -14378,6 +14415,7 @@
|
|
|
14378
14415
|
.squisq-doc-settings-dialog {
|
|
14379
14416
|
width: 100%;
|
|
14380
14417
|
max-width: 440px;
|
|
14418
|
+
max-height: calc(100dvh - 32px);
|
|
14381
14419
|
background: var(--squisq-bg);
|
|
14382
14420
|
color: var(--squisq-text);
|
|
14383
14421
|
border: 1px solid var(--squisq-border);
|
|
@@ -14387,6 +14425,7 @@
|
|
|
14387
14425
|
flex-direction: column;
|
|
14388
14426
|
}
|
|
14389
14427
|
.squisq-doc-settings-header {
|
|
14428
|
+
flex-shrink: 0;
|
|
14390
14429
|
display: flex;
|
|
14391
14430
|
align-items: center;
|
|
14392
14431
|
justify-content: space-between;
|
|
@@ -14411,6 +14450,8 @@
|
|
|
14411
14450
|
color: var(--squisq-text);
|
|
14412
14451
|
}
|
|
14413
14452
|
.squisq-doc-settings-body {
|
|
14453
|
+
min-height: 0;
|
|
14454
|
+
overflow-y: auto;
|
|
14414
14455
|
padding: 16px;
|
|
14415
14456
|
display: flex;
|
|
14416
14457
|
flex-direction: column;
|
|
@@ -14452,6 +14493,7 @@
|
|
|
14452
14493
|
font-weight: 600;
|
|
14453
14494
|
}
|
|
14454
14495
|
.squisq-doc-settings-footer {
|
|
14496
|
+
flex-shrink: 0;
|
|
14455
14497
|
display: flex;
|
|
14456
14498
|
justify-content: flex-end;
|
|
14457
14499
|
gap: 8px;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bendyline/squisq-editor-react",
|
|
3
|
-
"version": "2.11.
|
|
3
|
+
"version": "2.11.26",
|
|
4
4
|
"description": "React editor shell with raw/WYSIWYG/preview modes for Squisq documents",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Bendyline",
|
|
@@ -105,9 +105,9 @@
|
|
|
105
105
|
"@bendyline/squisq": "2.11.19",
|
|
106
106
|
"@bendyline/squisq-calc": "2.11.2",
|
|
107
107
|
"@bendyline/squisq-formats": "2.6.20",
|
|
108
|
-
"@bendyline/squisq-grid-react": "2.11.
|
|
109
|
-
"@bendyline/squisq-react": "2.11.
|
|
110
|
-
"@bendyline/squisq-video-react": "2.4.
|
|
108
|
+
"@bendyline/squisq-grid-react": "2.11.21",
|
|
109
|
+
"@bendyline/squisq-react": "2.11.24",
|
|
110
|
+
"@bendyline/squisq-video-react": "2.4.28",
|
|
111
111
|
"@fortawesome/fontawesome-free": "7.3.1",
|
|
112
112
|
"@tiptap/core": "2.27.3",
|
|
113
113
|
"@tiptap/extension-heading": "2.27.3",
|