@openfin/fdc3-api 43.100.104 → 43.100.106

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/out/fdc3-api.d.ts CHANGED
@@ -91,6 +91,34 @@ declare type AnalyticsProtocolMap = {
91
91
  [k in AnalyticsOnlyCalls]: VoidCall;
92
92
  };
93
93
 
94
+ /**
95
+ * Represents an anchor configuration consisting of a bounding rectangle
96
+ * and an anchor point describing which part of that rectangle should be
97
+ * used as the reference for positioning the download bubble.
98
+ * @interface
99
+ */
100
+ declare type Anchor = {
101
+ /**
102
+ * The DOM or screen-space rectangle that defines the anchor area.
103
+ */
104
+ bounds: Rectangle;
105
+ /**
106
+ * The location within the rectangle that should act as the anchor
107
+ * (e.g., `topRight`, `bottomLeft`, `center`, etc.).
108
+ * For example, `topRight` means the rectangle's top-right corner is used
109
+ * as the anchoring reference point.
110
+ */
111
+ location: AnchorLocation;
112
+ };
113
+
114
+ /**
115
+ * Defines the point within the rectangle that should be used as the anchor
116
+ * when positioning UI elements relative to another surface.
117
+ *
118
+ * @interface
119
+ */
120
+ declare type AnchorLocation = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'rightTop' | 'leftBottom' | 'rightBottom' | 'topCenter' | 'bottomCenter' | 'leftCenter' | 'rightCenter' | 'none' | 'float';
121
+
94
122
  declare type AnchorType = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
95
123
 
96
124
  declare type AnyStrategy = ChannelStrategy<any>;
@@ -1395,6 +1423,56 @@ declare type ApplicationWindowInfo = {
1395
1423
  uuid: string;
1396
1424
  };
1397
1425
 
1426
+ /**
1427
+ * `appLogLevel` allows the verbosity of app logs that are collected for a Window or View to be controlled when the app logging feature is enabled for its application.
1428
+ *
1429
+ * Please note, `enableAppLogging` must be specified in the application manifest's `platform` or `startup_app` key for this feature to be activated.
1430
+ *
1431
+ * If not specified, and `enableAppLogging` is true for the application, the default level will be 'silent'.
1432
+ *
1433
+ * This setting can also be specified in a Domain Setting Rule, allowing per url exceptions to the default behavior to be made. Please note, when a domain setting is actively
1434
+ * controlling a url's appLogLevel, its options will be ignored.
1435
+ *
1436
+ * @default 'debug'
1437
+ *
1438
+ * @example Controlling App Logs With DefaultViewOptions + Domain Settings
1439
+ *
1440
+ * In this example manifest, we use `defaultViewOptions to set the default verbosity to 'warn'.
1441
+ *
1442
+ * We also use domain settings to suppress logs entirely for an example URL, and to lower verbosity to 'debug' for another.
1443
+ *
1444
+ * ```ts
1445
+ * {
1446
+ * <rest of settings>
1447
+ * "platform": {
1448
+ * <rest of settings>
1449
+ * "enableAppLogging": "true",
1450
+ * "defaultViewOptions": {
1451
+ * "appLogLevel": "warn"
1452
+ * },
1453
+ * "domainSettings": {
1454
+ * "default": { <rest of settings> }
1455
+ * "rules": [
1456
+ * <rest of rules>
1457
+ * {
1458
+ * "match": ["*://*?app-logging-level=silent"],
1459
+ * "options": {
1460
+ * "appLogLevel": "silent"
1461
+ * }
1462
+ * },
1463
+ * {
1464
+ * "match": ["*://*?app-logging-level=debug"],
1465
+ * "options": {
1466
+ * "appLogLevel": "debug"
1467
+ * }
1468
+ * },
1469
+ * ]
1470
+ * }
1471
+ * }
1472
+ * }
1473
+ */
1474
+ declare type AppLogLevel = 'silent' | 'debug' | 'info' | 'warn' | 'error';
1475
+
1398
1476
  /**
1399
1477
  * @interface
1400
1478
  */
@@ -3923,6 +4001,10 @@ declare type ConstWindowOptions = {
3923
4001
  * Controls whether frameless window should have rounded corners. Default is false for Windows and true for MacOS. Setting this property to false will prevent the window from being fullscreenable on macOS. On Windows versions older than Windows 11 Build 22000 this property has no effect, and frameless windows will not have rounded corners.
3924
4002
  */
3925
4003
  roundedCorners: boolean;
4004
+ /**
4005
+ * Configuration for download bubble UI.
4006
+ */
4007
+ downloadBubble?: DownloadBubbleOptions;
3926
4008
  };
3927
4009
 
3928
4010
  /**
@@ -4675,6 +4757,50 @@ declare type DomainSettingsRule = {
4675
4757
  matchOptions?: RuleMatchOptions;
4676
4758
  };
4677
4759
 
4760
+ /**
4761
+ * Configuration options for enabling and positioning the download bubble UI.
4762
+ * @interface
4763
+ */
4764
+ declare type DownloadBubbleOptions = {
4765
+ /**
4766
+ * Whether the download bubble feature is enabled.
4767
+ */
4768
+ enabled: boolean;
4769
+ /**
4770
+ * Anchor configuration describing where the download bubble should attach.
4771
+ */
4772
+ anchor: Anchor;
4773
+ };
4774
+
4775
+ /**
4776
+ * Generated when the download button icon needs to be updated. Only raised if the download bubble feature is enabled.
4777
+ *
4778
+ * @interface
4779
+ */
4780
+ declare type DownloadButtonIconUpdatedEvent = BaseEvent_5 & {
4781
+ type: 'download-button-icon-updated';
4782
+ disabled: boolean;
4783
+ active: boolean;
4784
+ touchMode: boolean;
4785
+ progressIndicatorState: 'idle' | 'scanning' | 'downloading' | 'dormant';
4786
+ progressDownloadCount: number;
4787
+ progressPercentage: number;
4788
+ buttonTooltip: string;
4789
+ };
4790
+
4791
+ /**
4792
+ * Generated when the visibility of the window's download button changes. Only raised if the download bubble feature is enabled.
4793
+ *
4794
+ * @interface
4795
+ */
4796
+ declare type DownloadButtonVisibilityChangedEvent = BaseEvent_5 & {
4797
+ type: 'download-button-visibility-changed';
4798
+ /**
4799
+ * True if the download button should be displayed, false if it should be hidden.
4800
+ */
4801
+ visible: boolean;
4802
+ };
4803
+
4678
4804
  /**
4679
4805
  * Metadata returned from a preload script download request.
4680
4806
  *
@@ -4734,6 +4860,7 @@ declare type DownloadRule = {
4734
4860
  *
4735
4861
  * @remarks This will control the styling for the download shelf regardless of whether its display was
4736
4862
  * triggered by the window itself, or a view targeting the window.
4863
+ * @deprecated Use the DownloadBubble API instead.
4737
4864
  */
