@paged-media/canvas-wasm 0.64.0 → 0.66.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/package.json +1 -1
- package/paged_canvas_wasm.d.ts +209 -30
- package/paged_canvas_wasm.js +167 -2
- package/paged_canvas_wasm_bg.wasm +0 -0
package/package.json
CHANGED
package/paged_canvas_wasm.d.ts
CHANGED
|
@@ -47,7 +47,7 @@ export type SceneBlendMode = "multiply" | "screen" | "overlay" | "darken" | "lig
|
|
|
47
47
|
* `paged-mutate`, and the read-only viewer SDK must not link that.
|
|
48
48
|
* See the crate docs.
|
|
49
49
|
*/
|
|
50
|
-
export type Mutation = { op: "insertText"; args: { storyId: string; offset: number; text: string; cell?: TextCellAddr | null } } | { op: "deleteRange"; args: { storyId: string; start: number; end: number; cell?: TextCellAddr | null } } | { op: "applyStyle"; args: { storyId: string; start: number; end: number; style: string; scope: StyleScope; cell?: TextCellAddr | null } } | { op: "insertField"; args: { storyId: string; offset: number; field: FieldKind } } | { op: "insertAnchoredFrame"; args: { storyId: string; offset: number; width: number; height: number; imageUri?: string | null } } | { op: "insertHyperlink"; args: { storyId: string; start: number; end: number; url: string } } | { op: "setFieldValue"; args: { storyId: string; offset: number; value?: string | null } } | { op: "placeImage"; args: { elementId: string; uri: string; fit?: string | null } } | { op: "replaceImageBytes"; args: { elementId: string; bytes?: number[] | null } } | { op: "moveFrame"; args: { frameId: string; transform: [number, number, number, number, number, number] } } | { op: "resizeFrame"; args: { frameId: string; bounds: [number, number, number, number] } } | { op: "linkFrames"; args: { from: string; to: string } } | { op: "unlinkFrames"; args: { frame: string } } | { op: "insertPage"; args: { afterPageId: PageId | null; masterId: string | null } } | { op: "deletePage"; args: { pageId: PageId } } | { op: "resizePage"; args: { pageId: PageId; bounds: [number, number, number, number] } } | { op: "insertFrame"; args: { pageId: PageId; bounds: [number, number, number, number] } } | { op: "insertTextFrame"; args: { pageId: PageId; bounds: [number, number, number, number] } } | { op: "deleteFrame"; args: { frameId: string } } | { op: "insertLine"; args: { pageId: PageId; start: [number, number]; end: [number, number] } } | { op: "insertPath"; args: { pageId: PageId; anchors: PathAnchorSpec[]; open: boolean; smooth?: boolean } } | { op: "setDocumentDefaults"; args: { fillColor: string | null; strokeColor: string | null; strokeWeight: number | null } } | { op: "setColorSettings"; args: { cmykProfileName: string | null; rgbPolicy: string | null; intent: string | null; bpc: boolean | null } } | { op: "setProofSetup"; args: { profileName: string | null; simulatePaperWhite?: boolean; intent: string | null } } | { op: "importSwatchLibrary"; args: { bytes: number[]; groupName?: string | null } } | { op: "setInkSetting"; args: { spotId: string; convertToProcess?: boolean; aliasTo?: string | null } } | { op: "setUseStandardLabForSpots"; args: { enabled: boolean } } | { op: "pathPointInsert"; args: { elementId: ElementId; index: number; anchor: PathAnchorSpec; prevSubpathStarts?: number[] | null } } | { op: "pathPointRemove"; args: { elementId: ElementId; index: number } } | { op: "pathOpenAt"; args: { elementId: ElementId; index: number } } | { op: "outlineStroke"; args: { elementId: ElementId; width: number; cap: string; join: string; miterLimit: number } } | { op: "offsetPath"; args: { elementId: ElementId; delta: number; join: string; miterLimit: number } } | { op: "simplifyPath"; args: { elementId: ElementId; tolerance: number } } | { op: "closePath"; args: { elementId: ElementId; subpath?: number | null } } | { op: "joinPaths"; args: { elementId: ElementId; otherId: ElementId } } | { op: "pasteInto"; args: { containerId: ElementId; childId: ElementId } } | { op: "releaseFrom"; args: { childId: ElementId } } | { op: "reorderElement"; args: { elementId: ElementId; to: ZOrderTarget } } | { op: "applyOpacityMask"; args: { targetId: ElementId; maskId: ElementId; maskType?: string | null; invert?: boolean | null } } | { op: "releaseOpacityMask"; args: { targetId: ElementId } } | { op: "attachTextToPath"; args: { elementId: ElementId; storyId: string; pathTypeAlignment?: string | null; flipPathEffect?: string | null; startBracket?: number | null; endBracket?: number | null } } | { op: "detachTextFromPath"; args: { elementId: ElementId } } | { op: "createGroup"; args: { memberIds: ElementId[] } } | { op: "dissolveGroup"; args: { groupId: string } } | { op: "setGroupTransform"; args: { groupId: string; transform?: [number, number, number, number, number, number] | null } } | { op: "setPluginMetadata"; args: { elementId: ElementId; key: string; value?: string | null; caller?: string | null } } | { op: "pathPointCurveType"; args: { elementId: ElementId; index: number; smooth: boolean } } | { op: "pathPointSet"; args: { elementId: ElementId; index: number; role: PathPointRole; position: [number, number] } } | { op: "batch"; args: { ops: Mutation[] } } | { op: "bindCreated"; args: { handle: string } } | { op: "layerSetVisible"; args: { layerId: string; visible: boolean } } | { op: "layerSetLocked"; args: { layerId: string; locked: boolean } } | { op: "layerSetPrintable"; args: { layerId: string; printable: boolean } } | { op: "layerSetName"; args: { layerId: string; name: string } } | { op: "layerMove"; args: { layerId: string; newIndex: number } } | { op: "layerInsert"; args: { position: number; name: string } } | { op: "layerRemove"; args: { layerId: string } } | { op: "setElementProperty"; args: { elementId: ElementId; path: PropertyPath; value: Value } } | { op: "pathfinderBoolean"; args: { kept: ElementId; others: ElementId[]; kind: PathfinderKind } } | { op: "pathfinderDivide"; args: { elementIds: ElementId[] } } | { op: "pathfinderTrim"; args: { elementIds: ElementId[] } } | { op: "pathfinderMerge"; args: { elementIds: ElementId[] } } | { op: "pathfinderCrop"; args: { elementIds: ElementId[] } } | { op: "pathfinderOutline"; args: { elementIds: ElementId[] } } | { op: "pathfinderMinusBack"; args: { elementIds: ElementId[] } } | { op: "pathfinderFaces"; args: { elementIds: ElementId[]; faces: string[]; mode: FaceSelectMode } } | { op: "createSwatch"; args: { spec: SwatchSpec } } | { op: "editSwatch"; args: { swatchId: string; spec: SwatchSpec } } | { op: "deleteSwatch"; args: { swatchId: string } } | { op: "createGradient"; args: { spec: GradientSpec } } | { op: "editGradient"; args: { gradientId: string; spec: GradientSpec } } | { op: "deleteGradient"; args: { gradientId: string } } | { op: "createColorGroup"; args: { spec: ColorGroupSpec } } | { op: "editColorGroup"; args: { groupId: string; spec: ColorGroupSpec } } | { op: "deleteColorGroup"; args: { groupId: string } } | { op: "createNumberingList"; args: { spec: NumberingListSpec } } | { op: "editNumberingList"; args: { listId: string; spec: NumberingListSpec } } | { op: "deleteNumberingList"; args: { listId: string } } | { op: "createParagraphStyle"; args: { selfId?: string | null; name?: string | null; basedOn?: string | null } } | { op: "renameParagraphStyle"; args: { styleId: string; name: string } } | { op: "deleteParagraphStyle"; args: { styleId: string } } | { op: "createCharacterStyle"; args: { selfId?: string | null; name?: string | null; basedOn?: string | null } } | { op: "renameCharacterStyle"; args: { styleId: string; name: string } } | { op: "deleteCharacterStyle"; args: { styleId: string } } | { op: "createObjectStyle"; args: { selfId?: string | null; name?: string | null; basedOn?: string | null } } | { op: "renameObjectStyle"; args: { styleId: string; name: string } } | { op: "deleteObjectStyle"; args: { styleId: string } } | { op: "createCellStyle"; args: { selfId?: string | null; name?: string | null; basedOn?: string | null } } | { op: "renameCellStyle"; args: { styleId: string; name: string } } | { op: "deleteCellStyle"; args: { styleId: string } } | { op: "createTableStyle"; args: { selfId?: string | null; name?: string | null; basedOn?: string | null } } | { op: "renameTableStyle"; args: { styleId: string; name: string } } | { op: "deleteTableStyle"; args: { styleId: string } } | { op: "setStyleProperty"; args: { collection: StyleCollection; styleId: string; path: PropertyPath; value: Value } } | { op: "insertOval"; args: { pageId: PageId; bounds: [number, number, number, number] } } | { op: "insertGuide"; args: { spreadId: string; orientation: GuideOrientationSpec; position: number; pageIndex?: number } } | { op: "moveGuide"; args: { guideId: string; position: number } } | { op: "deleteGuide"; args: { guideId: string } } | { op: "setConditionVisible"; args: { condition: string; visible: boolean } } | { op: "setFlowGrowRule"; args: { storyId: string; grow: boolean; maxPages?: number | null; copyFrameOptions?: boolean | null } } | { op: "activateConditionSet"; args: { set: string } } | { op: "applyMasterToPage"; args: { page: PageId; master?: string | null } } | { op: "duplicatePage"; args: { page: PageId } } | { op: "insertSection"; args: { atPage: PageId; prefix?: string | null; numberingStyle?: string | null; startAt?: number | null } } | { op: "editSection"; args: { sectionId: string; prefix?: string | null | null; numberingStyle?: string | null; startAt?: number | null | null } } | { op: "deleteSection"; args: { sectionId: string } } | { op: "setRowHeight"; args: { storyId: string; tableId: string; row: number; height?: number | null } } | { op: "setColumnWidth"; args: { storyId: string; tableId: string; col: number; width?: number | null } } | { op: "insertTableRow"; args: { storyId: string; tableId: string; at: number } } | { op: "deleteTableRow"; args: { storyId: string; tableId: string; at: number } } | { op: "insertTableColumn"; args: { storyId: string; tableId: string; at: number } } | { op: "deleteTableColumn"; args: { storyId: string; tableId: string; at: number } } | { op: "insertHeaderRow"; args: { storyId: string; tableId: string } } | { op: "removeHeaderRow"; args: { storyId: string; tableId: string } } | { op: "insertFooterRow"; args: { storyId: string; tableId: string } } | { op: "removeFooterRow"; args: { storyId: string; tableId: string } } | { op: "setCellSpan"; args: { storyId: string; tableId: string; row: number; col: number; rowSpan: number; columnSpan: number } } | { op: "insertTable"; args: { storyId: string; rows: number; cols: number; headerRows?: number; footerRows?: number; columnWidths?: number[]; rowHeights?: number[] } };
|
|
50
|
+
export type Mutation = { op: "insertText"; args: { storyId: string; offset: number; text: string; cell?: TextCellAddr | null } } | { op: "deleteRange"; args: { storyId: string; start: number; end: number; cell?: TextCellAddr | null } } | { op: "applyStyle"; args: { storyId: string; start: number; end: number; style: string; scope: StyleScope; cell?: TextCellAddr | null; paragraph?: number | null } } | { op: "insertField"; args: { storyId: string; offset: number; field: FieldKind } } | { op: "insertAnchoredFrame"; args: { storyId: string; offset: number; width: number; height: number; imageUri?: string | null; paragraph?: number | null } } | { op: "insertHyperlink"; args: { storyId: string; start: number; end: number; url: string } } | { op: "setFieldValue"; args: { storyId: string; offset: number; value?: string | null } } | { op: "placeImage"; args: { elementId: string; uri: string; fit?: string | null } } | { op: "replaceImageBytes"; args: { elementId: string; bytes?: number[] | null } } | { op: "moveFrame"; args: { frameId: string; transform: [number, number, number, number, number, number] } } | { op: "resizeFrame"; args: { frameId: string; bounds: [number, number, number, number] } } | { op: "linkFrames"; args: { from: string; to: string } } | { op: "unlinkFrames"; args: { frame: string } } | { op: "insertPage"; args: { afterPageId: PageId | null; masterId: string | null } } | { op: "deletePage"; args: { pageId: PageId } } | { op: "resizePage"; args: { pageId: PageId; bounds: [number, number, number, number] } } | { op: "insertFrame"; args: { pageId: PageId; bounds: [number, number, number, number] } } | { op: "insertTextFrame"; args: { pageId: PageId; bounds: [number, number, number, number] } } | { op: "deleteFrame"; args: { frameId: string } } | { op: "insertLine"; args: { pageId: PageId; start: [number, number]; end: [number, number] } } | { op: "insertPath"; args: { pageId: PageId; anchors: PathAnchorSpec[]; open: boolean; smooth?: boolean } } | { op: "setDocumentDefaults"; args: { fillColor: string | null; strokeColor: string | null; strokeWeight: number | null } } | { op: "setColorSettings"; args: { cmykProfileName: string | null; rgbPolicy: string | null; intent: string | null; bpc: boolean | null } } | { op: "setProofSetup"; args: { profileName: string | null; simulatePaperWhite?: boolean; intent: string | null } } | { op: "importSwatchLibrary"; args: { bytes: number[]; groupName?: string | null } } | { op: "setInkSetting"; args: { spotId: string; convertToProcess?: boolean; aliasTo?: string | null } } | { op: "setUseStandardLabForSpots"; args: { enabled: boolean } } | { op: "pathPointInsert"; args: { elementId: ElementId; index: number; anchor: PathAnchorSpec; prevSubpathStarts?: number[] | null } } | { op: "pathPointRemove"; args: { elementId: ElementId; index: number } } | { op: "pathOpenAt"; args: { elementId: ElementId; index: number } } | { op: "outlineStroke"; args: { elementId: ElementId; width: number; cap: string; join: string; miterLimit: number } } | { op: "offsetPath"; args: { elementId: ElementId; delta: number; join: string; miterLimit: number } } | { op: "simplifyPath"; args: { elementId: ElementId; tolerance: number } } | { op: "closePath"; args: { elementId: ElementId; subpath?: number | null } } | { op: "joinPaths"; args: { elementId: ElementId; otherId: ElementId } } | { op: "pasteInto"; args: { containerId: ElementId; childId: ElementId } } | { op: "releaseFrom"; args: { childId: ElementId } } | { op: "reorderElement"; args: { elementId: ElementId; to: ZOrderTarget } } | { op: "applyOpacityMask"; args: { targetId: ElementId; maskId: ElementId; maskType?: string | null; invert?: boolean | null } } | { op: "releaseOpacityMask"; args: { targetId: ElementId } } | { op: "attachTextToPath"; args: { elementId: ElementId; storyId: string; pathTypeAlignment?: string | null; flipPathEffect?: string | null; startBracket?: number | null; endBracket?: number | null } } | { op: "detachTextFromPath"; args: { elementId: ElementId } } | { op: "createGroup"; args: { memberIds: ElementId[] } } | { op: "dissolveGroup"; args: { groupId: string } } | { op: "duplicateElements"; args: { elementIds: ElementId[]; offset: [number, number] } } | { op: "setGroupTransform"; args: { groupId: string; transform?: [number, number, number, number, number, number] | null } } | { op: "setPluginMetadata"; args: { elementId: ElementId; key: string; value?: string | null; caller?: string | null } } | { op: "pathPointCurveType"; args: { elementId: ElementId; index: number; smooth: boolean } } | { op: "pathPointSet"; args: { elementId: ElementId; index: number; role: PathPointRole; position: [number, number] } } | { op: "batch"; args: { ops: Mutation[] } } | { op: "bindCreated"; args: { handle: string } } | { op: "layerSetVisible"; args: { layerId: string; visible: boolean } } | { op: "layerSetLocked"; args: { layerId: string; locked: boolean } } | { op: "layerSetPrintable"; args: { layerId: string; printable: boolean } } | { op: "layerSetName"; args: { layerId: string; name: string } } | { op: "layerMove"; args: { layerId: string; newIndex: number } } | { op: "layerInsert"; args: { position: number; name: string } } | { op: "layerRemove"; args: { layerId: string } } | { op: "setElementProperty"; args: { elementId: ElementId; path: PropertyPath; value: Value } } | { op: "pathfinderBoolean"; args: { kept: ElementId; others: ElementId[]; kind: PathfinderKind } } | { op: "pathfinderDivide"; args: { elementIds: ElementId[] } } | { op: "pathfinderTrim"; args: { elementIds: ElementId[] } } | { op: "pathfinderMerge"; args: { elementIds: ElementId[] } } | { op: "pathfinderCrop"; args: { elementIds: ElementId[] } } | { op: "pathfinderOutline"; args: { elementIds: ElementId[] } } | { op: "pathfinderMinusBack"; args: { elementIds: ElementId[] } } | { op: "pathfinderFaces"; args: { elementIds: ElementId[]; faces: string[]; mode: FaceSelectMode } } | { op: "createSwatch"; args: { spec: SwatchSpec } } | { op: "editSwatch"; args: { swatchId: string; spec: SwatchSpec } } | { op: "deleteSwatch"; args: { swatchId: string } } | { op: "createGradient"; args: { spec: GradientSpec } } | { op: "editGradient"; args: { gradientId: string; spec: GradientSpec } } | { op: "deleteGradient"; args: { gradientId: string } } | { op: "createColorGroup"; args: { spec: ColorGroupSpec } } | { op: "editColorGroup"; args: { groupId: string; spec: ColorGroupSpec } } | { op: "deleteColorGroup"; args: { groupId: string } } | { op: "createNumberingList"; args: { spec: NumberingListSpec } } | { op: "editNumberingList"; args: { listId: string; spec: NumberingListSpec } } | { op: "deleteNumberingList"; args: { listId: string } } | { op: "createParagraphStyle"; args: { selfId?: string | null; name?: string | null; basedOn?: string | null } } | { op: "renameParagraphStyle"; args: { styleId: string; name: string } } | { op: "deleteParagraphStyle"; args: { styleId: string } } | { op: "createCharacterStyle"; args: { selfId?: string | null; name?: string | null; basedOn?: string | null } } | { op: "renameCharacterStyle"; args: { styleId: string; name: string } } | { op: "deleteCharacterStyle"; args: { styleId: string } } | { op: "createObjectStyle"; args: { selfId?: string | null; name?: string | null; basedOn?: string | null } } | { op: "renameObjectStyle"; args: { styleId: string; name: string } } | { op: "deleteObjectStyle"; args: { styleId: string } } | { op: "createCellStyle"; args: { selfId?: string | null; name?: string | null; basedOn?: string | null } } | { op: "renameCellStyle"; args: { styleId: string; name: string } } | { op: "deleteCellStyle"; args: { styleId: string } } | { op: "createTableStyle"; args: { selfId?: string | null; name?: string | null; basedOn?: string | null } } | { op: "renameTableStyle"; args: { styleId: string; name: string } } | { op: "deleteTableStyle"; args: { styleId: string } } | { op: "setStyleProperty"; args: { collection: StyleCollection; styleId: string; path: PropertyPath; value: Value } } | { op: "insertOval"; args: { pageId: PageId; bounds: [number, number, number, number] } } | { op: "insertGuide"; args: { spreadId: string; orientation: GuideOrientationSpec; position: number; pageIndex?: number } } | { op: "moveGuide"; args: { guideId: string; position: number } } | { op: "deleteGuide"; args: { guideId: string } } | { op: "setConditionVisible"; args: { condition: string; visible: boolean } } | { op: "setFlowGrowRule"; args: { storyId: string; grow: boolean; maxPages?: number | null; copyFrameOptions?: boolean | null } } | { op: "activateConditionSet"; args: { set: string } } | { op: "applyMasterToPage"; args: { page: PageId; master?: string | null } } | { op: "duplicatePage"; args: { page: PageId } } | { op: "insertSection"; args: { atPage: PageId; prefix?: string | null; numberingStyle?: string | null; startAt?: number | null } } | { op: "editSection"; args: { sectionId: string; prefix?: string | null | null; numberingStyle?: string | null; startAt?: number | null | null } } | { op: "deleteSection"; args: { sectionId: string } } | { op: "setRowHeight"; args: { storyId: string; tableId: string; row: number; height?: number | null } } | { op: "setColumnWidth"; args: { storyId: string; tableId: string; col: number; width?: number | null } } | { op: "insertTableRow"; args: { storyId: string; tableId: string; at: number } } | { op: "deleteTableRow"; args: { storyId: string; tableId: string; at: number } } | { op: "insertTableColumn"; args: { storyId: string; tableId: string; at: number } } | { op: "deleteTableColumn"; args: { storyId: string; tableId: string; at: number } } | { op: "insertHeaderRow"; args: { storyId: string; tableId: string } } | { op: "removeHeaderRow"; args: { storyId: string; tableId: string } } | { op: "insertFooterRow"; args: { storyId: string; tableId: string } } | { op: "removeFooterRow"; args: { storyId: string; tableId: string } } | { op: "setCellSpan"; args: { storyId: string; tableId: string; row: number; col: number; rowSpan: number; columnSpan: number } } | { op: "insertTable"; args: { storyId: string; rows: number; cols: number; headerRows?: number; footerRows?: number; columnWidths?: number[]; rowHeights?: number[] } } | { op: "deleteTable"; args: { storyId: string; tableId: string } };
|
|
51
51
|
|
|
52
52
|
/**
|
|
53
53
|
* A per-run script budget on the wire (v63). Every field is optional
|
|
@@ -194,28 +194,40 @@ export interface GroupSpec {
|
|
|
194
194
|
* a fresh top-level create never has). `None` ⇒ identity.
|
|
195
195
|
*/
|
|
196
196
|
itemTransform?: [number, number, number, number, number, number] | null;
|
|
197
|
+
/**
|
|
198
|
+
* C-63 inverse-only — the group\'s own `<BlendingSetting Opacity>`
|
|
199
|
+
* to restore on re-creation. Group opacity became settable
|
|
200
|
+
* (`FrameOpacity` on a `NodeId::Group`), and ungrouping drops the
|
|
201
|
+
* wrapper that carried it; without this an undo of that ungroup
|
|
202
|
+
* brought the group back fully opaque. A fresh create omits it.
|
|
203
|
+
*/
|
|
204
|
+
opacity?: number | null;
|
|
205
|
+
/**
|
|
206
|
+
* C-63 inverse-only — the group\'s own `<BlendingSetting
|
|
207
|
+
* BlendMode>`; see [`GroupSpec::opacity`].
|
|
208
|
+
*/
|
|
209
|
+
blendMode?: string | null;
|
|
197
210
|
}
|
|
198
211
|
|
|
199
212
|
/**
|
|
200
213
|
* B-06 — `RequestNearestPathPoint` reply payload. Coordinates are
|
|
201
214
|
* in the element\'s local space (the `PathAnchors` space).
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
215
|
+
* v66 (RFI C-69) — `RequestTextOutlines` reply payload: the frame\'s
|
|
216
|
+
* composed glyphs as closed outlines, in PAGE space (the space
|
|
217
|
+
* `insertPath` takes), grouped into one run per fill colour so each
|
|
218
|
+
* becomes one compound path. Outlines are exactly the shapes the
|
|
219
|
+
* renderer fills (the same `FillPath` commands), so what is inserted
|
|
220
|
+
* looks like what was on screen. Stroked text, gradients on text and
|
|
221
|
+
* overset text are not included.
|
|
222
|
+
*/
|
|
223
|
+
export interface TextOutlinesResult {
|
|
224
|
+
id: ElementId;
|
|
225
|
+
pageId: PageId;
|
|
226
|
+
runs: TextOutlineRun[];
|
|
213
227
|
/**
|
|
214
|
-
*
|
|
228
|
+
* Glyphs left out (stroked, or a non-solid paint).
|
|
215
229
|
*/
|
|
216
|
-
|
|
217
|
-
point: [number, number];
|
|
218
|
-
distance: number;
|
|
230
|
+
skippedGlyphs?: number;
|
|
219
231
|
}
|
|
220
232
|
|
|
221
233
|
/**
|
|
@@ -351,6 +363,14 @@ export interface TextPathSpec {
|
|
|
351
363
|
endBracket?: number | null;
|
|
352
364
|
}
|
|
353
365
|
|
|
366
|
+
/**
|
|
367
|
+
* C-65 — one plugin-metadata Label entry on a scene-tree node.
|
|
368
|
+
*/
|
|
369
|
+
export interface PluginMetadataEntry {
|
|
370
|
+
key: string;
|
|
371
|
+
value: string;
|
|
372
|
+
}
|
|
373
|
+
|
|
354
374
|
/**
|
|
355
375
|
* Canonical selection / caret. `start == end` is a caret;
|
|
356
376
|
* `start < end` is a range. Endpoints are normalised so `start ≤
|
|
@@ -521,16 +541,19 @@ export interface RunContent {
|
|
|
521
541
|
}
|
|
522
542
|
|
|
523
543
|
/**
|
|
524
|
-
* Description of a node about to be inserted.
|
|
525
|
-
*
|
|
526
|
-
*
|
|
527
|
-
*
|
|
528
|
-
*
|
|
529
|
-
*
|
|
530
|
-
*
|
|
531
|
-
*
|
|
544
|
+
* Description of a node about to be inserted. The per-kind variants
|
|
545
|
+
* carry what a CREATION names — geometry, the fill/stroke triple, the
|
|
546
|
+
* path tables, a transform — and everything else takes its default.
|
|
547
|
+
*
|
|
548
|
+
* They used to double as what `RemoveNode` captured for its inverse,
|
|
549
|
+
* which is how a delete → undo brought back a bare frame: opacity,
|
|
550
|
+
* effects, corners, a placed image, every field outside this short
|
|
551
|
+
* list re-defaulted (RFI C-75; the transform had been added for the
|
|
552
|
+
* same reason one field at a time). A removed node is now captured
|
|
553
|
+
* WHOLE, as [`NodeSpec::Captured`], and these variants describe new
|
|
554
|
+
* nodes only.
|
|
532
555
|
*/
|
|
533
|
-
export type NodeSpec = { kind: "textFrame"; self_id: string; bounds: [number, number, number, number]; fill_color?: string | null; stroke_color?: string | null; stroke_weight?: number | null; item_transform?: [number, number, number, number, number, number] | null; parent_story?: string | null } | { kind: "rectangle"; self_id: string; bounds: [number, number, number, number]; fill_color?: string | null; stroke_color?: string | null; stroke_weight?: number | null; item_transform?: [number, number, number, number, number, number] | null } | { kind: "oval"; self_id: string; bounds: [number, number, number, number]; fill_color?: string | null; stroke_color?: string | null; stroke_weight?: number | null; item_transform?: [number, number, number, number, number, number] | null } | { kind: "graphicLine"; self_id: string; bounds: [number, number, number, number]; anchors?: PathAnchorSpec[]; subpath_starts?: number[]; subpath_open?: boolean[]; stroke_color?: string | null; stroke_weight?: number | null; item_transform?: [number, number, number, number, number, number] | null } | { kind: "polygon"; self_id: string; bounds: [number, number, number, number]; anchors?: PathAnchorSpec[]; subpath_starts?: number[]; subpath_open?: boolean[]; fill_color?: string | null; stroke_color?: string | null; stroke_weight?: number | null; item_transform?: [number, number, number, number, number, number] | null } | { kind: "cloneTranslate"; self_id: string; source: NodeId; dx: number; dy: number; destination_spread_id?: string | null } | { kind: "table"; self_id: string; rows: number; cols: number; header_rows?: number; footer_rows?: number; column_widths?: number[]; row_heights?: number[] };
|
|
556
|
+
export type NodeSpec = { kind: "textFrame"; self_id: string; bounds: [number, number, number, number]; fill_color?: string | null; stroke_color?: string | null; stroke_weight?: number | null; item_transform?: [number, number, number, number, number, number] | null; parent_story?: string | null } | { kind: "rectangle"; self_id: string; bounds: [number, number, number, number]; fill_color?: string | null; stroke_color?: string | null; stroke_weight?: number | null; item_transform?: [number, number, number, number, number, number] | null } | { kind: "oval"; self_id: string; bounds: [number, number, number, number]; fill_color?: string | null; stroke_color?: string | null; stroke_weight?: number | null; item_transform?: [number, number, number, number, number, number] | null } | { kind: "graphicLine"; self_id: string; bounds: [number, number, number, number]; anchors?: PathAnchorSpec[]; subpath_starts?: number[]; subpath_open?: boolean[]; stroke_color?: string | null; stroke_weight?: number | null; item_transform?: [number, number, number, number, number, number] | null } | { kind: "polygon"; self_id: string; bounds: [number, number, number, number]; anchors?: PathAnchorSpec[]; subpath_starts?: number[]; subpath_open?: boolean[]; fill_color?: string | null; stroke_color?: string | null; stroke_weight?: number | null; item_transform?: [number, number, number, number, number, number] | null } | { kind: "cloneTranslate"; self_id: string; source: NodeId; dx: number; dy: number; destination_spread_id?: string | null } | { kind: "captured"; node: NodeId; json: string; image_bytes?: number[] | null } | { kind: "table"; self_id: string; rows: number; cols: number; header_rows?: number; footer_rows?: number; column_widths?: number[]; row_heights?: number[] };
|
|
534
557
|
|
|
535
558
|
/**
|
|
536
559
|
* Direction for [`caret_nav`].
|
|
@@ -540,7 +563,7 @@ export type CaretDirection = "up" | "down";
|
|
|
540
563
|
/**
|
|
541
564
|
* Discriminated payload of a `WorkerToMain` message.
|
|
542
565
|
*/
|
|
543
|
-
export type WorkerToMainKind = { kind: "ready"; payload: { protocol: ProtocolVersion } } | { kind: "documentLoaded"; payload: DocumentHandle } | { kind: "loadFailed"; payload: { error: LoadError } } | { kind: "mutationFailed"; payload: { error: WorkerError } } | { kind: "displayListReady"; payload: { pageId: PageId; lod: LodTier; commands: number; layoutGeneration: number; numberingGeneration: number } } | { kind: "hitResult"; payload: HitResult } | { kind: "pagesDirty"; payload: { pageIds: PageId[] } } | { kind: "storyDirty"; payload: { storyId: string } } | { kind: "warning"; payload: { kind: string; details: string } } | { kind: "stats"; payload: DocumentStats } | { kind: "snapshotReady"; payload: SnapshotPng } | { kind: "snapshotFailed"; payload: { error: SnapshotError } } | { kind: "mutationApplied"; payload: { clientSeq: number; appliedSeq: number; pageIds: PageId[]; cacheStats: LayoutCacheStats; createdId?: ElementId | null; minted?: MintedElement[]; pageStructureChanged?: boolean; pageSizesPt?: [number, number][] | null; reflow?: FrameReflowInfo | null } } | { kind: "selectionGeometry"; payload: { rects: SelectionRect[] } } | { kind: "caretGeometry"; payload: { caret: CaretGeometry | null } } | { kind: "caretNavResult"; payload: { offset?: number | null } } | { kind: "lineBoundsResult"; payload: { bounds?: LineBounds | null } } | { kind: "wordBoundsResult"; payload: { bounds?: WordBounds | null } } | { kind: "paragraphBoundsResult"; payload: { bounds?: ParagraphBounds | null } } | { kind: "storyContentResult"; payload: { content?: StoryContent | null } } | { kind: "undoApplied"; payload: { undoneSeq: number; appliedSeq: number; pageIds: PageId[]; cacheStats: LayoutCacheStats; pageStructureChanged?: boolean; pageSizesPt?: [number, number][] | null } } | { kind: "redoApplied"; payload: { redoneSeq: number; appliedSeq: number; pageIds: PageId[]; cacheStats: LayoutCacheStats; pageStructureChanged?: boolean; pageSizesPt?: [number, number][] | null } } | { kind: "fontRegistered"; payload: { family: string } } | { kind: "fontRegistryCleared" } | { kind: "colorProfileRegistered"; payload: { name: string } } | { kind: "elementSelectionApplied"; payload: { ids: ElementId[] } } | { kind: "marqueeHits"; payload: { ids: ElementId[] } } | { kind: "elementGeometry"; payload: { items: ElementGeometryItem[] } } | { kind: "groupLeaves"; payload: { ids: ElementId[] } } | { kind: "pathAnchors"; payload: { result: PathAnchorsResult | null } } | { kind: "planarRegions"; payload: { result: PlanarRegionsResult } } | { kind: "nearestPathPoint"; payload: { result: NearestPathPointResult | null } } | { kind: "layers"; payload: { items: LayerSummary[] } } | { kind: "collectionReply"; payload: { name: CollectionName; items: any } } | { kind: "frameChainResult"; payload: { links: FrameChainLink[] } } | { kind: "documentPlaceholders"; payload: { items: PlaceholderItem[] } } | { kind: "placedAssetBytes"; payload: { elementId: string; found: boolean; uri: string; width: number; height: number; encoded: number[] } } | { kind: "fontFaceBytes"; payload: { found: boolean; family: string; style: string | null; postscriptName: string | null; format: string; bytes: number[] } } | { kind: "measureTextResult"; payload: { advance: number; ascender: number; descender: number } } | { kind: "sceneLayerApplied"; payload: { elementId: string; applied: boolean } } | { kind: "resourceClaimApplied"; payload: { imageId: string; applied: boolean; needed?: ResourceTilesNeededWire[] } } | { kind: "resourceTilesNeeded"; payload: ResourceTilesNeededWire } | { kind: "frameReflow"; payload: { frameId: string; contentBox: [number, number, number, number] } } | { kind: "documentMetaReply"; payload: { meta: DocumentMeta } } | { kind: "colorPreviewReply"; payload: { result: ColorPreview | null } } | { kind: "colorComputeReply"; payload: { rgbHex: string; cmyk: [number, number, number, number] | null; outOfGamut: boolean } } | { kind: "gradientDetailReply"; payload: { result: GradientDetail | null } } | { kind: "swatchLibraryExported"; payload: { aseBytes: number[] } } | { kind: "exportPdfBegun"; payload: { session: number; pageCount: number } } | { kind: "exportPdfProgress"; payload: { session: number; done: number; total: number } } | { kind: "pdfExported"; payload: { pdfBytes: number[]; diagnostics: string[]; findings?: PreflightFinding[] } } | { kind: "exportPdfCancelled"; payload: { session: number } } | { kind: "exportPdfFailed"; payload: { error: string } } | { kind: "idmlExported"; payload: { idmlBytes: number[]; lost?: string[]; links?: ExportedLinkWire[] } } | { kind: "exportIdmlFailed"; payload: { error: string } } | { kind: "pagedPartWritten"; payload: {} } | { kind: "pagedPartRead"; payload: { found: boolean; bytes: number[] } } | { kind: "pagedPartList"; payload: { paths: string[] } } | { kind: "pagedExported"; payload: { bytes: number[] } } | { kind: "pagedPartFailed"; payload: { error: string } } | { kind: "elementProperties"; payload: { result: ElementProperties | null } } | { kind: "sceneTree"; payload: { roots: SceneTreeNode[] } } | { kind: "scriptResult"; payload: { output: string[]; error: string | null; budgetKind?: ScriptBudgetKind } } | { kind: "gestureBegun"; payload: { handle: GestureHandle } } | { kind: "gestureUpdated"; payload: { handle: GestureHandle; pageIds: PageId[]; snapLines?: SnapLine[] } } | { kind: "gestureCommitted"; payload: { handle: GestureHandle; appliedSeq: number; pageIds: PageId[]; cacheStats: LayoutCacheStats } } | { kind: "gestureCancelled"; payload: { handle: GestureHandle; pageIds: PageId[] } } | { kind: "gestureFailed"; payload: { error: GestureFailure } } | { kind: "attachReady"; payload: { gpuActive: boolean; sceneCacheBudget: number } } | { kind: "gestureSnapLines"; payload: { snapLines: SnapLine[] } } | { kind: "resolutionDone"; payload: ResolutionResult };
|
|
566
|
+
export type WorkerToMainKind = { kind: "ready"; payload: { protocol: ProtocolVersion } } | { kind: "documentLoaded"; payload: DocumentHandle } | { kind: "loadFailed"; payload: { error: LoadError } } | { kind: "mutationFailed"; payload: { error: WorkerError } } | { kind: "displayListReady"; payload: { pageId: PageId; lod: LodTier; commands: number; layoutGeneration: number; numberingGeneration: number } } | { kind: "hitResult"; payload: HitResult } | { kind: "pagesDirty"; payload: { pageIds: PageId[] } } | { kind: "storyDirty"; payload: { storyId: string } } | { kind: "warning"; payload: { kind: string; details: string } } | { kind: "stats"; payload: DocumentStats } | { kind: "snapshotReady"; payload: SnapshotPng } | { kind: "snapshotFailed"; payload: { error: SnapshotError } } | { kind: "mutationApplied"; payload: { clientSeq: number; appliedSeq: number; pageIds: PageId[]; cacheStats: LayoutCacheStats; createdId?: ElementId | null; minted?: MintedElement[]; pageStructureChanged?: boolean; pageSizesPt?: [number, number][] | null; reflow?: FrameReflowInfo | null } } | { kind: "selectionGeometry"; payload: { rects: SelectionRect[] } } | { kind: "caretGeometry"; payload: { caret: CaretGeometry | null } } | { kind: "caretNavResult"; payload: { offset?: number | null } } | { kind: "lineBoundsResult"; payload: { bounds?: LineBounds | null } } | { kind: "wordBoundsResult"; payload: { bounds?: WordBounds | null } } | { kind: "paragraphBoundsResult"; payload: { bounds?: ParagraphBounds | null } } | { kind: "storyContentResult"; payload: { content?: StoryContent | null } } | { kind: "undoApplied"; payload: { undoneSeq: number; appliedSeq: number; pageIds: PageId[]; cacheStats: LayoutCacheStats; pageStructureChanged?: boolean; pageSizesPt?: [number, number][] | null } } | { kind: "redoApplied"; payload: { redoneSeq: number; appliedSeq: number; pageIds: PageId[]; cacheStats: LayoutCacheStats; pageStructureChanged?: boolean; pageSizesPt?: [number, number][] | null } } | { kind: "fontRegistered"; payload: { family: string; pageIds?: PageId[]; pageStructureChanged?: boolean; pageSizesPt?: [number, number][] | null } } | { kind: "fontRegistryCleared"; payload: { pageIds?: PageId[]; pageStructureChanged?: boolean; pageSizesPt?: [number, number][] | null } } | { kind: "colorProfileRegistered"; payload: { name: string } } | { kind: "elementSelectionApplied"; payload: { ids: ElementId[] } } | { kind: "marqueeHits"; payload: { ids: ElementId[] } } | { kind: "elementGeometry"; payload: { items: ElementGeometryItem[] } } | { kind: "groupLeaves"; payload: { ids: ElementId[] } } | { kind: "pathAnchors"; payload: { result: PathAnchorsResult | null } } | { kind: "textOutlines"; payload: { result: TextOutlinesResult | null } } | { kind: "planarRegions"; payload: { result: PlanarRegionsResult } } | { kind: "nearestPathPoint"; payload: { result: NearestPathPointResult | null } } | { kind: "layers"; payload: { items: LayerSummary[] } } | { kind: "collectionReply"; payload: { name: CollectionName; items: any } } | { kind: "frameChainResult"; payload: { links: FrameChainLink[] } } | { kind: "documentPlaceholders"; payload: { items: PlaceholderItem[] } } | { kind: "placedAssetBytes"; payload: { elementId: string; found: boolean; uri: string; width: number; height: number; encoded: number[] } } | { kind: "fontFaceBytes"; payload: { found: boolean; family: string; style: string | null; postscriptName: string | null; format: string; bytes: number[] } } | { kind: "measureTextResult"; payload: { advance: number; ascender: number; descender: number } } | { kind: "sceneLayerApplied"; payload: { elementId: string; applied: boolean; pageIds?: PageId[] } } | { kind: "resourceClaimApplied"; payload: { imageId: string; applied: boolean; needed?: ResourceTilesNeededWire[] } } | { kind: "resourceTilesNeeded"; payload: ResourceTilesNeededWire } | { kind: "frameReflow"; payload: { frameId: string; contentBox: [number, number, number, number] } } | { kind: "documentMetaReply"; payload: { meta: DocumentMeta } } | { kind: "colorPreviewReply"; payload: { result: ColorPreview | null } } | { kind: "colorComputeReply"; payload: { rgbHex: string; cmyk: [number, number, number, number] | null; outOfGamut: boolean } } | { kind: "gradientDetailReply"; payload: { result: GradientDetail | null } } | { kind: "swatchLibraryExported"; payload: { aseBytes: number[] } } | { kind: "exportPdfBegun"; payload: { session: number; pageCount: number } } | { kind: "exportPdfProgress"; payload: { session: number; done: number; total: number } } | { kind: "pdfExported"; payload: { pdfBytes: number[]; diagnostics: string[]; findings?: PreflightFinding[] } } | { kind: "exportPdfCancelled"; payload: { session: number } } | { kind: "exportPdfFailed"; payload: { error: string } } | { kind: "idmlExported"; payload: { idmlBytes: number[]; lost?: string[]; links?: ExportedLinkWire[] } } | { kind: "exportIdmlFailed"; payload: { error: string } } | { kind: "pagedPartWritten"; payload: {} } | { kind: "pagedPartRead"; payload: { found: boolean; bytes: number[] } } | { kind: "pagedPartList"; payload: { paths: string[] } } | { kind: "pagedPartDeleted"; payload: { existed: boolean } } | { kind: "pagedExported"; payload: { bytes: number[] } } | { kind: "pagedPartFailed"; payload: { error: string } } | { kind: "elementProperties"; payload: { result: ElementProperties | null } } | { kind: "styleProperties"; payload: { result: StyleProperties | null } } | { kind: "sceneTree"; payload: { roots: SceneTreeNode[] } } | { kind: "scriptResult"; payload: { output: string[]; error: string | null; budgetKind?: ScriptBudgetKind } } | { kind: "gestureBegun"; payload: { handle: GestureHandle } } | { kind: "gestureUpdated"; payload: { handle: GestureHandle; pageIds: PageId[]; snapLines?: SnapLine[] } } | { kind: "gestureCommitted"; payload: { handle: GestureHandle; appliedSeq: number; pageIds: PageId[]; cacheStats: LayoutCacheStats } } | { kind: "gestureCancelled"; payload: { handle: GestureHandle; pageIds: PageId[] } } | { kind: "gestureFailed"; payload: { error: GestureFailure } } | { kind: "attachReady"; payload: { gpuActive: boolean; sceneCacheBudget: number } } | { kind: "gestureSnapLines"; payload: { snapLines: SnapLine[] } } | { kind: "resolutionDone"; payload: ResolutionResult };
|
|
544
567
|
|
|
545
568
|
/**
|
|
546
569
|
* Editor-ops — wire mirror of `paged_model::GradientFeatherParams`.
|
|
@@ -582,7 +605,7 @@ export interface GradientFeatherStopSpec {
|
|
|
582
605
|
* text-side caret + range live in `ContentSelection`); the
|
|
583
606
|
* variant exists so the apply layer can be reached via the
|
|
584
607
|
* existing `Mutation::SetElementProperty` wire shape — see
|
|
585
|
-
*
|
|
608
|
+
* the editor\'s client-SDK implementation plan §3c.1 (not published).
|
|
586
609
|
*/
|
|
587
610
|
export type ElementId = { kind: "textFrame"; id: string } | { kind: "rectangle"; id: string } | { kind: "oval"; id: string } | { kind: "polygon"; id: string } | { kind: "graphicLine"; id: string } | { kind: "group"; id: string } | { kind: "storyRange"; id: { story_id: string; start: number; end: number } } | { kind: "table"; id: { story_id: string; table_id: string } } | { kind: "tableCell"; id: { story_id: string; table_id: string; row: number; col: number } };
|
|
588
611
|
|
|
@@ -677,6 +700,18 @@ export interface SceneTreeNode {
|
|
|
677
700
|
*/
|
|
678
701
|
label: string;
|
|
679
702
|
children?: SceneTreeNode[];
|
|
703
|
+
/**
|
|
704
|
+
* C-65 — the item\'s plugin metadata (its reserved-namespace
|
|
705
|
+
* `x-paged:` Label entries, the same rows `RequestElementProperties`
|
|
706
|
+
* reports as `pluginMetadata`), so one tree read answers what used to
|
|
707
|
+
* take one property read PER LEAF: paged.draw\'s link discovery cost
|
|
708
|
+
* 1 403 round trips on a 1 403-leaf document. PRESENT on every page
|
|
709
|
+
* ITEM row — empty when the item carries none — and omitted only for
|
|
710
|
+
* spread / page rows, so a reader can tell \"this engine reports
|
|
711
|
+
* metadata here and there is none\" from \"this engine predates the
|
|
712
|
+
* field\" (an older engine omits it everywhere). Additive.
|
|
713
|
+
*/
|
|
714
|
+
pluginMetadata?: PluginMetadataEntry[];
|
|
680
715
|
}
|
|
681
716
|
|
|
682
717
|
/**
|
|
@@ -835,6 +870,12 @@ export type SceneItem = { kind: "fillPath"; path: ScenePathSeg[]; paint: ScenePa
|
|
|
835
870
|
* each) or re-discover the ids with a scene walk. This is the list it
|
|
836
871
|
* could not get.
|
|
837
872
|
*
|
|
873
|
+
* A `DuplicateElements` fills it too (C-64): it is the one single
|
|
874
|
+
* mutation that mints more than one element — a clone per source, in
|
|
875
|
+
* the order the sources were named — so `created_id` (its LAST clone)
|
|
876
|
+
* could not carry the answer. A group\'s clone is one entry, its group
|
|
877
|
+
* id; a text frame\'s clone carries the story copied for it.
|
|
878
|
+
*
|
|
838
879
|
* `handle` is the name a C-15 `BindCreated` child gave the element
|
|
839
880
|
* (`None` when nothing named it); `story_id` is the story the creating
|
|
840
881
|
* child minted alongside it — a text frame\'s `ParentStory` — which is
|
|
@@ -872,6 +913,23 @@ export interface FieldChange {
|
|
|
872
913
|
newText: string;
|
|
873
914
|
}
|
|
874
915
|
|
|
916
|
+
/**
|
|
917
|
+
* One fill colour\'s glyph outlines (see [`TextOutlinesResult`]).
|
|
918
|
+
*/
|
|
919
|
+
export interface TextOutlineRun {
|
|
920
|
+
/**
|
|
921
|
+
* sRGB, 0..1 — the colour the renderer filled with.
|
|
922
|
+
*/
|
|
923
|
+
rgb: [number, number, number];
|
|
924
|
+
/**
|
|
925
|
+
* The CMYK the paint carried, 0..1, when it was a process colour.
|
|
926
|
+
*/
|
|
927
|
+
cmyk?: [number, number, number, number] | null;
|
|
928
|
+
anchors: PathAnchorTriple[];
|
|
929
|
+
subpathStarts: number[];
|
|
930
|
+
glyphs: number;
|
|
931
|
+
}
|
|
932
|
+
|
|
875
933
|
/**
|
|
876
934
|
* One stop of a gradient on the wire. Mirrors `GradientStopRef`.
|
|
877
935
|
*/
|
|
@@ -988,6 +1046,14 @@ export interface ElementGeometryItem {
|
|
|
988
1046
|
* of `Translate`.
|
|
989
1047
|
*/
|
|
990
1048
|
hasImage?: boolean;
|
|
1049
|
+
/**
|
|
1050
|
+
* The story a TEXT FRAME shows (its `ParentStory`); `None` for every
|
|
1051
|
+
* other kind. `hitTest` answers `storyId: null` for an EMPTY frame
|
|
1052
|
+
* (the text hit path needs a laid-out line), so a frame\'s story was
|
|
1053
|
+
* discoverable only by diffing the stories collection around its
|
|
1054
|
+
* insert. Additive: absent from the JSON when `None`.
|
|
1055
|
+
*/
|
|
1056
|
+
storyId?: string;
|
|
991
1057
|
}
|
|
992
1058
|
|
|
993
1059
|
/**
|
|
@@ -1071,6 +1137,15 @@ export type ResizeHandle = "north" | "south" | "east" | "west" | "northEast" | "
|
|
|
1071
1137
|
export interface GestureAnchor {
|
|
1072
1138
|
pageId: PageId;
|
|
1073
1139
|
pointInPage: [number, number];
|
|
1140
|
+
/**
|
|
1141
|
+
* C-67 — the point Rotate / Scale / Shear turn about, page-local on
|
|
1142
|
+
* the same page as `point_in_page`. Absent (every caller before it
|
|
1143
|
+
* existed) keeps the union centroid of the targets — Illustrator\'s
|
|
1144
|
+
* default reference point; a click-to-set pivot, a reference-point
|
|
1145
|
+
* grid or \"about a corner\" pass it. Additive (`serde(default)`), so
|
|
1146
|
+
* it needs no protocol bump.
|
|
1147
|
+
*/
|
|
1148
|
+
pivotInPage?: [number, number];
|
|
1074
1149
|
}
|
|
1075
1150
|
|
|
1076
1151
|
/**
|
|
@@ -1200,6 +1275,12 @@ export interface StorySummary {
|
|
|
1200
1275
|
* older client that ignores it still reads the `overset` flag.
|
|
1201
1276
|
*/
|
|
1202
1277
|
oversetAt?: OversetAt;
|
|
1278
|
+
/**
|
|
1279
|
+
* v65 (thoughts ADR 026) — the story\'s grow rule, in the shape
|
|
1280
|
+
* `Mutation::SetFlowGrowRule` takes (`grow` is always `true` here:
|
|
1281
|
+
* a cleared rule reads as `None`). `None` = a fixed chain.
|
|
1282
|
+
*/
|
|
1283
|
+
growRule?: StoryGrowRule | null;
|
|
1203
1284
|
}
|
|
1204
1285
|
|
|
1205
1286
|
/**
|
|
@@ -1829,7 +1910,7 @@ export interface DocumentStats {
|
|
|
1829
1910
|
* document\'s `BTreeMap` palettes/stylesheets rather than the scene
|
|
1830
1911
|
* tree, so they\'re top-level variants rather than `InsertNode`.
|
|
1831
1912
|
*/
|
|
1832
|
-
export type Operation = { kind: "SetProperty"; node: NodeId; path: PropertyPath; value: Value } | { kind: "InsertNode"; parent: NodeId; position: number; node: NodeSpec; z_slot?: number | null } | { kind: "RemoveNode"; node: NodeId } | { kind: "MoveNode"; node: NodeId; new_parent: NodeId; position: number } | { kind: "ReorderNode"; node: NodeId; target: ZOrderTarget } | { kind: "Batch"; ops: Operation[] } | { kind: "InsertPage"; after_page_id?: string | null; master_id?: string | null; spread_self_id?: string | null; page_self_id?: string | null; restore_spread_json?: string | null } | { kind: "RemovePage"; page_id: string } | { kind: "MoveLayer"; layer_id: string; new_index: number } | { kind: "InsertLayer"; position: number; name: string; self_id?: string | null } | { kind: "RemoveLayer"; layer_id: string } | { kind: "CreateSwatch"; spec: SwatchSpec } | { kind: "EditSwatch"; swatch_id: string; spec: SwatchSpec } | { kind: "DeleteSwatch"; swatch_id: string } | { kind: "CreateParagraphStyle"; self_id?: string | null; name?: string | null; based_on?: string | null; restore_json?: string | null } | { kind: "RenameParagraphStyle"; style_id: string; name: string } | { kind: "DeleteParagraphStyle"; style_id: string } | { kind: "CreateCharacterStyle"; self_id?: string | null; name?: string | null; based_on?: string | null; restore_json?: string | null } | { kind: "RenameCharacterStyle"; style_id: string; name: string } | { kind: "DeleteCharacterStyle"; style_id: string } | { kind: "CreateObjectStyle"; self_id?: string | null; name?: string | null; based_on?: string | null; restore_json?: string | null } | { kind: "RenameObjectStyle"; style_id: string; name: string } | { kind: "DeleteObjectStyle"; style_id: string } | { kind: "CreateCellStyle"; self_id?: string | null; name?: string | null; based_on?: string | null; restore_json?: string | null } | { kind: "RenameCellStyle"; style_id: string; name: string } | { kind: "DeleteCellStyle"; style_id: string } | { kind: "CreateTableStyle"; self_id?: string | null; name?: string | null; based_on?: string | null; restore_json?: string | null } | { kind: "RenameTableStyle"; style_id: string; name: string } | { kind: "DeleteTableStyle"; style_id: string } | { kind: "CreateGroup"; spec: GroupSpec } | { kind: "DissolveGroup"; group_id: string; restore_slots?: number[] | null } | { kind: "SetGroupTransform"; group: string; transform?: [number, number, number, number, number, number] | null; prev?: [number, number, number, number, number, number] | null } | { kind: "CreateGradient"; spec: GradientSpec } | { kind: "EditGradient"; gradient_id: string; spec: GradientSpec } | { kind: "DeleteGradient"; gradient_id: string } | { kind: "CreateColorGroup"; spec: ColorGroupSpec } | { kind: "EditColorGroup"; group_id: string; spec: ColorGroupSpec } | { kind: "DeleteColorGroup"; group_id: string } | { kind: "CreateNumberingList"; spec: NumberingListSpec } | { kind: "EditNumberingList"; list_id: string; spec: NumberingListSpec } | { kind: "DeleteNumberingList"; list_id: string } | { kind: "SetStyleProperty"; collection: StyleCollection; style_id: string; path: PropertyPath; value: Value } | { kind: "PathfinderBoolean"; kept: NodeId; others: NodeId[]; opKind: PathfinderKind } | { kind: "PathfinderRegion"; elements: NodeId[]; verb: PathfinderRegionVerb } | { kind: "PathfinderFaces"; elements: NodeId[]; faces: string[]; mode: FaceSelectMode } | { kind: "JoinPaths"; kept: NodeId; other: NodeId } | { kind: "PasteInto"; container: NodeId; child: NodeId; child_index?: number | null } | { kind: "ReleaseFrom"; child: NodeId; restore_slot?: number | null } | { kind: "ApplyOpacityMask"; target: NodeId; mask: NodeId; mask_type?: OpacityMaskMode; invert?: boolean } | { kind: "ReleaseOpacityMask"; target: NodeId; restore_slot?: number | null } | { kind: "AttachTextToPath"; host: NodeId; story_id: string; spec?: TextPathSpec } | { kind: "DetachTextFromPath"; host: NodeId; index?: number | null; restore?: TextPathSpec | null } | { kind: "LinkFrames"; from: string; to: string } | { kind: "UnlinkFrames"; frame: string; prev_next?: string | null; restore_target?: [string, string | null, string | null] | null } | { kind: "ApplyStyle"; story_id: string; start: number; end: number; style: string; scope: StyleScope; cell?: CellAddr | null } | { kind: "InsertField"; story_id: string; offset: number; field: FieldKind } | { kind: "DeleteField"; story_id: string; offset: number; field: FieldKind } | { kind: "InsertAnchoredFrame"; story_id: string; offset: number; width: number; height: number; image_uri?: string | null; self_id: string } | { kind: "RemoveAnchoredFrame"; story_id: string; self_id: string } | { kind: "InsertHyperlink"; story_id: string; start: number; end: number; url: string; source_id: string; dest_id: string; hyperlink_id: string } | { kind: "RemoveHyperlink"; story_id: string; start: number; end: number; url: string; source_id: string; dest_id: string; hyperlink_id: string } | { kind: "SetFieldValue"; story_id: string; offset: number; value?: string | null } | { kind: "PlaceImage"; frame: NodeId; image_uri?: string | null; fit?: string | null } | { kind: "ReplaceImageBytes"; frame: NodeId; bytes?: number[] | null; prior_has_image_element?: boolean | null } | { kind: "InsertGuide"; spread_id: string; orientation: GuideOrientationSpec; position: number; page_index?: number; guide_id?: string | null } | { kind: "MoveGuide"; guide_id: string; position: number } | { kind: "DeleteGuide"; guide_id: string } | { kind: "SetConditionVisible"; condition: string; visible: boolean } | { kind: "SetFlowGrowRule"; story_id: string; rule: FlowGrowRule | null } | { kind: "ActivateConditionSet"; set: string } | { kind: "RestoreConditionVisibility"; states: [string, boolean][] } | { kind: "ApplyMasterToPage"; page: string; master?: string | null } | { kind: "DuplicatePage"; page: string; clone_spread_json?: string | null } | { kind: "InsertSection"; at_page: string; prefix?: string | null; numbering_style?: string | null; start_at?: number | null; self_id?: string | null } | { kind: "EditSection"; section_id: string; prefix?: string | null | null; numbering_style?: string | null; start_at?: number | null | null } | { kind: "DeleteSection"; section_id: string } | { kind: "SetRowHeight"; story_id: string; table_id: string; row: number; height?: number | null } | { kind: "SetColumnWidth"; story_id: string; table_id: string; col: number; width?: number | null } | { kind: "InsertTableRow"; story_id: string; table_id: string; at: number; restore?: TableLineRestoreJson | null } | { kind: "DeleteTableRow"; story_id: string; table_id: string; at: number } | { kind: "InsertTableColumn"; story_id: string; table_id: string; at: number; restore?: TableLineRestoreJson | null } | { kind: "DeleteTableColumn"; story_id: string; table_id: string; at: number } | { kind: "InsertHeaderRow"; story_id: string; table_id: string; restore?: TableLineRestoreJson | null } | { kind: "RemoveHeaderRow"; story_id: string; table_id: string } | { kind: "InsertFooterRow"; story_id: string; table_id: string; restore?: TableLineRestoreJson | null } | { kind: "RemoveFooterRow"; story_id: string; table_id: string } | { kind: "SetCellSpan"; story_id: string; table_id: string; row: number; col: number; row_span: number; column_span: number };
|
|
1913
|
+
export type Operation = { kind: "SetProperty"; node: NodeId; path: PropertyPath; value: Value } | { kind: "InsertNode"; parent: NodeId; position: number; node: NodeSpec; z_slot?: number | null } | { kind: "RemoveNode"; node: NodeId } | { kind: "MoveNode"; node: NodeId; new_parent: NodeId; position: number } | { kind: "ReorderNode"; node: NodeId; target: ZOrderTarget } | { kind: "Batch"; ops: Operation[] } | { kind: "RemoveStory"; story_id: string } | { kind: "RestoreStory"; position: number; story_json: string } | { kind: "InsertPage"; after_page_id?: string | null; master_id?: string | null; spread_self_id?: string | null; page_self_id?: string | null; restore_spread_json?: string | null } | { kind: "RemovePage"; page_id: string } | { kind: "MoveLayer"; layer_id: string; new_index: number } | { kind: "InsertLayer"; position: number; name: string; self_id?: string | null } | { kind: "RemoveLayer"; layer_id: string } | { kind: "CreateSwatch"; spec: SwatchSpec } | { kind: "EditSwatch"; swatch_id: string; spec: SwatchSpec } | { kind: "DeleteSwatch"; swatch_id: string } | { kind: "CreateParagraphStyle"; self_id?: string | null; name?: string | null; based_on?: string | null; restore_json?: string | null } | { kind: "RenameParagraphStyle"; style_id: string; name: string } | { kind: "DeleteParagraphStyle"; style_id: string } | { kind: "CreateCharacterStyle"; self_id?: string | null; name?: string | null; based_on?: string | null; restore_json?: string | null } | { kind: "RenameCharacterStyle"; style_id: string; name: string } | { kind: "DeleteCharacterStyle"; style_id: string } | { kind: "CreateObjectStyle"; self_id?: string | null; name?: string | null; based_on?: string | null; restore_json?: string | null } | { kind: "RenameObjectStyle"; style_id: string; name: string } | { kind: "DeleteObjectStyle"; style_id: string } | { kind: "CreateCellStyle"; self_id?: string | null; name?: string | null; based_on?: string | null; restore_json?: string | null } | { kind: "RenameCellStyle"; style_id: string; name: string } | { kind: "DeleteCellStyle"; style_id: string } | { kind: "CreateTableStyle"; self_id?: string | null; name?: string | null; based_on?: string | null; restore_json?: string | null } | { kind: "RenameTableStyle"; style_id: string; name: string } | { kind: "DeleteTableStyle"; style_id: string } | { kind: "CreateGroup"; spec: GroupSpec } | { kind: "DissolveGroup"; group_id: string; restore_slots?: number[] | null } | { kind: "DuplicateNodes"; sources: NodeId[]; dx: number; dy: number; ids?: string[]; story_ids?: string[] } | { kind: "RemoveDuplicates"; sources: NodeId[]; dx: number; dy: number; ids?: string[]; story_ids?: string[] } | { kind: "SetGroupTransform"; group: string; transform?: [number, number, number, number, number, number] | null; prev?: [number, number, number, number, number, number] | null } | { kind: "CreateGradient"; spec: GradientSpec } | { kind: "EditGradient"; gradient_id: string; spec: GradientSpec } | { kind: "DeleteGradient"; gradient_id: string } | { kind: "CreateColorGroup"; spec: ColorGroupSpec } | { kind: "EditColorGroup"; group_id: string; spec: ColorGroupSpec } | { kind: "DeleteColorGroup"; group_id: string } | { kind: "CreateNumberingList"; spec: NumberingListSpec } | { kind: "EditNumberingList"; list_id: string; spec: NumberingListSpec } | { kind: "DeleteNumberingList"; list_id: string } | { kind: "SetStyleProperty"; collection: StyleCollection; style_id: string; path: PropertyPath; value: Value } | { kind: "PathfinderBoolean"; kept: NodeId; others: NodeId[]; opKind: PathfinderKind } | { kind: "PathfinderRegion"; elements: NodeId[]; verb: PathfinderRegionVerb } | { kind: "PathfinderFaces"; elements: NodeId[]; faces: string[]; mode: FaceSelectMode } | { kind: "JoinPaths"; kept: NodeId; other: NodeId } | { kind: "PasteInto"; container: NodeId; child: NodeId; child_index?: number | null } | { kind: "ReleaseFrom"; child: NodeId; restore_slot?: number | null } | { kind: "ApplyOpacityMask"; target: NodeId; mask: NodeId; mask_type?: OpacityMaskMode; invert?: boolean } | { kind: "ReleaseOpacityMask"; target: NodeId; restore_slot?: number | null } | { kind: "AttachTextToPath"; host: NodeId; story_id: string; spec?: TextPathSpec } | { kind: "DetachTextFromPath"; host: NodeId; index?: number | null; restore?: TextPathSpec | null } | { kind: "LinkFrames"; from: string; to: string } | { kind: "UnlinkFrames"; frame: string; prev_next?: string | null; restore_target?: [string, string | null, string | null] | null } | { kind: "ApplyStyle"; story_id: string; start: number; end: number; style: string; scope: StyleScope; cell?: CellAddr | null; paragraph?: number | null } | { kind: "InsertField"; story_id: string; offset: number; field: FieldKind } | { kind: "DeleteField"; story_id: string; offset: number; field: FieldKind } | { kind: "InsertAnchoredFrame"; story_id: string; offset: number; width: number; height: number; image_uri?: string | null; self_id: string; paragraph?: number | null } | { kind: "RemoveAnchoredFrame"; story_id: string; self_id: string } | { kind: "InsertHyperlink"; story_id: string; start: number; end: number; url: string; source_id: string; dest_id: string; hyperlink_id: string } | { kind: "RemoveHyperlink"; story_id: string; start: number; end: number; url: string; source_id: string; dest_id: string; hyperlink_id: string } | { kind: "SetFieldValue"; story_id: string; offset: number; value?: string | null } | { kind: "PlaceImage"; frame: NodeId; image_uri?: string | null; fit?: string | null } | { kind: "ReplaceImageBytes"; frame: NodeId; bytes?: number[] | null; prior_has_image_element?: boolean | null } | { kind: "InsertGuide"; spread_id: string; orientation: GuideOrientationSpec; position: number; page_index?: number; guide_id?: string | null } | { kind: "MoveGuide"; guide_id: string; position: number } | { kind: "DeleteGuide"; guide_id: string } | { kind: "SetConditionVisible"; condition: string; visible: boolean } | { kind: "SetFlowGrowRule"; story_id: string; rule: FlowGrowRule | null } | { kind: "ActivateConditionSet"; set: string } | { kind: "RestoreConditionVisibility"; states: [string, boolean][] } | { kind: "ApplyMasterToPage"; page: string; master?: string | null } | { kind: "DuplicatePage"; page: string; clone_spread_json?: string | null } | { kind: "InsertSection"; at_page: string; prefix?: string | null; numbering_style?: string | null; start_at?: number | null; self_id?: string | null } | { kind: "EditSection"; section_id: string; prefix?: string | null | null; numbering_style?: string | null; start_at?: number | null | null } | { kind: "DeleteSection"; section_id: string } | { kind: "SetRowHeight"; story_id: string; table_id: string; row: number; height?: number | null } | { kind: "SetColumnWidth"; story_id: string; table_id: string; col: number; width?: number | null } | { kind: "InsertTableRow"; story_id: string; table_id: string; at: number; restore?: TableLineRestoreJson | null } | { kind: "DeleteTableRow"; story_id: string; table_id: string; at: number } | { kind: "InsertTableColumn"; story_id: string; table_id: string; at: number; restore?: TableLineRestoreJson | null } | { kind: "DeleteTableColumn"; story_id: string; table_id: string; at: number } | { kind: "InsertHeaderRow"; story_id: string; table_id: string; restore?: TableLineRestoreJson | null } | { kind: "RemoveHeaderRow"; story_id: string; table_id: string } | { kind: "InsertFooterRow"; story_id: string; table_id: string; restore?: TableLineRestoreJson | null } | { kind: "RemoveFooterRow"; story_id: string; table_id: string } | { kind: "SetCellSpan"; story_id: string; table_id: string; row: number; col: number; row_span: number; column_span: number };
|
|
1833
1914
|
|
|
1834
1915
|
/**
|
|
1835
1916
|
* The discriminated payload of a `MainToWorker` message. Tagged so
|
|
@@ -1838,7 +1919,7 @@ export type Operation = { kind: "SetProperty"; node: NodeId; path: PropertyPath;
|
|
|
1838
1919
|
* variants so e.g. `cmyk_icc_profile` becomes `cmykIccProfile` on
|
|
1839
1920
|
* the wire — the TS protocol mirror locks the camelCase contract.
|
|
1840
1921
|
*/
|
|
1841
|
-
export type MainToWorkerKind = { kind: "hello" } | { kind: "loadDocument"; payload: { bytes: number[]; font?: number[] | null; cmykIccProfile?: number[] | null } } | { kind: "newBlankDocument"; payload: { widthPt: number; heightPt: number; font?: number[] | null } } | { kind: "registerFont"; payload: { family: string; style?: string | null; bytes: number[] } } | { kind: "clearFontRegistry" } | { kind: "registerColorProfile"; payload: { name: string; bytes: number[] } } | { kind: "mutate"; payload: Mutation } | { kind: "requestPage"; payload: { pageId: PageId; lod: LodTier } } | { kind: "hitTest"; payload: { pageId: PageId; docPoint: [number, number]; filter: HitFilter } } | { kind: "requestSnapshot"; payload: { pageId: PageId; targetWidthPx: number; dpi?: number | null } } | { kind: "setSelection"; payload: { selection: ContentSelection | null } } | { kind: "requestSelectionGeometry"; payload: { selection: ContentSelection } } | { kind: "requestCaretGeometry"; payload: { selection: ContentSelection } } | { kind: "requestCaretNav"; payload: { storyId: string; offset: number; direction: CaretDirection; cell?: TextCellAddr | null } } | { kind: "requestLineBounds"; payload: { storyId: string; offset: number; cell?: TextCellAddr | null } } | { kind: "requestWordBounds"; payload: { storyId: string; offset: number; cell?: TextCellAddr | null } } | { kind: "requestParagraphBounds"; payload: { storyId: string; offset: number; cell?: TextCellAddr | null } } | { kind: "undo" } | { kind: "redo" } | { kind: "setElementSelection"; payload: { ids: ElementId[]; mode: SelectionMode } } | { kind: "requestMarqueeHits"; payload: { pageId: PageId; rect: [number, number, number, number] } } | { kind: "requestElementGeometry"; payload: { ids: ElementId[] } } | { kind: "requestGroupLeaves"; payload: { groupId: string } } | { kind: "requestPathAnchors"; payload: { id: ElementId } } | { kind: "requestNearestPathPoint"; payload: { id: ElementId; point: [number, number] } } | { kind: "requestPlanarRegions"; payload: { elementIds: ElementId[]; point?: [number, number] | null } } | { kind: "requestLayers" } | { kind: "requestCollection"; payload: { name: CollectionName } } | { kind: "requestFrameChain"; payload: { storyId: string } } | { kind: "requestStoryContent"; payload: { storyId: string } } | { kind: "requestPlacedAssetBytes"; payload: { elementId: string } } | { kind: "requestFontFaceBytes"; payload: { family: string; style?: string | null } } | { kind: "requestMeasureText"; payload: { family: string; style?: string | null; text: string; sizePt: number } } | { kind: "submitSceneLayer"; payload: { elementId: string; layer: SceneLayer; caller?: string } } | { kind: "clearSceneLayer"; payload: { elementId: string } } | { kind: "submitPixelLayer"; payload: { elementId: string; layer: PixelLayer } } | { kind: "clearPixelLayer"; payload: { elementId: string } } | { kind: "claimImageResource"; payload: { imageId: string; levels: number; tileSize: number; baseWidth: number; baseHeight: number; revision: number } } | { kind: "releaseImageResource"; payload: { imageId: string } } | { kind: "submitResourceTiles"; payload: { imageId: string; level: number; tiles: ProviderTileWire[]; generation: number } } | { kind: "requestDocumentMeta" } | { kind: "requestDocumentPlaceholders" } | { kind: "requestColorPreview"; payload: { swatchId: string } } | { kind: "requestColorCompute"; payload: { space: string; value: number[]; tint?: number | null; model?: string | null; alternateSpace?: string | null; alternateValue?: number[] | null } } | { kind: "requestGradientDetail"; payload: { gradientId: string } } | { kind: "exportSwatchLibrary"; payload: { groupId?: string | null } } | { kind: "executeScript"; payload: { source: string; budget?: ScriptBudgetWire | null } } | { kind: "exportPdfBegin"; payload: { options: ExportPdfWireOptions } } | { kind: "exportPdfPage"; payload: { session: number } } | { kind: "exportPdfFinish"; payload: { session: number } } | { kind: "exportPdfCancel"; payload: { session: number } } | { kind: "exportIdml"; payload: { linkBase?: string | null } } | { kind: "writePagedPart"; payload: { path: string; bytes: number[]; caller?: string } } | { kind: "readPagedPart"; payload: { path: string } } | { kind: "listPagedParts"; payload: { prefix: string } } | { kind: "exportPaged"; payload: {} } | { kind: "requestElementProperties"; payload: { id: ElementId } } | { kind: "requestSceneTree" } | { kind: "beginGesture"; payload: { nodes: ElementId[]; gesture: GestureType; anchor?: GestureAnchor | null; cameraScale?: number | null } } | { kind: "updateGesture"; payload: { handle: GestureHandle; delta: [number, number]; modifiers: GestureModifiers } } | { kind: "commitGesture"; payload: { handle: GestureHandle } } | { kind: "cancelGesture"; payload: { handle: GestureHandle } };
|
|
1922
|
+
export type MainToWorkerKind = { kind: "hello" } | { kind: "loadDocument"; payload: { bytes: number[]; font?: number[] | null; cmykIccProfile?: number[] | null } } | { kind: "newBlankDocument"; payload: { widthPt: number; heightPt: number; font?: number[] | null } } | { kind: "registerFont"; payload: { family: string; style?: string | null; bytes: number[] } } | { kind: "clearFontRegistry" } | { kind: "registerColorProfile"; payload: { name: string; bytes: number[] } } | { kind: "mutate"; payload: Mutation } | { kind: "requestPage"; payload: { pageId: PageId; lod: LodTier } } | { kind: "hitTest"; payload: { pageId: PageId; docPoint: [number, number]; filter: HitFilter } } | { kind: "requestSnapshot"; payload: { pageId: PageId; targetWidthPx: number; dpi?: number | null } } | { kind: "setSelection"; payload: { selection: ContentSelection | null } } | { kind: "requestSelectionGeometry"; payload: { selection: ContentSelection } } | { kind: "requestCaretGeometry"; payload: { selection: ContentSelection } } | { kind: "requestCaretNav"; payload: { storyId: string; offset: number; direction: CaretDirection; cell?: TextCellAddr | null } } | { kind: "requestLineBounds"; payload: { storyId: string; offset: number; cell?: TextCellAddr | null } } | { kind: "requestWordBounds"; payload: { storyId: string; offset: number; cell?: TextCellAddr | null } } | { kind: "requestParagraphBounds"; payload: { storyId: string; offset: number; cell?: TextCellAddr | null } } | { kind: "undo" } | { kind: "redo" } | { kind: "setElementSelection"; payload: { ids: ElementId[]; mode: SelectionMode } } | { kind: "requestMarqueeHits"; payload: { pageId: PageId; rect: [number, number, number, number] } } | { kind: "requestElementGeometry"; payload: { ids: ElementId[] } } | { kind: "requestGroupLeaves"; payload: { groupId: string } } | { kind: "requestPathAnchors"; payload: { id: ElementId } } | { kind: "requestTextOutlines"; payload: { id: ElementId } } | { kind: "requestNearestPathPoint"; payload: { id: ElementId; point: [number, number] } } | { kind: "requestPlanarRegions"; payload: { elementIds: ElementId[]; point?: [number, number] | null } } | { kind: "requestLayers" } | { kind: "requestCollection"; payload: { name: CollectionName } } | { kind: "requestFrameChain"; payload: { storyId: string } } | { kind: "requestStoryContent"; payload: { storyId: string } } | { kind: "requestStyleProperties"; payload: { collection: StyleCollection; styleId: string } } | { kind: "requestPlacedAssetBytes"; payload: { elementId: string } } | { kind: "requestFontFaceBytes"; payload: { family: string; style?: string | null } } | { kind: "requestMeasureText"; payload: { family: string; style?: string | null; text: string; sizePt: number } } | { kind: "submitSceneLayer"; payload: { elementId: string; layer: SceneLayer; caller?: string } } | { kind: "clearSceneLayer"; payload: { elementId: string } } | { kind: "submitPixelLayer"; payload: { elementId: string; layer: PixelLayer } } | { kind: "clearPixelLayer"; payload: { elementId: string } } | { kind: "claimImageResource"; payload: { imageId: string; levels: number; tileSize: number; baseWidth: number; baseHeight: number; revision: number } } | { kind: "releaseImageResource"; payload: { imageId: string } } | { kind: "submitResourceTiles"; payload: { imageId: string; level: number; tiles: ProviderTileWire[]; generation: number } } | { kind: "requestDocumentMeta" } | { kind: "requestDocumentPlaceholders" } | { kind: "requestColorPreview"; payload: { swatchId: string } } | { kind: "requestColorCompute"; payload: { space: string; value: number[]; tint?: number | null; model?: string | null; alternateSpace?: string | null; alternateValue?: number[] | null } } | { kind: "requestGradientDetail"; payload: { gradientId: string } } | { kind: "exportSwatchLibrary"; payload: { groupId?: string | null } } | { kind: "executeScript"; payload: { source: string; budget?: ScriptBudgetWire | null } } | { kind: "exportPdfBegin"; payload: { options: ExportPdfWireOptions } } | { kind: "exportPdfPage"; payload: { session: number } } | { kind: "exportPdfFinish"; payload: { session: number } } | { kind: "exportPdfCancel"; payload: { session: number } } | { kind: "exportIdml"; payload: { linkBase?: string | null } } | { kind: "writePagedPart"; payload: { path: string; bytes: number[]; caller?: string } } | { kind: "readPagedPart"; payload: { path: string } } | { kind: "listPagedParts"; payload: { prefix: string } } | { kind: "deletePagedPart"; payload: { path: string; caller?: string } } | { kind: "exportPaged"; payload: {} } | { kind: "requestElementProperties"; payload: { id: ElementId } } | { kind: "requestSceneTree" } | { kind: "beginGesture"; payload: { nodes: ElementId[]; gesture: GestureType; anchor?: GestureAnchor | null; cameraScale?: number | null } } | { kind: "updateGesture"; payload: { handle: GestureHandle; delta: [number, number]; modifiers: GestureModifiers } } | { kind: "commitGesture"; payload: { handle: GestureHandle } } | { kind: "cancelGesture"; payload: { handle: GestureHandle } };
|
|
1842
1923
|
|
|
1843
1924
|
/**
|
|
1844
1925
|
* Track J — wire-shape mirror of `paged_model::PathAnchor`. The
|
|
@@ -1958,7 +2039,7 @@ export type Value = { type: "bounds"; value: [number, number, number, number] }
|
|
|
1958
2039
|
* (`\"fill.color\"`) — so JS callers don\'t need to learn the Rust
|
|
1959
2040
|
* enum shape.
|
|
1960
2041
|
*/
|
|
1961
|
-
export type PropertyPath = "frameBounds" | "frameFillColor" | "frameStrokeColor" | "frameStrokeWeight" | "frameOpacity" | "frameTransform" | "imageContentTransform" | "framePathPoint" | "pathPointInsert" | "pathPointRemove" | "pathPointCurveType" | "layerVisible" | "layerLocked" | "layerPrintable" | "layerName" | "characterFontSize" | "characterLeading" | "characterTracking" | "characterFillColor" | "paragraphSpaceBefore" | "paragraphSpaceAfter" | "paragraphFirstLineIndent" | "appliedParagraphStyle" | "appliedCharacterStyle" | "appliedObjectStyle" | "itemLayer" | "appliedCellStyle" | "appliedTableStyle" | "framePath" | "frameNonprinting" | "frameFillTint" | "frameGradientFillAngle" | "frameGradientFillLength" | "frameGradientStrokeAngle" | "frameGradientStrokeLength" | "pathOpenAt" | "outlineStroke" | "outlineStrokeVariable" | "offsetPath" | "simplifyPath" | "closePath" | "frameGradientFeather" | "pageBounds" | "frameDropShadowMode" | "frameDropShadowXOffset" | "frameDropShadowYOffset" | "frameDropShadowSize" | "frameDropShadowOpacity" | "frameDropShadowColor" | "frameDropShadow" | "frameFittingCrops" | "frameFittingType" | "frameTextWrapMode" | "frameTextWrapOffsets" | "frameTextWrapContourType" | "frameTextWrapContourIncludeInside" | "paragraphJustification" | "paragraphStyleNextStyle" | "paragraphAppliedNumberingList" | "frameStrokeEndCap" | "frameInsetSpacing" | "appliedConditions" | "characterFontFamily" | "characterFontStyle" | "characterKerningMethod" | "characterCase" | "characterPosition" | "characterLanguage" | "characterBaselineShift" | "characterHorizontalScale" | "characterVerticalScale" | "characterSkew" | "characterUnderline" | "characterStrikethru" | "characterLigatures" | "characterOtfFeatures" | "paragraphLeftIndent" | "paragraphRightIndent" | "paragraphDropCapCharacters" | "paragraphDropCapLines" | "paragraphHyphenation" | "paragraphHyphenationZone" | "paragraphKeepLinesTogether" | "paragraphKeepWithNext" | "paragraphKeepAllLinesTogether" | "paragraphKeepFirstLines" | "paragraphKeepLastLines" | "paragraphStartParagraph" | "paragraphSpanColumnType" | "paragraphSpanSplitColumnCount" | "paragraphSpanColumnMinSpaceBefore" | "paragraphSpanColumnMinSpaceAfter" | "paragraphSplitColumnInsideGutter" | "paragraphSplitColumnOutsideGutter" | "paragraphRuleAbove" | "paragraphRuleBelow" | "paragraphTabStops" | "paragraphListType" | "paragraphBulletCharacter" | "paragraphNumberingFormat" | "paragraphBulletsTextAfter" | "paragraphNumberingExpression" | "paragraphNumberingStartAt" | "paragraphNumberingContinue" | "paragraphBulletsCharacterStyle" | "paragraphNumberingCharacterStyle" | "textFrameColumnCount" | "textFrameColumnGutter" | "textFrameColumnBalance" | "textFrameVerticalJustification" | "textFrameAutoSizing" | "textFrameFirstBaseline" | "textWrapInvert" | "frameFittingReferencePoint" | "frameAutoFit" | "frameStrokeType" | "frameStrokeJoin" | "frameStrokeMiterLimit" | "frameStrokeAlignment" | "frameStrokeGapColor" | "frameStrokeGapTint" | "frameStrokeDashArray" | "frameCornerOptionTopLeft" | "frameCornerOptionTopRight" | "frameCornerOptionBottomLeft" | "frameCornerOptionBottomRight" | "frameCornerRadiusTopLeft" | "frameCornerRadiusTopRight" | "frameCornerRadiusBottomLeft" | "frameCornerRadiusBottomRight" | "frameRotationAngle" | "frameScaleX" | "frameScaleY" | "frameFlipH" | "frameFlipV" | "frameOverprintFill" | "frameOverprintStroke" | "frameInnerShadowEnabled" | "frameInnerShadowBlendMode" | "frameInnerShadowColor" | "frameInnerShadowOpacity" | "frameInnerShadowAngle" | "frameInnerShadowDistance" | "frameInnerShadowSize" | "frameInnerShadowChoke" | "frameInnerShadowNoise" | "frameOuterGlowEnabled" | "frameOuterGlowBlendMode" | "frameOuterGlowColor" | "frameOuterGlowOpacity" | "frameOuterGlowSpread" | "frameOuterGlowSize" | "frameOuterGlowNoise" | "frameInnerGlowEnabled" | "frameInnerGlowBlendMode" | "frameInnerGlowColor" | "frameInnerGlowOpacity" | "frameInnerGlowChoke" | "frameInnerGlowSize" | "frameInnerGlowSource" | "frameInnerGlowNoise" | "frameBevelEnabled" | "frameBevelStyle" | "frameBevelTechnique" | "frameBevelDepth" | "frameBevelDirection" | "frameBevelSize" | "frameBevelSoften" | "frameBevelAngle" | "frameBevelAltitude" | "frameBevelHighlightColor" | "frameBevelShadowColor" | "frameBevelHighlightOpacity" | "frameBevelShadowOpacity" | "frameSatinEnabled" | "frameSatinBlendMode" | "frameSatinColor" | "frameSatinOpacity" | "frameSatinAngle" | "frameSatinDistance" | "frameSatinSize" | "frameSatinInvert" | "frameFeatherEnabled" | "frameFeatherWidth" | "frameFeatherCornerType" | "frameFeatherNoise" | "frameFeatherChoke" | "frameDirectionalFeatherEnabled" | "frameDirectionalFeatherLeftWidth" | "frameDirectionalFeatherRightWidth" | "frameDirectionalFeatherTopWidth" | "frameDirectionalFeatherBottomWidth" | "frameDirectionalFeatherAngle" | "frameDirectionalFeatherNoise" | "frameDirectionalFeatherChoke" | "frameBlendMode" | "nextTextFrame" | "previousTextFrame" | "cellFillColor" | "cellFillTint" | "cellInsetTop" | "cellInsetLeft" | "cellInsetBottom" | "cellInsetRight" | "cellVerticalJustification" | "cellTopEdgeStrokeColor" | "cellTopEdgeStrokeWeight" | "cellTopEdgeStrokeTint" | "cellBottomEdgeStrokeColor" | "cellBottomEdgeStrokeWeight" | "cellBottomEdgeStrokeTint" | "cellLeftEdgeStrokeColor" | "cellLeftEdgeStrokeWeight" | "cellLeftEdgeStrokeTint" | "cellRightEdgeStrokeColor" | "cellRightEdgeStrokeWeight" | "cellRightEdgeStrokeTint" | "tableRowCount" | "tableColumnCount" | "pluginMetadata" | "anchoredPosition" | "anchorPoint" | "anchoredXOffset" | "anchoredYOffset" | "anchoredHorizontalReference" | "anchoredVerticalReference" | "anchoredHorizontalAlignment" | "anchoredVerticalAlignment" | "anchoredSpineRelative" | "anchoredLockPosition" | "elementVisible" | "elementLocked" | "frameStrokeStartArrowhead" | "frameStrokeEndArrowhead";
|
|
2042
|
+
export type PropertyPath = "frameBounds" | "frameFillColor" | "frameStrokeColor" | "frameStrokeWeight" | "frameOpacity" | "frameTransform" | "imageContentTransform" | "framePathPoint" | "pathPointInsert" | "pathPointRemove" | "pathPointCurveType" | "layerVisible" | "layerLocked" | "layerPrintable" | "layerName" | "characterFontSize" | "characterLeading" | "characterTracking" | "characterFillColor" | "paragraphSpaceBefore" | "paragraphSpaceAfter" | "paragraphFirstLineIndent" | "appliedParagraphStyle" | "appliedCharacterStyle" | "appliedObjectStyle" | "itemLayer" | "appliedCellStyle" | "appliedTableStyle" | "framePath" | "frameNonprinting" | "frameFillTint" | "frameGradientFillAngle" | "frameGradientFillLength" | "frameGradientStrokeAngle" | "frameGradientStrokeLength" | "pathOpenAt" | "outlineStroke" | "outlineStrokeVariable" | "offsetPath" | "simplifyPath" | "closePath" | "frameGradientFeather" | "pageBounds" | "frameDropShadowMode" | "frameDropShadowXOffset" | "frameDropShadowYOffset" | "frameDropShadowSize" | "frameDropShadowOpacity" | "frameDropShadowColor" | "frameDropShadow" | "frameFittingCrops" | "frameFittingType" | "frameTextWrapMode" | "frameTextWrapOffsets" | "frameTextWrapContourType" | "frameTextWrapContourIncludeInside" | "paragraphJustification" | "paragraphStyleNextStyle" | "paragraphAppliedNumberingList" | "frameStrokeEndCap" | "frameInsetSpacing" | "appliedConditions" | "characterFontFamily" | "characterFontStyle" | "characterKerningMethod" | "characterCase" | "characterPosition" | "characterLanguage" | "characterBaselineShift" | "characterHorizontalScale" | "characterVerticalScale" | "characterSkew" | "characterUnderline" | "characterStrikethru" | "characterLigatures" | "characterOtfFeatures" | "paragraphLeftIndent" | "paragraphRightIndent" | "paragraphDropCapCharacters" | "paragraphDropCapLines" | "paragraphHyphenation" | "paragraphHyphenationZone" | "paragraphKeepLinesTogether" | "paragraphKeepWithNext" | "paragraphKeepAllLinesTogether" | "paragraphKeepFirstLines" | "paragraphKeepLastLines" | "paragraphStartParagraph" | "paragraphSpanColumnType" | "paragraphSpanSplitColumnCount" | "paragraphSpanColumnMinSpaceBefore" | "paragraphSpanColumnMinSpaceAfter" | "paragraphSplitColumnInsideGutter" | "paragraphSplitColumnOutsideGutter" | "paragraphRuleAbove" | "paragraphRuleBelow" | "paragraphTabStops" | "paragraphListType" | "paragraphBulletCharacter" | "paragraphNumberingFormat" | "paragraphBulletsTextAfter" | "paragraphNumberingExpression" | "paragraphNumberingStartAt" | "paragraphNumberingContinue" | "paragraphBulletsCharacterStyle" | "paragraphNumberingCharacterStyle" | "paragraphComposer" | "textFrameColumnCount" | "textFrameColumnGutter" | "textFrameColumnBalance" | "textFrameVerticalJustification" | "textFrameAutoSizing" | "textFrameFirstBaseline" | "textWrapInvert" | "frameFittingReferencePoint" | "frameAutoFit" | "frameStrokeType" | "frameStrokeJoin" | "frameStrokeMiterLimit" | "frameStrokeAlignment" | "frameStrokeGapColor" | "frameStrokeGapTint" | "frameStrokeDashArray" | "frameCornerOptionTopLeft" | "frameCornerOptionTopRight" | "frameCornerOptionBottomLeft" | "frameCornerOptionBottomRight" | "frameCornerRadiusTopLeft" | "frameCornerRadiusTopRight" | "frameCornerRadiusBottomLeft" | "frameCornerRadiusBottomRight" | "frameRotationAngle" | "frameScaleX" | "frameScaleY" | "frameFlipH" | "frameFlipV" | "frameOverprintFill" | "frameOverprintStroke" | "frameInnerShadowEnabled" | "frameInnerShadowBlendMode" | "frameInnerShadowColor" | "frameInnerShadowOpacity" | "frameInnerShadowAngle" | "frameInnerShadowDistance" | "frameInnerShadowSize" | "frameInnerShadowChoke" | "frameInnerShadowNoise" | "frameOuterGlowEnabled" | "frameOuterGlowBlendMode" | "frameOuterGlowColor" | "frameOuterGlowOpacity" | "frameOuterGlowSpread" | "frameOuterGlowSize" | "frameOuterGlowNoise" | "frameInnerGlowEnabled" | "frameInnerGlowBlendMode" | "frameInnerGlowColor" | "frameInnerGlowOpacity" | "frameInnerGlowChoke" | "frameInnerGlowSize" | "frameInnerGlowSource" | "frameInnerGlowNoise" | "frameBevelEnabled" | "frameBevelStyle" | "frameBevelTechnique" | "frameBevelDepth" | "frameBevelDirection" | "frameBevelSize" | "frameBevelSoften" | "frameBevelAngle" | "frameBevelAltitude" | "frameBevelHighlightColor" | "frameBevelShadowColor" | "frameBevelHighlightOpacity" | "frameBevelShadowOpacity" | "frameSatinEnabled" | "frameSatinBlendMode" | "frameSatinColor" | "frameSatinOpacity" | "frameSatinAngle" | "frameSatinDistance" | "frameSatinSize" | "frameSatinInvert" | "frameFeatherEnabled" | "frameFeatherWidth" | "frameFeatherCornerType" | "frameFeatherNoise" | "frameFeatherChoke" | "frameDirectionalFeatherEnabled" | "frameDirectionalFeatherLeftWidth" | "frameDirectionalFeatherRightWidth" | "frameDirectionalFeatherTopWidth" | "frameDirectionalFeatherBottomWidth" | "frameDirectionalFeatherAngle" | "frameDirectionalFeatherNoise" | "frameDirectionalFeatherChoke" | "frameBlendMode" | "nextTextFrame" | "previousTextFrame" | "cellFillColor" | "cellFillTint" | "cellInsetTop" | "cellInsetLeft" | "cellInsetBottom" | "cellInsetRight" | "cellVerticalJustification" | "cellTopEdgeStrokeColor" | "cellTopEdgeStrokeWeight" | "cellTopEdgeStrokeTint" | "cellBottomEdgeStrokeColor" | "cellBottomEdgeStrokeWeight" | "cellBottomEdgeStrokeTint" | "cellLeftEdgeStrokeColor" | "cellLeftEdgeStrokeWeight" | "cellLeftEdgeStrokeTint" | "cellRightEdgeStrokeColor" | "cellRightEdgeStrokeWeight" | "cellRightEdgeStrokeTint" | "tableRowCount" | "tableColumnCount" | "pluginMetadata" | "anchoredPosition" | "anchorPoint" | "anchoredXOffset" | "anchoredYOffset" | "anchoredHorizontalReference" | "anchoredVerticalReference" | "anchoredHorizontalAlignment" | "anchoredVerticalAlignment" | "anchoredSpineRelative" | "anchoredLockPosition" | "elementVisible" | "elementLocked" | "frameStrokeStartArrowhead" | "frameStrokeEndArrowhead";
|
|
1962
2043
|
|
|
1963
2044
|
/**
|
|
1964
2045
|
* Typed worker-side error for non-load operations. Mutations,
|
|
@@ -2507,6 +2588,39 @@ export interface ProviderTileWire {
|
|
|
2507
2588
|
*/
|
|
2508
2589
|
export type ZOrderTarget = "front" | "back" | "forward" | "backward" | { index: number };
|
|
2509
2590
|
|
|
2591
|
+
/**
|
|
2592
|
+
* v65 — a story\'s grow rule on the read side ([`StorySummary::grow_rule`]).
|
|
2593
|
+
* Mirrors the `setFlowGrowRule` payload so a host can show the rule and
|
|
2594
|
+
* send it back unchanged.
|
|
2595
|
+
*/
|
|
2596
|
+
export interface StoryGrowRule {
|
|
2597
|
+
grow: boolean;
|
|
2598
|
+
/**
|
|
2599
|
+
* Upper bound on generated pages; `None` = the renderer\'s default.
|
|
2600
|
+
*/
|
|
2601
|
+
maxPages?: number | null;
|
|
2602
|
+
/**
|
|
2603
|
+
* Generated frames copy the chain\'s last frame\'s text-frame options.
|
|
2604
|
+
*/
|
|
2605
|
+
copyFrameOptions: boolean;
|
|
2606
|
+
}
|
|
2607
|
+
|
|
2608
|
+
/**
|
|
2609
|
+
* v65 — one style definition\'s settable properties
|
|
2610
|
+
* (`RequestStyleProperties`). `entries` uses the inspector\'s row shape;
|
|
2611
|
+
* every value is `Some` (a style has one value per field, never \"mixed\").
|
|
2612
|
+
*/
|
|
2613
|
+
export interface StyleProperties {
|
|
2614
|
+
collection: StyleCollection;
|
|
2615
|
+
styleId: string;
|
|
2616
|
+
name?: string | null;
|
|
2617
|
+
/**
|
|
2618
|
+
* The style\'s `BasedOn` reference, verbatim.
|
|
2619
|
+
*/
|
|
2620
|
+
basedOn?: string | null;
|
|
2621
|
+
entries: PropertyEntry[];
|
|
2622
|
+
}
|
|
2623
|
+
|
|
2510
2624
|
/**
|
|
2511
2625
|
* §21 advanced prepress — one ink plate\'s coverage on one page.
|
|
2512
2626
|
*
|
|
@@ -2694,6 +2808,24 @@ export interface FrameBounds {
|
|
|
2694
2808
|
bottom: number;
|
|
2695
2809
|
}
|
|
2696
2810
|
|
|
2811
|
+
export interface NearestPathPointResult {
|
|
2812
|
+
/**
|
|
2813
|
+
* Flat index of the segment\'s START anchor.
|
|
2814
|
+
*/
|
|
2815
|
+
segStart: number;
|
|
2816
|
+
/**
|
|
2817
|
+
* Flat index of the segment\'s END anchor (wraps to the subpath
|
|
2818
|
+
* start on a closing segment).
|
|
2819
|
+
*/
|
|
2820
|
+
segEnd: number;
|
|
2821
|
+
/**
|
|
2822
|
+
* Curve parameter on that segment, 0..=1.
|
|
2823
|
+
*/
|
|
2824
|
+
t: number;
|
|
2825
|
+
point: [number, number];
|
|
2826
|
+
distance: number;
|
|
2827
|
+
}
|
|
2828
|
+
|
|
2697
2829
|
export interface RunningHeader {
|
|
2698
2830
|
pageId: PageId;
|
|
2699
2831
|
pageNumber: number;
|
|
@@ -2805,6 +2937,13 @@ export class CanvasWorker {
|
|
|
2805
2937
|
* to the default face when one is registered.
|
|
2806
2938
|
*/
|
|
2807
2939
|
measureText(family: string, style: string | null | undefined, text: string, size_pt: number): any;
|
|
2940
|
+
/**
|
|
2941
|
+
* v66 — apply one wire `Mutation` (JSON; a `batch` too) whose
|
|
2942
|
+
* first `replaceImageBytes` with `bytes: []` takes `bytes` — the
|
|
2943
|
+
* commit lane for processed pixels without a `number[]`. Returns
|
|
2944
|
+
* the `Mutate` reply envelope as JSON.
|
|
2945
|
+
*/
|
|
2946
|
+
mutateWithBytesDirect(seq: number, mutation_json: string, bytes: Uint8Array): string;
|
|
2808
2947
|
constructor();
|
|
2809
2948
|
/**
|
|
2810
2949
|
* Number of pages in the loaded document, or 0 if no
|
|
@@ -2820,6 +2959,12 @@ export class CanvasWorker {
|
|
|
2820
2959
|
* serialised as a JS array.
|
|
2821
2960
|
*/
|
|
2822
2961
|
pageInfo(index: number): Array<any> | undefined;
|
|
2962
|
+
/**
|
|
2963
|
+
* v66 — a frame's placed image as `{ uri, width, height, encoded }`
|
|
2964
|
+
* with `encoded` a `Uint8Array`, or `undefined` when there is none
|
|
2965
|
+
* (the cases `placedAssetBytes` answers `found: false`).
|
|
2966
|
+
*/
|
|
2967
|
+
placedAssetBytesDirect(element_id: string): object | undefined;
|
|
2823
2968
|
/**
|
|
2824
2969
|
* Render the visible pages at the current camera into the
|
|
2825
2970
|
* bound surface. Camera operates in CSS pixels; the
|
|
@@ -2831,6 +2976,11 @@ export class CanvasWorker {
|
|
|
2831
2976
|
* CPU path in that case.
|
|
2832
2977
|
*/
|
|
2833
2978
|
presentFrame(scale: number, tx: number, ty: number, dpr: number): boolean;
|
|
2979
|
+
/**
|
|
2980
|
+
* v66 — a `.paged` part's bytes as a `Uint8Array`, or `undefined`
|
|
2981
|
+
* when the part is absent or no document is loaded.
|
|
2982
|
+
*/
|
|
2983
|
+
readPagedPartDirect(path: string): Uint8Array | undefined;
|
|
2834
2984
|
/**
|
|
2835
2985
|
* Sub-phase D — render `page_id` to a PNG via the Vello GPU
|
|
2836
2986
|
* path (off-surface). Returns `None` if GPU is not
|
|
@@ -2884,6 +3034,24 @@ export class CanvasWorker {
|
|
|
2884
3034
|
* when measuring memory behaviour.
|
|
2885
3035
|
*/
|
|
2886
3036
|
setSceneCacheBudget(max_entries: number): void;
|
|
3037
|
+
/**
|
|
3038
|
+
* v66 — binary sibling of `SubmitSceneLayer` for the one-image
|
|
3039
|
+
* case: the frame's scene layer becomes the RGBA8 image in `rgba`
|
|
3040
|
+
* (`width*height*4` bytes) drawn at `x, y, w, h` frame-content
|
|
3041
|
+
* points. Take a `Uint8Array` (transfer it to the worker first);
|
|
3042
|
+
* no `number[]`, no JSON parse. Returns the `sceneLayerApplied`
|
|
3043
|
+
* envelope as JSON, like `handleMessage`. Only the pages showing
|
|
3044
|
+
* the frame lose their cached scene.
|
|
3045
|
+
*/
|
|
3046
|
+
submitSceneImageDirect(seq: number, element_id: string, caller: string | null | undefined, rgba: Uint8Array, width: number, height: number, x: number, y: number, w: number, h: number): string;
|
|
3047
|
+
/**
|
|
3048
|
+
* v66 — patch rectangles of the image `submitSceneImageDirect`
|
|
3049
|
+
* set: `rects` is a `Uint32Array` of `x, y, w, h` (image pixels)
|
|
3050
|
+
* per tile, `rgba` the tiles' pixels back to back in that order.
|
|
3051
|
+
* Validated whole before any byte moves. Returns the
|
|
3052
|
+
* `sceneLayerApplied` envelope as JSON.
|
|
3053
|
+
*/
|
|
3054
|
+
submitSceneImageTilesDirect(seq: number, element_id: string, caller: string | null | undefined, rects: Uint32Array, rgba: Uint8Array): string;
|
|
2887
3055
|
/**
|
|
2888
3056
|
* Handle one main-thread message. Input is the JSON string
|
|
2889
3057
|
* the JS side produced via `JSON.stringify(msg)`. Output is
|
|
@@ -2906,6 +3074,11 @@ export class CanvasWorker {
|
|
|
2906
3074
|
* in `packages/shell/src/gestures/gesture-sab.ts`.
|
|
2907
3075
|
*/
|
|
2908
3076
|
updateGestureRaw(handle_lo: number, handle_hi: number, dx: number, dy: number, modifier_bits: number): string;
|
|
3077
|
+
/**
|
|
3078
|
+
* v66 — `WritePagedPart` with a `Uint8Array` body. Returns the
|
|
3079
|
+
* `pagedPartWritten` / `pagedPartFailed` envelope as JSON.
|
|
3080
|
+
*/
|
|
3081
|
+
writePagedPartDirect(seq: number, path: string, caller: string | null | undefined, bytes: Uint8Array): string;
|
|
2909
3082
|
/**
|
|
2910
3083
|
* Protocol version constant; the JS side compares against
|
|
2911
3084
|
* its bundled value before sending `LoadDocument`.
|
|
@@ -2936,11 +3109,14 @@ export interface InitOutput {
|
|
|
2936
3109
|
readonly canvasworker_initGpu: (a: number, b: any, c: number, d: number) => any;
|
|
2937
3110
|
readonly canvasworker_loadDocumentDirect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
2938
3111
|
readonly canvasworker_measureText: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => any;
|
|
3112
|
+
readonly canvasworker_mutateWithBytesDirect: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
2939
3113
|
readonly canvasworker_new: () => number;
|
|
2940
3114
|
readonly canvasworker_pageCount: (a: number) => number;
|
|
2941
3115
|
readonly canvasworker_pageInfo: (a: number, b: number) => any;
|
|
3116
|
+
readonly canvasworker_placedAssetBytesDirect: (a: number, b: number, c: number) => any;
|
|
2942
3117
|
readonly canvasworker_presentFrame: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
|
|
2943
3118
|
readonly canvasworker_protocolVersion: (a: number) => number;
|
|
3119
|
+
readonly canvasworker_readPagedPartDirect: (a: number, b: number, c: number) => [number, number];
|
|
2944
3120
|
readonly canvasworker_renderPageVelloPng: (a: number, b: number, c: number, d: number) => any;
|
|
2945
3121
|
readonly canvasworker_renderTilePng: (a: number, b: number, c: number, d: number) => [number, number];
|
|
2946
3122
|
readonly canvasworker_resizeGpu: (a: number, b: number, c: number) => void;
|
|
@@ -2948,7 +3124,10 @@ export interface InitOutput {
|
|
|
2948
3124
|
readonly canvasworker_sceneCacheSize: (a: number) => number;
|
|
2949
3125
|
readonly canvasworker_selectionGeometryJson: (a: number, b: number, c: number) => [number, number];
|
|
2950
3126
|
readonly canvasworker_setSceneCacheBudget: (a: number, b: number) => void;
|
|
3127
|
+
readonly canvasworker_submitSceneImageDirect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => [number, number];
|
|
3128
|
+
readonly canvasworker_submitSceneImageTilesDirect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number];
|
|
2951
3129
|
readonly canvasworker_updateGestureRaw: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number];
|
|
3130
|
+
readonly canvasworker_writePagedPartDirect: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number];
|
|
2952
3131
|
readonly gestureSabBytes: () => number;
|
|
2953
3132
|
readonly gestureSabLayout: () => any;
|
|
2954
3133
|
readonly on_start: () => void;
|
package/paged_canvas_wasm.js
CHANGED
|
@@ -156,6 +156,32 @@ export class CanvasWorker {
|
|
|
156
156
|
const ret = wasm.canvasworker_measureText(this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2, size_pt);
|
|
157
157
|
return ret;
|
|
158
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* v66 — apply one wire `Mutation` (JSON; a `batch` too) whose
|
|
161
|
+
* first `replaceImageBytes` with `bytes: []` takes `bytes` — the
|
|
162
|
+
* commit lane for processed pixels without a `number[]`. Returns
|
|
163
|
+
* the `Mutate` reply envelope as JSON.
|
|
164
|
+
* @param {number} seq
|
|
165
|
+
* @param {string} mutation_json
|
|
166
|
+
* @param {Uint8Array} bytes
|
|
167
|
+
* @returns {string}
|
|
168
|
+
*/
|
|
169
|
+
mutateWithBytesDirect(seq, mutation_json, bytes) {
|
|
170
|
+
let deferred3_0;
|
|
171
|
+
let deferred3_1;
|
|
172
|
+
try {
|
|
173
|
+
const ptr0 = passStringToWasm0(mutation_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
174
|
+
const len0 = WASM_VECTOR_LEN;
|
|
175
|
+
const ptr1 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
|
|
176
|
+
const len1 = WASM_VECTOR_LEN;
|
|
177
|
+
const ret = wasm.canvasworker_mutateWithBytesDirect(this.__wbg_ptr, seq, ptr0, len0, ptr1, len1);
|
|
178
|
+
deferred3_0 = ret[0];
|
|
179
|
+
deferred3_1 = ret[1];
|
|
180
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
181
|
+
} finally {
|
|
182
|
+
wasm.__wbindgen_free(deferred3_0, deferred3_1, 1);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
159
185
|
constructor() {
|
|
160
186
|
const ret = wasm.canvasworker_new();
|
|
161
187
|
this.__wbg_ptr = ret;
|
|
@@ -185,6 +211,19 @@ export class CanvasWorker {
|
|
|
185
211
|
const ret = wasm.canvasworker_pageInfo(this.__wbg_ptr, index);
|
|
186
212
|
return ret;
|
|
187
213
|
}
|
|
214
|
+
/**
|
|
215
|
+
* v66 — a frame's placed image as `{ uri, width, height, encoded }`
|
|
216
|
+
* with `encoded` a `Uint8Array`, or `undefined` when there is none
|
|
217
|
+
* (the cases `placedAssetBytes` answers `found: false`).
|
|
218
|
+
* @param {string} element_id
|
|
219
|
+
* @returns {object | undefined}
|
|
220
|
+
*/
|
|
221
|
+
placedAssetBytesDirect(element_id) {
|
|
222
|
+
const ptr0 = passStringToWasm0(element_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
223
|
+
const len0 = WASM_VECTOR_LEN;
|
|
224
|
+
const ret = wasm.canvasworker_placedAssetBytesDirect(this.__wbg_ptr, ptr0, len0);
|
|
225
|
+
return ret;
|
|
226
|
+
}
|
|
188
227
|
/**
|
|
189
228
|
* Render the visible pages at the current camera into the
|
|
190
229
|
* bound surface. Camera operates in CSS pixels; the
|
|
@@ -216,6 +255,23 @@ export class CanvasWorker {
|
|
|
216
255
|
const ret = wasm.canvasworker_protocolVersion(this.__wbg_ptr);
|
|
217
256
|
return ret >>> 0;
|
|
218
257
|
}
|
|
258
|
+
/**
|
|
259
|
+
* v66 — a `.paged` part's bytes as a `Uint8Array`, or `undefined`
|
|
260
|
+
* when the part is absent or no document is loaded.
|
|
261
|
+
* @param {string} path
|
|
262
|
+
* @returns {Uint8Array | undefined}
|
|
263
|
+
*/
|
|
264
|
+
readPagedPartDirect(path) {
|
|
265
|
+
const ptr0 = passStringToWasm0(path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
266
|
+
const len0 = WASM_VECTOR_LEN;
|
|
267
|
+
const ret = wasm.canvasworker_readPagedPartDirect(this.__wbg_ptr, ptr0, len0);
|
|
268
|
+
let v2;
|
|
269
|
+
if (ret[0] !== 0) {
|
|
270
|
+
v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
|
|
271
|
+
wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
|
|
272
|
+
}
|
|
273
|
+
return v2;
|
|
274
|
+
}
|
|
219
275
|
/**
|
|
220
276
|
* Sub-phase D — render `page_id` to a PNG via the Vello GPU
|
|
221
277
|
* path (off-surface). Returns `None` if GPU is not
|
|
@@ -322,6 +378,77 @@ export class CanvasWorker {
|
|
|
322
378
|
setSceneCacheBudget(max_entries) {
|
|
323
379
|
wasm.canvasworker_setSceneCacheBudget(this.__wbg_ptr, max_entries);
|
|
324
380
|
}
|
|
381
|
+
/**
|
|
382
|
+
* v66 — binary sibling of `SubmitSceneLayer` for the one-image
|
|
383
|
+
* case: the frame's scene layer becomes the RGBA8 image in `rgba`
|
|
384
|
+
* (`width*height*4` bytes) drawn at `x, y, w, h` frame-content
|
|
385
|
+
* points. Take a `Uint8Array` (transfer it to the worker first);
|
|
386
|
+
* no `number[]`, no JSON parse. Returns the `sceneLayerApplied`
|
|
387
|
+
* envelope as JSON, like `handleMessage`. Only the pages showing
|
|
388
|
+
* the frame lose their cached scene.
|
|
389
|
+
* @param {number} seq
|
|
390
|
+
* @param {string} element_id
|
|
391
|
+
* @param {string | null | undefined} caller
|
|
392
|
+
* @param {Uint8Array} rgba
|
|
393
|
+
* @param {number} width
|
|
394
|
+
* @param {number} height
|
|
395
|
+
* @param {number} x
|
|
396
|
+
* @param {number} y
|
|
397
|
+
* @param {number} w
|
|
398
|
+
* @param {number} h
|
|
399
|
+
* @returns {string}
|
|
400
|
+
*/
|
|
401
|
+
submitSceneImageDirect(seq, element_id, caller, rgba, width, height, x, y, w, h) {
|
|
402
|
+
let deferred4_0;
|
|
403
|
+
let deferred4_1;
|
|
404
|
+
try {
|
|
405
|
+
const ptr0 = passStringToWasm0(element_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
406
|
+
const len0 = WASM_VECTOR_LEN;
|
|
407
|
+
var ptr1 = isLikeNone(caller) ? 0 : passStringToWasm0(caller, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
408
|
+
var len1 = WASM_VECTOR_LEN;
|
|
409
|
+
const ptr2 = passArray8ToWasm0(rgba, wasm.__wbindgen_malloc);
|
|
410
|
+
const len2 = WASM_VECTOR_LEN;
|
|
411
|
+
const ret = wasm.canvasworker_submitSceneImageDirect(this.__wbg_ptr, seq, ptr0, len0, ptr1, len1, ptr2, len2, width, height, x, y, w, h);
|
|
412
|
+
deferred4_0 = ret[0];
|
|
413
|
+
deferred4_1 = ret[1];
|
|
414
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
415
|
+
} finally {
|
|
416
|
+
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* v66 — patch rectangles of the image `submitSceneImageDirect`
|
|
421
|
+
* set: `rects` is a `Uint32Array` of `x, y, w, h` (image pixels)
|
|
422
|
+
* per tile, `rgba` the tiles' pixels back to back in that order.
|
|
423
|
+
* Validated whole before any byte moves. Returns the
|
|
424
|
+
* `sceneLayerApplied` envelope as JSON.
|
|
425
|
+
* @param {number} seq
|
|
426
|
+
* @param {string} element_id
|
|
427
|
+
* @param {string | null | undefined} caller
|
|
428
|
+
* @param {Uint32Array} rects
|
|
429
|
+
* @param {Uint8Array} rgba
|
|
430
|
+
* @returns {string}
|
|
431
|
+
*/
|
|
432
|
+
submitSceneImageTilesDirect(seq, element_id, caller, rects, rgba) {
|
|
433
|
+
let deferred5_0;
|
|
434
|
+
let deferred5_1;
|
|
435
|
+
try {
|
|
436
|
+
const ptr0 = passStringToWasm0(element_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
437
|
+
const len0 = WASM_VECTOR_LEN;
|
|
438
|
+
var ptr1 = isLikeNone(caller) ? 0 : passStringToWasm0(caller, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
439
|
+
var len1 = WASM_VECTOR_LEN;
|
|
440
|
+
const ptr2 = passArray32ToWasm0(rects, wasm.__wbindgen_malloc);
|
|
441
|
+
const len2 = WASM_VECTOR_LEN;
|
|
442
|
+
const ptr3 = passArray8ToWasm0(rgba, wasm.__wbindgen_malloc);
|
|
443
|
+
const len3 = WASM_VECTOR_LEN;
|
|
444
|
+
const ret = wasm.canvasworker_submitSceneImageTilesDirect(this.__wbg_ptr, seq, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
|
|
445
|
+
deferred5_0 = ret[0];
|
|
446
|
+
deferred5_1 = ret[1];
|
|
447
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
448
|
+
} finally {
|
|
449
|
+
wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);
|
|
450
|
+
}
|
|
451
|
+
}
|
|
325
452
|
/**
|
|
326
453
|
* Handle one main-thread message. Input is the JSON string
|
|
327
454
|
* the JS side produced via `JSON.stringify(msg)`. Output is
|
|
@@ -361,6 +488,33 @@ export class CanvasWorker {
|
|
|
361
488
|
wasm.__wbindgen_free(deferred1_0, deferred1_1, 1);
|
|
362
489
|
}
|
|
363
490
|
}
|
|
491
|
+
/**
|
|
492
|
+
* v66 — `WritePagedPart` with a `Uint8Array` body. Returns the
|
|
493
|
+
* `pagedPartWritten` / `pagedPartFailed` envelope as JSON.
|
|
494
|
+
* @param {number} seq
|
|
495
|
+
* @param {string} path
|
|
496
|
+
* @param {string | null | undefined} caller
|
|
497
|
+
* @param {Uint8Array} bytes
|
|
498
|
+
* @returns {string}
|
|
499
|
+
*/
|
|
500
|
+
writePagedPartDirect(seq, path, caller, bytes) {
|
|
501
|
+
let deferred4_0;
|
|
502
|
+
let deferred4_1;
|
|
503
|
+
try {
|
|
504
|
+
const ptr0 = passStringToWasm0(path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
505
|
+
const len0 = WASM_VECTOR_LEN;
|
|
506
|
+
var ptr1 = isLikeNone(caller) ? 0 : passStringToWasm0(caller, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
507
|
+
var len1 = WASM_VECTOR_LEN;
|
|
508
|
+
const ptr2 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
|
|
509
|
+
const len2 = WASM_VECTOR_LEN;
|
|
510
|
+
const ret = wasm.canvasworker_writePagedPartDirect(this.__wbg_ptr, seq, ptr0, len0, ptr1, len1, ptr2, len2);
|
|
511
|
+
deferred4_0 = ret[0];
|
|
512
|
+
deferred4_1 = ret[1];
|
|
513
|
+
return getStringFromWasm0(ret[0], ret[1]);
|
|
514
|
+
} finally {
|
|
515
|
+
wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
|
|
516
|
+
}
|
|
517
|
+
}
|
|
364
518
|
}
|
|
365
519
|
if (Symbol.dispose) CanvasWorker.prototype[Symbol.dispose] = CanvasWorker.prototype.free;
|
|
366
520
|
|
|
@@ -799,6 +953,10 @@ function __wbg_get_imports() {
|
|
|
799
953
|
const ret = new Array();
|
|
800
954
|
return ret;
|
|
801
955
|
},
|
|
956
|
+
__wbg_new_from_slice_4ee02165f9de919e: function(arg0, arg1) {
|
|
957
|
+
const ret = new Uint8Array(getArrayU8FromWasm0(arg0, arg1));
|
|
958
|
+
return ret;
|
|
959
|
+
},
|
|
802
960
|
__wbg_new_typed_6f8b0d724fe26c07: function(arg0, arg1) {
|
|
803
961
|
try {
|
|
804
962
|
var state0 = {a: arg0, b: arg1};
|
|
@@ -1483,12 +1641,12 @@ function __wbg_get_imports() {
|
|
|
1483
1641
|
arg0.writeTexture(arg1, getArrayU8FromWasm0(arg2, arg3), arg4, arg5);
|
|
1484
1642
|
}, arguments); },
|
|
1485
1643
|
__wbindgen_generic_0000000000000001: function(arg0, arg1) {
|
|
1486
|
-
// Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx:
|
|
1644
|
+
// Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 5095, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
|
|
1487
1645
|
const ret = makeMutClosure(arg0, arg1, wasm_bindgen__convert__closures_____invoke__h90756ddb99d2201d);
|
|
1488
1646
|
return ret;
|
|
1489
1647
|
},
|
|
1490
1648
|
__wbindgen_generic_0000000000000002: function(arg0, arg1) {
|
|
1491
|
-
// Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx:
|
|
1649
|
+
// Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 6306, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
|
|
1492
1650
|
const ret = makeMutClosure(arg0, arg1, wasm_bindgen__convert__closures_____invoke__h78ff2cea7266d1aa);
|
|
1493
1651
|
return ret;
|
|
1494
1652
|
},
|
|
@@ -1777,6 +1935,13 @@ function makeMutClosure(arg0, arg1, f) {
|
|
|
1777
1935
|
return real;
|
|
1778
1936
|
}
|
|
1779
1937
|
|
|
1938
|
+
function passArray32ToWasm0(arg, malloc) {
|
|
1939
|
+
const ptr = malloc(arg.length * 4, 4) >>> 0;
|
|
1940
|
+
getUint32ArrayMemory0().set(arg, ptr / 4);
|
|
1941
|
+
WASM_VECTOR_LEN = arg.length;
|
|
1942
|
+
return ptr;
|
|
1943
|
+
}
|
|
1944
|
+
|
|
1780
1945
|
function passArray8ToWasm0(arg, malloc) {
|
|
1781
1946
|
const ptr = malloc(arg.length * 1, 1) >>> 0;
|
|
1782
1947
|
getUint8ArrayMemory0().set(arg, ptr / 1);
|
|
Binary file
|