@cesdk/cesdk-js 1.63.0-nightly.20251017 → 1.63.0-nightly.20251018

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
@@ -2656,7 +2656,7 @@ declare class CreativeEditorSDK {
2656
2656
  * cesdk.resetEditor();
2657
2657
  *
2658
2658
  * // Reconfigure as needed
2659
- * cesdk.feature.enable('ly.img.navigationBar', true);
2659
+ * cesdk.feature.enable('ly.img.navigation.bar');
2660
2660
  * cesdk.addDefaultAssetSources();
2661
2661
  * ```
2662
2662
  *
@@ -3377,42 +3377,238 @@ export declare class FeatureAPI {
3377
3377
  #private;
3378
3378
 
3379
3379
  /**
3380
- * Enables one or more features based on the provided predicate.
3380
+ * Enables one or more features using their default predicates.
3381
3381
  *
3382
- * The predicate can be either a boolean value that determines if the feature
3383
- * is enabled or disabled, a function that receives a context object and
3384
- * returns a boolean, or omitted to get the default behavior. The context contains
3385
- * the `isPreviousEnabled` function
3386
- * which allows you to check if a feature was previously enabled by other
3387
- * enable calls, including the CE.SDK editor defaults. This enables you to
3388
- * further restrict features without reimplementing existing logic.
3382
+ * This is the recommended way to enable features. Each feature has a sensible
3383
+ * default predicate that determines when it should be available in the UI.
3384
+ * To customize the behavior, use the `set()` method instead.
3389
3385
  *
3390
- * To use our defaults you can simply omit passing a predicate when enabling a feature.
3391
- * ```javascript
3386
+ * Supports glob patterns (e.g., 'ly.img.video.*') to enable multiple features at once.
3387
+ * Use `*` as a wildcard to match any sequence of characters.
3388
+ *
3389
+ * @example
3390
+ * Enable single feature with its default predicate:
3391
+ * ```typescript
3392
3392
  * cesdk.feature.enable('ly.img.delete');
3393
- * cesdk.feature.enable('ly.img.duplicate');
3394
3393
  * ```
3395
3394
  *
3396
- * You can also extend the default predicate provided for built-in features.
3395
+ * @example
3396
+ * Enable multiple features at once:
3397
+ * ```typescript
3398
+ * cesdk.feature.enable(['ly.img.delete', 'ly.img.duplicate']);
3399
+ * ```
3397
3400
  *
3398
- * ```javascript
3399
- * cesdk.feature.enable('ly.img.delete', ({ defaultPredicate }) =>
3400
- * return defaultPredicate() && (new Date().getHours() >= 22);
3401
- * );
3401
+ * @example
3402
+ * Enable all video features using a glob pattern:
3403
+ * ```typescript
3404
+ * cesdk.feature.enable('ly.img.video.*');
3405
+ * ```
3406
+ *
3407
+ * @example
3408
+ * Enable all navigation features:
3409
+ * ```typescript
3410
+ * cesdk.feature.enable('ly.img.navigation.*');
3402
3411
  * ```
3403
3412
  *
3404
3413
  * @category Feature Control
3414
+ * @param featureId - The feature ID, glob pattern, or array of feature IDs to enable.
3415
+ */
3416
+ enable(featureId: FeatureId | FeatureId[]): void;
3417
+ /**
3418
+ * @deprecated Use `cesdk.feature.set(featureId, predicate)` instead.
3419
+ * This overload will be removed in a future version.
3420
+ *
3421
+ * Enables one or more features based on the provided predicate.
3422
+ *
3423
+ * @category Feature Control
3405
3424
  * @param featureId - The feature ID or array of feature IDs to enable.
3406
3425
  * @param predicate - The condition that determines if the feature is enabled.
3407
3426
  */
3408
- enable(featureId: FeatureId | FeatureId[], predicate?: FeaturePredicate): void;
3427
+ enable(featureId: FeatureId | FeatureId[], predicate: FeaturePredicate): void;
3409
3428
  /**
3410
- * Checks if a specific feature is currently enabled.
3429
+ * Disables one or more features.
3430
+ *
3431
+ * This is a convenience method that adds a `false` predicate to the feature's
3432
+ * predicate chain, effectively disabling the feature. Disabled features will
3433
+ * not be shown in the UI.
3434
+ *
3435
+ * Supports glob patterns (e.g., 'ly.img.video.*') to disable multiple features at once.
3436
+ * Use `*` as a wildcard to match any sequence of characters.
3437
+ *
3438
+ * @example
3439
+ * Disable a single feature:
3440
+ * ```typescript
3441
+ * cesdk.feature.disable('ly.img.delete');
3442
+ * ```
3443
+ *
3444
+ * @example
3445
+ * Disable multiple features at once:
3446
+ * ```typescript
3447
+ * cesdk.feature.disable([
3448
+ * 'ly.img.delete',
3449
+ * 'ly.img.duplicate',
3450
+ * 'ly.img.group'
3451
+ * ]);
3452
+ * ```
3453
+ *
3454
+ * @example
3455
+ * Disable all video features using a glob pattern:
3456
+ * ```typescript
3457
+ * cesdk.feature.disable('ly.img.video.*');
3458
+ * ```
3459
+ *
3460
+ * @example
3461
+ * Disable all crop features:
3462
+ * ```typescript
3463
+ * cesdk.feature.disable('ly.img.crop.*');
3464
+ * ```
3411
3465
  *
3412
3466
  * @category Feature Control
3413
- * @param featureId - The feature ID to check.
3467
+ * @param featureId - The feature ID, glob pattern, or array of feature IDs to disable.
3468
+ */
3469
+ disable(featureId: FeatureId | FeatureId[]): void;
3470
+ /**
3471
+ * Sets a feature's enabled state, replacing any existing predicates.
3472
+ *
3473
+ * This method provides a unified way to enable or disable features. When setting
3474
+ * to `true`, the feature's default predicate is used. When setting to `false`,
3475
+ * the feature is explicitly disabled. You can also provide a custom predicate
3476
+ * function for advanced control.
3477
+ *
3478
+ * Supports glob patterns (e.g., 'ly.img.video.*') to set multiple features at once.
3479
+ * Use `*` as a wildcard to match any sequence of characters.
3480
+ *
3481
+ * @example
3482
+ * Enable a feature using its default predicate:
3483
+ * ```typescript
3484
+ * cesdk.feature.set('ly.img.delete', true);
3485
+ * ```
3486
+ *
3487
+ * @example
3488
+ * Disable a feature:
3489
+ * ```typescript
3490
+ * cesdk.feature.set('ly.img.delete', false);
3491
+ * ```
3492
+ *
3493
+ * @example
3494
+ * Set a feature with a custom predicate:
3495
+ * ```typescript
3496
+ * cesdk.feature.set('ly.img.delete', ({ engine }) => {
3497
+ * return engine.block.findAllSelected().length > 0;
3498
+ * });
3499
+ * ```
3500
+ *
3501
+ * @example
3502
+ * Disable all video features using a glob pattern:
3503
+ * ```typescript
3504
+ * cesdk.feature.set('ly.img.video.*', false);
3505
+ * ```
3506
+ *
3507
+ * @example
3508
+ * Enable all filter features with a custom predicate:
3509
+ * ```typescript
3510
+ * cesdk.feature.set('ly.img.filter.*', ({ engine }) => {
3511
+ * // Only enable filters for images
3512
+ * const selected = engine.block.findAllSelected();
3513
+ * return selected.some(id => engine.block.getType(id) === '//ly.img.ubq/graphic');
3514
+ * });
3515
+ * ```
3516
+ *
3517
+ * @category Feature Control
3518
+ * @param featureId - The feature ID or glob pattern to set.
3519
+ * @param enabled - Boolean to enable/disable, or a predicate function for custom logic.
3520
+ */
3521
+ set(featureId: FeatureId, enabled: boolean | FeaturePredicate): void;
3522
+ /**
3523
+ * Lists all registered feature IDs, optionally filtered by a pattern.
3524
+ *
3525
+ * This method is useful for debugging and discovering which features are currently
3526
+ * registered in the editor. You can provide a glob-style pattern to filter the results.
3527
+ *
3528
+ * @example
3529
+ * List all registered features:
3530
+ * ```typescript
3531
+ * const allFeatures = cesdk.feature.list();
3532
+ * console.log(allFeatures); // ['ly.img.delete', 'ly.img.duplicate', ...]
3533
+ * ```
3534
+ *
3535
+ * @example
3536
+ * List features matching a pattern:
3537
+ * ```typescript
3538
+ * const videoFeatures = cesdk.feature.list({ matcher: 'ly.img.video.*' });
3539
+ * console.log(videoFeatures); // ['ly.img.video.timeline', 'ly.img.video.clips', ...]
3540
+ * ```
3541
+ *
3542
+ * @example
3543
+ * List navigation features:
3544
+ * ```typescript
3545
+ * const navFeatures = cesdk.feature.list({ matcher: 'ly.img.navigation.*' });
3546
+ * ```
3547
+ *
3548
+ * @category Feature Control
3549
+ * @param options - Optional configuration object with a `matcher` property for glob-style pattern filtering (e.g., 'ly.img.video.*').
3550
+ * @returns An array of feature IDs sorted alphabetically.
3551
+ */
3552
+ list(options?: {
3553
+ matcher?: string;
3554
+ }): FeatureId[];
3555
+ /**
3556
+ * Gets the predicate chain for a specific feature.
3557
+ *
3558
+ * This method returns the array of predicates currently registered for a feature,
3559
+ * allowing you to inspect the feature's configuration. Returns `undefined` if the
3560
+ * feature is not registered.
3561
+ *
3562
+ * @example
3563
+ * Get predicates for a feature:
3564
+ * ```typescript
3565
+ * const predicates = cesdk.feature.get('ly.img.delete');
3566
+ * if (predicates) {
3567
+ * console.log(`Feature has ${predicates.length} predicates`);
3568
+ * }
3569
+ * ```
3570
+ *
3571
+ * @example
3572
+ * Check if a feature is registered:
3573
+ * ```typescript
3574
+ * const isRegistered = cesdk.feature.get('ly.img.delete') !== undefined;
3575
+ * ```
3576
+ *
3577
+ * @category Feature Control
3578
+ * @param featureId - The feature ID to query.
3579
+ * @returns The array of predicates for the feature, or undefined if not registered.
3580
+ */
3581
+ get(featureId: FeatureId): FeaturePredicate[] | undefined;
3582
+ /**
3583
+ * Checks if one or more features are currently enabled.
3584
+ *
3585
+ * Supports glob patterns (e.g., 'ly.img.video.*') to check multiple features at once.
3586
+ * When a glob pattern is used, returns `true` only if **all** matching features are enabled.
3587
+ *
3588
+ * @example
3589
+ * Check if a single feature is enabled:
3590
+ * ```typescript
3591
+ * const isDeleteEnabled = cesdk.feature.isEnabled('ly.img.delete');
3592
+ * ```
3593
+ *
3594
+ * @example
3595
+ * Check if all video features are enabled:
3596
+ * ```typescript
3597
+ * const allVideoFeaturesEnabled = cesdk.feature.isEnabled('ly.img.video.*');
3598
+ * ```
3599
+ *
3600
+ * @example
3601
+ * Check with custom context (useful in predicates):
3602
+ * ```typescript
3603
+ * cesdk.feature.set('ly.img.delete', ({ engine }) => {
3604
+ * return cesdk.feature.isEnabled('ly.img.duplicate', { engine });
3605
+ * });
3606
+ * ```
3607
+ *
3608
+ * @category Feature Control
3609
+ * @param featureId - The feature ID or glob pattern to check.
3414
3610
  * @param context - The context object containing a reference to the underlying engine.
3415
- * @returns True if the feature is enabled, false otherwise.
3611
+ * @returns True if the feature (or all matching features for glob patterns) is enabled, false otherwise.
3416
3612
  */
3417
3613
  isEnabled(featureId: FeatureId, context?: IsEnabledFeatureContext): boolean;
3418
3614
  }
@@ -3422,7 +3618,7 @@ export declare class FeatureAPI {
3422
3618
  *
3423
3619
  * @public
3424
3620
  */
3425
- export declare type FeatureId = 'ly.img.navigationBar' | 'ly.img.navigate.back' | 'ly.img.navigate.close' | 'ly.img.navigate.undoRedo' | 'ly.img.navigate.zoom' | 'ly.img.navigate.actions' | 'ly.img.delete' | 'ly.img.duplicate' | 'ly.img.placeholder' | 'ly.img.preview' | 'ly.img.page.move' | 'ly.img.page.add' | 'ly.img.group' | 'ly.img.replace' | 'ly.img.text.edit' | 'ly.img.text.typeface' | 'ly.img.text.fontSize' | 'ly.img.text.fontStyle' | 'ly.img.text.alignment' | 'ly.img.text.advanced' | 'ly.img.text.background' | 'ly.img.adjustment' | 'ly.img.filter' | 'ly.img.effect' | 'ly.img.blur' | 'ly.img.shadow' | 'ly.img.cutout' | 'ly.img.fill' | 'ly.img.shape.options' | 'ly.img.combine' | 'ly.img.trim' | 'ly.img.crop' | 'ly.img.volume' | 'ly.img.stroke' | 'ly.img.position' | 'ly.img.animations' | 'ly.img.opacity' | 'ly.img.blendMode' | 'ly.img.videoTimeline' | 'ly.img.video.caption' | 'ly.img.transform.position' | 'ly.img.transform.size' | 'ly.img.transform.rotation' | 'ly.img.transform.flip' | 'ly.img.inspectorBar' | 'ly.img.inspectorToggle' | 'ly.img.page.resize' | 'ly.img.dock' | 'ly.img.canvasBar' | 'ly.img.canvasMenu' | 'ly.img.inspector' | 'ly.img.settings' | 'ly.img.assetLibrary' | (string & {});
3621
+ export declare type FeatureId = 'ly.img.navigation.bar' | 'ly.img.navigation.back' | 'ly.img.navigation.close' | 'ly.img.navigation.undoRedo' | 'ly.img.navigation.zoom' | 'ly.img.navigation.actions' | 'ly.img.delete' | 'ly.img.duplicate' | 'ly.img.placeholder' | 'ly.img.preview' | 'ly.img.page.move' | 'ly.img.page.add' | 'ly.img.group' | 'ly.img.replace' | 'ly.img.text.edit' | 'ly.img.text.typeface' | 'ly.img.text.fontSize' | 'ly.img.text.fontStyle' | 'ly.img.text.alignment' | 'ly.img.text.advanced' | 'ly.img.text.background' | 'ly.img.adjustment' | 'ly.img.filter' | 'ly.img.filter.lut' | 'ly.img.filter.duotone' | 'ly.img.effect' | 'ly.img.blur' | 'ly.img.shadow' | 'ly.img.cutout' | 'ly.img.fill' | 'ly.img.shape.options' | 'ly.img.combine' | 'ly.img.trim' | 'ly.img.crop' | 'ly.img.crop.size' | 'ly.img.crop.rotation' | 'ly.img.crop.flip' | 'ly.img.crop.fillMode' | 'ly.img.crop.scale' | 'ly.img.crop.position' | 'ly.img.volume' | 'ly.img.stroke' | 'ly.img.position' | 'ly.img.animations' | 'ly.img.opacity' | 'ly.img.blendMode' | 'ly.img.video.timeline' | 'ly.img.video.clips' | 'ly.img.video.overlays' | 'ly.img.video.audio' | 'ly.img.video.addClip' | 'ly.img.video.controls' | 'ly.img.video.controls.toggle' | 'ly.img.video.controls.background' | 'ly.img.video.controls.playback' | 'ly.img.video.controls.loop' | 'ly.img.video.controls.split' | 'ly.img.video.controls.timelineZoom' | 'ly.img.video.caption' | 'ly.img.transform.position' | 'ly.img.transform.size' | 'ly.img.transform.rotation' | 'ly.img.transform.flip' | 'ly.img.inspector.bar' | 'ly.img.inspector.toggle' | 'ly.img.page.resize' | 'ly.img.dock' | 'ly.img.canvas.bar' | 'ly.img.canvas.menu' | 'ly.img.inspector' | 'ly.img.settings' | 'ly.img.library.panel' | (string & {});
3426
3622
 
3427
3623
  /**
3428
3624
  * The feature predicate is used to enable or disable a feature
@@ -3722,6 +3918,8 @@ export declare type LocaleKey = 'en' | 'de' | string;
3722
3918
 
3723
3919
  export { Logger }
3724
3920
 
3921
+ declare type Logger_2 = (message: string, level: 'Warning' | 'Error') => void;
3922
+
3725
3923
  export { LogLevel }
3726
3924
 
3727
3925
  /**
@@ -4564,7 +4762,7 @@ export declare interface UserInterface {
4564
4762
  *
4565
4763
  * // Update the asset library entry to use your custom source
4566
4764
  * cesdk.ui.updateAssetLibraryEntry('ly.img.colors', {
4567
- * sourceIds: ['ly.img.colors.documentColors', 'my.custom.colors']
4765
+ * sourceIds: ['ly.img.scene.colors', 'my.custom.colors']
4568
4766
  * });
4569
4767
  * ```
4570
4768
  */
@@ -5823,7 +6021,7 @@ declare interface UserInterfaceElements_2 {
5823
6021
  inspector?: UserInterfaceInspector | boolean;
5824
6022
  /** @deprecated Please use `cesdk.feature.enable('ly.img.settings')`, `cesdk.ui.setPanelPosition('//ly.img.panel/settings')` and `cesdk.ui.setPanelFloating('//ly.img.panel/settings')` instead. */
5825
6023
  settings?: UserInterfaceSettings | boolean;
5826
- /** @deprecated Please use `cesdk.feature.enable('ly.img.assetLibrary')`, `cesdk.ui.setPanelPosition('//ly.img.panel/assetLibrary')` and `cesdk.ui.setPanelFloating('//ly.img.panel/assetLibrary')` instead. */
6024
+ /** @deprecated Please use `cesdk.feature.enable('ly.img.library.panel')`, `cesdk.ui.setPanelPosition('//ly.img.panel/assetLibrary')` and `cesdk.ui.setPanelFloating('//ly.img.panel/assetLibrary')` instead. */
5827
6025
  assetLibrary?: UserInterfaceAssetLibrary | boolean;
5828
6026
  };
5829
6027
  dock?: {