4738
4865
  declare type DownloadShelfOptions = {
4739
4866
  /**
@@ -4769,6 +4896,7 @@ declare type DownloadShelfOptions = {
4769
4896
  * Generated when the visibility of the window's download shelf changes.
4770
4897
  *
4771
4898
  * @interface
4899
+ * @deprecated use DownloadBubble API instead
4772
4900
  */
4773
4901
  declare type DownloadShelfVisibilityChangedEvent = BaseEvent_5 & {
4774
4902
  type: 'download-shelf-visibility-changed';
@@ -5040,7 +5168,7 @@ declare type Event_10 = ApplicationEvents.Event | ApiReadyEvent | SnapshotApplie
5040
5168
  * under the {@link OpenFin.SystemEvents} namespace (payloads inherited from propagated events are defined in the namespace
5041
5169
  * from which they propagate).
5042
5170
  */
5043
- declare type Event_11 = ExcludeRequested<WindowEvents.PropagatedEvent<'system'>> | ExcludeRequested<ViewEvents.PropagatedEvent<'system'>> | ExcludeRequested<ApplicationEvents.PropagatedEvent<'system'>> | ApplicationCreatedEvent | DesktopIconClickedEvent | IdleStateChangedEvent | MonitorInfoChangedEvent | SessionChangedEvent | AppVersionEventWithId | SystemShutdownEvent | ExtensionsEnabledEvent | ExtensionsDisabledEvent | ExtensionsExcludedEvent | ExtensionsInstalledEvent | ExtensionInstalledEvent | ExtensionsInstallFailedEvent | ExtensionInstallFailedEvent | ExtensionsInitializationFailedEvent;
5171
+ declare type Event_11 = ExcludeRequested<WindowEvents.PropagatedEvent<'system'>> | ExcludeRequested<ViewEvents.PropagatedEvent<'system'>> | ExcludeRequested<ApplicationEvents.PropagatedEvent<'system'>> | ApplicationCreatedEvent | DesktopIconClickedEvent | IdleStateChangedEvent | MonitorInfoChangedEvent | SessionChangedEvent | AppVersionEventWithId | SystemShutdownEvent | ExtensionsEnabledEvent | ExtensionsDisabledEvent | ExtensionsExcludedEvent | ExtensionsInstalledEvent | ExtensionInstalledEvent | ExtensionsInstallFailedEvent | ExtensionInstallFailedEvent | ExtensionsInitializationFailedEvent | ThemePaletteChangedEvent | NativeThemeUpdatedEvent;
5044
5172
 
5045
5173
  /**
5046
5174
  * [Union](https://www.typescriptlang.org/docs/handbook/2/everyday-types.html#union-types) containing every possible event that can be emitted by the HTMLElement Layout container.
@@ -9066,7 +9194,7 @@ declare abstract class LayoutNode {
9066
9194
  * Known Issue: If the number of views to add overflows the tab-container, the added views will be set as active
9067
9195
  * during each render, and then placed at the front of the tab-stack, while the underlying order of tabs will remain unchanged.
9068
9196
  * This means the views you pass to createAdjacentStack() may not render in the order given by the array.
9069
- * Until fixed, this problem can be avoided only if your window is wide enough to fit creating all the views in the tabstack.
9197
+ * Note: This issue does not occur when using `tabOverflowBehavior: 'scroll'` in the layout configuration.
9070
9198
  *
9071
9199
  * @param views The views that will populate the new TabStack.
9072
9200
  * @param options Additional options that control new TabStack creation.
@@ -9241,6 +9369,42 @@ declare type LayoutOptions = {
9241
9369
  * @defaultValue false
9242
9370
  */
9243
9371
  disableTabOverflowDropdown?: boolean;
9372
+ /**
9373
+ * When set to 'scroll', enables horizontal scrolling of tabs when they overflow the stack width.
9374
+ * When set to 'dropdown', the default behavior occurs, in which excess tabs appear in a menu.
9375
+ *
9376
+ * Setting this to `scroll` might break styles written for the default dropdown behavior, as it significantly changes the DOM structure and CSS of tabs.
9377
+ *
9378
+ * The DOM structure is modified in this way:
9379
+ * - `lm_tabs` is wrapped in a div with class `lm_scroll_shadow`. This div is revealed by a mask on the tabs when they are overflowing.
9380
+ * - the `.newTabButton` (if enabled) is a direct child of `.lm_header`
9381
+ *
9382
+ * **The following CSS variables are available to customize tab appearance:**
9383
+ *
9384
+ * - `--layout-tab-width`: The default (max) width of the tabs. Using this enables using `lm_tab` as a queryable CSS container (must be an absolute value to use container queries). Default: `fit-content`
9385
+ * - `--layout-tab-min-width`: The minimum width of the tabs before they start overflowing. Set this to enable tab shrinking. Defaults to the same value as `--layout-tab-width` (no shrinking).
9386
+ * - `--layout-tab-overflow-fade-size`: The width of the scroll shadows when tabs are overflowing. Default: `20px`
9387
+ * - `--layout-tab-overflow-shadow-color`: The color of the scroll shadows when tabs are overflowing. Enabling a contrasting shadow color may require setting the background color on `.lm_tabs` if it was not previously set via `--tabs-background-color`. Default is transparent so overlowing tabs fade into the background.
9388
+ *
9389
+ * **CSS Variables for advanced customization (dynamically updated and set on `lm_tabs`):**
9390
+ *
9391
+ * - `--layout-tab-overflow-fade-left`: The strength of the left fade when tabs are overflowing. This is a number between 0 and 1 where 0 means no fade and 1 means a full fade.
9392
+ * - `--layout-tab-overflow-fade-right`: The strength of the right fade when tabs are overflowing. This is a number between 0 and 1 where 0 means no fade and 1 means a full fade.
9393
+ * - `--layout-tabs-overflowing`: A [CSS space toggle](https://css-tricks.com/the-css-custom-property-toggle-trick/) that is empty when tabs are overflowing and `initial` otherwise. If you are targeting only Chrome 137 or greater, you might want to use the `if()` function with left/right fade instead of this toggle.
9394
+ *
9395
+ * @example
9396
+ * ```css
9397
+ * .lm_tabs {
9398
+ * --layout-tab-width: 200px;
9399
+ * --layout-tab-min-width: 100px;
9400
+ * --layout-tab-overflow-fade-size: 20px;
9401
+ * --layout-tab-overflow-shadow-color: rgba(0, 0, 0, 0.3);
9402
+ * }
9403
+ * ```
9404
+ *
9405
+ * @defaultValue 'dropdown'
9406
+ */
9407
+ tabOverflowBehavior?: 'dropdown' | 'scroll';
9244
9408
  };
9245
9409
  /**
9246
9410
  * Content of the layout. There can only be one top-level LayoutItem in the content array.
@@ -9348,6 +9512,12 @@ declare type LogInfo = {
9348
9512
  */
9349
9513
  declare type LogLevel = 'verbose' | 'info' | 'warning' | 'error' | 'fatal';
9350
9514
 
9515
+ declare type LogPath = 'debug.log' | 'app.log';
9516
+
9517
+ declare type LogTarget = {
9518
+ type: LogPath;
9519
+ };
9520
+
9351
9521
  /**
9352
9522
  * Log types
9353
9523
  *
@@ -9493,6 +9663,7 @@ declare type Manifest = {
9493
9663
  policies?: {
9494
9664
  CloudAPAuthEnabled?: 'enabled' | 'disabled';
9495
9665
  };
9666
+ themePalette?: Array<ThemePalette>;
9496
9667
  };
9497
9668
  services?: string[];
9498
9669
  shortcut?: {
@@ -9870,6 +10041,10 @@ declare type MutableViewOptions = {
9870
10041
  * {@inheritDoc ChromiumPolicies}
9871
10042
  */
9872
10043
  chromiumPolicies: ChromiumPolicies;
10044
+ /**
10045
+ * Specifies the AppLogLevel for the specified View. See {@link AppLogLevel} for more information.
10046
+ */
10047
+ appLogLevel?: AppLogLevel;
9873
10048
  };
