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
*
diff --git a/packages/wxp-sdk-types/ui/ui-sdk.d.ts b/packages/wxp-sdk-types/ui/ui-sdk.d.ts
index f535680..10fa863 100644
--- a/packages/wxp-sdk-types/ui/ui-sdk.d.ts
+++ b/packages/wxp-sdk-types/ui/ui-sdk.d.ts
@@ -371,9 +371,34 @@ export declare enum AuthorizationStatus {
POPUP_BLOCKED = "POPUP_BLOCKED",
POPUP_CLOSED = "POPUP_CLOSED",
POPUP_TIMEOUT = "POPUP_TIMEOUT",
- FAILED = "FAILED"
+ FAILED = "FAILED",
+ IFRAME_LOAD_FAILED = "IFRAME_LOAD_FAILED"
}
+/**
+ * Request parameters to authorize a user using OAuth 2.0 PKCE based authorization in an iframe.
+ */
+export declare type AuthorizeInsideIframeRequest = AuthorizationRequest & {
+ /**
+ * Relative position of the oauth iframe panel
+ */
+ position?: {
+ top: number;
+ left: number;
+ };
+ /**
+ * Offset from the right and bottom of the Iframe container when the size (windowSize) is not specified.
+ */
+ offset?: {
+ right: number;
+ bottom: number;
+ };
+ /**
+ * Flag to determine if the iframe panel needs to show a header.
+ */
+ showHeader?: boolean;
+};
+
/**
* Request parameters to initiate an OAuth 2.0 PKCE based authorization workflow,
* where the Add-on developer is responsible for handling redirect to his/her owned Redirect URL.
@@ -712,6 +737,14 @@ declare interface Document_2 {
* Get document name/title
*/
title(): Promise;
+ /**
+ * Import a Pdf to the document.
+ */
+ importPdf(blob: Blob, attributes: MediaAttributes): void;
+ /**
+ * Import a presentation to the document.
+ */
+ importPresentation(blob: Blob, attributes: MediaAttributes): void;
}
export { Document_2 as Document };
@@ -1065,6 +1098,12 @@ export declare interface OAuth {
* @returns - {@link AuthorizationResult} Authorization result.
*/
authorizeWithOwnRedirect(request: AuthorizeWithOwnRedirectRequest): Promise;
+ /**
+ * Authorize a user using OAuth 2.0 PKCE workflow in an iframe.
+ * @param request - {@link AuthorizeInsideIframeRequest} Payload with parameters to be used in the authorization workflow.
+ * @returns - {@link AuthorizationResponse} Response containing a ONE-TIME Authorization Code which can be used to obtain an access token.
+ */
+ authorizeInsideIframe(request: AuthorizeInsideIframeRequest): Promise;
}
/**