@cesdk/node 1.72.0-nightly.20260316 → 1.72.0-nightly.20260318

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/index.d.ts CHANGED
@@ -4326,6 +4326,95 @@ export declare class BlockAPI {
4326
4326
  * @param to - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
4327
4327
  */
4328
4328
  setTextCase(id: DesignBlockId, textCase: TextCase, from?: number, to?: number): void;
4329
+ /**
4330
+ * Gets the unique text decoration configurations within a range of text.
4331
+ *
4332
+ * Each element of the returned array is a decoration configuration representing
4333
+ * a unique combination of lines, style, color, and thickness found in the range.
4334
+ *
4335
+ * ```javascript
4336
+ * const decorations = engine.block.getTextDecorations(text);
4337
+ * // e.g., [{ lines: ['None'] }, { lines: ['Underline'], style: 'Dashed' }]
4338
+ * ```
4339
+ *
4340
+ * @category Block Text
4341
+ * @param id - The text block whose text decorations should be returned.
4342
+ * @param from - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
4343
+ * @param to - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
4344
+ * @returns The ordered list of unique decoration configurations.
4345
+ */
4346
+ getTextDecorations(id: DesignBlockId, from?: number, to?: number): TextDecorationConfig[];
4347
+ /**
4348
+ * Sets the text decoration for a range of text.
4349
+ *
4350
+ * The config specifies which decoration lines, style, underline color, thickness, and offset to apply.
4351
+ * Use `{ lines: ['None'] }` to remove all decorations.
4352
+ *
4353
+ * ```javascript
4354
+ * engine.block.setTextDecoration(text, { lines: ['Underline'] });
4355
+ * engine.block.setTextDecoration(text, { lines: ['Underline', 'Strikethrough'], style: 'Dashed' });
4356
+ * engine.block.setTextDecoration(text, { lines: ['Overline'], style: 'Wavy', underlineThickness: 2.0 });
4357
+ * engine.block.setTextDecoration(text, { lines: ['None'] }); // Remove decorations
4358
+ * ```
4359
+ *
4360
+ * @category Block Text
4361
+ * @param id - The text block whose text decoration should be changed.
4362
+ * @param config - The decoration configuration to apply.
4363
+ * @param from - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
4364
+ * @param to - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
4365
+ */
4366
+ setTextDecoration(id: DesignBlockId, config: TextDecorationConfig, from?: number, to?: number): void;
4367
+ /**
4368
+ * Toggles the underline decoration for a text range.
4369
+ *
4370
+ * If any part of the range does not have underline, the entire range gets underline.
4371
+ * If the entire range already has underline, it is removed.
4372
+ * Other decoration lines (strikethrough, overline) on each text run are preserved.
4373
+ *
4374
+ * ```javascript
4375
+ * engine.block.toggleTextDecorationUnderline(text);
4376
+ * ```
4377
+ *
4378
+ * @category Block Text
4379
+ * @param id - The text block to modify.
4380
+ * @param from - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
4381
+ * @param to - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
4382
+ */
4383
+ toggleTextDecorationUnderline(id: DesignBlockId, from?: number, to?: number): void;
4384
+ /**
4385
+ * Toggles the strikethrough decoration for a text range.
4386
+ *
4387
+ * If any part of the range does not have strikethrough, the entire range gets strikethrough.
4388
+ * If the entire range already has strikethrough, it is removed.
4389
+ * Other decoration lines (underline, overline) on each text run are preserved.
4390
+ *
4391
+ * ```javascript
4392
+ * engine.block.toggleTextDecorationStrikethrough(text);
4393
+ * ```
4394
+ *
4395
+ * @category Block Text
4396
+ * @param id - The text block to modify.
4397
+ * @param from - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
4398
+ * @param to - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
4399
+ */
4400
+ toggleTextDecorationStrikethrough(id: DesignBlockId, from?: number, to?: number): void;
4401
+ /**
4402
+ * Toggles the overline decoration for a text range.
4403
+ *
4404
+ * If any part of the range does not have overline, the entire range gets overline.
4405
+ * If the entire range already has overline, it is removed.
4406
+ * Other decoration lines (underline, strikethrough) on each text run are preserved.
4407
+ *
4408
+ * ```javascript
4409
+ * engine.block.toggleTextDecorationOverline(text);
4410
+ * ```
4411
+ *
4412
+ * @category Block Text
4413
+ * @param id - The text block to modify.
4414
+ * @param from - The start index of the UTF-16 range. Defaults to the start of the current selection or text.
4415
+ * @param to - The end index of the UTF-16 range. Defaults to the end of the current selection or text.
4416
+ */
4417
+ toggleTextDecorationOverline(id: DesignBlockId, from?: number, to?: number): void;
4329
4418
  /**
4330
4419
  * Gets the list style for a specific paragraph of a text block.
4331
4420
  *
@@ -8502,7 +8591,7 @@ export declare const SceneModeValues: readonly ["Design", "Video"];
8502
8591
  export declare type Scope = 'text/edit' | 'text/character' | 'fill/change' | 'fill/changeType' | 'stroke/change' | 'shape/change' | 'layer/move' | 'layer/resize' | 'layer/rotate' | 'layer/flip' | 'layer/crop' | 'layer/opacity' | 'layer/blendMode' | 'layer/visibility' | 'layer/clipping' | 'appearance/adjustments' | 'appearance/filter' | 'appearance/effect' | 'appearance/blur' | 'appearance/shadow' | 'appearance/animation' | 'lifecycle/destroy' | 'lifecycle/duplicate' | 'editor/add' | 'editor/select';
8503
8592
 
8504
8593
  /** @public */
8505
- export declare type SettingBoolPropertyName = 'alwaysHighlightPlaceholders' | 'doubleClickToCropEnabled' | 'showBuildVersion' | 'placeholderControls/showButton' | 'placeholderControls/showOverlay' | 'blockAnimations/enabled' | 'renderTextCursorAndSelectionInEngine' | 'touch/dragStartCanSelect' | 'touch/singlePointPanning' | 'mouse/enableZoom' | 'mouse/enableScroll' | 'controlGizmo/showCropHandles' | 'controlGizmo/showMoveHandles' | 'controlGizmo/showResizeHandles' | 'controlGizmo/showScaleHandles' | 'controlGizmo/showRotateHandles' | 'controlGizmo/showCropScaleHandles' | 'page/title/show' | 'page/title/showPageTitleTemplate' | 'page/title/appendPageName' | 'page/title/showOnSinglePage' | 'page/dimOutOfPageAreas' | 'page/allowCropInteraction' | 'page/allowResizeInteraction' | 'page/restrictResizeInteractionToFixedAspectRatio' | 'page/allowRotateInteraction' | 'page/allowMoveInteraction' | 'page/moveChildrenWhenCroppingFill' | 'page/selectWhenNoBlocksSelected' | 'page/highlightWhenCropping' | 'colorMaskingSettings/secondPass' | 'clampThumbnailTextureSizes' | 'useSystemFontFallback' | 'forceSystemEmojis' | 'features/textEditModeTransformHandlesEnabled' | 'features/videoStreamingEnabled' | (string & {});
8594
+ export declare type SettingBoolPropertyName = 'alwaysHighlightPlaceholders' | 'doubleClickToCropEnabled' | 'showBuildVersion' | 'placeholderControls/showButton' | 'placeholderControls/showOverlay' | 'blockAnimations/enabled' | 'renderTextCursorAndSelectionInEngine' | 'touch/dragStartCanSelect' | 'touch/singlePointPanning' | 'mouse/enableZoom' | 'mouse/enableScroll' | 'controlGizmo/showCropHandles' | 'controlGizmo/showMoveHandles' | 'controlGizmo/showResizeHandles' | 'controlGizmo/showScaleHandles' | 'controlGizmo/showRotateHandles' | 'controlGizmo/showCropScaleHandles' | 'page/title/canEdit' | 'page/title/show' | 'page/title/showPageTitleTemplate' | 'page/title/appendPageName' | 'page/title/showOnSinglePage' | 'page/dimOutOfPageAreas' | 'page/allowCropInteraction' | 'page/allowResizeInteraction' | 'page/restrictResizeInteractionToFixedAspectRatio' | 'page/allowRotateInteraction' | 'page/allowMoveInteraction' | 'page/moveChildrenWhenCroppingFill' | 'page/selectWhenNoBlocksSelected' | 'page/highlightWhenCropping' | 'page/highlightDropTarget' | 'page/reparentBlocksToSceneWhenOutOfPage' | 'page/clipped' | 'colorMaskingSettings/secondPass' | 'clampThumbnailTextureSizes' | 'useSystemFontFallback' | 'forceSystemEmojis' | 'features/textEditModeTransformHandlesEnabled' | 'features/videoStreamingEnabled' | 'features/enableAutomaticEnumerations' | (string & {});
8506
8595
 
8507
8596
  /** @public */
8508
8597
  export declare type SettingColorPropertyName = 'clearColor' | 'handleFillColor' | 'highlightColor' | 'pageHighlightColor' | 'placeholderHighlightColor' | 'snappingGuideColor' | 'rotationSnappingGuideColor' | 'cropOverlayColor' | 'textVariableHighlightColor' | 'borderOutlineColor' | 'progressColor' | 'errorStateColor' | 'page/title/color' | 'page/marginFillColor' | 'page/marginFrameColor' | 'page/innerBorderColor' | 'page/outerBorderColor' | 'colorMaskingSettings/maskColor' | (string & {});
@@ -8596,6 +8685,8 @@ export declare interface Settings {
8596
8685
  'page/moveChildrenWhenCroppingFill': boolean;
8597
8686
  /** Whether to append the page name to the title even if not specified in the template. */
8598
8687
  'page/title/appendPageName': boolean;
8688
+ /** Whether double-clicking a page title enters text edit mode to rename the page. */
8689
+ 'page/title/canEdit': boolean;
8599
8690
  /** Whether to show titles above each page. */
8600
8691
  'page/title/show': boolean;
8601
8692
  /** Whether to hide the page title when only a single page exists. */
@@ -8622,6 +8713,14 @@ export declare interface Settings {
8622
8713
  'page/selectWhenNoBlocksSelected': boolean;
8623
8714
  /** Whether highlighting should be automatically enabled on the current page when entering crop mode. */
8624
8715
  'page/highlightWhenCropping': boolean;
8716
+ /** Whether to highlight the page under a dragged element as a drop target. */
8717
+ 'page/highlightDropTarget': boolean;
8718
+ /** Whether blocks should be reparented to the scene when dragged outside all pages,
8719
+ * and reparented back to a page when dragged over one. */
8720
+ 'page/reparentBlocksToSceneWhenOutOfPage': boolean;
8721
+ /** Whether pages should clip their contents to their bounds.
8722
+ * Applies to newly created pages and, when changed, immediately updates all existing pages. */
8723
+ 'page/clipped': boolean;
8625
8724
  /** Clamp thumbnail texture sizes to the platform's GPU texture limit. */
8626
8725
  clampThumbnailTextureSizes: boolean;
8627
8726
  /** Toggle the dock components visibility */
@@ -8740,6 +8839,7 @@ export declare interface Settings {
8740
8839
 
8741
8840
 
8742
8841
 
8842
+
8743
8843
 
8744
8844
 
8745
8845
  }
@@ -8992,6 +9092,58 @@ export declare const TextAnimationWritingStyleValues: readonly ["Block", "Line",
8992
9092
  */
8993
9093
  export declare type TextCase = 'Normal' | 'Uppercase' | 'Lowercase' | 'Titlecase';
8994
9094
 
9095
+ /**
9096
+ * Configuration for text decorations on a text run.
9097
+ *
9098
+ * All active decoration lines share the same style and thickness.
9099
+ * An optional underline color override can be set; overline and strikethrough
9100
+ * always use the text color.
9101
+ *
9102
+ * @public
9103
+ */
9104
+ export declare interface TextDecorationConfig {
9105
+ /** The active decoration line types. Use `['None']` to clear all decorations.
9106
+ * When `'None'` is present, all other values are ignored. */
9107
+ lines: TextDecorationLine[];
9108
+ /** The style of the decoration lines. Defaults to 'Solid'. */
9109
+ style?: TextDecorationStyle;
9110
+ /** Optional color override for underlines only. Uses the text color if not set.
9111
+ * Overline and strikethrough always use the text color. */
9112
+ underlineColor?: Color;
9113
+ /** Multiplier for the underline thickness. Defaults to 1.0. */
9114
+ underlineThickness?: number;
9115
+ /** Relative offset applied to the underline position as a multiplier on the font-default distance. 0 = font default, positive = proportionally further from baseline, negative = proportionally closer. The actual position is computed as `fontDefault * (1 + underlineOffset)`. Defaults to 0.0. */
9116
+ underlineOffset?: number;
9117
+ /** When true, underlines skip over glyph descenders (skip-ink). Defaults to true. */
9118
+ skipInk?: boolean;
9119
+ }
9120
+
9121
+ /**
9122
+ * Represents a line type for text decoration.
9123
+ *
9124
+ * Text decoration lines are combinable — a range of text can have multiple decoration lines.
9125
+ * - 'None': No decoration.
9126
+ * - 'Underline': The text is underlined.
9127
+ * - 'Strikethrough': The text has a line through it.
9128
+ * - 'Overline': The text has a line above it.
9129
+ *
9130
+ * @public
9131
+ */
9132
+ export declare type TextDecorationLine = 'None' | 'Underline' | 'Strikethrough' | 'Overline';
9133
+
9134
+ /**
9135
+ * Represents the style of a text decoration line.
9136
+ *
9137
+ * - 'Solid': A solid line (default).
9138
+ * - 'Double': Two parallel lines.
9139
+ * - 'Dotted': A series of dots.
9140
+ * - 'Dashed': A series of dashes.
9141
+ * - 'Wavy': A wavy line.
9142
+ *
9143
+ * @public
9144
+ */
9145
+ export declare type TextDecorationStyle = 'Solid' | 'Double' | 'Dotted' | 'Dashed' | 'Wavy';
9146
+
8995
9147
  /**
8996
9148
  * Options for text font size operations with unit support.
8997
9149
  * @public