diff --git a/common/changes/@adobe/ccweb-add-on-sdk-types/release-20250117_2025-01-17-07-46.json b/common/changes/@adobe/ccweb-add-on-sdk-types/release-20250117_2025-01-17-07-46.json new file mode 100644 index 0000000..5c27914 --- /dev/null +++ b/common/changes/@adobe/ccweb-add-on-sdk-types/release-20250117_2025-01-17-07-46.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@adobe/ccweb-add-on-sdk-types", + "comment": "New API type definitions", + "type": "minor" + } + ], + "packageName": "@adobe/ccweb-add-on-sdk-types" +} \ No newline at end of file diff --git a/packages/wxp-sdk-types/package.json b/packages/wxp-sdk-types/package.json index 54de3cf..99cc1b0 100644 --- a/packages/wxp-sdk-types/package.json +++ b/packages/wxp-sdk-types/package.json @@ -1,6 +1,6 @@ { "name": "@adobe/ccweb-add-on-sdk-types", - "version": "1.10.0", + "version": "1.11.0", "author": "Adobe", "license": "MIT", "description": "Type definitions for Adobe Creative Cloud Web Add-on SDK.", diff --git a/packages/wxp-sdk-types/sandbox/express-document-sdk.d.ts b/packages/wxp-sdk-types/sandbox/express-document-sdk.d.ts index 2aa4be2..718c34d 100644 --- a/packages/wxp-sdk-types/sandbox/express-document-sdk.d.ts +++ b/packages/wxp-sdk-types/sandbox/express-document-sdk.d.ts @@ -22,8 +22,6 @@ * SOFTWARE. ********************************************************************************/ -/// - import { mat2d } from "gl-matrix"; /** @@ -124,6 +122,7 @@ declare interface ApiModuleExport { constants: unknown; colorUtils: ExpressColorUtils; fonts: ExpressFonts; + viewport: ExpressViewport; } /** @@ -157,7 +156,7 @@ declare enum ArrowHeadType { /** * ArtboardList represents an ordered list of ArtboardNodes arranged in a timeline sequence, where they are called "scenes." - * All items in the list are children of a single PageNode. + * All items in the list are children of a single {@link PageNode}. * * ArtboardList also provides APIs for adding/removing artboards from the page. ArtboardList is never empty: it is illegal to * remove the last remaining artboard from the list. @@ -175,8 +174,11 @@ export declare class ArtboardList extends RestrictedItemList { /** * An ArtboardNode represents an artboard object in the scenegraph. All user visual content must be contained on an artboard. + * Artboards are always contained on a {@link PageNode}; when a page contains multiple artboards, the artboards represent + * "scenes" in a linear timeline sequence. + * + * To create new artboards, see {@link ArtboardList.addArtboard}. * - * When multiple artboards exist on a page, the artboards represent "scenes" in a linear timeline sequence. * Please note that creating and deleting an artboard in a single frame will crash the editor. */ export declare class ArtboardNode extends VisualNode implements IRectangularNode, ContainerNode { @@ -246,12 +248,28 @@ export declare class AvailableFont extends BaseFont { * **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`. * * @experimental - * Base character styles that can be applied to a range of characters. + * Base character styles that can be applied to any range of characters. + * Excludes font style, which differs between the getter-oriented {@link CharacterStyles} interface and the + * setter-oriented {@link CharacterStylesInput}. */ declare interface BaseCharacterStyles { + /** + * Size of the text in points. + */ fontSize: number; + /** + * Text color. + */ color: Color; - tracking: number; + /** + * Uniformly adjusts the letter spacing, aka character spacing. Specified as a delta relative to the font's default + * spacing, in units of 1/1000 em: positive values increase the spacing, negative values tighten the spacing, and 0 + * leaves spacing at its default. + */ + letterSpacing: number; + /** + * Adds an underline to text. + */ underline: boolean; } @@ -415,7 +433,8 @@ declare enum BlendMode { * **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`. * * @experimental - * Text styles of a range of characters, even a short span like a single word. + * Text styles that can be applied to any range of characters, even a short span like a single word. (Contrast with + * ParagraphStyles, which must be applied to an entire paragraph atomically). */ export declare interface CharacterStyles extends BaseCharacterStyles { font: Font; @@ -427,7 +446,11 @@ export declare interface CharacterStyles extends BaseCharacterStyles { * **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`. * * @experimental - * Input shape of the applyCharacterStyle API. + * Variant of {@link CharacterStyles} with all style fields optional, used for applyCharacterStyles(). When using that API, + * any fields not specified are left unchanged, preserving the text's existing styles. + * + * If specified, the font must be of the {@link AvailableFont} type – one that is guaranteed to be available for the current + * user to edit with. */ export declare interface CharacterStylesInput extends Partial { font?: AvailableFont; @@ -439,7 +462,11 @@ export declare interface CharacterStylesInput extends Partial void; /** - * An EllipseNode represents an ellipse object in the scenegraph. + * An EllipseNode represents an ellipse or circle shape in the scenegraph. + * + * To create new ellipse, see {@link Editor.createEllipse}. */ export declare class EllipseNode extends FillableNode { /** @@ -834,10 +871,13 @@ declare class ExpressFonts extends Fonts {} export declare class ExpressRootNode extends BaseNode { /** * The pages of the document. All visual content is contained on artboards within the pages. + * To create new pages, see {@link PageList.addPage}. */ get pages(): PageList; } +declare class ExpressViewport extends Viewport {} + /** * Base interface representing any fill in the scenegraph. See {@link FillableNode}. * Currently, you can only create {@link ColorFill}s, but you might encounter @@ -933,6 +973,8 @@ export declare class GridCellNode extends MediaContainerNode {} /** * A GridLayoutNode represents a grid layout in the scenegraph. The GridLayoutNode is used to create * a layout grid that other content can be placed into. + * + * APIs to create a new grid layout are not yet available. */ export declare class GridLayoutNode extends Node implements Readonly { /** @@ -959,6 +1001,8 @@ export declare class GridLayoutNode extends Node implements Readonly { /** @@ -1077,7 +1124,9 @@ export declare class ItemList extends RestrictedItemList } /** - * A LineNode represents a simple line object in the scenegraph – a single straight-line segment. + * A LineNode represents a simple vector line in the scenegraph – a single straight-line segment. + * + * To create new lines, see {@link Editor.createLine}. */ export declare class LineNode extends StrokableNode { static readonly DEFAULT_START_X = 0; @@ -1148,6 +1197,9 @@ export declare interface ListItem {} * A MediaContainerNode is a multi-node construct that displays media (such as images or video) with optional cropping and * clipping to a shape mask. The underlying media asset is always rectangular, but the final appearance of this node is * determined by the maskShape which is not necessarily a rectangle. + * + * To create new media container for a bitmap image, see {@link Editor.createImageContainer}. APIs for creating a + * container with other content, such as videos, are not yet available. */ export declare class MediaContainerNode extends Node { /** @@ -1276,8 +1328,8 @@ export { Node as Node }; /** * PageList represents an ordered list of PageNodes, all of which are children of the root node of the document's "scenegraph" - * artwork tree. A page contains one or more artboards, representing "scenes" in a linear timeline sequence. Those artboards - * in turn contain all the visual content of the document. + * artwork tree (see {@link ExpressRootNode}). A page contains one or more artboards, representing "scenes" in a linear timeline + * sequence. Those artboards in turn contain all the visual content of the document. * * PageList also provides APIs for adding/removing pages from the document. PageList is never empty: it is illegal to * remove the last remaining page from the list. @@ -1294,12 +1346,16 @@ export declare class PageList extends RestrictedItemList { } /** - * A PageNode represents a page in the document. A page contains one or more artboards, representing "scenes" in a linear - * timeline sequence. Those artboards in turn contain all the visual content of the document. + * A PageNode represents a page in the document, a child of the root node of the document's "scenegraph" artwork tree + * (see {@link ExpressRootNode}). A page contains one or more artboards, representing "scenes" in a linear timeline + * sequence. Those artboards in turn contain all the visual content of the document. + * + * To create new pages, see {@link PageList.addPage}. */ export declare class PageNode extends BaseNode implements Readonly { /** * The artboards or "scenes" of a page, ordered by timeline sequence. + * To create new artboards, see {@link ArtboardList.addArtboard}. */ get artboards(): ArtboardList; /** @@ -1329,8 +1385,10 @@ export declare class PageNode extends BaseNode implements Readonly