@adobe/ccweb-add-on-sdk-types 1.23.0 → 1.24.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adobe/ccweb-add-on-sdk-types",
3
- "version": "1.23.0",
3
+ "version": "1.24.0",
4
4
  "author": "Adobe",
5
5
  "license": "MIT",
6
6
  "description": "Type definitions for Adobe Creative Cloud Web Add-on SDK.",
@@ -100,11 +100,8 @@ declare interface ApiModuleExport {
100
100
  }
101
101
 
102
102
  /**
103
- * <InlineAlert slots="text" variant="warning"/>
104
- *
105
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
106
- *
107
- * @experimental
103
+ * Area text: both width and height are explicitly set. If text content is too long to fit, the end of the text will be
104
+ * clipped. If text content is short, the frame's bounds will occupy extra height that is just blank space.
108
105
  */
109
106
  export declare interface AreaTextLayout {
110
107
  type: TextLayout.area;
@@ -140,8 +137,8 @@ declare enum ArrowHeadType {
140
137
  }
141
138
 
142
139
  /**
143
- * ArtboardList represents an ordered list of ArtboardNodes arranged in a timeline sequence, where they are called "scenes."
144
- * All items in the list are children of a single {@link PageNode}.
140
+ * ArtboardList represents an ordered list of ArtboardNodes, which are the children of one {@link PageNode}. If multiple
141
+ * artboards are present, each represents a keyframe "scene" in the page's animation timeline.
145
142
  *
146
143
  * ArtboardList also provides APIs for adding/removing artboards from the page. ArtboardList is never empty: it is illegal to
147
144
  * remove the last remaining artboard from the list.
@@ -158,13 +155,10 @@ export declare class ArtboardList extends RestrictedItemList<ArtboardNode> {
158
155
  }
159
156
 
160
157
  /**
161
- * An ArtboardNode represents an artboard object in the scenegraph. All user visual content must be contained on an artboard.
162
- * Artboards are always contained on a {@link PageNode}; when a page contains multiple artboards, the artboards represent
163
- * "scenes" in a linear timeline sequence.
158
+ * An ArtboardNode represents the topmost container of visual content within a {@link PageNode}. When a page contains
159
+ * multiple artboards, each represents a keyframe "scene" in the page's animation timeline.
164
160
  *
165
161
  * To create a new artboard, see {@link ArtboardList.addArtboard}.
166
- *
167
- * Please note that creating and deleting an artboard in a single frame will crash the editor.
168
162
  */
169
163
  export declare class ArtboardNode extends VisualNode implements Readonly<IRectangularNode>, ContainerNode {
170
164
  /**
@@ -173,11 +167,13 @@ export declare class ArtboardNode extends VisualNode implements Readonly<IRectan
173
167
  * hold children in various discrete "slots"; this `allChildren` list includes *all* such children and reflects their
174
168
  * overall display z-order.
175
169
  *
176
- * The children of an Artboard are always other Node classes (never the more minimal BaseNode).
170
+ * The children of an Artboard are all subclasses of Node (not just the more minimal BaseNode or VisualNode).
177
171
  */
178
172
  get allChildren(): Readonly<Iterable<Node>>;
179
173
  /**
180
- * The node's children. Use the methods on this ItemList object to get, add, and remove children.
174
+ * The artboards's regular children (does not include any "background layer" content if present; use {@link allChildren}
175
+ * for a read-only view that includes background content). Use the methods on this `children` ItemList object to get,
176
+ * add, and remove regular children.
181
177
  */
182
178
  get children(): ItemList<Node>;
183
179
  /**
@@ -205,11 +201,8 @@ export declare class ArtboardNode extends VisualNode implements Readonly<IRectan
205
201
  }
206
202
 
207
203
  /**
208
- * <InlineAlert slots="text" variant="warning"/>
209
- *
210
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
211
- *
212
- * @experimental
204
+ * Auto-height text: Width is explicitly set, and text wraps to use as much vertical space as necessary to display the
205
+ * full content.
213
206
  */
214
207
  export declare interface AutoHeightTextLayout {
215
208
  type: TextLayout.autoHeight;
@@ -220,11 +213,8 @@ export declare interface AutoHeightTextLayout {
220
213
  }
221
214
 
222
215
  /**
223
- * <InlineAlert slots="text" variant="warning"/>
224
- *
225
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
226
- *
227
- * @experimental
216
+ * Auto-width, aka point text: both width and height are automatically determined based on the content. There is no
217
+ * automatic line wrapping, so the text will all be on one line unless the text contains explicit newlines.
228
218
  */
229
219
  export declare interface AutoWidthTextLayout {
230
220
  type: TextLayout.autoWidth;
@@ -353,11 +343,6 @@ export declare class BaseNode {
353
343
  }
354
344
 
355
345
  /**
356
- * <InlineAlert slots="text" variant="warning"/>
357
- *
358
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
359
- *
360
- * @experimental
361
346
  * BaseParagraphListStyle interface represents common properties shared between ordered and unordered list types.
362
347
  */
363
348
  declare interface BaseParagraphListStyle {
@@ -366,11 +351,6 @@ declare interface BaseParagraphListStyle {
366
351
  }
367
352
 
368
353
  /**
369
- * <InlineAlert slots="text" variant="warning"/>
370
- *
371
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
372
- *
373
- * @experimental
374
354
  * Base paragraph styles that can be applied to an entire paragraph atomically.
375
355
  * Excludes list style settings, which differ between the getter-oriented {@link ParagraphStyles} interface and the
376
356
  * setter-oriented {@link ParagraphStylesRangeInput}.
@@ -608,7 +588,8 @@ export declare class Context {
608
588
  */
609
589
  off(eventName: EditorEvent, handlerId: EventHandlerId): void;
610
590
  /**
611
- * @returns the current selection. Nodes that are locked or otherwise non-editable are never included in the selection.
591
+ * @returns the current selection. Nodes that are locked or otherwise non-editable are never included in the regular
592
+ * selection (see {@link selectionIncludingNonEditable} to get any locked nodes the user may have clicked).
612
593
  */
613
594
  get selection(): readonly Node[];
614
595
  /**
@@ -640,6 +621,7 @@ export declare class Context {
640
621
  get insertionParent(): ContainerNode;
641
622
  /**
642
623
  * @returns The currently viewed page.
624
+ * To change the current page, call {@link Viewport.bringIntoView} with an artboard or other content on that page.
643
625
  */
644
626
  get currentPage(): PageNode;
645
627
  }
@@ -791,6 +773,9 @@ export declare class Editor {
791
773
  * Note that the path data will be normalized, and therefore the `path` getter may return a different SVG string from the path creation input.
792
774
  * For example, "M 10 80 Q 52.5 10, 95 80 T 180 80" becomes "M 10 80 C 38.33 33.33 66.67 33.33 95 80...".
793
775
  * Throws if the input is empty or is not legal SVG path syntax.
776
+ *
777
+ * Note: the visual top-left corner of a path may not be its local (0,0) origin point, so it's easiest to position
778
+ * a newly created path using {@link Node.setPositionInParent} rather than setting {@link Node.translation} directly.
794
779
  */
795
780
  createPath(path: string): PathNode;
796
781
  }
@@ -851,8 +836,7 @@ declare class ExpressFonts extends Fonts {}
851
836
 
852
837
  /**
853
838
  * An ExpressRootNode represents the root node of the document's "scenegraph" artwork tree. The root contains a collection
854
- * of {@link pages}. Each page contains one or more artboards, arranged in a timeline sequence. All the visual content of
855
- * the document lies within those artboards.
839
+ * of {@link pages}. Each page contains one or more artboards, which in turn hold all the visual content of the document.
856
840
  *
857
841
  * The parent of ExpressRootNode is undefined, since it is the root of the document tree.
858
842
  */
@@ -948,11 +932,6 @@ export declare const fonts: ExpressFonts;
948
932
  */
949
933
  export declare class GridCellNode extends Node implements IMediaContainerNode {
950
934
  /**
951
- * <InlineAlert slots="text" variant="warning"/>
952
- *
953
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
954
- *
955
- * @experimental
956
935
  * Always throws as it's not possible to clone a single grid slot.
957
936
  * Use the parent grid container instead.
958
937
  *
@@ -965,31 +944,30 @@ export declare class GridCellNode extends Node implements IMediaContainerNode {
965
944
  }
966
945
 
967
946
  /**
968
- * A GridLayoutNode represents a grid layout in the scenegraph. The GridLayoutNode is used to create
969
- * a layout grid that other content can be placed into.
947
+ * A GridLayoutNode represents a grid layout in the scenegraph. Currently, grids contain only images but in the future
948
+ * they may support other types of content as well.
970
949
  *
971
950
  * APIs to create a new grid layout are not yet available.
972
951
  */
973
952
  export declare class GridLayoutNode extends Node implements IRectangularNode {
974
953
  /**
975
- * The Grid's regular children. Does not include rectangles and skips over media constainer nodes to return fill grandchildren.
976
- * Grid Cells are ordered by the y and then x position of their top left corner, i.e. left to right and top to bottom.
977
- * The children cannot be added or removed.
954
+ * The GridLayout's child nodes. Nodes are returned in order sorted by the y and then x position of their top left
955
+ * corner, i.e. left to right and top to bottom. These children cannot be added or removed.
978
956
  */
979
957
  get allChildren(): Readonly<Iterable<GridCellNode>>;
980
958
  /**
981
- * The background fill of the GridLayout.
959
+ * The background fill of the GridLayout. GridLayouts must always have a fill.
982
960
  */
983
961
  set fill(fill: Fill);
984
962
  get fill(): Readonly<Fill>;
985
963
  /**
986
- * The width of the node.
964
+ * The width of the entire GridLayout node.
987
965
  * Must be at least {@link MIN_DIMENSION}.
988
966
  */
989
967
  get width(): number;
990
968
  set width(value: number);
991
969
  /**
992
- * The height of the node.
970
+ * The height of the entire GridLayout node.
993
971
  * Must be at least {@link MIN_DIMENSION}.
994
972
  */
995
973
  get height(): number;
@@ -1004,8 +982,8 @@ export declare class GridLayoutNode extends Node implements IRectangularNode {
1004
982
  */
1005
983
  export declare class GroupNode extends Node implements ContainerNode {
1006
984
  /**
1007
- * The Group's regular children. Does not include the maskShape if one is present.
1008
- * Use the methods on this ItemList object to get, add, and remove children.
985
+ * The Group's regular children. Does not include the {@link maskShape} if one is present.
986
+ * Use the methods on this ItemList object to get, add, and remove regular children.
1009
987
  */
1010
988
  get children(): ItemList<Node>;
1011
989
  /**
@@ -1131,20 +1109,18 @@ declare interface IStrokableNode {
1131
1109
  }
1132
1110
 
1133
1111
  /**
1134
- * ItemList represents an ordered list of API objects, representing items that are all children of the
1135
- * same parent node. (The reverse is not necessarily true, however: this list might not include all
1136
- * children that exist in the parent node. See {@link Node.allChildren} for details).
1112
+ * ItemList represents an ordered list of API objects that are all children of the same parent node. It is most
1113
+ * frequently encountered as {@link ArtboardNode.children} or {@link GroupNode.children}.
1137
1114
  *
1138
1115
  * ItemList also provides APIs for manipulating the list by adding items to the parent or removing items from the parent.
1139
1116
  *
1140
- * This class is used in different places for various types of items, including Nodes, Fills, and Strokes.
1117
+ * Note that some parent nodes may have additional children that are *not* present in the main `children` ItemList
1118
+ * (e.g. {@link GroupNode.maskShape}). Use the read-only {@link Node.allChildren} for a combined view of all children.
1141
1119
  */
1142
1120
  export declare class ItemList<T extends ListItem> extends RestrictedItemList<T> {
1143
1121
  /**
1144
1122
  * Add one or more items to the end of the list. The last argument will become the last item in this list. Items are
1145
1123
  * removed from their previous parent, if any – or if an item is already in *this* list, its index is simply changed.
1146
- *
1147
- * @throws - if item has a different parent and item is a {@link ThreadedTextNode}, or if item's children subtree contains a {@link ThreadedTextNode}.
1148
1124
  */
1149
1125
  append(...items: T[]): void;
1150
1126
  /**
@@ -1155,24 +1131,18 @@ export declare class ItemList<T extends ListItem> extends RestrictedItemList<T>
1155
1131
  * Replace `oldItem` with `newItem` in this list. Throws if `oldItem` is not a member of this list.
1156
1132
  * `newItem` is removed from its previous parent, if any – or if it's already in *this* list, its index is simply
1157
1133
  * changed. No-op if both arguments are the same item.
1158
- *
1159
- * @throws - if newItem has a different parent and newItem is a {@link ThreadedTextNode}, or if newItem's children subtree contains a {@link ThreadedTextNode}.
1160
1134
  */
1161
1135
  replace(oldItem: T, newItem: T): void;
1162
1136
  /**
1163
1137
  * Insert `newItem` so it is immediately before `before` in this list: places `newItem` at the index that `before` used
1164
1138
  * to occupy, shifting `before` and all later items to higher indices. `newItem` is removed from its previous parent,
1165
1139
  * if any – or if it's already in *this* list, its index is simply changed. No-op if both arguments are the same item.
1166
- *
1167
- * @throws - if newItem has a different parent and it is a {@link ThreadedTextNode}, or if newItem's children subtree contains a {@link ThreadedTextNode}.
1168
1140
  */
1169
1141
  insertBefore(newItem: T, before: T): void;
1170
1142
  /**
1171
1143
  * Insert `newItem` so it is immediately after `after` in this list: places `newItem` at the index one higher than `after`,
1172
1144
  * shifting all later items to higher indices (the index of `after` remains unchanged). `newItem` is removed from its previous parent,
1173
1145
  * if any – or if it's already in *this* list, its index is simply changed. No-op if both arguments are the same item.
1174
- *
1175
- * @throws - if newItem has a different parent and it is a {@link ThreadedTextNode}, or if newItem's children subtree contains a {@link ThreadedTextNode}.
1176
1146
  */
1177
1147
  insertAfter(newItem: T, after: T): void;
1178
1148
  }
@@ -1273,11 +1243,12 @@ export declare class LineNode extends StrokableNode {
1273
1243
  }
1274
1244
 
1275
1245
  /**
1276
- * Base interface for any item that can be used in {@link ItemList}. ItemList is used in different places to hold various
1277
- * types of items, including Nodes, Fills, and Strokes.
1246
+ * Base interface for any item that can be stored in an {@link ItemList} (typically a {@link Node} type).
1278
1247
  */
1279
1248
  export declare interface ListItem {}
1280
1249
 
1250
+ declare type ListStyleInput = OrderedListStyleInput | UnorderedListStyleInput | RemoveListStyleInput;
1251
+
1281
1252
  /**
1282
1253
  * A MediaContainerNode is a multi-node construct that displays media (such as images or video) with optional cropping and
1283
1254
  * clipping to a shape mask. The underlying media asset is always rectangular, but the final appearance of this node is
@@ -1307,6 +1278,7 @@ export declare abstract class MediaRectangleNode extends Node implements Readonl
1307
1278
  /**
1308
1279
  * Get {@link AddOnData} reference for managing private metadata attached to the media resource displayed by this node.
1309
1280
  * The same media resource may be reused in multiple places in the document, and all share the same AddOnData state.
1281
+ * Note: This support is not present for PSD/AI assets. An error will be thrown in that case.
1310
1282
  */
1311
1283
  get mediaAddOnData(): AddOnData;
1312
1284
  /**
@@ -1322,11 +1294,6 @@ export declare abstract class MediaRectangleNode extends Node implements Readonl
1322
1294
  */
1323
1295
  get height(): number;
1324
1296
  /**
1325
- * <InlineAlert slots="text" variant="warning"/>
1326
- *
1327
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1328
- *
1329
- * @experimental
1330
1297
  * Always throws as it's not possible to clone just the media rectangle alone.
1331
1298
  * Clone the entire parent MediaContainerNode instead.
1332
1299
  *
@@ -1469,11 +1436,6 @@ declare class Node extends VisualNode implements INodeBounds {
1469
1436
  */
1470
1437
  resizeToCover(width: number, height: number): void;
1471
1438
  /**
1472
- * <InlineAlert slots="text" variant="warning"/>
1473
- *
1474
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1475
- *
1476
- * @experimental
1477
1439
  * Creates a copy of this node and its entire subtree of descendants.
1478
1440
  *
1479
1441
  * The node must be attached to a page as the copy will be added as a sibling.
@@ -1484,11 +1446,6 @@ declare class Node extends VisualNode implements INodeBounds {
1484
1446
  export { Node as Node };
1485
1447
 
1486
1448
  /**
1487
- * <InlineAlert slots="text" variant="warning"/>
1488
- *
1489
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1490
- *
1491
- * @experimental
1492
1449
  * Numbering types used to display ordered lists: 1, A, a, I, i 01, 001.
1493
1450
  */
1494
1451
  export declare enum OrderedListNumbering {
@@ -1502,28 +1459,18 @@ export declare enum OrderedListNumbering {
1502
1459
  }
1503
1460
 
1504
1461
  /**
1505
- * <InlineAlert slots="text" variant="warning"/>
1506
- *
1507
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1508
- *
1509
- * @experimental
1510
1462
  * OrderedListStyle represents the style of an ordered list.
1511
1463
  */
1512
1464
  export declare type OrderedListStyle = Required<OrderedListStyleInput>;
1513
1465
 
1514
1466
  /**
1515
- * <InlineAlert slots="text" variant="warning"/>
1516
- *
1517
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1518
- *
1519
- * @experimental
1520
1467
  * Interface for specifying an ordered list style, such as a numbered list.
1521
1468
  */
1522
1469
  export declare interface OrderedListStyleInput extends BaseParagraphListStyle {
1523
1470
  type: ParagraphListType.ordered;
1524
1471
  /**
1525
1472
  * The numbering style to use. If undefined, it defaults to a different type depending on the paragraph's indent level.
1526
- * The defaults for increasing indent are 1, a, i, I, and then they repeat.
1473
+ * The defaults for increasing indent are: 1, a, i, I, and then they repeat.
1527
1474
  * These markers and the prefix/postfix strings (if any) are displayed using the same font as the start of the
1528
1475
  * paragraph's text content.
1529
1476
  */
@@ -1555,14 +1502,15 @@ export declare class PageList extends RestrictedItemList<PageNode> {
1555
1502
 
1556
1503
  /**
1557
1504
  * A PageNode represents a page in the document, a child of the root node of the document's "scenegraph" artwork tree
1558
- * (see {@link ExpressRootNode}). A page contains one or more artboards, representing "scenes" in a linear timeline
1559
- * sequence. Those artboards, in turn, contain all the visual content of the document.
1505
+ * (see {@link ExpressRootNode}). A page contains one or more artboards, which in turn contain all the page's visual
1506
+ * content. If multiple artboards are present, each represents a keyframe "scene" in the page's animation timeline.
1560
1507
  *
1561
1508
  * To create new pages, see {@link PageList.addPage}.
1562
1509
  */
1563
1510
  export declare class PageNode extends BaseNode implements IRectangularNode {
1564
1511
  /**
1565
- * The artboards or "scenes" of a page, ordered by timeline sequence.
1512
+ * The artboards or "scenes," which hold the page's visual contents. If multiple artboards are present, this list
1513
+ * represents an ordered keyframe sequence in the page's animation timeline.
1566
1514
  * To create new artboards, see {@link ArtboardList.addArtboard}.
1567
1515
  */
1568
1516
  get artboards(): ArtboardList;
@@ -1613,24 +1561,15 @@ export declare class PageNode extends BaseNode implements IRectangularNode {
1613
1561
  }
1614
1562
 
1615
1563
  /**
1616
- * <InlineAlert slots="text" variant="warning"/>
1617
- *
1618
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1619
- *
1620
- * @experimental
1621
1564
  * Indicates list type: see {@link UnorderedListStyleInput} and {@link OrderedListStyleInput}.
1622
1565
  */
1623
1566
  export declare enum ParagraphListType {
1624
- unordered = 0,
1625
- ordered = 1
1567
+ none = 0,
1568
+ unordered = 1,
1569
+ ordered = 2
1626
1570
  }
1627
1571
 
1628
1572
  /**
1629
- * <InlineAlert slots="text" variant="warning"/>
1630
- *
1631
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1632
- *
1633
- * @experimental
1634
1573
  * Text styles that must be applied to an entire paragraph atomically. (Contrast with CharacterStyles which can be applied to
1635
1574
  * any range of characters, even a short span like one single word).
1636
1575
  */
@@ -1639,39 +1578,23 @@ export declare interface ParagraphStyles extends BaseParagraphStyles {
1639
1578
  }
1640
1579
 
1641
1580
  /**
1642
- * <InlineAlert slots="text" variant="warning"/>
1643
- *
1644
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1645
- *
1646
- * @experimental
1647
- * The variant of {@link ParagraphStyles} with all optional style fields is used to apply ParagraphStyles(). When using that API,
1581
+ * A variant of {@link ParagraphStyles} with all style fields optional, used for applyParagraphStyles(). When using that API,
1648
1582
  * any fields not specified are left unchanged, preserving the text's existing styles.
1649
1583
  */
1650
1584
  export declare interface ParagraphStylesInput extends Partial<BaseParagraphStyles> {
1651
- list?: OrderedListStyleInput | UnorderedListStyleInput;
1585
+ list?: ListStyleInput;
1652
1586
  }
1653
1587
 
1654
1588
  /**
1655
- * <InlineAlert slots="text" variant="warning"/>
1656
- *
1657
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1658
- *
1659
- * @experimental
1660
- * A set of {@link ParagraphStyles} and the text range they apply to. It is seen in the paragraphStyleRanges getter.
1589
+ * A set of {@link ParagraphStyles} along with the text range they apply to. Returned by the paragraphStyleRanges getter.
1661
1590
  */
1662
1591
  export declare interface ParagraphStylesRange extends ParagraphStyles, StyleRange {}
1663
1592
 
1664
1593
  /**
1665
- * <InlineAlert slots="text" variant="warning"/>
1666
- *
1667
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1668
- *
1669
- * @experimental
1670
- * A variant of {@link ParagraphStylesRange} with all style fields optional and the text range they apply to. Used for the
1594
+ * A variant of {@link ParagraphStylesRange} with all style fields optional, along with the text range they apply to. Used for the
1671
1595
  * paragraphStyleRanges setter. When invoking the setter, any fields not specified are reset to their defaults.
1672
1596
  *
1673
- * Paragraphs are separated by newline characters (`\n`). The ranges specified here should align with
1674
- * those boundaries.
1597
+ * Paragraphs are separated by newline characters (`\n`). Ranges specified here should align with those boundaries.
1675
1598
  */
1676
1599
  export declare interface ParagraphStylesRangeInput extends ParagraphStylesInput, StyleRange {}
1677
1600
 
@@ -1680,6 +1603,9 @@ export declare interface ParagraphStylesRangeInput extends ParagraphStylesInput,
1680
1603
  * yet, only read.
1681
1604
  *
1682
1605
  * To create new paths, see {@link Editor.createPath}.
1606
+ *
1607
+ * Note: the visual top-left corner of a path may not be its local (0,0) origin point, so it's easiest to position
1608
+ * a path using {@link Node.setPositionInParent} rather than setting its {@link Node.translation} directly.
1683
1609
  */
1684
1610
  export declare class PathNode extends FillableNode {
1685
1611
  /**
@@ -1705,11 +1631,10 @@ export declare interface Point {
1705
1631
  }
1706
1632
 
1707
1633
  /**
1708
- * ReadOnlyItemList represents an ordered list of API objects, representing items that are all children of the
1709
- * same parent node. (The reverse is not necessarily true, however: this list might not include all
1710
- * children that exist in the parent node. See {@link Node.allChildren} for details).
1634
+ * ReadOnlyItemList represents an ordered list of API objects that are all children of the same parent node.
1711
1635
  *
1712
- * Items in a bare ReadOnlyItemList cannot be added, removed, or reordered. Subclasses like ItemList may add these capabilities, however.
1636
+ * Items in a bare ReadOnlyItemList cannot be added, removed, or reordered. The {@link ItemList} subclass adds more
1637
+ * capabilities, and is most frequently encountered as {@link ArtboardNode.children} or {@link GroupNode.children}.
1713
1638
  */
1714
1639
  export declare class ReadOnlyItemList<T extends ListItem> {
1715
1640
  /**
@@ -1846,9 +1771,15 @@ export declare class RectangleNode extends FillableNode implements IRectangularN
1846
1771
  }
1847
1772
 
1848
1773
  /**
1849
- * Base for ItemLists that have restricted behavior on how items are added to the list,
1850
- * but allow items to be removed and reordered. Subclasses like ItemList may add more
1851
- * capabilities, however.
1774
+ * Interface for removing a list style.
1775
+ */
1776
+ declare interface RemoveListStyleInput extends BaseParagraphListStyle {
1777
+ type: ParagraphListType.none;
1778
+ }
1779
+
1780
+ /**
1781
+ * Base for ItemLists that restrict how items are added to the list, but freely allow items to be removed and
1782
+ * reordered. The {@link ItemList} subclass adds more capabilities, however.
1852
1783
  */
1853
1784
  declare class RestrictedItemList<T extends ListItem> extends ReadOnlyItemList<T> {
1854
1785
  /**
@@ -1972,26 +1903,22 @@ export declare type SolidColorStrokeWithOptionalType = Omit<SolidColorStroke, "t
1972
1903
  Partial<Pick<SolidColorStroke, "type">>;
1973
1904
 
1974
1905
  /**
1975
- * A StandaloneTextNode represents a text display frame in the scenegraph. It displays an entire piece of text.
1906
+ * A StandaloneTextNode represents text that is displayed *entirely* within one single frame in the scenegraph (in
1907
+ * contrast to {@link ThreadedTextNode}, where text may flow across several separate display "frames").
1976
1908
  * The StandaloneTextNode does not directly hold the text content and styles – instead it refers to a {@link TextNodeContentModel}.
1977
1909
  *
1978
- * To create new a single-frame piece of text, see {@link Editor.createText}.
1910
+ * To create a new StandaloneTextNode, see {@link Editor.createText}.
1979
1911
  */
1980
1912
  export declare class StandaloneTextNode extends TextNode {
1981
1913
  get nextTextNode(): undefined;
1982
1914
  get layout(): Readonly<AutoWidthTextLayout | AutoHeightTextLayout | UnsupportedTextLayout>;
1983
1915
  /**
1984
- * <InlineAlert slots="text" variant="warning"/>
1916
+ * Sets the layout mode of this TextNode "frame" which the text content is displayed within.
1917
+ * {@link AreaTextLayout} is not supported by standalone text.
1985
1918
  *
1986
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
1987
- *
1988
- * @experimental
1989
- * Sets the layout mode of the TextNode "frame."
1990
- *
1991
- * {@link AreaTextLayout} is not supported by single-frame text.
1992
- *
1993
- * @throws if changing text layout to/from {@link TextLayout.magicFit} or {@link TextLayout.circular} layout when the text contains font(s) unavailable to the current user.
1994
- * @throws if {@link StandaloneTextNode} is not a part of a multi-frame text content flow and the layout is {@link AreaTextLayout}.
1919
+ * @throws if changing text layout to/from {@link TextLayout.magicFit} or {@link TextLayout.circular}
1920
+ * layout when the text contains fonts that are unavailable to the current user, because these layouts change
1921
+ * capitalization and thus alter which glyphs are displayed.
1995
1922
  */
1996
1923
  set layout(layout: AutoWidthTextLayout | AutoHeightTextLayout);
1997
1924
  }
@@ -2104,6 +2031,8 @@ export declare abstract class TextContentModel {
2104
2031
  get id(): string;
2105
2032
  /**
2106
2033
  * The complete text string, which may span multiple {@link ThreadedTextNode} "frames" in the scenegraph.
2034
+ * @throws The setter throws if the existing text contains fonts unavailable to the current user.
2035
+ * See {@link hasUnavailableFonts}.
2107
2036
  */
2108
2037
  get text(): string;
2109
2038
  set text(textContent: string);
@@ -2174,10 +2103,13 @@ export declare abstract class TextContentModel {
2174
2103
  */
2175
2104
  deleteText(range: TextRange): void;
2176
2105
  /**
2177
- * The character styles are applied to different ranges of this text content. When setting character styles, any style
2178
- * properties that are not provided are reset to their defaults (contrast to {@link applyCharacterStyles} which
2179
- * preserves the text's existing styles for any fields not specified). When *getting* styles, all fields are always
2180
- * provided.
2106
+ * The character styles that are applied to different ranges of this text content. Each range starts immediately after
2107
+ * the previous one: they are always contiguous, and never overlap.
2108
+ *
2109
+ * When *setting* character styles, any style properties that are not provided are reset to their defaults (contrast to
2110
+ * {@link applyCharacterStyles} which preserves the text's existing styles for any fields not specified). If the ranges
2111
+ * do not cover the full length of the text, the last range is extended to cover all the remaining text.
2112
+ * When *getting* styles, all fields are always provided.
2181
2113
  *
2182
2114
  * Note: existing fonts used in the document, returned by this getter, are not guaranteed to be ones the current user
2183
2115
  * has rights to edit with. The *setter* only accepts the AvailableFont type which has been verified to be usable.
@@ -2185,20 +2117,10 @@ export declare abstract class TextContentModel {
2185
2117
  get characterStyleRanges(): readonly CharacterStylesRange[];
2186
2118
  set characterStyleRanges(styles: readonly CharacterStylesRangeInput[]);
2187
2119
  /**
2188
- * <InlineAlert slots="text" variant="warning"/>
2189
- *
2190
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
2191
- *
2192
- * @experimental
2193
2120
  * The styles applied to different paragraphs of this text content.
2194
2121
  */
2195
2122
  get paragraphStyleRanges(): readonly ParagraphStylesRange[];
2196
2123
  /**
2197
- * <InlineAlert slots="text" variant="warning"/>
2198
- *
2199
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
2200
- *
2201
- * @experimental
2202
2124
  * Apply styles to different paragraphs of this text content. Any style properties that are not provided are reset to their defaults.
2203
2125
  * When **getting** styles, all properties are always provided.
2204
2126
  *
@@ -2206,7 +2128,7 @@ export declare abstract class TextContentModel {
2206
2128
  * those boundaries. If multiple ranges provided overlap a single paragraph, the first one to overlap is applied to the
2207
2129
  * entire paragraph.
2208
2130
  *
2209
- * @throws if the text content contains fonts unavailable to the current user and an ordered-list style is being applied.
2131
+ * @throws if applying an ordered-list style when the text contains fonts that are unavailable to the current user.
2210
2132
  */
2211
2133
  set paragraphStyleRanges(styles: readonly ParagraphStylesRangeInput[]);
2212
2134
  /**
@@ -2214,28 +2136,27 @@ export declare abstract class TextContentModel {
2214
2136
  * unchanged. Does not modify any styles in the text outside this range. Contrast to the {@link characterStyleRanges}
2215
2137
  * setter, which specifies new style range(s) for the entire text at once, and resets any unspecified properties back to
2216
2138
  * default styles.
2217
-
2139
+ *
2140
+ * Explicitly specifying `link: ""` will remove any hyperlinks present in the existing text. If the `link` style
2141
+ * property is not specified at all, existing links are preserved.
2142
+ *
2218
2143
  * @param styles - The styles to apply.
2219
- * @param range -The start and length of the character sequence to which the styles should be applied.
2220
- * The styles will be applied to the entire text content flow if not specified.
2221
- * If the specified range doesn't align well with the paragraph boundaries, the range will be expanded to cover the
2222
- * entire paragraphs, it overlaps.
2144
+ * @param range - The start and length of the character sequence to which the styles should be applied.
2145
+ * If no range is specified, styles will be applied to the entire text content flow.
2223
2146
  */
2224
2147
  applyCharacterStyles(styles: CharacterStylesInput, range?: TextRange): void;
2225
2148
  /**
2226
- * <InlineAlert slots="text" variant="warning"/>
2227
- *
2228
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
2229
- *
2230
- * @experimental
2231
2149
  * Apply one or more styles to the paragraphs in the given range, leaving any style properties that were not specified
2232
2150
  * unchanged. Does not modify any styles in the text outside this range. Contrast to the {@link paragraphStyleRanges}
2233
2151
  * setter, which specifies new style range(s) for the entire text at once, and resets any unspecified properties back to
2234
2152
  * default styles.
2235
-
2153
+ *
2236
2154
  * @param styles - The styles to apply.
2237
- * @param range - The start and length of character sequence to which the styles should be applied.
2238
- * If not specified the styles will be applied to the entire piece of text content flow.
2155
+ * @param range - The start and length of character sequence to which the styles should be applied. Styles apply to any
2156
+ * paragraphs that even partially overlap this range.
2157
+ * If range is not specified, the styles will be applied to the entire text content flow.
2158
+ *
2159
+ * @throws if applying an ordered-list style when the text contains fonts that are unavailable to the current user.
2239
2160
  */
2240
2161
  applyParagraphStyles(styles: ParagraphStylesInput, range?: TextRange): void;
2241
2162
  /**
@@ -2291,9 +2212,12 @@ declare enum TextLayout {
2291
2212
 
2292
2213
  /**
2293
2214
  * TextNode is an abstract base class representing text displayed in the scenegraph, regardless of whether it's a fully
2294
- * self-contained {@link StandaloneTextNode} or one {@link ThreadedTextNode} "frame" of multiple in a larger flow. The
2215
+ * self-contained {@link StandaloneTextNode} or one of multiple {@link ThreadedTextNode} "frames" in a larger flow. The
2295
2216
  * APIs on TextNode and its {@link TextNodeContentModel} allow you to generically work with text without needing to know
2296
- * which of those subtypes you are dealing with.
2217
+ * which subtype you are dealing with.
2218
+ *
2219
+ * Note: the visual top-left corner of text is not located at its local (0,0) origin point, so it's easiest to position
2220
+ * text using {@link Node.setPositionInParent} rather than setting its {@link Node.translation} directly.
2297
2221
  */
2298
2222
  export declare abstract class TextNode extends Node {
2299
2223
  /**
@@ -2303,6 +2227,9 @@ export declare abstract class TextNode extends Node {
2303
2227
  * Note: The bounding box of the orphaned TextNode may be different from the bounding box of the node placed on a
2304
2228
  * page. It is recommended to use this property only when the node is placed on a page.
2305
2229
  *
2230
+ * Note: the visual top-left corner of this box is usually not (0,0). Always use `boundsLocal` or {@link topLeftLocal}
2231
+ * instead of assuming (0,0).
2232
+ *
2306
2233
  */
2307
2234
  get boundsLocal(): Readonly<Rect>;
2308
2235
  /**
@@ -2321,6 +2248,8 @@ export declare abstract class TextNode extends Node {
2321
2248
  * Note: The top-left of the orphaned TextNode may be different from the top-left of the node placed on a
2322
2249
  * page. It is recommended to use this property only when the node is placed on a page.
2323
2250
  *
2251
+ * Note: this value is usually not (0,0) due to the way text layout is defined.
2252
+ *
2324
2253
  */
2325
2254
  get topLeftLocal(): Readonly<Point>;
2326
2255
  /**
@@ -2390,11 +2319,6 @@ export declare abstract class TextNode extends Node {
2390
2319
  */
2391
2320
  get visualEffects(): readonly VisualEffectType[];
2392
2321
  /**
2393
- * <InlineAlert slots="text" variant="warning"/>
2394
- *
2395
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
2396
- *
2397
- * @experimental
2398
2322
  * @returns The layout mode of the TextNode "frame."
2399
2323
  */
2400
2324
  get layout(): Readonly<AutoWidthTextLayout | AutoHeightTextLayout | AreaTextLayout | UnsupportedTextLayout>;
@@ -2407,11 +2331,13 @@ export declare abstract class TextNode extends Node {
2407
2331
  */
2408
2332
  export declare class TextNodeContentModel extends TextContentModel {
2409
2333
  /**
2410
- * Get ordered list of all {@link TextNode}s that display this text content in the scenegraph. The text content
2411
- * starts in the first {@link ThreadedTextNode} "frame", and then flows into the second node once it has filled the first one. The ending of the
2412
- * text content may not be visible at all, if the last {@link ThreadedTextNode} "frame" is not large enough to accommodate it.
2334
+ * Get ordered list of all {@link TextNode}s that display this text content in the scenegraph. This might be a single
2335
+ * {@link StandaloneTextNode} *or* a list of one or more {@link ThreadedTextNode}s. In the case of threaded text, the
2336
+ * text content starts in the first {@link ThreadedTextNode} "frame", and then flows into the second node once it has
2337
+ * filled the first one. The ending of the text content may not be visible at all, if the last "frame" is not large
2338
+ * enough to accommodate it.
2413
2339
  *
2414
- * If there are multiple {@link ThreadedTextNode}s, all of them must be configured to use {@link AreaTextLayout}.
2340
+ * All linked ThreadedTextNodes that share a single TextContentModel must remain together within the same artboard.
2415
2341
  */
2416
2342
  get allTextNodes(): Readonly<Iterable<TextNode>>;
2417
2343
  }
@@ -2468,26 +2394,20 @@ export declare enum TextStyleSource {
2468
2394
  }
2469
2395
 
2470
2396
  /**
2471
- * A ThreadedTextNode represents a text display frame in the scenegraph. It is a subset of longer text that flows across
2472
- * multiple TextNode "frames". Because of this, the TextNode does not directly hold the text content and styles –
2397
+ * A ThreadedTextNode represents a text display frame in the scenegraph which is a subset of longer text that flows across
2398
+ * multiple such "frames". Because of this, the TextNode does not directly hold the text content and styles –
2473
2399
  * instead it refers to a {@link TextNodeContentModel}, which may be shared across multiple ThreadedTextNode frames.
2474
2400
  *
2475
- * APIs are not yet available to create multi-frame text flows.
2401
+ * All linked ThreadedTextNodes that share a single TextContentModel must remain together within the same artboard.
2402
+ *
2403
+ * APIs are not yet available to create multi-frame text flows. To create *non*-threaded text, use {@link Editor.createText}.
2476
2404
  */
2477
2405
  export declare class ThreadedTextNode extends TextNode {
2478
2406
  get nextTextNode(): ThreadedTextNode | undefined;
2479
2407
  get layout(): Readonly<AreaTextLayout>;
2480
2408
  /**
2481
- * <InlineAlert slots="text" variant="warning"/>
2482
- *
2483
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
2484
- *
2485
- * @experimental
2486
- * Sets the layout mode of the TextNode "frame."
2487
- *
2409
+ * Sets the layout mode of this TextNode "frame" which the text content is displayed within.
2488
2410
  * Only {@link AreaTextLayout}, with fully fixed bounds, is currently supported by threaded text.
2489
- *
2490
- * @throws if {@link ThreadedTextNode} is part of a multi-frame text content flow and the layout is not {@link AreaTextLayout}.
2491
2411
  */
2492
2412
  set layout(layout: AreaTextLayout);
2493
2413
  }
@@ -2512,21 +2432,11 @@ export declare class UnknownMediaRectangleNode extends MediaRectangleNode {}
2512
2432
  export declare class UnknownNode extends Node {}
2513
2433
 
2514
2434
  /**
2515
- * <InlineAlert slots="text" variant="warning"/>
2516
- *
2517
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
2518
- *
2519
- * @experimental
2520
2435
  * UnorderedListStyle represents the style of an unordered list.
2521
2436
  */
2522
2437
  export declare type UnorderedListStyle = Required<UnorderedListStyleInput>;
2523
2438
 
2524
2439
  /**
2525
- * <InlineAlert slots="text" variant="warning"/>
2526
- *
2527
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
2528
- *
2529
- * @experimental
2530
2440
  * Interface for specifying an unordered list style, such as a bullet list.
2531
2441
  */
2532
2442
  export declare interface UnorderedListStyleInput extends BaseParagraphListStyle {
@@ -2543,11 +2453,7 @@ export declare interface UnorderedListStyleInput extends BaseParagraphListStyle
2543
2453
  }
2544
2454
 
2545
2455
  /**
2546
- * <InlineAlert slots="text" variant="warning"/>
2547
- *
2548
- * **IMPORTANT:** This is currently ***experimental only*** and should not be used in any add-ons you will be distributing until it has been declared stable. To use it, you will first need to set the `experimentalApis` flag to `true` in the [`requirements`](../../../manifest/index.md#requirements) section of the `manifest.json`.
2549
- *
2550
- * @experimental
2456
+ * Represents a text layout the API does not yet support setting or reading the details of.
2551
2457
  */
2552
2458
  export declare interface UnsupportedTextLayout {
2553
2459
  type: TextLayout.magicFit | TextLayout.circular;
package/ui/ui-sdk.d.ts CHANGED
@@ -1158,7 +1158,11 @@ export declare enum EntrypointType {
1158
1158
  /**
1159
1159
  * Import hub entrypoint type.
1160
1160
  */
1161
- IMPORT_HUB = "import-hub"
1161
+ IMPORT_HUB = "import-hub",
1162
+ /**
1163
+ * Quick action entrypoint type.
1164
+ */
1165
+ QUICK_ACTION = "quick-action"
1162
1166
  }
1163
1167
 
1164
1168
  export declare interface Field {
@@ -1527,6 +1531,10 @@ export declare interface PageMetadata {
1527
1531
  * Whether the page contains animated content
1528
1532
  */
1529
1533
  hasAnimatedContent: boolean;
1534
+ /**
1535
+ * The page's background color in ARGB format (32-bit integer)
1536
+ */
1537
+ backgroundARGB?: number;
1530
1538
  /**
1531
1539
  * Whether the page is blank
1532
1540
  */