9874
10049
 
9875
10050
  /**
@@ -10152,6 +10327,10 @@ declare type MutableWindowOptions = {
10152
10327
  * {@inheritDoc ChromiumPolicies}
10153
10328
  */
10154
10329
  chromiumPolicies: ChromiumPolicies;
10330
+ /**
10331
+ * Specifies the AppLogLevel for the Window. See {@link AppLogLevel} for more information.
10332
+ */
10333
+ appLogLevel?: AppLogLevel;
10155
10334
  };
10156
10335
 
10157
10336
  declare type NackHandler = (payloadOrMessage: RuntimeErrorPayload | string) => void;
@@ -10164,6 +10343,78 @@ declare type NamedEvent = IdentityEvent & {
10164
10343
  name: string;
10165
10344
  };
10166
10345
 
10346
+ /**
10347
+ * @interface
10348
+ *
10349
+ * Represents the native theme of the operating system.
10350
+ * This is used to determine how the application should render its UI based on the system's theme settings.
10351
+ * Defer to CSS properties whenever possible.
10352
+ *
10353
+ * Re-exported from Electron's `NativeTheme` type.
10354
+ */
10355
+ declare type NativeTheme = {
10356
+ /**
10357
+ * A `boolean` indicating whether Chromium is in forced colors mode, controlled by
10358
+ * system accessibility settings. Currently, Windows high contrast is the only
10359
+ * system setting that triggers forced colors mode.
10360
+ *
10361
+ * @platform win32
10362
+ */
10363
+ inForcedColorsMode: boolean;
10364
+ /**
10365
+ * A `boolean` that indicates the whether the user has chosen via system
10366
+ * accessibility settings to reduce transparency at the OS level.
10367
+ *
10368
+ */
10369
+ prefersReducedTransparency: boolean;
10370
+ /**
10371
+ * A `boolean` for if the OS / Chromium currently has a dark mode enabled or is
10372
+ * being instructed to show a dark-style UI. If you want to modify this value you
10373
+ * should use `themeSource` below.
10374
+ *
10375
+ */
10376
+ shouldUseDarkColors: boolean;
10377
+ /**
10378
+ * A `boolean` property indicating whether or not the system theme has been set to
10379
+ * dark or light.
10380
+ *
10381
+ * On Windows this property distinguishes between system and app light/dark theme,
10382
+ * returning `true` if the system theme is set to dark theme and `false` otherwise.
10383
+ * On macOS the return value will be the same as `nativeTheme.shouldUseDarkColors`.
10384
+ *
10385
+ * @platform darwin,win32
10386
+ */
10387
+ shouldUseDarkColorsForSystemIntegratedUI: boolean;
10388
+ /**
10389
+ * A `boolean` for if the OS / Chromium currently has high-contrast mode enabled or
10390
+ * is being instructed to show a high-contrast UI.
10391
+ *
10392
+ * @platform darwin,win32
10393
+ */
10394
+ shouldUseHighContrastColors: boolean;
10395
+ /**
10396
+ * A `boolean` for if the OS / Chromium currently has an inverted color scheme or
10397
+ * is being instructed to use an inverted color scheme.
10398
+ *
10399
+ * @platform darwin,win32
10400
+ */
10401
+ shouldUseInvertedColorScheme: boolean;
10402
+ /**
10403
+ * A `string` property that can be `system`, `light` or `dark`. It is used (via `setTheme) to
10404
+ * override and supersede the value that Chromium has chosen to use internally.
10405
+ */
10406
+ themeSource: 'system' | 'light' | 'dark';
10407
+ };
10408
+
10409
+ /**
10410
+ * Generated when the operating system's theme preferences change.
10411
+ * Occurs when dark mode, high contrast mode, or inverted color scheme settings are modified.
10412
+ */
10413
+ declare type NativeThemeUpdatedEvent = BaseEvent_9 & {
10414
+ type: 'native-theme-updated';
10415
+ theme: OpenFin.NativeTheme;
10416
+ };
10417
+
10167
10418
  /**
10168
10419
  * @interface
10169
10420
  */
