@paged-media/introspect-wasm 0.62.0 → 0.64.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/catalog.json +453 -4
- package/package.json +1 -1
- package/paged_introspect_wasm.d.ts +103 -14
- package/paged_introspect_wasm.js +10 -6
- package/paged_introspect_wasm_bg.wasm +0 -0
package/catalog.json
CHANGED
|
@@ -630,6 +630,13 @@
|
|
|
630
630
|
"kind": "write",
|
|
631
631
|
"summary": "Flip a condition's visibility."
|
|
632
632
|
},
|
|
633
|
+
{
|
|
634
|
+
"name": "paged.setFlowGrowRule",
|
|
635
|
+
"params": "(storyId, grow, maxPages?, copyFrameOptions?)",
|
|
636
|
+
"returns": "bool",
|
|
637
|
+
"kind": "write",
|
|
638
|
+
"summary": "Let a story's frame chain grow: generated pages are added after its last frame's page while it oversets (InDesign's Smart Text Reflow), and removed when empty. copyFrameOptions gives generated frames the chain's frame options (a Word section's mode) instead of InDesign's defaults. grow=false clears the rule."
|
|
639
|
+
},
|
|
633
640
|
{
|
|
634
641
|
"name": "paged.activateConditionSet",
|
|
635
642
|
"params": "(setId)",
|
|
@@ -756,12 +763,257 @@
|
|
|
756
763
|
"kind": "write",
|
|
757
764
|
"summary": "Set or clear the text caret/range."
|
|
758
765
|
},
|
|
766
|
+
{
|
|
767
|
+
"name": "paged.reorderElement",
|
|
768
|
+
"params": "(id, target)",
|
|
769
|
+
"returns": "bool",
|
|
770
|
+
"kind": "author",
|
|
771
|
+
"summary": "Raise or lower an element in its parent's z-order. target = front | back | forward | backward | {index: n} (n = the final slot, 0 = backmost)."
|
|
772
|
+
},
|
|
773
|
+
{
|
|
774
|
+
"name": "paged.pasteInto",
|
|
775
|
+
"params": "(containerId, childId)",
|
|
776
|
+
"returns": "bool",
|
|
777
|
+
"kind": "author",
|
|
778
|
+
"summary": "Nest an existing item inside a container frame."
|
|
779
|
+
},
|
|
780
|
+
{
|
|
781
|
+
"name": "paged.releaseFrom",
|
|
782
|
+
"params": "(childId)",
|
|
783
|
+
"returns": "bool",
|
|
784
|
+
"kind": "author",
|
|
785
|
+
"summary": "Lift a nested item back out of its container (inverse of pasteInto)."
|
|
786
|
+
},
|
|
787
|
+
{
|
|
788
|
+
"name": "paged.closePath",
|
|
789
|
+
"params": "(id, subpath?)",
|
|
790
|
+
"returns": "bool",
|
|
791
|
+
"kind": "author",
|
|
792
|
+
"summary": "Close an open contour; subpath defaults to the whole path."
|
|
793
|
+
},
|
|
794
|
+
{
|
|
795
|
+
"name": "paged.joinPaths",
|
|
796
|
+
"params": "(id, otherId)",
|
|
797
|
+
"returns": "bool",
|
|
798
|
+
"kind": "author",
|
|
799
|
+
"summary": "Weld two open paths into one."
|
|
800
|
+
},
|
|
801
|
+
{
|
|
802
|
+
"name": "paged.pathfinderDivide",
|
|
803
|
+
"params": "([id, ...])",
|
|
804
|
+
"returns": "bool",
|
|
805
|
+
"kind": "author",
|
|
806
|
+
"summary": "Divide the selection into its planar regions."
|
|
807
|
+
},
|
|
808
|
+
{
|
|
809
|
+
"name": "paged.pathfinderTrim",
|
|
810
|
+
"params": "([id, ...])",
|
|
811
|
+
"returns": "bool",
|
|
812
|
+
"kind": "author",
|
|
813
|
+
"summary": "Trim hidden parts of the lower shapes away."
|
|
814
|
+
},
|
|
815
|
+
{
|
|
816
|
+
"name": "paged.pathfinderMerge",
|
|
817
|
+
"params": "([id, ...])",
|
|
818
|
+
"returns": "bool",
|
|
819
|
+
"kind": "author",
|
|
820
|
+
"summary": "Merge adjacent same-paint regions of the selection."
|
|
821
|
+
},
|
|
822
|
+
{
|
|
823
|
+
"name": "paged.pathfinderCrop",
|
|
824
|
+
"params": "([id, ...])",
|
|
825
|
+
"returns": "bool",
|
|
826
|
+
"kind": "author",
|
|
827
|
+
"summary": "Crop the selection to the topmost shape."
|
|
828
|
+
},
|
|
829
|
+
{
|
|
830
|
+
"name": "paged.pathfinderOutline",
|
|
831
|
+
"params": "([id, ...])",
|
|
832
|
+
"returns": "bool",
|
|
833
|
+
"kind": "author",
|
|
834
|
+
"summary": "Reduce the selection to its outlined edges."
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
"name": "paged.pathfinderMinusBack",
|
|
838
|
+
"params": "([id, ...])",
|
|
839
|
+
"returns": "bool",
|
|
840
|
+
"kind": "author",
|
|
841
|
+
"summary": "Subtract the shapes behind from the frontmost one."
|
|
842
|
+
},
|
|
843
|
+
{
|
|
844
|
+
"name": "paged.pathfinderFaces",
|
|
845
|
+
"params": "([id, ...], [faceId, ...], mode)",
|
|
846
|
+
"returns": "bool",
|
|
847
|
+
"kind": "author",
|
|
848
|
+
"summary": "Keep or drop named faces of the planar arrangement; mode = keep | remove. Face ids come from paged.planarRegions."
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
"name": "paged.planarRegions",
|
|
852
|
+
"params": "([id, ...], [x, y]?)",
|
|
853
|
+
"returns": "PlanarRegionsResult JSON",
|
|
854
|
+
"kind": "read",
|
|
855
|
+
"summary": "The planar arrangement of the named paths: found, faces (each with an id), inputCount, complete, reason. With a point, only the face under it. This is how a script names a face for pathfinderFaces."
|
|
856
|
+
},
|
|
857
|
+
{
|
|
858
|
+
"name": "paged.applyOpacityMask",
|
|
859
|
+
"params": "(targetId, maskId, {maskType?, invert?}?)",
|
|
860
|
+
"returns": "bool",
|
|
861
|
+
"kind": "author",
|
|
862
|
+
"summary": "Mask one element with another."
|
|
863
|
+
},
|
|
864
|
+
{
|
|
865
|
+
"name": "paged.releaseOpacityMask",
|
|
866
|
+
"params": "(targetId)",
|
|
867
|
+
"returns": "bool",
|
|
868
|
+
"kind": "author",
|
|
869
|
+
"summary": "Remove an element's opacity mask."
|
|
870
|
+
},
|
|
871
|
+
{
|
|
872
|
+
"name": "paged.attachTextToPath",
|
|
873
|
+
"params": "(id, storyId, {pathTypeAlignment?, flipPathEffect?, startBracket?, endBracket?}?)",
|
|
874
|
+
"returns": "bool",
|
|
875
|
+
"kind": "author",
|
|
876
|
+
"summary": "Run a story along a path."
|
|
877
|
+
},
|
|
878
|
+
{
|
|
879
|
+
"name": "paged.detachTextFromPath",
|
|
880
|
+
"params": "(id)",
|
|
881
|
+
"returns": "bool",
|
|
882
|
+
"kind": "author",
|
|
883
|
+
"summary": "Take a story back off its path."
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
"name": "paged.insertAnchoredFrame",
|
|
887
|
+
"params": "(storyId, offset, width, height, imageUri?)",
|
|
888
|
+
"returns": "bool",
|
|
889
|
+
"kind": "author",
|
|
890
|
+
"summary": "Anchor a frame in the text at a story offset; with imageUri the frame is created holding that image."
|
|
891
|
+
},
|
|
892
|
+
{
|
|
893
|
+
"name": "paged.insertHyperlink",
|
|
894
|
+
"params": "(storyId, start, end, url)",
|
|
895
|
+
"returns": "bool",
|
|
896
|
+
"kind": "author",
|
|
897
|
+
"summary": "Make a character range a clickable link. Read the result with paged.collection(\"hyperlinks\") — paged.links() is the placed-asset list, not this."
|
|
898
|
+
},
|
|
899
|
+
{
|
|
900
|
+
"name": "paged.layerSetVisible",
|
|
901
|
+
"params": "(layerId, visible)",
|
|
902
|
+
"returns": "bool",
|
|
903
|
+
"kind": "write",
|
|
904
|
+
"summary": "Show or hide a layer."
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
"name": "paged.layerSetLocked",
|
|
908
|
+
"params": "(layerId, locked)",
|
|
909
|
+
"returns": "bool",
|
|
910
|
+
"kind": "write",
|
|
911
|
+
"summary": "Lock or unlock a layer."
|
|
912
|
+
},
|
|
913
|
+
{
|
|
914
|
+
"name": "paged.layerSetPrintable",
|
|
915
|
+
"params": "(layerId, printable)",
|
|
916
|
+
"returns": "bool",
|
|
917
|
+
"kind": "write",
|
|
918
|
+
"summary": "Include a layer in output, or hold it back."
|
|
919
|
+
},
|
|
920
|
+
{
|
|
921
|
+
"name": "paged.layerSetName",
|
|
922
|
+
"params": "(layerId, name)",
|
|
923
|
+
"returns": "bool",
|
|
924
|
+
"kind": "write",
|
|
925
|
+
"summary": "Rename a layer."
|
|
926
|
+
},
|
|
927
|
+
{
|
|
928
|
+
"name": "paged.createSwatch",
|
|
929
|
+
"params": "(spec)",
|
|
930
|
+
"returns": "string (created id) | null",
|
|
931
|
+
"kind": "author",
|
|
932
|
+
"summary": "Create a swatch from a SwatchSpec ({space, value: [...], name?, model?, tint?}); returns its selfId."
|
|
933
|
+
},
|
|
934
|
+
{
|
|
935
|
+
"name": "paged.editSwatch",
|
|
936
|
+
"params": "(swatchId, spec)",
|
|
937
|
+
"returns": "bool",
|
|
938
|
+
"kind": "author",
|
|
939
|
+
"summary": "Replace a swatch's definition."
|
|
940
|
+
},
|
|
941
|
+
{
|
|
942
|
+
"name": "paged.deleteSwatch",
|
|
943
|
+
"params": "(swatchId)",
|
|
944
|
+
"returns": "bool",
|
|
945
|
+
"kind": "author",
|
|
946
|
+
"summary": "Delete a swatch."
|
|
947
|
+
},
|
|
948
|
+
{
|
|
949
|
+
"name": "paged.createGradient",
|
|
950
|
+
"params": "(spec)",
|
|
951
|
+
"returns": "string (created id) | null",
|
|
952
|
+
"kind": "author",
|
|
953
|
+
"summary": "Create a gradient from a GradientSpec ({kind: \"Linear\"|\"Radial\", stops: [...], name?}); returns its selfId."
|
|
954
|
+
},
|
|
955
|
+
{
|
|
956
|
+
"name": "paged.editGradient",
|
|
957
|
+
"params": "(gradientId, spec)",
|
|
958
|
+
"returns": "bool",
|
|
959
|
+
"kind": "author",
|
|
960
|
+
"summary": "Replace a gradient's definition."
|
|
961
|
+
},
|
|
962
|
+
{
|
|
963
|
+
"name": "paged.deleteGradient",
|
|
964
|
+
"params": "(gradientId)",
|
|
965
|
+
"returns": "bool",
|
|
966
|
+
"kind": "author",
|
|
967
|
+
"summary": "Delete a gradient."
|
|
968
|
+
},
|
|
969
|
+
{
|
|
970
|
+
"name": "paged.createColorGroup",
|
|
971
|
+
"params": "(spec)",
|
|
972
|
+
"returns": "string (created id) | null",
|
|
973
|
+
"kind": "author",
|
|
974
|
+
"summary": "Create a colour group from a ColorGroupSpec; returns its selfId."
|
|
975
|
+
},
|
|
976
|
+
{
|
|
977
|
+
"name": "paged.editColorGroup",
|
|
978
|
+
"params": "(groupId, spec)",
|
|
979
|
+
"returns": "bool",
|
|
980
|
+
"kind": "author",
|
|
981
|
+
"summary": "Replace a colour group's definition."
|
|
982
|
+
},
|
|
983
|
+
{
|
|
984
|
+
"name": "paged.deleteColorGroup",
|
|
985
|
+
"params": "(groupId)",
|
|
986
|
+
"returns": "bool",
|
|
987
|
+
"kind": "author",
|
|
988
|
+
"summary": "Delete a colour group."
|
|
989
|
+
},
|
|
759
990
|
{
|
|
760
991
|
"name": "console.log",
|
|
761
992
|
"params": "(...)",
|
|
762
993
|
"returns": "undefined",
|
|
763
994
|
"kind": "console",
|
|
764
|
-
"summary": "Append a line to the captured output log
|
|
995
|
+
"summary": "Append a line to the captured output log."
|
|
996
|
+
},
|
|
997
|
+
{
|
|
998
|
+
"name": "console.warn",
|
|
999
|
+
"params": "(...)",
|
|
1000
|
+
"returns": "undefined",
|
|
1001
|
+
"kind": "console",
|
|
1002
|
+
"summary": "Append a warn-level line to the captured output log."
|
|
1003
|
+
},
|
|
1004
|
+
{
|
|
1005
|
+
"name": "console.error",
|
|
1006
|
+
"params": "(...)",
|
|
1007
|
+
"returns": "undefined",
|
|
1008
|
+
"kind": "console",
|
|
1009
|
+
"summary": "Append an error-level line to the captured output log."
|
|
1010
|
+
},
|
|
1011
|
+
{
|
|
1012
|
+
"name": "console.info",
|
|
1013
|
+
"params": "(...)",
|
|
1014
|
+
"returns": "undefined",
|
|
1015
|
+
"kind": "console",
|
|
1016
|
+
"summary": "Append an info-level line to the captured output log."
|
|
765
1017
|
}
|
|
766
1018
|
],
|
|
767
1019
|
"idGrammar": [
|
|
@@ -924,6 +1176,7 @@
|
|
|
924
1176
|
"frameDirectionalFeatherNoise",
|
|
925
1177
|
"frameDirectionalFeatherChoke",
|
|
926
1178
|
"frameBlendMode",
|
|
1179
|
+
"frameGradientFeather",
|
|
927
1180
|
"cellFillColor",
|
|
928
1181
|
"cellFillTint",
|
|
929
1182
|
"cellInsetTop",
|
|
@@ -943,8 +1196,6 @@
|
|
|
943
1196
|
"cellRightEdgeStrokeColor",
|
|
944
1197
|
"cellRightEdgeStrokeWeight",
|
|
945
1198
|
"cellRightEdgeStrokeTint",
|
|
946
|
-
"tableRowCount",
|
|
947
|
-
"tableColumnCount",
|
|
948
1199
|
"pluginMetadata",
|
|
949
1200
|
"anchoredPosition",
|
|
950
1201
|
"anchorPoint",
|
|
@@ -957,7 +1208,51 @@
|
|
|
957
1208
|
"anchoredSpineRelative",
|
|
958
1209
|
"anchoredLockPosition",
|
|
959
1210
|
"elementVisible",
|
|
960
|
-
"elementLocked"
|
|
1211
|
+
"elementLocked",
|
|
1212
|
+
"characterFontFamily",
|
|
1213
|
+
"characterFontStyle",
|
|
1214
|
+
"characterKerningMethod",
|
|
1215
|
+
"characterCase",
|
|
1216
|
+
"characterPosition",
|
|
1217
|
+
"characterLanguage",
|
|
1218
|
+
"characterBaselineShift",
|
|
1219
|
+
"characterHorizontalScale",
|
|
1220
|
+
"characterVerticalScale",
|
|
1221
|
+
"characterSkew",
|
|
1222
|
+
"characterUnderline",
|
|
1223
|
+
"characterStrikethru",
|
|
1224
|
+
"characterLigatures",
|
|
1225
|
+
"characterOtfFeatures",
|
|
1226
|
+
"paragraphLeftIndent",
|
|
1227
|
+
"paragraphRightIndent",
|
|
1228
|
+
"paragraphDropCapCharacters",
|
|
1229
|
+
"paragraphDropCapLines",
|
|
1230
|
+
"paragraphHyphenation",
|
|
1231
|
+
"paragraphHyphenationZone",
|
|
1232
|
+
"paragraphKeepLinesTogether",
|
|
1233
|
+
"paragraphKeepWithNext",
|
|
1234
|
+
"paragraphKeepAllLinesTogether",
|
|
1235
|
+
"paragraphKeepFirstLines",
|
|
1236
|
+
"paragraphKeepLastLines",
|
|
1237
|
+
"paragraphStartParagraph",
|
|
1238
|
+
"paragraphSpanColumnType",
|
|
1239
|
+
"paragraphSpanSplitColumnCount",
|
|
1240
|
+
"paragraphSpanColumnMinSpaceBefore",
|
|
1241
|
+
"paragraphSpanColumnMinSpaceAfter",
|
|
1242
|
+
"paragraphSplitColumnInsideGutter",
|
|
1243
|
+
"paragraphSplitColumnOutsideGutter",
|
|
1244
|
+
"paragraphRuleAbove",
|
|
1245
|
+
"paragraphRuleBelow",
|
|
1246
|
+
"paragraphTabStops",
|
|
1247
|
+
"paragraphListType",
|
|
1248
|
+
"paragraphBulletCharacter",
|
|
1249
|
+
"paragraphNumberingFormat",
|
|
1250
|
+
"paragraphBulletsTextAfter",
|
|
1251
|
+
"paragraphNumberingExpression",
|
|
1252
|
+
"paragraphNumberingStartAt",
|
|
1253
|
+
"paragraphNumberingContinue",
|
|
1254
|
+
"paragraphBulletsCharacterStyle",
|
|
1255
|
+
"paragraphNumberingCharacterStyle"
|
|
961
1256
|
],
|
|
962
1257
|
"constraints": [
|
|
963
1258
|
"Scripts run in Boa (pure ECMAScript), NOT Node: no require/import, fetch, fs, setTimeout, or network. Use only paged.* and console.*.",
|
|
@@ -968,6 +1263,126 @@
|
|
|
968
1263
|
"insertFrame/insertTextFrame return the new element's kind:id address (and auto-select it); insertPage returns the new page's selfId. Pass the returned id straight to paged.set / placeImage / insertText (use paged.pages() for a page id, paged.stories() for the minted story).",
|
|
969
1264
|
"Bounds are page-local points in [top, left, bottom, right] order. The document works in points (1/72 inch)."
|
|
970
1265
|
],
|
|
1266
|
+
"operations": [
|
|
1267
|
+
"insertText",
|
|
1268
|
+
"deleteRange",
|
|
1269
|
+
"applyStyle",
|
|
1270
|
+
"insertField",
|
|
1271
|
+
"insertAnchoredFrame",
|
|
1272
|
+
"insertHyperlink",
|
|
1273
|
+
"setFieldValue",
|
|
1274
|
+
"placeImage",
|
|
1275
|
+
"replaceImageBytes",
|
|
1276
|
+
"moveFrame",
|
|
1277
|
+
"resizeFrame",
|
|
1278
|
+
"linkFrames",
|
|
1279
|
+
"unlinkFrames",
|
|
1280
|
+
"insertPage",
|
|
1281
|
+
"deletePage",
|
|
1282
|
+
"resizePage",
|
|
1283
|
+
"insertFrame",
|
|
1284
|
+
"insertTextFrame",
|
|
1285
|
+
"deleteFrame",
|
|
1286
|
+
"insertLine",
|
|
1287
|
+
"insertPath",
|
|
1288
|
+
"setDocumentDefaults",
|
|
1289
|
+
"setColorSettings",
|
|
1290
|
+
"setProofSetup",
|
|
1291
|
+
"importSwatchLibrary",
|
|
1292
|
+
"setInkSetting",
|
|
1293
|
+
"setUseStandardLabForSpots",
|
|
1294
|
+
"pathPointInsert",
|
|
1295
|
+
"pathPointRemove",
|
|
1296
|
+
"pathOpenAt",
|
|
1297
|
+
"outlineStroke",
|
|
1298
|
+
"offsetPath",
|
|
1299
|
+
"simplifyPath",
|
|
1300
|
+
"closePath",
|
|
1301
|
+
"joinPaths",
|
|
1302
|
+
"pasteInto",
|
|
1303
|
+
"releaseFrom",
|
|
1304
|
+
"reorderElement",
|
|
1305
|
+
"applyOpacityMask",
|
|
1306
|
+
"releaseOpacityMask",
|
|
1307
|
+
"attachTextToPath",
|
|
1308
|
+
"detachTextFromPath",
|
|
1309
|
+
"createGroup",
|
|
1310
|
+
"dissolveGroup",
|
|
1311
|
+
"setGroupTransform",
|
|
1312
|
+
"setPluginMetadata",
|
|
1313
|
+
"pathPointCurveType",
|
|
1314
|
+
"pathPointSet",
|
|
1315
|
+
"batch",
|
|
1316
|
+
"bindCreated",
|
|
1317
|
+
"layerSetVisible",
|
|
1318
|
+
"layerSetLocked",
|
|
1319
|
+
"layerSetPrintable",
|
|
1320
|
+
"layerSetName",
|
|
1321
|
+
"layerMove",
|
|
1322
|
+
"layerInsert",
|
|
1323
|
+
"layerRemove",
|
|
1324
|
+
"setElementProperty",
|
|
1325
|
+
"pathfinderBoolean",
|
|
1326
|
+
"pathfinderDivide",
|
|
1327
|
+
"pathfinderTrim",
|
|
1328
|
+
"pathfinderMerge",
|
|
1329
|
+
"pathfinderCrop",
|
|
1330
|
+
"pathfinderOutline",
|
|
1331
|
+
"pathfinderMinusBack",
|
|
1332
|
+
"pathfinderFaces",
|
|
1333
|
+
"createSwatch",
|
|
1334
|
+
"editSwatch",
|
|
1335
|
+
"deleteSwatch",
|
|
1336
|
+
"createGradient",
|
|
1337
|
+
"editGradient",
|
|
1338
|
+
"deleteGradient",
|
|
1339
|
+
"createColorGroup",
|
|
1340
|
+
"editColorGroup",
|
|
1341
|
+
"deleteColorGroup",
|
|
1342
|
+
"createNumberingList",
|
|
1343
|
+
"editNumberingList",
|
|
1344
|
+
"deleteNumberingList",
|
|
1345
|
+
"createParagraphStyle",
|
|
1346
|
+
"renameParagraphStyle",
|
|
1347
|
+
"deleteParagraphStyle",
|
|
1348
|
+
"createCharacterStyle",
|
|
1349
|
+
"renameCharacterStyle",
|
|
1350
|
+
"deleteCharacterStyle",
|
|
1351
|
+
"createObjectStyle",
|
|
1352
|
+
"renameObjectStyle",
|
|
1353
|
+
"deleteObjectStyle",
|
|
1354
|
+
"createCellStyle",
|
|
1355
|
+
"renameCellStyle",
|
|
1356
|
+
"deleteCellStyle",
|
|
1357
|
+
"createTableStyle",
|
|
1358
|
+
"renameTableStyle",
|
|
1359
|
+
"deleteTableStyle",
|
|
1360
|
+
"setStyleProperty",
|
|
1361
|
+
"insertOval",
|
|
1362
|
+
"insertGuide",
|
|
1363
|
+
"moveGuide",
|
|
1364
|
+
"deleteGuide",
|
|
1365
|
+
"setConditionVisible",
|
|
1366
|
+
"setFlowGrowRule",
|
|
1367
|
+
"activateConditionSet",
|
|
1368
|
+
"applyMasterToPage",
|
|
1369
|
+
"duplicatePage",
|
|
1370
|
+
"insertSection",
|
|
1371
|
+
"editSection",
|
|
1372
|
+
"deleteSection",
|
|
1373
|
+
"setRowHeight",
|
|
1374
|
+
"setColumnWidth",
|
|
1375
|
+
"insertTableRow",
|
|
1376
|
+
"deleteTableRow",
|
|
1377
|
+
"insertTableColumn",
|
|
1378
|
+
"deleteTableColumn",
|
|
1379
|
+
"insertHeaderRow",
|
|
1380
|
+
"removeHeaderRow",
|
|
1381
|
+
"insertFooterRow",
|
|
1382
|
+
"removeFooterRow",
|
|
1383
|
+
"setCellSpan",
|
|
1384
|
+
"insertTable"
|
|
1385
|
+
],
|
|
971
1386
|
"elements": [
|
|
972
1387
|
{
|
|
973
1388
|
"name": "TextFrame",
|
|
@@ -1329,5 +1744,39 @@
|
|
|
1329
1744
|
}
|
|
1330
1745
|
]
|
|
1331
1746
|
}
|
|
1747
|
+
],
|
|
1748
|
+
"pathAliases": [
|
|
1749
|
+
{
|
|
1750
|
+
"name": "frameTextWrapInvert",
|
|
1751
|
+
"wire": "textWrapInvert"
|
|
1752
|
+
},
|
|
1753
|
+
{
|
|
1754
|
+
"name": "frameInnerShadow",
|
|
1755
|
+
"wire": "frameInnerShadowEnabled"
|
|
1756
|
+
},
|
|
1757
|
+
{
|
|
1758
|
+
"name": "frameOuterGlow",
|
|
1759
|
+
"wire": "frameOuterGlowEnabled"
|
|
1760
|
+
},
|
|
1761
|
+
{
|
|
1762
|
+
"name": "frameInnerGlow",
|
|
1763
|
+
"wire": "frameInnerGlowEnabled"
|
|
1764
|
+
},
|
|
1765
|
+
{
|
|
1766
|
+
"name": "frameBevel",
|
|
1767
|
+
"wire": "frameBevelEnabled"
|
|
1768
|
+
},
|
|
1769
|
+
{
|
|
1770
|
+
"name": "frameSatin",
|
|
1771
|
+
"wire": "frameSatinEnabled"
|
|
1772
|
+
},
|
|
1773
|
+
{
|
|
1774
|
+
"name": "frameFeather",
|
|
1775
|
+
"wire": "frameFeatherEnabled"
|
|
1776
|
+
},
|
|
1777
|
+
{
|
|
1778
|
+
"name": "frameDirectionalFeather",
|
|
1779
|
+
"wire": "frameDirectionalFeatherEnabled"
|
|
1780
|
+
}
|
|
1332
1781
|
]
|
|
1333
1782
|
}
|
package/package.json
CHANGED
|
@@ -5,6 +5,17 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export type ScenePathSeg = { op: "moveTo"; x: number; y: number } | { op: "lineTo"; x: number; y: number } | { op: "cubicTo"; cx1: number; cy1: number; cx2: number; cy2: number; x: number; y: number } | { op: "close" };
|
|
7
7
|
|
|
8
|
+
/**
|
|
9
|
+
* A byte buffer that crosses the message channel. Wraps `Vec<u8>`
|
|
10
|
+
* so transferable-via-`postMessage` semantics are explicit at call
|
|
11
|
+
* sites; the wasm crate decides whether to clone or transfer based
|
|
12
|
+
* on whether the value is the JS-side `Uint8Array` or a Rust-side
|
|
13
|
+
* `Vec`. The wire form is whatever serde produces for `Vec<u8>` —
|
|
14
|
+
* JSON renders an array of numbers; future binary protocols (CBOR
|
|
15
|
+
* / messagepack) render a real bytes blob without code change.
|
|
16
|
+
*/
|
|
17
|
+
export type ByteBuf = number[];
|
|
18
|
+
|
|
8
19
|
/**
|
|
9
20
|
* A compositing blend mode for [`SceneItem::FillPathBlend`] (C-1.4).
|
|
10
21
|
* Mirrors the CSS-relevant subset of the display list\'s
|
|
@@ -15,6 +26,17 @@ export type ScenePathSeg = { op: "moveTo"; x: number; y: number } | { op: "lineT
|
|
|
15
26
|
*/
|
|
16
27
|
export type SceneBlendMode = "multiply" | "screen" | "overlay" | "darken" | "lighten" | "colorDodge" | "colorBurn" | "hardLight" | "softLight" | "difference" | "exclusion" | "hue" | "saturation" | "color" | "luminosity";
|
|
17
28
|
|
|
29
|
+
/**
|
|
30
|
+
* A content-space mutation. Phase 1 carries the *envelope* only —
|
|
31
|
+
* the worker rejects each variant with `WorkerError::NotImplemented`.
|
|
32
|
+
* Phase 3 lights these up incrementally.
|
|
33
|
+
*
|
|
34
|
+
* Behind the default `mutations` feature: its payload types come from
|
|
35
|
+
* `paged-mutate`, and the read-only viewer SDK must not link that.
|
|
36
|
+
* See the crate docs.
|
|
37
|
+
*/
|
|
38
|
+
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[] } };
|
|
39
|
+
|
|
18
40
|
/**
|
|
19
41
|
* A plugin gradient paint for [`SceneItem::FillPathGradient`] (C-1.3).
|
|
20
42
|
* Coordinates are frame-content points (mapped by the frame transform
|
|
@@ -222,6 +244,19 @@ export interface GradientFeatherStopSpec {
|
|
|
222
244
|
midpointPct?: number;
|
|
223
245
|
}
|
|
224
246
|
|
|
247
|
+
/**
|
|
248
|
+
* Element address the user can select OR a `SetElementProperty`
|
|
249
|
+
* mutation can target. The first six variants are page items
|
|
250
|
+
* (selection state holds these); `StoryRange` is the half-open
|
|
251
|
+
* character range that character / paragraph property writes
|
|
252
|
+
* address. Selection state today never holds `StoryRange` (the
|
|
253
|
+
* text-side caret + range live in `ContentSelection`); the
|
|
254
|
+
* variant exists so the apply layer can be reached via the
|
|
255
|
+
* existing `Mutation::SetElementProperty` wire shape — see
|
|
256
|
+
* `docs/paged/sdk-implementation-plan.md` §3c.1 ADR.
|
|
257
|
+
*/
|
|
258
|
+
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 } };
|
|
259
|
+
|
|
225
260
|
/**
|
|
226
261
|
* Hint to downstream caches about what the apply touched. Lists
|
|
227
262
|
* instead of a single enum so a Batch aggregates by union without
|
|
@@ -239,6 +274,16 @@ export interface InvalidationHint {
|
|
|
239
274
|
structural: boolean;
|
|
240
275
|
}
|
|
241
276
|
|
|
277
|
+
/**
|
|
278
|
+
* How a `SetElementSelection` request combines with the current set.
|
|
279
|
+
* Mirrors the canonical macOS / industry convention:
|
|
280
|
+
* - `Replace` — plain click; selection becomes the request.
|
|
281
|
+
* - `Add` — Shift-click; union (already-selected ids stay).
|
|
282
|
+
* - `Toggle` — Cmd/Ctrl-click; ids already in the set are removed,
|
|
283
|
+
* ids not in the set are added.
|
|
284
|
+
*/
|
|
285
|
+
export type SelectionMode = "replace" | "add" | "toggle";
|
|
286
|
+
|
|
242
287
|
/**
|
|
243
288
|
* One RGBA8 tile of a [`PixelLayer`]. `rgba` is tightly packed
|
|
244
289
|
* (`width*height*4`, row-major); the tile is placed at the `(x, y)`
|
|
@@ -341,25 +386,13 @@ export type PathfinderKind = "union" | "intersect" | "subtract" | "exclude";
|
|
|
341
386
|
*/
|
|
342
387
|
export type NodeId = { 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: "Spread"; id: string } | { kind: "Page"; id: string } | { kind: "Story"; id: string } | { kind: "Layer"; 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 } };
|
|
343
388
|
|
|
344
|
-
/**
|
|
345
|
-
* Stable page identity, independent of position in the page vector.
|
|
346
|
-
*
|
|
347
|
-
* Derived from the IDML `<Page Self=\"...\">` attribute where present;
|
|
348
|
-
* synthesised as `\"page-<spread_idx>-<local_idx>\"` when missing
|
|
349
|
-
* (older / synthetic fixtures without `Self`). The canvas keys
|
|
350
|
-
* display-list caches and LOD tiles by `PageId`, so the value must
|
|
351
|
-
* stay stable across re-layouts — only document-structural edits
|
|
352
|
-
* (insert/delete page) should ever change the set of `PageId`s.
|
|
353
|
-
*/
|
|
354
|
-
export type PageId = string;
|
|
355
|
-
|
|
356
389
|
/**
|
|
357
390
|
* The canonical mutation primitive. A closed set, extended only with
|
|
358
391
|
* deliberation. Collection mutations (swatches, styles) operate on the
|
|
359
392
|
* document\'s `BTreeMap` palettes/stylesheets rather than the scene
|
|
360
393
|
* tree, so they\'re top-level variants rather than `InsertNode`.
|
|
361
394
|
*/
|
|
362
|
-
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: "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 };
|
|
395
|
+
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 };
|
|
363
396
|
|
|
364
397
|
/**
|
|
365
398
|
* Track J — wire-shape mirror of `paged_model::PathAnchor`. The
|
|
@@ -390,7 +423,7 @@ export type Value = { type: "bounds"; value: [number, number, number, number] }
|
|
|
390
423
|
* (`\"fill.color\"`) — so JS callers don\'t need to learn the Rust
|
|
391
424
|
* enum shape.
|
|
392
425
|
*/
|
|
393
|
-
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" | "paragraphKeepLinesTogether" | "paragraphKeepWithNext" | "paragraphRuleAbove" | "paragraphRuleBelow" | "paragraphTabStops" | "paragraphListType" | "paragraphBulletCharacter" | "paragraphNumberingFormat" | "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";
|
|
426
|
+
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";
|
|
394
427
|
|
|
395
428
|
/**
|
|
396
429
|
* W0.2 — wire mirror of `paged_model::ParagraphRule` (the
|
|
@@ -441,6 +474,60 @@ export type FieldKind = "pageNumber" | "nextPageNumber" | { placeholder: { plugi
|
|
|
441
474
|
*/
|
|
442
475
|
export type GuideOrientationSpec = "vertical" | "horizontal";
|
|
443
476
|
|
|
477
|
+
/**
|
|
478
|
+
* W1.13 — cell qualifier for a content address that points INTO a
|
|
479
|
+
* table cell rather than the story\'s main paragraph flow.
|
|
480
|
+
*
|
|
481
|
+
* ## The two-stream addressing model
|
|
482
|
+
*
|
|
483
|
+
* Table-cell text is stored out of band on `Table.cells[].paragraphs`
|
|
484
|
+
* (see `idml_import`), disjoint from `Story.paragraphs`. So a content
|
|
485
|
+
* address needs to say *which* paragraph stream its byte offsets index:
|
|
486
|
+
*
|
|
487
|
+
* - `ContentSelection.cell == None` — offsets are story-local bytes
|
|
488
|
+
* over `story.paragraphs` (the body flow). Unchanged from before.
|
|
489
|
+
* - `ContentSelection.cell == Some(addr)` — offsets are CELL-LOCAL
|
|
490
|
+
* bytes over `cell.paragraphs`, under the same story-offset contract
|
|
491
|
+
* (run bytes + one synthetic `\\n` per inter-paragraph boundary,
|
|
492
|
+
* counted within the cell). The owning story is still `story_id`;
|
|
493
|
+
* `addr` picks the cell within that story\'s table.
|
|
494
|
+
*
|
|
495
|
+
* `table_id` / `row` / `col` are the SAME identifiers the hit-test
|
|
496
|
+
* surface emits (`HitResult.table_context` / `TableHitContext`) and
|
|
497
|
+
* that the renderer stamps onto cell `LineLayout`s
|
|
498
|
+
* (`paged_renderer::CellAddr`), so a hit that lands in a cell hands
|
|
499
|
+
* back exactly the qualifier the caret/edit address needs — no second
|
|
500
|
+
* query.
|
|
501
|
+
*
|
|
502
|
+
* ## Why a qualifier and not a re-numbered flat offset
|
|
503
|
+
*
|
|
504
|
+
* The alternative — fold cells into one flat story-offset space via a
|
|
505
|
+
* reserved high-bit/region scheme — was rejected: it makes
|
|
506
|
+
* `shift_for_insert`/`shift_for_delete`, undo inverse offsets, and the
|
|
507
|
+
* existing body-only consumers (BreakRecord, the A/B harness, every
|
|
508
|
+
* `RequestWordBounds`/`RequestLineBounds` caller) all have to learn the
|
|
509
|
+
* encoding, and a single arithmetic slip silently routes an edit into
|
|
510
|
+
* the wrong cell. The qualifier keeps body addressing byte-identical
|
|
511
|
+
* (the field defaults to `None` and is `#[serde(default)]`, so it
|
|
512
|
+
* rides v35 additively — old senders omit it) and makes \"which stream\
|
|
513
|
+
* an explicit, type-checked decision. Undo is trivially correct
|
|
514
|
+
* because the inverse op carries the same `cell` qualifier.
|
|
515
|
+
*/
|
|
516
|
+
export interface TextCellAddr {
|
|
517
|
+
/**
|
|
518
|
+
* `<Table Self=\"...\">` id within `story_id`.
|
|
519
|
+
*/
|
|
520
|
+
tableId: string;
|
|
521
|
+
/**
|
|
522
|
+
* Template row (0-based); span-origin row for spanned cells.
|
|
523
|
+
*/
|
|
524
|
+
row: number;
|
|
525
|
+
/**
|
|
526
|
+
* Column (0-based); span-origin column for spanned cells.
|
|
527
|
+
*/
|
|
528
|
+
col: number;
|
|
529
|
+
}
|
|
530
|
+
|
|
444
531
|
/**
|
|
445
532
|
* W1.20 — `(parent_group_id, index_within_parent_members)` carried by
|
|
446
533
|
* a `GroupSpec` when a group must be (re)created nested inside another
|
|
@@ -567,6 +654,8 @@ export type StyleScope = "paragraph" | "character";
|
|
|
567
654
|
*/
|
|
568
655
|
export type ZOrderTarget = "front" | "back" | "forward" | "backward" | { index: number };
|
|
569
656
|
|
|
657
|
+
export type PageId = string;
|
|
658
|
+
|
|
570
659
|
|
|
571
660
|
export class Inspector {
|
|
572
661
|
free(): void;
|
package/paged_introspect_wasm.js
CHANGED
|
@@ -199,14 +199,14 @@ export function on_start() {
|
|
|
199
199
|
function __wbg_get_imports() {
|
|
200
200
|
const import0 = {
|
|
201
201
|
__proto__: null,
|
|
202
|
-
|
|
202
|
+
__wbg_Error_67e7344beaa85059: function(arg0, arg1) {
|
|
203
203
|
const ret = Error(getStringFromWasm0(arg0, arg1));
|
|
204
204
|
return ret;
|
|
205
205
|
},
|
|
206
|
-
|
|
206
|
+
__wbg___wbindgen_throw_5d9e815e6fdf150f: function(arg0, arg1) {
|
|
207
207
|
throw new Error(getStringFromWasm0(arg0, arg1));
|
|
208
208
|
},
|
|
209
|
-
|
|
209
|
+
__wbg_error_757e9472f8410341: function(arg0, arg1) {
|
|
210
210
|
let deferred0_0;
|
|
211
211
|
let deferred0_1;
|
|
212
212
|
try {
|
|
@@ -217,7 +217,7 @@ function __wbg_get_imports() {
|
|
|
217
217
|
wasm.__wbindgen_free(deferred0_0, deferred0_1, 1);
|
|
218
218
|
}
|
|
219
219
|
},
|
|
220
|
-
|
|
220
|
+
__wbg_log_363d83b9114c8831: function(arg0) {
|
|
221
221
|
console.log(arg0);
|
|
222
222
|
},
|
|
223
223
|
__wbg_new_227d7c05414eb861: function() {
|
|
@@ -231,7 +231,7 @@ function __wbg_get_imports() {
|
|
|
231
231
|
getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
|
|
232
232
|
getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
|
|
233
233
|
},
|
|
234
|
-
|
|
234
|
+
__wbindgen_generic_0000000000000001: function(arg0, arg1) {
|
|
235
235
|
// Cast intrinsic for `Ref(String) -> Externref`.
|
|
236
236
|
const ret = getStringFromWasm0(arg0, arg1);
|
|
237
237
|
return ret;
|
|
@@ -373,11 +373,15 @@ function __wbg_finalize_init(instance, module) {
|
|
|
373
373
|
|
|
374
374
|
async function __wbg_load(module, imports) {
|
|
375
375
|
if (typeof Response === 'function' && module instanceof Response) {
|
|
376
|
+
if (!module.ok) {
|
|
377
|
+
throw new Error(`failed to fetch Wasm: ${module.status} ${module.statusText} fetching '${module.url}'`);
|
|
378
|
+
}
|
|
379
|
+
|
|
376
380
|
if (typeof WebAssembly.instantiateStreaming === 'function') {
|
|
377
381
|
try {
|
|
378
382
|
return await WebAssembly.instantiateStreaming(module, imports);
|
|
379
383
|
} catch (e) {
|
|
380
|
-
const validResponse =
|
|
384
|
+
const validResponse = expectedResponseType(module.type);
|
|
381
385
|
|
|
382
386
|
if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {
|
|
383
387
|
console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
|
|
Binary file
|