@bendyline/squisq-editor-react 2.10.2 → 2.11.0

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.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import { C as CodeContext, E as EditorHostMode, S as SceneTextChannel } from './shell-vNr6KOF9.js';
2
- export { B as BlockTagVisibility, a as CodeContextSection, b as CoverImageSaveOutput, D as DashboardImageSaveOutput, c as DocumentLinkCandidate, d as DocumentLinkProvider, e as EditorActions, f as EditorColorScheme, g as EditorContextMenuContext, h as EditorContextMenuItem, i as EditorContextMenuItemVisibility, j as EditorContextMenuProvider, k as EditorContextMenuProviderProps, l as EditorContextValue, m as EditorMode, n as EditorProvider, o as EditorProviderProps, p as EditorShell, q as EditorShellProps, r as EditorState, s as EditorView, I as ImageDisplayMode, L as LayoutMode, M as MentionCandidate, t as MentionProvider, P as PreviewPanel, u as PreviewPanelProps, R as RawEditor, v as RawEditorProps, T as ThemeInheritance, V as ViewPreferences, W as WriteCanvasSettings, w as WysiwygEditor, x as WysiwygEditorProps, y as useEditorContext, z as useEditorContextMenuItems } from './shell-vNr6KOF9.js';
1
+ import { C as CodeContext, E as EditorHostMode, S as SceneTextChannel, a as CalcEngineFactory, b as CsvSourceMeta, X as XlsxSourceMeta, F as FormulaEditRecord } from './shell-DInMVUpf.js';
2
+ export { B as BlockTagVisibility, c as CodeContextSection, d as CoverImageSaveOutput, D as DashboardImageSaveOutput, e as DocumentLinkCandidate, f as DocumentLinkProvider, g as EditorActions, h as EditorColorScheme, i as EditorContextMenuContext, j as EditorContextMenuItem, k as EditorContextMenuItemVisibility, l as EditorContextMenuProvider, m as EditorContextMenuProviderProps, n as EditorContextValue, o as EditorMode, p as EditorProvider, q as EditorProviderProps, r as EditorShell, s as EditorShellProps, t as EditorState, u as EditorView, v as FormulaSessionOptions, I as ImageDisplayMode, w as IngestedSidecar, L as LayoutMode, M as MentionCandidate, x as MentionProvider, P as PreviewPanel, y as PreviewPanelProps, R as RawEditor, z as RawEditorProps, T as ThemeInheritance, V as ViewPreferences, W as WriteCanvasSettings, A as WysiwygEditor, G as WysiwygEditorProps, H as XLSX_LOCKED_REASON, J as XlsxFormulaSession, K as createXlsxFormulaSession, N as ingestSidecarBytes, O as useEditorContext, Q as useEditorContextMenuItems } from './shell-DInMVUpf.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import * as react from 'react';
5
- import { ReactNode, CSSProperties } from 'react';
5
+ import { ReactNode, CSSProperties, ReactElement } from 'react';
6
6
  import { Doc, ScheduledClip, VideoPlacement, VideoPipSize, VideoPipShape, VideoPipPosition, MediaProvider, Theme, CustomTemplateDefinition, ThemeSeedColors, ViewportPreset, ViewportConfig, Block, MediaEntry, DiagramEdgeAnchor } from '@bendyline/squisq/schemas';
7
7
  import { ContentContainer } from '@bendyline/squisq/storage';
8
8
  export { CanvasRect, ImageEditor, ImageEditorAction, ImageEditorProps, ImageEditorState, ImageEditorTool, ImageViewer, ImageViewerProps, UseImageEditorOptions, UseImageEditorReturn, imageEditorReducer, initialImageEditorState, useImageEditor } from './image-editor/index.js';
@@ -23,6 +23,8 @@ import { Transaction, PluginKey } from '@tiptap/pm/state';
23
23
  import { Node } from '@tiptap/pm/model';
24
24
  import { RenderResult } from 'mermaid';
25
25
  import { FenceRendererMap } from '@bendyline/squisq/fence';
26
+ import { TableViewState } from '@bendyline/squisq/table';
27
+ import { EditJournal } from '@bendyline/squisq-grid-react';
26
28
  export { JsonEditor, JsonEditorProps } from './json-editor/index.js';
27
29
  export { C as CameraStreamOptions, D as DEFAULT_RECORDER_DEVICE_SETTINGS, M as MediaDeviceInventory, R as RecordedBookmark, a as RecordedMediaKind, b as RecorderAudioDeviceSettings, c as RecorderButton, d as RecorderButtonProps, e as RecorderCameraDeviceSettings, f as RecorderCameraSaveResult, g as RecorderColorScheme, h as RecorderConstraintMode, i as RecorderDeviceOption, j as RecorderDeviceQuickPicks, k as RecorderDeviceQuickPicksProps, l as RecorderDeviceSettings, m as RecorderDeviceSettingsPanel, n as RecorderDeviceSettingsPanelProps, o as RecorderEncodingSettings, p as RecorderModal, q as RecorderModalProps, r as RecorderNarrationOptions, s as RecorderPanel, t as RecorderPanelProps, u as RecorderSaveResult, v as RecorderScreenAudioSettings, w as RecorderScreenDeviceSettings, x as RecorderSlidesOptions, S as ScreenStreamHandle, y as ScreenStreamOptions, z as SlideTimingSaveResult, T as TimingJson, A as buildRecorderAudioConstraints, B as buildRecorderCameraConstraints, E as buildRecorderScreenAudioConstraints, F as buildRecorderScreenConstraints, G as buildTimingJson, H as encodeTimingJson, I as hasRecorderDeviceChoice, J as recordedMediaKind, K as recorderBitsPerSecond, L as recorderDeviceGroups, N as recorderDeviceOptions, O as requestCameraStream, P as requestMicStream, Q as requestScreenStream, U as timingPathFor, V as useMediaDevices, W as useStreamPreview } from './recorder-GrEh4xE8.js';
28
30
  import { R as RecorderState } from './useNarrationStage-B6r9Zlq-.js';