@@ -10462,6 +10713,9 @@ declare namespace OpenFin {
10462
10713
  CustomProtocolOptions,
10463
10714
  InteropBrokerOptions,
10464
10715
  ContextGroupInfo,
10716
+ AnchorLocation,
10717
+ Anchor,
10718
+ DownloadBubbleOptions,
10465
10719
  DisplayMetadata,
10466
10720
  LegacyWinOptionsInAppOptions,
10467
10721
  Snapshot,
@@ -10488,6 +10742,9 @@ declare namespace OpenFin {
10488
10742
  InheritableOptions,
10489
10743
  PolicyOptions,
10490
10744
  ChromiumPolicies,
10745
+ AppLogLevel,
10746
+ LogPath,
10747
+ LogTarget,
10491
10748
  MutableWindowOptions,
10492
10749
  WorkspacePlatformOptions,
10493
10750
  WebRequestHeader,
@@ -10565,9 +10822,14 @@ declare namespace OpenFin {
10565
10822
  LogUploaderUIOptions,
10566
10823
  LogTypes,
10567
10824
  LogUploadOptions,
10825
+ ThemeColorsMap,
10826
+ ThemeColorId,
10827
+ ThemePalette,
10568
10828
  Manifest,
10569
10829
  LayoutContent,
10570
10830
  LayoutItemConfig,
10831
+ ThemePreferences,
10832
+ NativeTheme,
10571
10833
  LayoutRow,
10572
10834
  LayoutColumn,
10573
10835
  LayoutComponent,
@@ -10787,6 +11049,7 @@ declare namespace OpenFin {
10787
11049
  ChannelProviderDisconnectionListener,
10788
11050
  RoutingInfo,
10789
11051
  DownloadShelfOptions,
11052
+ SnapZoneOptions,
10790
11053
  ViewShowAtOptions,
10791
11054
  WebNotificationProperties,
10792
11055
  WebNotificationInfo,
@@ -11061,6 +11324,11 @@ declare type PerDomainSettings = {
11061
11324
  */
11062
11325
  drag?: 'allow' | 'block';
11063
11326
  };
11327
+ /**
11328
+ * Allows the app log level of any matching content to be overriden.
11329
+ * See also {@link AppLogLevel} for more information.
11330
+ */
11331
+ appLogLevel?: AppLogLevel;
11064
11332
  };
11065
11333
 
11066
11334
  /**
@@ -12781,7 +13049,7 @@ declare type PositioningOptions = {
12781
13049
  /**
12782
13050
  * Context menu item with an implementation provided by OpenFin.
12783
13051
  */
12784
- declare type PrebuiltContextMenuItem = 'separator' | 'undo' | 'redo' | 'cut' | 'copy' | 'copyImage' | 'paste' | 'selectAll' | 'spellCheck' | 'inspect' | 'reload' | 'navigateForward' | 'navigateBack' | 'print';
13052
+ declare type PrebuiltContextMenuItem = 'separator' | 'undo' | 'redo' | 'cut' | 'copy' | 'copyImage' | 'paste' | 'selectAll' | 'spellCheck' | 'inspect' | 'reload' | 'navigateForward' | 'navigateBack' | 'print' | 'snapToTop' | 'snapToBottom';
12785
13053
 
12786
13054
  /**
12787
13055
  * A script that is run before page load.
@@ -13479,6 +13747,12 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
13479
13747
  'create-window': VoidCall;
13480
13748
  'get-current-window': VoidCall;
13481
13749
  'get-current-window-sync': VoidCall;
13750
+ 'show-download-bubble': IdentityCall<{
13751
+ anchor?: OpenFin.Anchor;
13752
+ }, void>;
13753
+ 'update-download-bubble-anchor': IdentityCall<{
13754
+ anchor: OpenFin.Anchor;
13755
+ }, void>;
13482
13756
  'get-external-application-info': ApiCall<OpenFin.ApplicationIdentity, OpenFin.ExternalApplicationInfo>;
13483
13757
  'external-application-wrap': VoidCall;
13484
13758
  'external-application-wrap-sync': VoidCall;
@@ -13575,6 +13849,10 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
13575
13849
  request: any;
13576
13850
  response: any;
13577
13851
  };
13852
+ 'set-theme-preferences': ApiCall<{
13853
+ preferences: OpenFin.ThemePreferences;
13854
+ }, OpenFin.NativeTheme>;
13855
+ 'get-theme-preferences': GetterCall<OpenFin.NativeTheme>;
13578
13856
  'get-version': GetterCall<string>;
13579
13857
  'clear-cache': ApiCall<OpenFin.ClearCacheOption, void>;
13580
13858
  'delete-cache-request': VoidCall;
@@ -13662,6 +13940,9 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
13662
13940
  'write-to-log': ApiCall<{
13663
13941
  level: string;
13664
13942
  message: string;
13943
+ target?: {
13944
+ type?: 'app.log' | 'debug.log';
13945
+ };
13665
13946
  }, void>;
13666
13947
  'open-url-with-browser': ApiCall<{
13667
13948
  url: string;
@@ -13825,6 +14106,15 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
13825
14106
  request: void;
13826
14107
  response: OpenFin.ExtensionInfo[];
13827
14108
  };
14109
+ 'set-theme-palette': ApiCall<{
14110
+ themePalette: Array<OpenFin.ThemePalette>;
14111
+ }, void> & {
14112
+ themePalette: Array<OpenFin.ThemePalette>;
14113
+ };
14114
+ 'get-theme-palette': ApiCall<void, Array<OpenFin.ThemePalette>> & {
14115
+ request: void;
14116
+ response: Array<OpenFin.ThemePalette>;
14117
+ };
13828
14118
  'fdc3-add-context-listener': VoidCall;
13829
14119
  'fdc3-add-intent-listener': VoidCall;
13830
14120
  'fdc3-raise-intent': VoidCall;
@@ -14900,6 +15190,15 @@ declare type Size = TransitionBase & {
14900
15190
  height: number;
14901
15191
  };
14902
15192
 
15193
+ /**
15194
+ * Generated when a window is snapped to a screen edge.
15195
+ * @interface
15196
+ */
15197
+ declare type SnappedEvent = BoundsEvent & {
15198
+ type: 'snapped';
15199
+ snapLocation: 'top' | 'bottom';
15200
+ };
15201
+
14903
15202
  /**
14904
15203
  * @interface
14905
15204
  */
@@ -15047,6 +15346,52 @@ declare class SnapshotSourceModule extends Base {
15047
15346
  wrap(identity: OpenFin.ApplicationIdentity): Promise<SnapshotSource>;
15048
15347
  }
15049
15348
 
15349
+ /**
15350
+ * Generated when a window enters or exits a snap zone during drag.
15351
+ * This event fires whenever the snap zone state changes (entry or exit).
15352
+ * @interface
15353
+ */
15354
+ declare type SnapZoneChangedEvent = BaseEvent_5 & {
15355
+ type: 'snap-zone-changed';
15356
+ /**
15357
+ * Array of locations that the window is currently in snap zones for.
15358
+ * Empty array indicates the window is not in any snap zone.
15359
+ * Can contain multiple locations if the window is in multiple zones simultaneously.
15360
+ */
15361
+ locations: Array<'top' | 'bottom'>;
15362
+ };
15363
+
15364
+ /**
15365
+ * @interface
15366
+ *
15367
+ * Configures snap zone behavior for a window. When enabled, the window will automatically snap to screen edges
15368
+ * when dragged near them during user drag interactions.
15369
+ */
15370
+ declare type SnapZoneOptions = {
15371
+ /**
15372
+ * Whether snap zone functionality is enabled for this window.
15373
+ *
15374
+ * @default false
15375
+ */
15376
+ enabled: boolean;
15377
+ /**
15378
+ * The distance in pixels from the screen edge that triggers the snap zone.
15379
+ * When the window is dragged within this threshold of the top or bottom edge,
15380
+ * it will be considered in a snap zone.
15381
+ *
15382
+ * @default 50
15383
+ */
15384
+ threshold?: number;
15385
+ /**
15386
+ * Ordered array of edge preferences when the window is in multiple snap zones simultaneously.
15387
+ * The first edge in the array that the window is in will be used for snapping.
15388
+ * If not provided, defaults to ['top', 'bottom'] (preferring top over bottom).
15389
+ *
15390
+ * @default ['top', 'bottom']
15391
+ */
15392
+ locationPreference?: Array<'top' | 'bottom'>;
15393
+ };
15394
+
15050
15395
  /**
15051
15396
  * Generated when an application has started.
15052
15397
  * @interface
@@ -15827,13 +16172,14 @@ declare class System extends EmitterBase<OpenFin.SystemEvent> {
15827
16172
  * Writes the passed message into both the log file and the console.
15828
16173
  * @param level The log level for the entry. Can be either "info", "warning" or "error"
15829
16174
  * @param message The log message text
16175
+ * @param target The log stream this message will be sent to, defaults to 'debug.log'. Specify 'app.log' to log to the app log of the sending View / Window. Note, when using `app.log`, it will always log to app.log irrespective of the `enableAppLogging` setting for the sender. This is particularly useful if you wish to log certain things from a View / Window but ignore generic console logs.
15830
16176
  *
15831
16177
  * @example
15832
16178
  * ```js
15833
- * fin.System.log("info", "An example log message").then(() => console.log('Log info message')).catch(err => console.log(err));
16179
+ * fin.System.log("info", "An example log message", { type: 'debug.log' }).then(() => console.log('Log info message')).catch(err => console.log(err));
15834
16180
  * ```
15835
16181
  */
15836
- log(level: string, message: string): Promise<void>;
16182
+ log(level: string, message: string, target?: OpenFin.LogTarget): Promise<void>;
15837
16183
  /**
15838
16184
  * Opens the passed URL in the default web browser.
15839
16185
  *
@@ -16572,11 +16918,123 @@ declare class System extends EmitterBase<OpenFin.SystemEvent> {
16572
16918
  * Not indended for general use, will be used by the `@openfin/workspace-platform` package.
16573
16919
  */
16574
16920
  serveAsset(options: OpenFin.ServeAssetOptions): Promise<OpenFin.ServedAssetInfo>;
16921
+ /**
16922
+ * Get's the native theme preferences for the current runtime.
16923
+ * Prefer css media-queries wherever possible, but this can be useful to see if the system setting has been overridden.
16924
+ * See @link OpenFin.NativeTheme for more information.
16925
+ * @example Theme selector menu
16926
+ * ```ts
16927
+ async function handleThemeMenu(e: React.MouseEvent<HTMLDivElement>) {
16928
+ const currentTheme = await fin.System.getThemePreferences();
16929
+ const result = await (fin.me as OpenFin.Window).showPopupMenu({
16930
+ x: e.clientX,
16931
+ y: e.clientY,
16932
+ template: [
16933
+ {
16934
+ label: 'Light',
16935
+ type: 'checkbox',
16936
+ checked: currentTheme.themeSource === 'light',
16937
+ data: { themeSource: 'light' } as const
16938
+ },
16939
+ {
16940
+ label: 'Dark',
16941
+ type: 'checkbox',
16942
+ checked: currentTheme.themeSource === 'dark',
16943
+ data: { themeSource: 'dark' } as const
16944
+ },
16945
+ {
16946
+ label: 'System',
16947
+ type: 'checkbox',
16948
+ checked: currentTheme.themeSource === 'system',
16949
+ data: { themeSource: 'system' } as const
16950
+ }
16951
+ ]
16952
+ });
16953
+ if (result.result === 'clicked') {
16954
+ await fin.System.setThemePreferences(result.data);
16955
+ }
16956
+ }
16957
+ ```
16958
+ */
16959
+ getThemePreferences(): Promise<OpenFin.NativeTheme>;
16960
+ /**
16961
+ * Sets the native theme preferences for the current runtime.
16962
+ * Can be used to force runtime-wide light or dark mode.
16963
+ * @important Due to this impacting all applications on a runtime, this method is only usable if a security realm has been set.
16964
+ * @example Theme selector menu
16965
+ * ```ts
16966
+ async function handleThemeMenu(e: React.MouseEvent<HTMLDivElement>) {
16967
+ const currentTheme = await fin.System.getThemePreferences();
16968
+ const result = await (fin.me as OpenFin.Window).showPopupMenu({
16969
+ x: e.clientX,
16970
+ y: e.clientY,
16971
+ template: [
16972
+ {
16973
+ label: 'Light',
16974
+ type: 'checkbox',
16975
+ checked: currentTheme.themeSource === 'light',
16976
+ data: { themeSource: 'light' } as const
16977
+ },
16978
+ {
16979
+ label: 'Dark',
16980
+ type: 'checkbox',
16981
+ checked: currentTheme.themeSource === 'dark',
16982
+ data: { themeSource: 'dark' } as const
16983
+ },
16984
+ {
16985
+ label: 'System',
16986
+ type: 'checkbox',
16987
+ checked: currentTheme.themeSource === 'system',
16988
+ data: { themeSource: 'system' } as const
16989
+ }
16990
+ ]
16991
+ });
16992
+ if (result.result === 'clicked') {
16993
+ await fin.System.setThemePreferences(result.data);
16994
+ }
16995
+ }
16996
+ ```
16997
+ */
16998
+ setThemePreferences(preferences: OpenFin.ThemePreferences): Promise<OpenFin.ThemePreferences>;
16575
16999
  /**
16576
17000
  * Launches the Log Uploader. Full documentation can be found [here](https://resources.here.io/docs/core/develop/debug/log-uploader/).
16577
17001
  * @experimental
16578
17002
  */
16579
17003
  launchLogUploader(options: OpenFin.LogUploaderOptions): Promise<void>;
17004
+ /**
17005
+ * Overrides original Chromium theme color providers matching key (currently except high contrast ones). Only colors passed in the map will be overridden.
17006
+ * @param overrides - Array of ColorProviderOverrides objects
17007
+ * @example
17008
+ * ```ts
17009
+ * await fin.System.setThemePalette([
17010
+ * {
17011
+ * colorProviderKey: { colorMode: 'light' },
17012
+ * colorsMap: {
17013
+ * kColorLabelForeground: 4278190080,
17014
+ * kColorBubbleBackground: 4293980400
17015
+ * }
17016
+ * },
17017
+ * {
17018
+ * colorProviderKey: { colorMode: 'dark' },
17019
+ * colorsMap: {
17020
+ * kColorLabelForeground: 4293980400,
17021
+ * kColorBubbleBackground: 4293980400
17022
+ * }
17023
+ * }
17024
+ * ]);
17025
+ * ```
17026
+ */
17027
+ setThemePalette(themePalette: Array<OpenFin.ThemePalette>): Promise<void>;
17028
+ /**
17029
+ * Retrieves currently used color overrides
17030
+ * @returns Array of ColorProviderOverrides objects
17031
+ * @example
17032
+ * ```ts
17033
+ * const themePalette = await fin.System.getThemePalette();
17034
+ * console.log(themePalette);
17035
+ * ```
17036
+ */
17037
+ getThemePalette(): Promise<Array<OpenFin.ThemePalette>>;
16580
17038
  }
16581
17039
 
16582
17040
  /**
@@ -16615,6 +17073,8 @@ declare namespace SystemEvents {
16615
17073
  ExtensionsInstallFailedEvent,
16616
17074
  ExtensionInstallFailedEvent,
16617
17075
  ExtensionsInitializationFailedEvent,
17076
+ ThemePaletteChangedEvent,
17077
+ NativeThemeUpdatedEvent,
16618
17078
  Event_11 as Event,
16619
17079
  SystemEvent,
16620
17080
  EventType_8 as EventType,
@@ -16745,6 +17205,7 @@ declare class TabStack extends LayoutNode {
16745
17205
  * and rendered at the front of the tab-stack, while the underlying order of tabs will remain unchanged.
16746
17206
  * If that happens and then getViews() is called, it will return the identities in a different order than
16747
17207
  * than the currently rendered tab order.
17208
+ * Note: This issue does not occur when using `tabOverflowBehavior: 'scroll'` in the layout configuration.
16748
17209
  *
16749
17210
  *
16750
17211
  * @throws If the {@link TabStack} has been destroyed.
@@ -16769,6 +17230,7 @@ declare class TabStack extends LayoutNode {
16769
17230
  *
16770
17231
  * @remarks Known Issue: If adding a view overflows the tab-container, the added view will be set as active
16771
17232
  * and rendered at the front of the tab-stack, while the underlying order of tabs will remain unchanged.
17233
+ * Note: This issue does not occur when using `tabOverflowBehavior: 'scroll'` in the layout configuration.
16772
17234
  *
16773
17235
  * @param view The identity of an existing view to add, or options to create a view.
16774
17236
  * @param options Optional view options: index number used to insert the view into the stack at that index. Defaults to 0 (front of the stack)
@@ -16890,6 +17352,109 @@ declare type TerminateExternalRequestType = {
16890
17352
  killTree: boolean;
16891
17353
  };
16892
17354
 
17355
+ /**
17356
+ * String literal type of all supported theme color IDs.
17357
+ * Useful wherever you need to refer to a color slot by name.
17358
+ * @interface
17359
+ */
17360
+ declare type ThemeColorId = keyof ThemeColorsMap;
17361
+
17362
+ /**
17363
+ * All supported color slots for the Download Bubble and related UI.
17364
+ * @interface
17365
+ */
17366
+ declare interface ThemeColorsMap {
17367
+ /**
17368
+ * Enterprise/Window/Background – bubble header and footer background.
17369
+ */
17370
+ kColorBubbleBackground?: number;
17371
+ /**
17372
+ * Windows only – Enterprise/Window/Border.
17373
+ */
17374
+ kColorBubbleBorder?: number;
17375
+ /**
17376
+ * Windows only – Enterprise/Window/Border (large shadow).
17377
+ */
17378
+ kColorBubbleBorderShadowLarge?: number;
17379
+ /**
17380
+ * Windows only – Enterprise/Window/Border (small shadow).
17381
+ */
17382
+ kColorBubbleBorderShadowSmall?: number;
17383
+ /**
17384
+ * Enterprise/Window/Background – downloaded item row background.
17385
+ */
17386
+ kColorDialogBackground?: number;
17387
+ /**
17388
+ * Enterprise/Search Result/Background/Hover – download item row hover.
17389
+ */
17390
+ kColorDownloadBubbleRowHover?: number;
17391
+ /**
17392
+ * Enterprise/Window/Icon – “Show all downloads” icon color.
17393
+ */
17394
+ kColorDownloadBubbleShowAllDownloadsIcon?: number;
17395
+ /**
17396
+ * Enterprise/Search Result/Background/Hover – full download history
17397
+ * button (full row) hover background.
17398
+ */
17399
+ kColorHoverButtonBackgroundHovered?: number;
17400
+ /**
17401
+ * Shared/Icon Button/Subtle/Icon/Default – SVG icon color
17402
+ * (except full download history button).
17403
+ */
17404
+ kColorIcon?: number;
17405
+ /**
17406
+ * Enterprise/Window/Text/Base – main label text color.
17407
+ * May be post-processed to increase readability on kColorDialogBackground
17408
+ * (can be disabled via transparent kColorLabelBackground).
17409
+ */
17410
+ kColorLabelForeground?: number;
17411
+ /**
17412
+ * Label background used for readability adjustment.
17413
+ * Set to transparent (0) to disable Chromium’s readability alignment logic.
17414
+ */
17415
+ kColorLabelBackground?: number;
17416
+ /**
17417
+ * Enterprise/Window/Text/Soft – secondary text color.
17418
+ * May be post-processed to increase readability on kColorDialogBackground
17419
+ * (can be disabled via transparent kColorLabelBackground).
17420
+ */
17421
+ kColorSecondaryForeground?: number;
17422
+ }
17423
+
17424
+ /**
17425
+ * Defines a set of color overrides for Chromium UI surfaces based on a theme
17426
+ * provider (e.g., light or dark mode).
17427
+ * @interface
17428
+ */
17429
+ declare type ThemePalette = {
17430
+ /**
17431
+ * Identifies the color provider mode that the palette applies to.
17432
+ */
17433
+ colorProviderKey: {
17434
+ /**
17435
+ * The UI color mode that this palette is intended to style.
17436
+ */
17437
+ colorMode: 'light' | 'dark';
17438
+ };
17439
+ /**
17440
+ * A mapping of known Chromium color IDs to ARGB values (0xAARRGGBB).
17441
+ */
17442
+ colorsMap: ThemeColorsMap;
17443
+ };
17444
+
17445
+ /**
17446
+ * An event that fires when the system theme palette is changed.
17447
+ */
17448
+ declare type ThemePaletteChangedEvent = BaseEvent_9 & {
17449
+ type: 'theme-palette-changed';
17450
+ themePalette: OpenFin.ThemePalette;
17451
+ };
17452
+
17453
+ /**
17454
+ * Settable options for the native theme of the operating system.
17455
+ */
17456
+ declare type ThemePreferences = Pick<NativeTheme, 'themeSource'>;
17457
+
16893
17458
  /**
16894
17459
  * @interface
16895
17460
  */
@@ -20223,6 +20788,62 @@ declare class _Window extends WebContents<OpenFin.WindowEvent> {
20223
20788
  * To print the views embedded in their page context, set `content` to `screenshot`.
20224
20789
  */
20225
20790
  print(options?: OpenFin.WindowPrintOptions): Promise<void>;
20791
+ /**
20792
+ * Displays the download bubble UI. If an anchor is provided, the bubble
20793
+ * will be positioned according to the specified rectangle and anchor point.
20794
+ *
20795
+ * @param {OpenFin.Anchor} options
20796
+ * Anchor configuration used to position the download bubble. This includes
20797
+ * the bounding rectangle and the anchor location within that rectangle.
20798
+ *
20799
+ * @returns {Promise<void>}
20800
+ * A promise that resolves once the request to show the download bubble
20801
+ * has been processed.
20802
+ * @example
20803
+ * ```js
20804
+ * const w = fin.Window.getCurrentSync();
20805
+ * const el = document.getElementById("download-bubble-button");
20806
+ * const rect = el.getBoundingClientRect();
20807
+ * const anchor = {
20808
+ * bounds: rect,
20809
+ * location: "topRight"
20810
+ * };
20811
+ * w.showDownloadBubble(anchor);
20812
+ * ```
20813
+ */
20814
+ showDownloadBubble(anchor?: OpenFin.Anchor): Promise<void>;
20815
+ /**
20816
+ * Updates the anchor used for positioning the download bubble. This allows
20817
+ * moving the bubble reactively—for example, in response to window resizes,
20818
+ * layout changes, or DOM element repositioning.
20819
+ *
20820
+ * @param {OpenFin.Anchor} options
20821
+ * New anchor configuration describing the updated position and anchor
20822
+ * location for the download bubble.
20823
+ *
20824
+ * @returns {Promise<void>}
20825
+ * A promise that resolves once the anchor update has been applied.
20826
+ * @example
20827
+ * ```js
20828
+ * var w = fin.Window.getCurrentSync();
20829
+ * w.on('download-button-visibility-changed', (evt) => {
20830
+ * if (evt.visible) {
20831
+ * const el = document.getElementById("download-bubble-button");
20832
+ * //We show our button and get it's bounding rect
20833
+ * el.classList.remove("hidden");
20834
+ * const rect = el.getBoundingClientRect();
20835
+ * const anchor = {
20836
+ * bounds: rect,
20837
+ * location: "topRight"
20838
+ * }
20839
+ * w.updateDownloadBubbleAnchor(anchor);
20840
+ * } else {
20841
+ * //We hide our button
20842
+ * document.getElementById("download-bubble-button")?.classList.add("hidden");
20843
+ * }
20844
+ });
20845
+ */
20846
+ updateDownloadBubbleAnchor(anchor: OpenFin.Anchor): Promise<void>;
20226
20847
  }
20227
20848
 
20228
20849
  /**
@@ -20377,6 +20998,8 @@ declare namespace WindowEvents {
20377
20998
  BoundsChangingEvent,
20378
20999
  DisabledMovementBoundsChangedEvent,
20379
21000
  DisabledMovementBoundsChangingEvent,
21001
+ SnappedEvent,
21002
+ SnapZoneChangedEvent,
20380
21003
  UserBoundsChangeEvent,
20381
21004
  BeginUserBoundsChangingEvent,
20382
21005
  EndUserBoundsChangingEvent,
@@ -20416,6 +21039,8 @@ declare namespace WindowEvents {
20416
21039
  NonPropagatedWindowEvent,
20417
21040
  ShowAllDownloadsEvent,
20418
21041
  DownloadShelfVisibilityChangedEvent,
21042
+ DownloadButtonVisibilityChangedEvent,
21043
+ DownloadButtonIconUpdatedEvent,
20419
21044
  WindowSourcedEvent,
20420
21045
  WillPropagateWindowEvent,
20421
21046
  Event_6 as Event,
@@ -20619,7 +21244,7 @@ declare type WindowShowRequestedEvent = ShowRequestedEvent;
20619
21244
  * A union of all events that emit natively on the `Window` topic, i.e. excluding those that propagate
20620
21245
  * from {@link OpenFin.ViewEvents}.
20621
21246
  */
20622
- declare type WindowSourcedEvent = WebContentsEvents.Event<'window'> | WindowViewEvent | AuthRequestedEvent | BeginUserBoundsChangingEvent | BoundsChangedEvent | BoundsChangingEvent | ContextChangedEvent | CloseRequestedEvent | ClosedEvent_2 | ClosingEvent | DisabledMovementBoundsChangedEvent | DisabledMovementBoundsChangingEvent | EmbeddedEvent | EndUserBoundsChangingEvent | ExternalProcessExitedEvent | ExternalProcessStartedEvent | HiddenEvent_2 | HotkeyEvent_2 | InitializedEvent_2 | LayoutInitializedEvent | LayoutReadyEvent | LayoutCreatedEvent | LayoutDestroyedEvent | LayoutSnapshotAppliedEvent | MaximizedEvent | MinimizedEvent | OptionsChangedEvent | PerformanceReportEvent | PreloadScriptsStateChangedEvent | PreloadScriptsStateChangingEvent | ReloadedEvent | RestoredEvent | ShowRequestedEvent | ShownEvent_2 | UserMovementDisabledEvent | UserMovementEnabledEvent | WillMoveEvent | WillResizeEvent | ShowAllDownloadsEvent | DownloadShelfVisibilityChangedEvent;
21247
+ declare type WindowSourcedEvent = WebContentsEvents.Event<'window'> | WindowViewEvent | AuthRequestedEvent | BeginUserBoundsChangingEvent | BoundsChangedEvent | BoundsChangingEvent | ContextChangedEvent | CloseRequestedEvent | ClosedEvent_2 | ClosingEvent | DisabledMovementBoundsChangedEvent | DisabledMovementBoundsChangingEvent | EmbeddedEvent | EndUserBoundsChangingEvent | ExternalProcessExitedEvent | ExternalProcessStartedEvent | HiddenEvent_2 | HotkeyEvent_2 | InitializedEvent_2 | LayoutInitializedEvent | LayoutReadyEvent | LayoutCreatedEvent | LayoutDestroyedEvent | LayoutSnapshotAppliedEvent | MaximizedEvent | MinimizedEvent | OptionsChangedEvent | PerformanceReportEvent | PreloadScriptsStateChangedEvent | PreloadScriptsStateChangingEvent | ReloadedEvent | RestoredEvent | ShowRequestedEvent | ShownEvent_2 | UserMovementDisabledEvent | UserMovementEnabledEvent | WillMoveEvent | WillResizeEvent | ShowAllDownloadsEvent | DownloadShelfVisibilityChangedEvent | DownloadButtonVisibilityChangedEvent | DownloadButtonIconUpdatedEvent | SnappedEvent | SnapZoneChangedEvent;
20623
21248
 
20624
21249
  /**
20625
21250
  * Generated when a child window starts loading.