@@ -31,6 +33,8 @@ export { EYE_LINE_FRACTION, NarrationSavePlan, NarrationSaveResult, NarrationSta
31
33
  export { H as HarperProofingConfig, P as ProofingCapability, a as ProofingDocumentRef, b as ProofingIgnoreStore, c as ProofingLanguage, d as ProofingLintOptions, e as ProofingProvider, f as ProofingProviderFactory } from './types-B_aHRuSc.js';
32
34
  export { createHarperProofingProvider } from './proofing/index.js';
33
35
  export { PROOF_DIALECTS, PROOF_FRONTMATTER_KEYS, ProofCategory, ProofDialect, ProofFinding, ProofRange, ProofSuggestion, ProofSuggestionKind } from '@bendyline/squisq/proof';
36
+ import '@bendyline/squisq-calc';
37
+ import '@bendyline/squisq-formats/xlsx';
34
38
  import '@bendyline/squisq/versions';
35
39
  import '@bendyline/squisq/imageEdit';
36
40
  import '@bendyline/squisq/jsonForm';
@@ -422,9 +426,12 @@ interface FileKind {
422
426
  /**
423
427
  * 'markdown' keeps the full editor (WYSIWYG + Preview tabs); 'code' is
424
428
  * Monaco-only; 'image' renders a dedicated image viewer with no text
425
- * editing surface.
429
+ * editing surface; 'data' marks a tabular data file (csv/tsv/parquet) the
430
+ * host should open as a sidecar-referencing document (or fall back to a
431
+ * plaintext Monaco view) rather than pasting raw bytes into the WYSIWYG
432
+ * markdown editor.
426
433
  */
427
- mode: 'markdown' | 'code' | 'image';
434
+ mode: 'markdown' | 'code' | 'image' | 'data';
428
435
  /** Monaco language ID — passed to `<Editor defaultLanguage={...} />`. */
429
436
  language: string;
430
437
  }
@@ -1350,8 +1357,13 @@ interface MediaBinProps {
1350
1357
  * URLs that the host otherwise exposes to the browser.
1351
1358
  */
1352
1359
  allowBinaryDownloads?: boolean;
1360
+ /**
1361
+ * Relative path of an entry to highlight and scroll into view — how the
1362
+ * data card's "Show in Files" lands on the file it names.
1363
+ */
1364
+ highlightPath?: string | null;
1353
1365
  }
1354
- declare function MediaBin({ mediaProvider, isDark, refreshKey, usedMediaPaths, onMediaUploaded, onMediaRemoved, onCountChange, onRecord, isRecorderOpen, allowBinaryDownloads, }: MediaBinProps): react_jsx_runtime.JSX.Element;
1366
+ declare function MediaBin({ mediaProvider, isDark, refreshKey, usedMediaPaths, onMediaUploaded, onMediaRemoved, onCountChange, onRecord, isRecorderOpen, allowBinaryDownloads, highlightPath, }: MediaBinProps): react_jsx_runtime.JSX.Element;
1355
1367
 
1356
1368
  interface StatusBarProps {
1357
1369
  /** Additional class name */
@@ -1383,7 +1395,7 @@ declare function TooltipLayer(): react.ReactPortal | null;
1383
1395
  * classifies dragged file types (media vs text), and dispatches
1384
1396
  * drop events to callers.
1385
1397
  */
1386
- type FileCategory = 'media' | 'text' | 'unknown';
1398
+ type FileCategory = 'media' | 'text' | 'data' | 'unknown';
1387
1399
  type DragContentType = 'media' | 'text' | 'mixed' | null;
1388
1400
  type DropTarget = 'media' | 'insert' | 'replace';
1389
1401
  declare function classifyFile(file: {
@@ -1439,12 +1451,13 @@ declare function DropZoneOverlay({ dragContentType, zoneProps, hasMediaProvider,
1439
1451
  */
1440
1452
 
1441
1453
  /**
1442
- * Partition an array of files into media and text categories.
1454
+ * Partition an array of files into media, text, and data categories.
1443
1455
  * Files with unknown type are skipped.
1444
1456
  */
1445
1457
  declare function partitionFiles(files: File[]): {
1446
1458
  media: File[];
1447
1459
  text: File[];
1460
+ data: File[];
1448
1461
  };
1449
1462
  /**
1450
1463
  * Add media files to a MediaProvider. Returns the relative paths
@@ -1470,6 +1483,16 @@ declare function partitionFiles(files: File[]): {
1470
1483
  * problematic file doesn't abort a multi-file drop.
1471
1484
  */
1472
1485
  declare function processMediaFiles(files: File[], mediaProvider: MediaProvider): Promise<(string | null)[]>;
1486
+ /**
1487
+ * Store data files (csv/tsv/xlsx/parquet) into the container behind a
1488
+ * MediaProvider, under a caller-supplied directory prefix — conventionally
1489
+ * `dataSidecarPrefix(docBasename)`, i.e. `<docbasename>_files/data/`.
1490
+ *
1491
+ * Same defensive read handling and index-aligned `null` slots as
1492
+ * {@link processMediaFiles}. Name collisions inside the prefix get a
1493
+ * ` -1`, `-2`, … suffix rather than overwriting an existing sidecar.
1494
+ */
1495
+ declare function processDataFiles(files: File[], mediaProvider: MediaProvider, dataDirPrefix: string): Promise<(string | null)[]>;
1473
1496
  /**
1474
1497
  * Read a text-content file and return its content as a markdown string.
1475
1498
  *
@@ -1775,7 +1798,12 @@ interface FenceBlockEntry {
1775
1798
  * (and may use a lenient re-parse gate); a position absent from it is a NEW
1776
1799
  * fence that must pass full detection.
1777
1800
  */
1778
- declare function mapFenceEntries(tr: Transaction, previous: readonly FenceBlockEntry[], doc: Node): Map<number, string>;
1801
+ declare function mapFenceEntries(tr: Transaction, previous: readonly FenceBlockEntry[], doc: Node,
1802
+ /**
1803
+ * Node type the family claims. Defaults to `'codeBlock'` (every fence
1804
+ * family); the data-card family passes `'paragraph'`.
1805
+ */
1806
+ nodeTypeName?: string): Map<number, string>;
1779
1807
 
1780
1808
  /**
1781
1809
  * AsciiDiagramExtension — Tiptap/ProseMirror plugin that turns code blocks
@@ -2823,8 +2851,16 @@ declare const HostFenceExtension: Extension<HostFenceExtensionOptions, any>;
2823
2851
  /**
2824
2852
  * Every event a mounted fence widget must keep to itself. Ordered
2825
2853
  * pointer → key → text-input → composition → clipboard.
2854
+ *
2855
+ * `copy` belongs with `cut`/`paste`: ProseMirror installs its own `copy`
2856
+ * handler on `view.dom` that serializes the DOCUMENT selection into the
2857
+ * clipboard, and since it sits on an ancestor it runs after a widget's own
2858
+ * copy handler — whichever `setData` runs last wins, so a Ctrl/Cmd-C inside
2859
+ * a widget (a selected grid range, a diagram label field) would ship the
2860
+ * document selection instead of the widget's. Its absence while `cut` and
2861
+ * `paste` were contained was an oversight, not a decision.
2826
2862
  */
2827
- declare const FENCE_WIDGET_CONTAINED_EVENTS: readonly ["pointerdown", "mousedown", "keydown", "keyup", "beforeinput", "input", "change", "compositionstart", "compositionupdate", "compositionend", "paste", "cut"];
2863
+ declare const FENCE_WIDGET_CONTAINED_EVENTS: readonly ["pointerdown", "mousedown", "keydown", "keyup", "beforeinput", "input", "change", "compositionstart", "compositionupdate", "compositionend", "copy", "paste", "cut"];
2828
2864
  /**
2829
2865
  * Stop every contained event at `container` so interaction inside a mounted
2830
2866
  * fence widget never reaches the ProseMirror editor that hosts it.
@@ -2834,6 +2870,231 @@ declare const FENCE_WIDGET_CONTAINED_EVENTS: readonly ["pointerdown", "mousedown
2834
2870
  */
2835
2871
  declare function containFenceWidgetEvents(container: HTMLElement): void;
2836
2872
 
2873
+ /**
2874
+ * DataCardExtension — the Write-view "rectangle" for data sidecar files.
2875
+ *
2876
+ * A paragraph whose entire content is one link to a relative data file
2877
+ * (`[q3.csv](report_files/data/q3.csv)` — the graceful-degradation body link
2878
+ * under a `{[dataTable src=…]}` heading) is hidden and a summary card mounts
2879
+ * in its place: file name, size, rows × cols, and a small preview.
2880
+ *
2881
+ * Structurally a sibling of `fenceWidgets/HostFenceExtension`, claiming
2882
+ * PARAGRAPHS instead of code fences: same position registry with stable
2883
+ * synthetic ids (via the generalized `mapFenceEntries`), same hide-the-node
2884
+ * decoration + React-root widget with `containFenceWidgetEvents`.
2885
+ *
2886
+ * The claim predicate is synchronous and doc-content-only (relative href +
2887
+ * data extension) — never an async listMedia consultation, so plugin state
2888
+ * stays deterministic per transaction. A claimed card whose file is missing
2889
+ * renders the error state instead of un-claiming.
2890
+ *
2891
+ * READ-ONLY by design in this phase: the card never touches the ProseMirror
2892
+ * document, so markdown round-trips byte-identically with the extension
2893
+ * active (`dataCard.test.tsx` holds that contract).
2894
+ */
2895
+
2896
+ type DataCardBlockEntry = FenceBlockEntry;
2897
+ interface DataCardPluginState {
2898
+ entries: DataCardBlockEntry[];
2899
+ decorations: DecorationSet;
2900
+ seq: number;
2901
+ }
2902
+ declare const DATA_CARD_KEY: PluginKey<DataCardPluginState>;
2903
+ interface DataCardExtensionOptions {
2904
+ /** When false, the extension is inert. */
2905
+ enabled?: boolean;
2906
+ /** Getter — stays live without an editor remount (the mentionProvider pattern). */
2907
+ mediaProvider?: () => MediaProvider | null | undefined;
2908
+ /** Getter for the media revision; a bump re-resolves mounted cards. */
2909
+ mediaRevision?: () => number;
2910
+ /**
2911
+ * Getter for the workspace container — enables the grid save flow's
2912
+ * `.versions/data/` pre-save backups. Absent = saves proceed without a
2913
+ * backup (and say so).
2914
+ */
2915
+ container?: () => ContentContainer | null | undefined;
2916
+ /** Open the Files panel focused on a sidecar path. */
2917
+ onOpenFiles?: (relativePath: string) => void;
2918
+ /** Notified after a successful sidecar save (hosts bump mediaRevision). */
2919
+ onMediaSaved?: () => void;
2920
+ /** Getter for the calc backend of formula sessions (default in-house). */
2921
+ calcEngineFactory?: () => CalcEngineFactory | null | undefined;
2922
+ }
2923
+ /**
2924
+ * The single data-file href a paragraph is entirely made of, or null.
2925
+ * Every text child must carry the SAME link href; any unlinked or
2926
+ * non-text content disqualifies the paragraph (an inline link in prose
2927
+ * stays prose).
2928
+ */
2929
+ declare function dataLinkHrefOf(node: Node): string | null;
2930
+ declare function findDataCardBlockPos(editor: Editor, blockId: string): number | null;
2931
+ declare const DataCardExtension: Extension<DataCardExtensionOptions, any>;
2932
+
2933
+ /**
2934
+ * DataCardWidget — the Write-view surface for a data sidecar reference.
2935
+ *
2936
+ * ALWAYS-GRID contract: every `{[dataTable src=…]}` block mounts the real
2937
+ * virtualized grid (`@bendyline/squisq-grid-react`, lazily imported), with
2938
+ * the summary card's identity strip (icon, name, size, rows×cols,
2939
+ * Show-in-Files) as the grid's header. The compact preview card remains
2940
+ * ONLY as the runtime fallback when the grid module fails to load — plus
2941
+ * the unchanged missing/metadata error states.
2942
+ *
2943
+ * View state (sort/filter) binds to the OWNING heading's annotation params
2944
+ * when the heading really owns this sidecar (see viewStateBinding.ts);
2945
+ * otherwise it is session-only and the grid footer says so. CSV/TSV edits
2946
+ * save in place through gridSave.ts; XLSX edits (values, and formulas when
2947
+ * the calc-engine session boots within budget) save through in-place
2948
+ * patching; parquet mounts read-only with a reason chip.
2949
+ *
2950
+ * The underlying PM paragraph is still never touched by the widget itself —
2951
+ * only the heading's `dataTemplateParams` attribute changes, through the
2952
+ * ordinary PM-undoable transaction path.
2953
+ */
2954
+
2955
+ interface DataCardWidgetProps {
2956
+ editor: Editor;
2957
+ blockId: string;
2958
+ getMediaProvider: () => MediaProvider | null | undefined;
2959
+ getMediaRevision: () => number;
2960
+ getContainer?: (() => ContentContainer | null | undefined) | undefined;
2961
+ onOpenFiles?: ((relativePath: string) => void) | undefined;
2962
+ onMediaSaved?: (() => void) | undefined;
2963
+ /** Calc backend for formula sessions (default: the in-house tier). */
2964
+ getCalcEngineFactory?: (() => CalcEngineFactory | null | undefined) | undefined;
2965
+ }
2966
+ declare function DataCardWidget({ editor, blockId, getMediaProvider, getMediaRevision, getContainer, onOpenFiles, onMediaSaved, getCalcEngineFactory, }: DataCardWidgetProps): ReactElement | null;
2967
+
2968
+ /**
2969
+ * Data preview loading for the Write-view data card: bytes → a small
2970
+ * `DataPreview` window via the formats data readers, loaded lazily so a
2971
+ * document with no data references costs nothing. Results are cached by
2972
+ * `(path, mediaRevision)` — a re-uploaded sidecar bumps the revision and
2973
+ * naturally misses the cache.
2974
+ */
2975
+ interface DataPreview {
2976
+ columns: string[];
2977
+ rows: string[][];
2978
+ totalRows: number | null;
2979
+ totalCols: number | null;
2980
+ }
2981
+ /** Lowercase extension of a path, or empty string. */
2982
+ declare function dataExtensionOf(path: string): string;
2983
+ /**
2984
+ * Parse a bounded preview from raw bytes. Returns null when no reader is
2985
+ * available for the extension (e.g. parquet without the optional peer) —
2986
+ * the card then renders its metadata-only state. Parse failures also
2987
+ * resolve to null rather than throwing.
2988
+ */
2989
+ declare function loadDataPreview(bytes: ArrayBuffer, ext: string, opts?: {
2990
+ maxRows?: number;
2991
+ sheet?: string;
2992
+ anchor?: string;
2993
+ }): Promise<DataPreview | null>;
2994
+
2995
+ /**
2996
+ * Binds the grid's view state (sort/filter) to the OWNING heading's
2997
+ * `{[dataTable …]}` annotation params — the document-persisted half of the
2998
+ * "author's sort IS part of the document" contract.
2999
+ *
3000
+ * Persistence guard: params are written ONLY when the owning heading's
3001
+ * template resolves into `TABLE_FED_TEMPLATES` AND its `src` equals the
3002
+ * card's href — a data-link paragraph under a template-less heading gets
3003
+ * SESSION-ONLY view state rather than a fabricated annotation.
3004
+ *
3005
+ * Writes go through the established single-transaction pattern
3006
+ * (`tr.setNodeAttribute(pos, 'dataTemplateParams', serialized || null)`,
3007
+ * see scene/commands/drawingCommands.ts) with canonical
3008
+ * `key=quoteAttrValue(value)` serialization; existing params keep their
3009
+ * order, `sort`/`filter` update in place or append — `paramsEqual` in
3010
+ * docToMarkdown is order-insensitive, so repeat writes stay byte-stable.
3011
+ */
3012
+
3013
+ interface HeadingViewBinding {
3014
+ /** Heading node position, when an owning heading exists. */
3015
+ headingPos: number | null;
3016
+ /** True when sort/filter writes persist to the document. */
3017
+ persisted: boolean;
3018
+ /** All annotation params on the heading (raw, unquoted values). */
3019
+ params: Record<string, string>;
3020
+ /** Raw sort/filter param values, for `parseTableViewState`. */
3021
+ sortRaw?: string;
3022
+ filterRaw?: string;
3023
+ }
3024
+ /** Resolve the owning heading + persistence eligibility for a card. */
3025
+ declare function readHeadingViewBinding(editor: Editor, cardPos: number, href: string): HeadingViewBinding;
3026
+ /**
3027
+ * Write the view state onto the heading annotation (one transaction,
3028
+ * PM-undoable). Returns false when the write couldn't apply (stale pos).
3029
+ */
3030
+ declare function writeHeadingViewState(editor: Editor, cardPos: number, href: string, view: TableViewState): boolean;
3031
+ /** Parse the binding's raw params into a `TableViewState` for the grid. */
3032
+ declare function viewStateFromBinding(binding: HeadingViewBinding, headers: readonly string[]): TableViewState;
3033
+
3034
+ /**
3035
+ * Grid save orchestration for CSV/TSV sidecars: journal → serialized bytes
3036
+ * → in-place overwrite, with a `.versions/data/` pre-save backup.
3037
+ *
3038
+ * Order of operations and their whys:
3039
+ * 1. BACKUP the original bytes first (`buildDataBackupPath`, pruned to the
3040
+ * newest 3 per sidecar) — the only cross-save undo the grid offers.
3041
+ * No container = no backup; the result says so rather than hiding it.
3042
+ * 2. Serialize from the ORIGINAL parsed rows with journal edits splatted
3043
+ * in — unedited cells reproduce the parse product byte-for-byte (values,
3044
+ * not necessarily quoting style), sidestepping float-rendering drift.
3045
+ * Formula neutralization applies ONLY to journal-edited, non-numeric
3046
+ * cells (`serializeCsvRows` defaults `preserve`; blanket escaping would
3047
+ * corrupt every negative number in a re-saved file).
3048
+ * 3. `addMedia(samePath)` with FORK DETECTION: `addMedia` returns the path
3049
+ * the host actually used, and a collision-renaming provider would
3050
+ * silently fork the document's reference — surface it instead.
3051
+ * 4. The caller bumps mediaRevision (previews re-resolve, journal cache
3052
+ * rotates) only on success.
3053
+ */
3054
+
3055
+ interface GridSaveResult {
3056
+ ok: boolean;
3057
+ /** Path actually written (differs from requested on a host fork). */
3058
+ savedPath?: string;
3059
+ /** Human-readable caveats: fork detected, backup skipped, … */
3060
+ notices: string[];
3061
+ error?: string;
3062
+ }
3063
+ interface SaveCsvEditsOptions {
3064
+ path: string;
3065
+ originalBytes: ArrayBuffer;
3066
+ csv: CsvSourceMeta;
3067
+ journal: EditJournal;
3068
+ mediaProvider: MediaProvider;
3069
+ container: ContentContainer | null;
3070
+ }
3071
+ declare function saveCsvEdits(options: SaveCsvEditsOptions): Promise<GridSaveResult>;
3072
+ interface SaveXlsxEditsOptions {
3073
+ path: string;
3074
+ originalBytes: ArrayBuffer;
3075
+ xlsx: XlsxSourceMeta;
3076
+ journal: EditJournal;
3077
+ /** Formula edits from the calc-engine session, keyed `"row:col"`. */
3078
+ formulaEdits?: ReadonlyMap<string, FormulaEditRecord>;
3079
+ mediaProvider: MediaProvider;
3080
+ container: ContentContainer | null;
3081
+ }
3082
+ /**
3083
+ * Save journal edits into an XLSX sidecar via in-place cell patching.
3084
+ *
3085
+ * Journal rowIds are BODY row indices within the region; the region's
3086
+ * anchor (+ header offset) maps them back to sheet addresses. The patcher
3087
+ * is all-or-nothing — a refused cell (formula/date, which the grid's lock
3088
+ * predicate should have prevented) fails the whole save with its reason.
3089
+ */
3090
+ declare function saveXlsxEdits(options: SaveXlsxEditsOptions): Promise<GridSaveResult>;
3091
+
3092
+ /**
3093
+ * Returns the heading position for the block owning a document position.
3094
+ * A block begins at a top-level heading and continues until the next heading.
3095
+ */
3096
+ declare function findOwningHeadingPosition(doc: Node, position: number): number | null;
3097
+
2837
3098
  /**
2838
3099
  * TimelineViewExtension — mounts a WYSIWYG timeline editor over qualifying
2839
3100
  * authored timeline code fences while keeping the fence text as source of
@@ -3106,4 +3367,4 @@ declare function unshownSlidesWarning(total: number, unshown: number): string |
3106
3367
  /** The exact label of the review-state block-timings checkbox. */
3107
3368
  declare const SLIDE_TIMING_CHECKBOX_LABEL = "Update block timings when I save this narration";
3108
3369
 
3109
- export { ALL_PICKER_ENTRIES, type AddTimelineEventOptions, type AddTimelineEventResult, type ApplyAsciiDiagramCommandOptions, type AsciiDiagramBlockEntry, AsciiDiagramExtension, type AsciiDiagramExtensionOptions, type AsciiDiagramPluginState, type AsciiDiagramView, AsciiDiagramWidget, BlockCardView, type BlockCardViewProps, type BlockNavigator, BlockPropertiesPopover, type BlockPropertiesPopoverProps, type BlockRange, type BlockSlice, CODE_SNIPPET_KEY, CODE_SNIPPET_LANGUAGES, CodeContext, CodeContextZones, type CodeSnippetBlockEntry, type CodeSnippetData, CodeSnippetExtension, type CodeSnippetExtensionOptions, type CodeSnippetLanguage, type CodeSnippetPluginState, CodeSnippetWidget, type CodeSnippetWidgetProps, type CustomTemplateContextValue, CustomTemplateProvider, type CustomTemplateProviderProps, type CustomThemeContextValue, CustomThemeProvider, type CustomThemeProviderProps, DEFAULT_MERMAID_DIAGRAM_TYPE, DiagramCanvas, type DiagramCommand, type DiagramData, type DiagramEdge, type DiagramNode, type DirectionModel, type DocCustomTemplates, type DocCustomThemes, DocumentSettingsDialog, type DocumentSettingsDialogProps, type DragContentType, type DropTarget, DropZoneOverlay, type DropZoneOverlayProps, EMPTY_TRANSITION, EditorHostMode, EmojiPicker, type EmojiPickerProps, FENCE_WIDGET_CONTAINED_EVENTS, type FenceBlockEntry, type FileCategory, type FileKind, type FolderEntry, FolderView, type FolderViewProps, HOST_FENCE_KEY, type HeadingTransitionAttrs, HeadingWithTemplate, type HostFenceBlockEntry, HostFenceExtension, type HostFenceExtensionOptions, type HostFencePluginState, ImportThemeSection, type ImportThemeSectionProps, type ImportedThemeResult, InlinePreviewGutter, type InlinePreviewGutterProps, MERMAID_DIAGRAM_KEY, MERMAID_DIAGRAM_TYPES, MERMAID_FLOWCHART_SHAPES, MediaBin, type MediaBinProps, type MediaClipPatch, type MermaidDiagramBlockEntry, MermaidDiagramCanvas, type MermaidDiagramCanvasProps, type MermaidDiagramCategory, type MermaidDiagramData, MermaidDiagramExtension, type MermaidDiagramExtensionOptions, type MermaidDiagramPluginState, type MermaidDiagramPreview, type MermaidDiagramProperty, type MermaidDiagramType, MermaidDiagramTypeThumbnail, MermaidDiagramWidget, type MermaidDiagramWidgetProps, type MermaidEditCapabilities, type MermaidEditableDiagramKind, type MermaidEditableEdge, type MermaidEditableModel, type MermaidEditableNode, type MermaidEditableText, type MermaidEditableTextTarget, type MermaidFlowchartDirection, type MermaidFlowchartModel, type MermaidFlowchartShape, type MermaidFlowchartShapeId, type MermaidNodeCanvasAction, type MermaidRenderResult, type MermaidSelection, MermaidShapePalette, type MermaidShapePaletteProps, type MermaidSourceEditableModel, type MermaidSurfaceScheme, MonacoLanguageLoadOptions, MonacoLanguageRequest, OutlinePanel, type OutlinePanelProps, PICKER_CATEGORIES, type PickerCategory, type PickerEntry, PlainHtmlPreview, type PlainHtmlPreviewProps, PreviewFormatSwitch, PreviewModeMenu, PreviewModeSwitch, type PreviewSettings, PreviewSettingsProvider, PreviewToolbarControls, type PreviewToolbarControlsProps, REPAIRABLE_KEY, type RecorderPanelMode, type RecorderSlide, RecorderSlidesPanel, type RecorderSlidesPanelProps, RecorderState, type RepairableBlockEntry, RepairableDiagramExtension, type RepairableDiagramExtensionOptions, type RepairablePluginState, SLIDE_TIMING_CHECKBOX_LABEL, StatusBar, type StatusBarProps, Subscript, Superscript, TIMELINE_VIEW_KEY, TRANSITION_ENTRIES, TRANSITION_GROUPS, TemplatePicker, ThemeCustomizerPanel, type ThemeCustomizerPanelProps, ThemePicker, type ThemePickerProps, type ThemeSaveExtras, type TimelineBlockEntry, type TimelineCommand, type TimelineCommandResult, TimelineCompositionPanel, type TimelineCompositionPanelProps, TimelineEditorWidget, type TimelineEditorWidgetProps, type TimelineEventPatch, TimelineToolbar, type TimelineToolbarProps, TimelineTrack, type TimelineTrackProps, TimelineVideoPanel, type TimelineVideoPanelProps, type TimelineViewData, TimelineViewExtension, type TimelineViewExtensionOptions, type TimelineViewPluginState, Toolbar, type ToolbarProps, TooltipLayer, TransformMenu, type TransitionCatalogEntry, type TransitionFields, type TransitionGroup, TransitionPicker, type TransitionPickerProps, type TreeBlockEntry, type TreeCommand, TreeOutlineWidget, type TreeViewData, TreeViewExtension, type TreeViewExtensionOptions, type TreeViewPluginState, type UseBlockNavigatorOptions, type UseFileDropOptions, type UseFileDropResult, type UseMonacoLoaderResult, VersionHistoryPanel, ViewMenuPanel, ViewSwitcher, type ViewSwitcherProps, type WrapPolicyIngest, adaptThemeToSurface, addEdgeOp, addItemOp, addNodeOp, addTimelineEventOp, applyAsciiDiagramCommand, applyRepairCommand, applyTimelineCommand, applyTreeCommand, asciiDiagramToCanvas, buildRecorderSlideDeck, clampSlideIndex, classifyFile, codeSnippetFenceLanguageToken, codeSnippetLanguageLabel, codeSnippetMarkdown, containFenceWidgetEvents, detectLanguageFromFileName, draftPatchFromImportedTheme, findAsciiDiagramBlockPos, findCodeSnippetBlockPos, findHostFenceBlockPos, findMermaidDiagramBlockPos, findRepairableBlockPos, findTimelineBlockPos, findTransitionEntry, findTreeBlockPos, formatSeconds, getBlockSlices, getTimelineForNode, indentItemOp, ingestForWrite, inspectMermaidSource, isAsciiSourceVisible, isCodeSnippetFenceLanguage, isCodeSnippetNode, isExpandedPanel, isMermaidDiagramNode, isMermaidFlowchartShapeId, isMermaidSourceVisible, isRepairableFence, isTimelineSourceSafeForSemanticEdit, lineToOffset, mapFenceEntries, markdownToTiptap, mermaidDiagramMarkdown, mermaidDiagramProperties, mermaidEditCapabilities, mermaidEditableTexts, mermaidErrorMessage, mermaidSurfaceScheme, monacoLanguageForFence, moveItemDownOp, moveItemUpOp, moveNodeOp, nextTimelineEventId, normalizeMermaidFlowchartShape, offsetToLine, outdentItemOp, panelModeAfterToggle, parseTimelineForNode, partitionFiles, persistFromWrite, preloadMonaco, preloadMonacoSuggestions, processMediaFiles, processTextFile, processTextFiles, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, removeEdgeOp, removeItemOp, removeNodeOp, removeTimelineEventOp, renameItemOp, renameNodeOp, renderMermaidDiagram, replaceAsciiFenceText, replaceCodeSnippetText, replaceHostFenceText, replaceAsciiFenceText as replaceTreeFenceText, resizeNodeOp, resolveFileKind, resolveMermaidSurfaceTheme, sanitizeAsciiLabel, sanitizeTimelineText, sanitizeTreeLabel, searchPickerEntries, setBlockAttrsValue, setBlockDurationInSource, setBlockStartTimeInSource, setBlockTransitionInSource, setHeadingAttrsTransition, setHeadingLineTransition, setMediaClipInSource, shouldPasteAsAsciiFence, shouldPasteAsTimelineFence, shouldPasteAsTreeFence, showSlideTimingCheckbox, sliceIndexAtOffset, slideStepForKey, spliceBlock, summarizeBlockProps, templateLabel, tiptapToMarkdown, toggleAsciiSource, toggleDirOp, toggleMermaidSource, transitionLabel, translateDiagramOp, unshownSlidesWarning, updateTimelineEventOp, useAsciiDiagramData, useBlockNavigator, useCodeSnippetData, useCustomTemplates, useCustomThemes, useDocCustomTemplates, useDocCustomThemes, useFileDrop, useMermaidDiagramData, useMermaidSurfaceTheme, useMonacoLoader, usePreviewSettings, useTimelineData, useTreeViewData };
3370
+ export { ALL_PICKER_ENTRIES, type AddTimelineEventOptions, type AddTimelineEventResult, type ApplyAsciiDiagramCommandOptions, type AsciiDiagramBlockEntry, AsciiDiagramExtension, type AsciiDiagramExtensionOptions, type AsciiDiagramPluginState, type AsciiDiagramView, AsciiDiagramWidget, BlockCardView, type BlockCardViewProps, type BlockNavigator, BlockPropertiesPopover, type BlockPropertiesPopoverProps, type BlockRange, type BlockSlice, CODE_SNIPPET_KEY, CODE_SNIPPET_LANGUAGES, CalcEngineFactory, CodeContext, CodeContextZones, type CodeSnippetBlockEntry, type CodeSnippetData, CodeSnippetExtension, type CodeSnippetExtensionOptions, type CodeSnippetLanguage, type CodeSnippetPluginState, CodeSnippetWidget, type CodeSnippetWidgetProps, CsvSourceMeta, type CustomTemplateContextValue, CustomTemplateProvider, type CustomTemplateProviderProps, type CustomThemeContextValue, CustomThemeProvider, type CustomThemeProviderProps, DATA_CARD_KEY, DEFAULT_MERMAID_DIAGRAM_TYPE, type DataCardBlockEntry, DataCardExtension, type DataCardExtensionOptions, type DataCardPluginState, DataCardWidget, type DataPreview, DiagramCanvas, type DiagramCommand, type DiagramData, type DiagramEdge, type DiagramNode, type DirectionModel, type DocCustomTemplates, type DocCustomThemes, DocumentSettingsDialog, type DocumentSettingsDialogProps, type DragContentType, type DropTarget, DropZoneOverlay, type DropZoneOverlayProps, EMPTY_TRANSITION, EditorHostMode, EmojiPicker, type EmojiPickerProps, FENCE_WIDGET_CONTAINED_EVENTS, type FenceBlockEntry, type FileCategory, type FileKind, type FolderEntry, FolderView, type FolderViewProps, FormulaEditRecord, type GridSaveResult, HOST_FENCE_KEY, type HeadingTransitionAttrs, type HeadingViewBinding, HeadingWithTemplate, type HostFenceBlockEntry, HostFenceExtension, type HostFenceExtensionOptions, type HostFencePluginState, ImportThemeSection, type ImportThemeSectionProps, type ImportedThemeResult, InlinePreviewGutter, type InlinePreviewGutterProps, MERMAID_DIAGRAM_KEY, MERMAID_DIAGRAM_TYPES, MERMAID_FLOWCHART_SHAPES, MediaBin, type MediaBinProps, type MediaClipPatch, type MermaidDiagramBlockEntry, MermaidDiagramCanvas, type MermaidDiagramCanvasProps, type MermaidDiagramCategory, type MermaidDiagramData, MermaidDiagramExtension, type MermaidDiagramExtensionOptions, type MermaidDiagramPluginState, type MermaidDiagramPreview, type MermaidDiagramProperty, type MermaidDiagramType, MermaidDiagramTypeThumbnail, MermaidDiagramWidget, type MermaidDiagramWidgetProps, type MermaidEditCapabilities, type MermaidEditableDiagramKind, type MermaidEditableEdge, type MermaidEditableModel, type MermaidEditableNode, type MermaidEditableText, type MermaidEditableTextTarget, type MermaidFlowchartDirection, type MermaidFlowchartModel, type MermaidFlowchartShape, type MermaidFlowchartShapeId, type MermaidNodeCanvasAction, type MermaidRenderResult, type MermaidSelection, MermaidShapePalette, type MermaidShapePaletteProps, type MermaidSourceEditableModel, type MermaidSurfaceScheme, MonacoLanguageLoadOptions, MonacoLanguageRequest, OutlinePanel, type OutlinePanelProps, PICKER_CATEGORIES, type PickerCategory, type PickerEntry, PlainHtmlPreview, type PlainHtmlPreviewProps, PreviewFormatSwitch, PreviewModeMenu, PreviewModeSwitch, type PreviewSettings, PreviewSettingsProvider, PreviewToolbarControls, type PreviewToolbarControlsProps, REPAIRABLE_KEY, type RecorderPanelMode, type RecorderSlide, RecorderSlidesPanel, type RecorderSlidesPanelProps, RecorderState, type RepairableBlockEntry, RepairableDiagramExtension, type RepairableDiagramExtensionOptions, type RepairablePluginState, SLIDE_TIMING_CHECKBOX_LABEL, type SaveCsvEditsOptions, type SaveXlsxEditsOptions, StatusBar, type StatusBarProps, Subscript, Superscript, TIMELINE_VIEW_KEY, TRANSITION_ENTRIES, TRANSITION_GROUPS, TemplatePicker, ThemeCustomizerPanel, type ThemeCustomizerPanelProps, ThemePicker, type ThemePickerProps, type ThemeSaveExtras, type TimelineBlockEntry, type TimelineCommand, type TimelineCommandResult, TimelineCompositionPanel, type TimelineCompositionPanelProps, TimelineEditorWidget, type TimelineEditorWidgetProps, type TimelineEventPatch, TimelineToolbar, type TimelineToolbarProps, TimelineTrack, type TimelineTrackProps, TimelineVideoPanel, type TimelineVideoPanelProps, type TimelineViewData, TimelineViewExtension, type TimelineViewExtensionOptions, type TimelineViewPluginState, Toolbar, type ToolbarProps, TooltipLayer, TransformMenu, type TransitionCatalogEntry, type TransitionFields, type TransitionGroup, TransitionPicker, type TransitionPickerProps, type TreeBlockEntry, type TreeCommand, TreeOutlineWidget, type TreeViewData, TreeViewExtension, type TreeViewExtensionOptions, type TreeViewPluginState, type UseBlockNavigatorOptions, type UseFileDropOptions, type UseFileDropResult, type UseMonacoLoaderResult, VersionHistoryPanel, ViewMenuPanel, ViewSwitcher, type ViewSwitcherProps, type WrapPolicyIngest, XlsxSourceMeta, adaptThemeToSurface, addEdgeOp, addItemOp, addNodeOp, addTimelineEventOp, applyAsciiDiagramCommand, applyRepairCommand, applyTimelineCommand, applyTreeCommand, asciiDiagramToCanvas, buildRecorderSlideDeck, clampSlideIndex, classifyFile, codeSnippetFenceLanguageToken, codeSnippetLanguageLabel, codeSnippetMarkdown, containFenceWidgetEvents, dataExtensionOf, dataLinkHrefOf, detectLanguageFromFileName, draftPatchFromImportedTheme, findAsciiDiagramBlockPos, findCodeSnippetBlockPos, findDataCardBlockPos, findHostFenceBlockPos, findMermaidDiagramBlockPos, findOwningHeadingPosition, findRepairableBlockPos, findTimelineBlockPos, findTransitionEntry, findTreeBlockPos, formatSeconds, getBlockSlices, getTimelineForNode, indentItemOp, ingestForWrite, inspectMermaidSource, isAsciiSourceVisible, isCodeSnippetFenceLanguage, isCodeSnippetNode, isExpandedPanel, isMermaidDiagramNode, isMermaidFlowchartShapeId, isMermaidSourceVisible, isRepairableFence, isTimelineSourceSafeForSemanticEdit, lineToOffset, loadDataPreview, mapFenceEntries, markdownToTiptap, mermaidDiagramMarkdown, mermaidDiagramProperties, mermaidEditCapabilities, mermaidEditableTexts, mermaidErrorMessage, mermaidSurfaceScheme, monacoLanguageForFence, moveItemDownOp, moveItemUpOp, moveNodeOp, nextTimelineEventId, normalizeMermaidFlowchartShape, offsetToLine, outdentItemOp, panelModeAfterToggle, parseTimelineForNode, partitionFiles, persistFromWrite, preloadMonaco, preloadMonacoSuggestions, processDataFiles, processMediaFiles, processTextFile, processTextFiles, readBlockAttrsParams, readBlockAttrsTransition, readBlockAttrsValue, readHeadingLineTransition, readHeadingViewBinding, removeEdgeOp, removeItemOp, removeNodeOp, removeTimelineEventOp, renameItemOp, renameNodeOp, renderMermaidDiagram, replaceAsciiFenceText, replaceCodeSnippetText, replaceHostFenceText, replaceAsciiFenceText as replaceTreeFenceText, resizeNodeOp, resolveFileKind, resolveMermaidSurfaceTheme, sanitizeAsciiLabel, sanitizeTimelineText, sanitizeTreeLabel, saveCsvEdits, saveXlsxEdits, searchPickerEntries, setBlockAttrsValue, setBlockDurationInSource, setBlockStartTimeInSource, setBlockTransitionInSource, setHeadingAttrsTransition, setHeadingLineTransition, setMediaClipInSource, shouldPasteAsAsciiFence, shouldPasteAsTimelineFence, shouldPasteAsTreeFence, showSlideTimingCheckbox, sliceIndexAtOffset, slideStepForKey, spliceBlock, summarizeBlockProps, templateLabel, tiptapToMarkdown, toggleAsciiSource, toggleDirOp, toggleMermaidSource, transitionLabel, translateDiagramOp, unshownSlidesWarning, updateTimelineEventOp, useAsciiDiagramData, useBlockNavigator, useCodeSnippetData, useCustomTemplates, useCustomThemes, useDocCustomTemplates, useDocCustomThemes, useFileDrop, useMermaidDiagramData, useMermaidSurfaceTheme, useMonacoLoader, usePreviewSettings, useTimelineData, useTreeViewData, viewStateFromBinding, writeHeadingViewState };
package/dist/index.js CHANGED
@@ -22,8 +22,11 @@ import {
22
22
  CodeSnippetWidget,
23
23
  CustomTemplateProvider,
24
24
  CustomThemeProvider,
25
+ DATA_CARD_KEY,
25
26
  DEFAULT_DRAFT,
26
27
  DEFAULT_MERMAID_DIAGRAM_TYPE,
28
+ DataCardExtension,
29
+ DataCardWidget,
27
30
  DiagramCanvas,
28
31
  DocumentSettingsDialog,
29
32
  DropZoneOverlay,
@@ -88,6 +91,7 @@ import {
88
91
  VersionHistoryPanel,
89
92
  ViewMenuPanel,
90
93
  WysiwygEditor,
94
+ XLSX_LOCKED_REASON,
91
95
  adaptThemeToSurface,
92
96
  addEdgeOp,
93
97
  addItemOp,
@@ -104,12 +108,17 @@ import {
104
108
  codeSnippetMarkdown,
105
109
  compileDraft,
106
110
  containFenceWidgetEvents,
111
+ createXlsxFormulaSession,
112
+ dataExtensionOf,
113
+ dataLinkHrefOf,
107
114
  detectLanguageFromFileName,
108
115
  draftPatchFromImportedTheme,
109
116
  findAsciiDiagramBlockPos,
110
117
  findCodeSnippetBlockPos,
118
+ findDataCardBlockPos,
111
119
  findHostFenceBlockPos,
112
120
  findMermaidDiagramBlockPos,
121
+ findOwningHeadingPosition,
113
122
  findRepairableBlockPos,
114
123
  findTimelineBlockPos,
115
124
  findTransitionEntry,
@@ -119,6 +128,7 @@ import {
119
128
  getTimelineForNode,
120
129
  indentItemOp,
121
130
  ingestForWrite,
131
+ ingestSidecarBytes,
122
132
  inspectMermaidSource,
123
133
  isAsciiSourceVisible,
124
134
  isCodeSnippetFenceLanguage,
@@ -129,6 +139,7 @@ import {
129
139
  isRepairableFence,
130
140
  isTimelineSourceSafeForSemanticEdit,
131
141
  lineToOffset,
142
+ loadDataPreview,
132
143
  mapFenceEntries,
133
144
  mermaidDiagramMarkdown,
134
145
  mermaidDiagramProperties,
@@ -150,6 +161,7 @@ import {
150
161
  platformShortcut,
151
162
  preloadMonaco,
152
163
  preloadMonacoSuggestions,
164
+ processDataFiles,
153
165
  processMediaFiles,
154
166
  processTextFile,
155
167
  processTextFiles,
@@ -157,6 +169,7 @@ import {
157
169
  readBlockAttrsTransition,
158
170
  readBlockAttrsValue,
159
171
  readHeadingLineTransition,
172
+ readHeadingViewBinding,
160
173
  removeEdgeOp,
161
174
  removeItemOp,
162
175
  removeNodeOp,
@@ -173,6 +186,8 @@ import {
173
186
  sanitizeAsciiLabel,
174
187
  sanitizeTimelineText,
175
188
  sanitizeTreeLabel,
189
+ saveCsvEdits,
190
+ saveXlsxEdits,
176
191
  searchPickerEntries,
177
192
  setBlockAttrsValue,
178
193
  setBlockDurationInSource,
@@ -211,8 +226,10 @@ import {
211
226
  useMonacoLoader,
212
227
  usePreviewSettings,
213
228
  useTimelineData,
214
- useTreeViewData
215
- } from "./chunk-HFNE3K7X.js";
229
+ useTreeViewData,
230
+ viewStateFromBinding,
231
+ writeHeadingViewState
232
+ } from "./chunk-FT5F2EGI.js";
216
233
  import "./chunk-V4NBQF5C.js";
217
234
  import {
218
235
  JsonEditor
@@ -741,9 +758,12 @@ export {
741
758
  CodeSnippetWidget,
742
759
  CustomTemplateProvider,
743
760
  CustomThemeProvider,
761
+ DATA_CARD_KEY,
744
762
  DEFAULT_MERMAID_DIAGRAM_TYPE,
745
763
  DEFAULT_RECORDER_DEVICE_SETTINGS,
746
764
  DEFAULT_TELEPROMPTER_PREFS,
765
+ DataCardExtension,
766
+ DataCardWidget,
747
767
  DiagramCanvas,
748
768
  DocumentSettingsDialog,
749
769
  DropZoneOverlay,
@@ -825,6 +845,7 @@ export {
825
845
  ViewMenuPanel,
826
846
  ViewSwitcher,
827
847
  WysiwygEditor,
848
+ XLSX_LOCKED_REASON,
828
849
  adaptThemeToSurface,
829
850
  addEdgeOp,
830
851
  addItemOp,
@@ -854,6 +875,9 @@ export {
854
875
  containFenceWidgetEvents,
855
876
  createFloatingWindowManager,
856
877
  createHarperProofingProvider,
878
+ createXlsxFormulaSession,
879
+ dataExtensionOf,
880
+ dataLinkHrefOf,
857
881
  detectFloatTiers,
858
882
  detectLanguageFromFileName,
859
883
  documentTitleFromFileName,
@@ -863,8 +887,10 @@ export {
863
887
  executeNarrationSave,
864
888
  findAsciiDiagramBlockPos,
865
889
  findCodeSnippetBlockPos,
890
+ findDataCardBlockPos,
866
891
  findHostFenceBlockPos,
867
892
  findMermaidDiagramBlockPos,
893
+ findOwningHeadingPosition,
868
894
  findRepairableBlockPos,
869
895
  findTimelineBlockPos,
870
896
  findTransitionEntry,
@@ -877,6 +903,7 @@ export {
877
903
  imageEditorReducer,
878
904
  indentItemOp,
879
905
  ingestForWrite,
906
+ ingestSidecarBytes,
880
907
  initialImageEditorState,
881
908
  insertNarrationPreamble,
882
909
  inspectMermaidSource,
@@ -890,6 +917,7 @@ export {
890
917
  isRepairableFence,
891
918
  isTimelineSourceSafeForSemanticEdit,
892
919
  lineToOffset,
920
+ loadDataPreview,
893
921
  mapFenceEntries,
894
922
  markdownToTiptap,
895
923
  measureTokenLines,
@@ -914,6 +942,7 @@ export {
914
942
  persistFromWrite,
915
943
  preloadMonaco,
916
944
  preloadMonacoSuggestions,
945
+ processDataFiles,
917
946
  processMediaFiles,
918
947
  processTextFile,
919
948
  processTextFiles,
@@ -922,6 +951,7 @@ export {
922
951
  readBlockAttrsTransition,
923
952
  readBlockAttrsValue,
924
953
  readHeadingLineTransition,
954
+ readHeadingViewBinding,
925
955
  recordedMediaKind,
926
956
  recorderBitsPerSecond,
927
957
  recorderDeviceGroups,
@@ -948,6 +978,8 @@ export {
948
978
  sanitizeAsciiLabel,
949
979
  sanitizeTimelineText,
950
980
  sanitizeTreeLabel,
981
+ saveCsvEdits,
982
+ saveXlsxEdits,
951
983
  searchPickerEntries,
952
984
  setBlockAttrsValue,
953
985
  setBlockDurationInSource,
@@ -1004,5 +1036,7 @@ export {
1004
1036
  useTeleprompter,
1005
1037
  useTimelineData,
1006
1038
  useTreeViewData,
1007
- vadConfigForSensitivity
1039
+ vadConfigForSensitivity,
1040
+ viewStateFromBinding,
1041
+ writeHeadingViewState
1008
1042
  };
@@ -1,5 +1,9 @@
1
- export { B as BlockTagVisibility, c as DocumentLinkCandidate, d as DocumentLinkProvider, e as EditorActions, f as EditorColorScheme, g as EditorContextMenuContext, h as EditorContextMenuItem, i as EditorContextMenuItemVisibility, j as EditorContextMenuProvider, k as EditorContextMenuProviderProps, l as EditorContextValue, E as EditorHostMode, m as EditorMode, n as EditorProvider, o as EditorProviderProps, p as EditorShell, q as EditorShellProps, r as EditorState, s as EditorView, I as ImageDisplayMode, L as LayoutMode, M as MentionCandidate, t as MentionProvider, P as PreviewPanel, u as PreviewPanelProps, R as RawEditor, v as RawEditorProps, T as ThemeInheritance, V as ViewPreferences, w as WysiwygEditor, x as WysiwygEditorProps, y as useEditorContext, z as useEditorContextMenuItems } from '../shell-vNr6KOF9.js';
1
+ export { B as BlockTagVisibility, e as DocumentLinkCandidate, f as DocumentLinkProvider, g as EditorActions, h as EditorColorScheme, i as EditorContextMenuContext, j as EditorContextMenuItem, k as EditorContextMenuItemVisibility, l as EditorContextMenuProvider, m as EditorContextMenuProviderProps, n as EditorContextValue, E as EditorHostMode, o as EditorMode, p as EditorProvider, q as EditorProviderProps, r as EditorShell, s as EditorShellProps, t as EditorState, u as EditorView, I as ImageDisplayMode, L as LayoutMode, M as MentionCandidate, x as MentionProvider, P as PreviewPanel, y as PreviewPanelProps, R as RawEditor, z as RawEditorProps, T as ThemeInheritance, V as ViewPreferences, A as WysiwygEditor, G as WysiwygEditorProps, O as useEditorContext, Q as useEditorContextMenuItems } from '../shell-DInMVUpf.js';
2
2
  import 'react/jsx-runtime';
3
+ import '@bendyline/squisq/table';
4
+ import '@bendyline/squisq-calc';
5
+ import '@bendyline/squisq-grid-react';
6
+ import '@bendyline/squisq-formats/xlsx';
3
7
  import 'react';
4
8
  import '@bendyline/squisq/schemas';
5
9
  import '@bendyline/squisq/fence';
@@ -7,7 +7,7 @@ import {
7
7
  WysiwygEditor,
8
8
  useEditorContext,
9
9
  useEditorContextMenuItems
10
- } from "../chunk-HFNE3K7X.js";
10
+ } from "../chunk-FT5F2EGI.js";
11
11
  import "../chunk-V4NBQF5C.js";
12
12
  import "../chunk-TCLNRATG.js";
13
13
  import "../chunk-V44VP242.js";