@openfin/fdc3-api 43.100.103 → 43.100.105

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>;
@@ -3923,6 +3951,10 @@ declare type ConstWindowOptions = {
3923
3951
  * 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
3952
  */
3925
3953
  roundedCorners: boolean;
3954
+ /**
3955
+ * Configuration for download bubble UI.
3956
+ */
3957
+ downloadBubble?: DownloadBubbleOptions;
3926
3958
  };
3927
3959
 
3928
3960
  /**
@@ -4675,6 +4707,50 @@ declare type DomainSettingsRule = {
4675
4707
  matchOptions?: RuleMatchOptions;
4676
4708
  };
4677
4709
 
4710
+ /**
4711
+ * Configuration options for enabling and positioning the download bubble UI.
4712
+ * @interface
4713
+ */
4714
+ declare type DownloadBubbleOptions = {
4715
+ /**
4716
+ * Whether the download bubble feature is enabled.
4717
+ */
4718
+ enabled: boolean;
4719
+ /**
4720
+ * Anchor configuration describing where the download bubble should attach.
4721
+ */
4722
+ anchor: Anchor;
4723
+ };
4724
+
4725
+ /**
4726
+ * Generated when the download button icon needs to be updated. Only raised if the download bubble feature is enabled.
4727
+ *
4728
+ * @interface
4729
+ */
4730
+ declare type DownloadButtonIconUpdatedEvent = BaseEvent_5 & {
4731
+ type: 'download-button-icon-updated';
4732
+ disabled: boolean;
4733
+ active: boolean;
4734
+ touchMode: boolean;
4735
+ progressIndicatorState: 'idle' | 'scanning' | 'downloading' | 'dormant';
4736
+ progressDownloadCount: number;
4737
+ progressPercentage: number;
4738
+ buttonTooltip: string;
4739
+ };
4740
+
4741
+ /**
4742
+ * Generated when the visibility of the window's download button changes. Only raised if the download bubble feature is enabled.
4743
+ *
4744
+ * @interface
4745
+ */
4746
+ declare type DownloadButtonVisibilityChangedEvent = BaseEvent_5 & {
4747
+ type: 'download-button-visibility-changed';
4748
+ /**
4749
+ * True if the download button should be displayed, false if it should be hidden.
4750
+ */
4751
+ visible: boolean;
4752
+ };
4753
+
4678
4754
  /**
4679
4755
  * Metadata returned from a preload script download request.
4680
4756
  *
@@ -4734,6 +4810,7 @@ declare type DownloadRule = {
4734
4810
  *
4735
4811
  * @remarks This will control the styling for the download shelf regardless of whether its display was
4736
4812
  * triggered by the window itself, or a view targeting the window.
4813
+ * @deprecated Use the DownloadBubble API instead.
4737
4814
  */
4738
4815
  declare type DownloadShelfOptions = {
4739
4816
  /**
@@ -4769,6 +4846,7 @@ declare type DownloadShelfOptions = {
4769
4846
  * Generated when the visibility of the window's download shelf changes.
4770
4847
  *
4771
4848
  * @interface
4849
+ * @deprecated use DownloadBubble API instead
4772
4850
  */
4773
4851
  declare type DownloadShelfVisibilityChangedEvent = BaseEvent_5 & {
4774
4852
  type: 'download-shelf-visibility-changed';
@@ -5040,7 +5118,7 @@ declare type Event_10 = ApplicationEvents.Event | ApiReadyEvent | SnapshotApplie
5040
5118
  * under the {@link OpenFin.SystemEvents} namespace (payloads inherited from propagated events are defined in the namespace
5041
5119
  * from which they propagate).
5042
5120
  */
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;
5121
+ 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
5122
 
5045
5123
  /**
5046
5124
  * [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 +9144,7 @@ declare abstract class LayoutNode {
9066
9144
  * Known Issue: If the number of views to add overflows the tab-container, the added views will be set as active
9067
9145
  * during each render, and then placed at the front of the tab-stack, while the underlying order of tabs will remain unchanged.
9068
9146
  * 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.
9147
+ * Note: This issue does not occur when using `tabOverflowBehavior: 'scroll'` in the layout configuration.
9070
9148
  *
9071
9149
  * @param views The views that will populate the new TabStack.
9072
9150
  * @param options Additional options that control new TabStack creation.
@@ -9241,6 +9319,42 @@ declare type LayoutOptions = {
9241
9319
  * @defaultValue false
9242
9320
  */
9243
9321
  disableTabOverflowDropdown?: boolean;
9322
+ /**
9323
+ * When set to 'scroll', enables horizontal scrolling of tabs when they overflow the stack width.
9324
+ * When set to 'dropdown', the default behavior occurs, in which excess tabs appear in a menu.
9325
+ *
9326
+ * Setting this to `scroll` might break styles written for the default dropdown behavior, as it significantly changes the DOM structure and CSS of tabs.
9327
+ *
9328
+ * The DOM structure is modified in this way:
9329
+ * - `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.
9330
+ * - the `.newTabButton` (if enabled) is a direct child of `.lm_header`
9331
+ *
9332
+ * **The following CSS variables are available to customize tab appearance:**
9333
+ *
9334
+ * - `--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`
9335
+ * - `--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).
9336
+ * - `--layout-tab-overflow-fade-size`: The width of the scroll shadows when tabs are overflowing. Default: `20px`
9337
+ * - `--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.
9338
+ *
9339
+ * **CSS Variables for advanced customization (dynamically updated and set on `lm_tabs`):**
9340
+ *
9341
+ * - `--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.
9342
+ * - `--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.
9343
+ * - `--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.
9344
+ *
9345
+ * @example
9346
+ * ```css
9347
+ * .lm_tabs {
9348
+ * --layout-tab-width: 200px;
9349
+ * --layout-tab-min-width: 100px;
9350
+ * --layout-tab-overflow-fade-size: 20px;
9351
+ * --layout-tab-overflow-shadow-color: rgba(0, 0, 0, 0.3);
9352
+ * }
9353
+ * ```
9354
+ *
9355
+ * @defaultValue 'dropdown'
9356
+ */
9357
+ tabOverflowBehavior?: 'dropdown' | 'scroll';
9244
9358
  };
9245
9359
  /**
9246
9360
  * Content of the layout. There can only be one top-level LayoutItem in the content array.
@@ -9493,6 +9607,7 @@ declare type Manifest = {
9493
9607
  policies?: {
9494
9608
  CloudAPAuthEnabled?: 'enabled' | 'disabled';
9495
9609
  };
9610
+ themePalette?: Array<ThemePalette>;
9496
9611
  };
9497
9612
  services?: string[];
9498
9613
  shortcut?: {
@@ -9870,6 +9985,11 @@ declare type MutableViewOptions = {
9870
9985
  * {@inheritDoc ChromiumPolicies}
9871
9986
  */
9872
9987
  chromiumPolicies: ChromiumPolicies;
9988
+ /**
9989
+ * When set to `false`, disables sending application logs to RVM for this view.
9990
+ * When omitted, inherits from the parent application.
9991
+ */
9992
+ enableAppLogging?: boolean;
9873
9993
  };
9874
9994
 
9875
9995
  /**
@@ -10152,6 +10272,12 @@ declare type MutableWindowOptions = {
10152
10272
  * {@inheritDoc ChromiumPolicies}
10153
10273
  */
10154
10274
  chromiumPolicies: ChromiumPolicies;
10275
+ /**
10276
+ * When set to `false`, disables sending application logs to RVM for this window.
10277
+ * When omitted, inherits from the parent application.
10278
+ *
10279
+ */
10280
+ enableAppLogging?: boolean;
10155
10281
  };
10156
10282
 
10157
10283
  declare type NackHandler = (payloadOrMessage: RuntimeErrorPayload | string) => void;
@@ -10164,6 +10290,78 @@ declare type NamedEvent = IdentityEvent & {
10164
10290
  name: string;
10165
10291
  };
10166
10292
 
10293
+ /**
10294
+ * @interface
10295
+ *
10296
+ * Represents the native theme of the operating system.
10297
+ * This is used to determine how the application should render its UI based on the system's theme settings.
10298
+ * Defer to CSS properties whenever possible.
10299
+ *
10300
+ * Re-exported from Electron's `NativeTheme` type.
10301
+ */
10302
+ declare type NativeTheme = {
10303
+ /**
10304
+ * A `boolean` indicating whether Chromium is in forced colors mode, controlled by
10305
+ * system accessibility settings. Currently, Windows high contrast is the only
10306
+ * system setting that triggers forced colors mode.
10307
+ *
10308
+ * @platform win32
10309
+ */
10310
+ inForcedColorsMode: boolean;
10311
+ /**
10312
+ * A `boolean` that indicates the whether the user has chosen via system
10313
+ * accessibility settings to reduce transparency at the OS level.
10314
+ *
10315
+ */
10316
+ prefersReducedTransparency: boolean;
10317
+ /**
10318
+ * A `boolean` for if the OS / Chromium currently has a dark mode enabled or is
10319
+ * being instructed to show a dark-style UI. If you want to modify this value you
10320
+ * should use `themeSource` below.
10321
+ *
10322
+ */
10323
+ shouldUseDarkColors: boolean;
10324
+ /**
10325
+ * A `boolean` property indicating whether or not the system theme has been set to
10326
+ * dark or light.
10327
+ *
10328
+ * On Windows this property distinguishes between system and app light/dark theme,
10329
+ * returning `true` if the system theme is set to dark theme and `false` otherwise.
10330
+ * On macOS the return value will be the same as `nativeTheme.shouldUseDarkColors`.
10331
+ *
10332
+ * @platform darwin,win32
10333
+ */
10334
+ shouldUseDarkColorsForSystemIntegratedUI: boolean;
10335
+ /**
10336
+ * A `boolean` for if the OS / Chromium currently has high-contrast mode enabled or
10337
+ * is being instructed to show a high-contrast UI.
10338
+ *
10339
+ * @platform darwin,win32
10340
+ */
10341
+ shouldUseHighContrastColors: boolean;
10342
+ /**
10343
+ * A `boolean` for if the OS / Chromium currently has an inverted color scheme or
10344
+ * is being instructed to use an inverted color scheme.
10345
+ *
10346
+ * @platform darwin,win32
10347
+ */
10348
+ shouldUseInvertedColorScheme: boolean;
10349
+ /**
10350
+ * A `string` property that can be `system`, `light` or `dark`. It is used (via `setTheme) to
10351
+ * override and supersede the value that Chromium has chosen to use internally.
10352
+ */
10353
+ themeSource: 'system' | 'light' | 'dark';
10354
+ };
10355
+
10356
+ /**
10357
+ * Generated when the operating system's theme preferences change.
10358
+ * Occurs when dark mode, high contrast mode, or inverted color scheme settings are modified.
10359
+ */
10360
+ declare type NativeThemeUpdatedEvent = BaseEvent_9 & {
10361
+ type: 'native-theme-updated';
10362
+ theme: OpenFin.NativeTheme;
10363
+ };
10364
+
10167
10365
  /**
10168
10366
  * @interface
10169
10367
  */
@@ -10462,6 +10660,9 @@ declare namespace OpenFin {
10462
10660
  CustomProtocolOptions,
10463
10661
  InteropBrokerOptions,
10464
10662
  ContextGroupInfo,
10663
+ AnchorLocation,
10664
+ Anchor,
10665
+ DownloadBubbleOptions,
10465
10666
  DisplayMetadata,
10466
10667
  LegacyWinOptionsInAppOptions,
10467
10668
  Snapshot,
@@ -10565,9 +10766,14 @@ declare namespace OpenFin {
10565
10766
  LogUploaderUIOptions,
10566
10767
  LogTypes,
10567
10768
  LogUploadOptions,
10769
+ ThemeColorsMap,
10770
+ ThemeColorId,
10771
+ ThemePalette,
10568
10772
  Manifest,
10569
10773
  LayoutContent,
10570
10774
  LayoutItemConfig,
10775
+ ThemePreferences,
10776
+ NativeTheme,
10571
10777
  LayoutRow,
10572
10778
  LayoutColumn,
10573
10779
  LayoutComponent,
@@ -10787,6 +10993,7 @@ declare namespace OpenFin {
10787
10993
  ChannelProviderDisconnectionListener,
10788
10994
  RoutingInfo,
10789
10995
  DownloadShelfOptions,
10996
+ SnapZoneOptions,
10790
10997
  ViewShowAtOptions,
10791
10998
  WebNotificationProperties,
10792
10999
  WebNotificationInfo,
@@ -11061,6 +11268,11 @@ declare type PerDomainSettings = {
11061
11268
  */
11062
11269
  drag?: 'allow' | 'block';
11063
11270
  };
11271
+ /**
11272
+ * When set to `false`, disables sending application logs to RVM for this window.
11273
+ * When omitted, inherits from the parent application.
11274
+ */
11275
+ enableAppLogging?: boolean;
11064
11276
  };
11065
11277
 
11066
11278
  /**
@@ -12781,7 +12993,7 @@ declare type PositioningOptions = {
12781
12993
  /**
12782
12994
  * Context menu item with an implementation provided by OpenFin.
12783
12995
  */
12784
- declare type PrebuiltContextMenuItem = 'separator' | 'undo' | 'redo' | 'cut' | 'copy' | 'copyImage' | 'paste' | 'selectAll' | 'spellCheck' | 'inspect' | 'reload' | 'navigateForward' | 'navigateBack' | 'print';
12996
+ declare type PrebuiltContextMenuItem = 'separator' | 'undo' | 'redo' | 'cut' | 'copy' | 'copyImage' | 'paste' | 'selectAll' | 'spellCheck' | 'inspect' | 'reload' | 'navigateForward' | 'navigateBack' | 'print' | 'snapToTop' | 'snapToBottom';
12785
12997
 
12786
12998
  /**
12787
12999
  * A script that is run before page load.
@@ -13479,6 +13691,12 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
13479
13691
  'create-window': VoidCall;
13480
13692
  'get-current-window': VoidCall;
13481
13693
  'get-current-window-sync': VoidCall;
13694
+ 'show-download-bubble': IdentityCall<{
13695
+ options: OpenFin.Anchor;
13696
+ }, void>;
13697
+ 'update-download-bubble-anchor': IdentityCall<{
13698
+ options: OpenFin.Anchor;
13699
+ }, void>;
13482
13700
  'get-external-application-info': ApiCall<OpenFin.ApplicationIdentity, OpenFin.ExternalApplicationInfo>;
13483
13701
  'external-application-wrap': VoidCall;
13484
13702
  'external-application-wrap-sync': VoidCall;
@@ -13575,6 +13793,10 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
13575
13793
  request: any;
13576
13794
  response: any;
13577
13795
  };
13796
+ 'set-theme-preferences': ApiCall<{
13797
+ preferences: OpenFin.ThemePreferences;
13798
+ }, OpenFin.NativeTheme>;
13799
+ 'get-theme-preferences': GetterCall<OpenFin.NativeTheme>;
13578
13800
  'get-version': GetterCall<string>;
13579
13801
  'clear-cache': ApiCall<OpenFin.ClearCacheOption, void>;
13580
13802
  'delete-cache-request': VoidCall;
@@ -13662,6 +13884,9 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
13662
13884
  'write-to-log': ApiCall<{
13663
13885
  level: string;
13664
13886
  message: string;
13887
+ target?: {
13888
+ type?: 'app.log' | 'debug.log';
13889
+ };
13665
13890
  }, void>;
13666
13891
  'open-url-with-browser': ApiCall<{
13667
13892
  url: string;
@@ -13825,6 +14050,15 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
13825
14050
  request: void;
13826
14051
  response: OpenFin.ExtensionInfo[];
13827
14052
  };
14053
+ 'set-theme-palette': ApiCall<{
14054
+ themePalette: Array<OpenFin.ThemePalette>;
14055
+ }, void> & {
14056
+ themePalette: Array<OpenFin.ThemePalette>;
14057
+ };
14058
+ 'get-theme-palette': ApiCall<void, Array<OpenFin.ThemePalette>> & {
14059
+ request: void;
14060
+ response: Array<OpenFin.ThemePalette>;
14061
+ };
13828
14062
  'fdc3-add-context-listener': VoidCall;
13829
14063
  'fdc3-add-intent-listener': VoidCall;
13830
14064
  'fdc3-raise-intent': VoidCall;
@@ -14900,6 +15134,15 @@ declare type Size = TransitionBase & {
14900
15134
  height: number;
14901
15135
  };
14902
15136
 
15137
+ /**
15138
+ * Generated when a window is snapped to a screen edge.
15139
+ * @interface
15140
+ */
15141
+ declare type SnappedEvent = BoundsEvent & {
15142
+ type: 'snapped';
15143
+ snapLocation: 'top' | 'bottom';
15144
+ };
15145
+
14903
15146
  /**
14904
15147
  * @interface
14905
15148
  */
@@ -15047,6 +15290,52 @@ declare class SnapshotSourceModule extends Base {
15047
15290
  wrap(identity: OpenFin.ApplicationIdentity): Promise<SnapshotSource>;
15048
15291
  }
15049
15292
 
15293
+ /**
15294
+ * Generated when a window enters or exits a snap zone during drag.
15295
+ * This event fires whenever the snap zone state changes (entry or exit).
15296
+ * @interface
15297
+ */
15298
+ declare type SnapZoneChangedEvent = BaseEvent_5 & {
15299
+ type: 'snap-zone-changed';
15300
+ /**
15301
+ * Array of locations that the window is currently in snap zones for.
15302
+ * Empty array indicates the window is not in any snap zone.
15303
+ * Can contain multiple locations if the window is in multiple zones simultaneously.
15304
+ */
15305
+ locations: Array<'top' | 'bottom'>;
15306
+ };
15307
+
15308
+ /**
15309
+ * @interface
15310
+ *
15311
+ * Configures snap zone behavior for a window. When enabled, the window will automatically snap to screen edges
15312
+ * when dragged near them during user drag interactions.
15313
+ */
15314
+ declare type SnapZoneOptions = {
15315
+ /**
15316
+ * Whether snap zone functionality is enabled for this window.
15317
+ *
15318
+ * @default false
15319
+ */
15320
+ enabled: boolean;
15321
+ /**
15322
+ * The distance in pixels from the screen edge that triggers the snap zone.
15323
+ * When the window is dragged within this threshold of the top or bottom edge,
15324
+ * it will be considered in a snap zone.
15325
+ *
15326
+ * @default 50
15327
+ */
15328
+ threshold?: number;
15329
+ /**
15330
+ * Ordered array of edge preferences when the window is in multiple snap zones simultaneously.
15331
+ * The first edge in the array that the window is in will be used for snapping.
15332
+ * If not provided, defaults to ['top', 'bottom'] (preferring top over bottom).
15333
+ *
15334
+ * @default ['top', 'bottom']
15335
+ */
15336
+ locationPreference?: Array<'top' | 'bottom'>;
15337
+ };
15338
+
15050
15339
  /**
15051
15340
  * Generated when an application has started.
15052
15341
  * @interface
@@ -15827,13 +16116,16 @@ declare class System extends EmitterBase<OpenFin.SystemEvent> {
15827
16116
  * Writes the passed message into both the log file and the console.
15828
16117
  * @param level The log level for the entry. Can be either "info", "warning" or "error"
15829
16118
  * @param message The log message text
16119
+ * @param target.type Optional. The 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
16120
  *
15831
16121
  * @example
15832
16122
  * ```js
15833
- * fin.System.log("info", "An example log message").then(() => console.log('Log info message')).catch(err => console.log(err));
16123
+ * fin.System.log("info", "An example log message", { type: 'debug.log' }).then(() => console.log('Log info message')).catch(err => console.log(err));
15834
16124
  * ```
15835
16125
  */
15836
- log(level: string, message: string): Promise<void>;
16126
+ log(level: string, message: string, { type }?: {
16127
+ type?: 'app.log' | 'debug.log';
16128
+ }): Promise<void>;
15837
16129
  /**
15838
16130
  * Opens the passed URL in the default web browser.
15839
16131
  *
@@ -16572,11 +16864,99 @@ declare class System extends EmitterBase<OpenFin.SystemEvent> {
16572
16864
  * Not indended for general use, will be used by the `@openfin/workspace-platform` package.
16573
16865
  */
16574
16866
  serveAsset(options: OpenFin.ServeAssetOptions): Promise<OpenFin.ServedAssetInfo>;
16867
+ /**
16868
+ * Get's the native theme preferences for the current runtime.
16869
+ * Prefer css media-queries wherever possible, but this can be useful to see if the system setting has been overridden.
16870
+ * See @link OpenFin.NativeTheme for more information.
16871
+ * @example Theme selector menu
16872
+ * ```ts
16873
+ async function handleThemeMenu(e: React.MouseEvent<HTMLDivElement>) {
16874
+ const currentTheme = await fin.System.getThemePreferences();
16875
+ const result = await (fin.me as OpenFin.Window).showPopupMenu({
16876
+ x: e.clientX,
16877
+ y: e.clientY,
16878
+ template: [
16879
+ {
16880
+ label: 'Light',
16881
+ type: 'checkbox',
16882
+ checked: currentTheme.themeSource === 'light',
16883
+ data: { themeSource: 'light' } as const
16884
+ },
16885
+ {
16886
+ label: 'Dark',
16887
+ type: 'checkbox',
16888
+ checked: currentTheme.themeSource === 'dark',
16889
+ data: { themeSource: 'dark' } as const
16890
+ },
16891
+ {
16892
+ label: 'System',
16893
+ type: 'checkbox',
16894
+ checked: currentTheme.themeSource === 'system',
16895
+ data: { themeSource: 'system' } as const
16896
+ }
16897
+ ]
16898
+ });
16899
+ if (result.result === 'clicked') {
16900
+ await fin.System.setThemePreferences(result.data);
16901
+ }
16902
+ }
16903
+ ```
16904
+ */
16905
+ getThemePreferences(): Promise<OpenFin.NativeTheme>;
16906
+ /**
16907
+ * Sets the native theme preferences for the current runtime.
16908
+ * Can be used to force runtime-wide light or dark mode.
16909
+ * @important Due to this impacting all applications on a runtime, this method is only usable if a security realm has been set.
16910
+ * @example Theme selector menu
16911
+ * ```ts
16912
+ async function handleThemeMenu(e: React.MouseEvent<HTMLDivElement>) {
16913
+ const currentTheme = await fin.System.getThemePreferences();
16914
+ const result = await (fin.me as OpenFin.Window).showPopupMenu({
16915
+ x: e.clientX,
16916
+ y: e.clientY,
16917
+ template: [
16918
+ {
16919
+ label: 'Light',
16920
+ type: 'checkbox',
16921
+ checked: currentTheme.themeSource === 'light',
16922
+ data: { themeSource: 'light' } as const
16923
+ },
16924
+ {
16925
+ label: 'Dark',
16926
+ type: 'checkbox',
16927
+ checked: currentTheme.themeSource === 'dark',
16928
+ data: { themeSource: 'dark' } as const
16929
+ },
16930
+ {
16931
+ label: 'System',
16932
+ type: 'checkbox',
16933
+ checked: currentTheme.themeSource === 'system',
16934
+ data: { themeSource: 'system' } as const
16935
+ }
16936
+ ]
16937
+ });
16938
+ if (result.result === 'clicked') {
16939
+ await fin.System.setThemePreferences(result.data);
16940
+ }
16941
+ }
16942
+ ```
16943
+ */
16944
+ setThemePreferences(preferences: OpenFin.ThemePreferences): Promise<OpenFin.ThemePreferences>;
16575
16945
  /**
16576
16946
  * Launches the Log Uploader. Full documentation can be found [here](https://resources.here.io/docs/core/develop/debug/log-uploader/).
16577
16947
  * @experimental
16578
16948
  */
16579
16949
  launchLogUploader(options: OpenFin.LogUploaderOptions): Promise<void>;
16950
+ /**
16951
+ * Overrides original Chromium theme color providers matching key (currently except high contrast ones). Only colors passed in the map will be overridden.
16952
+ * @param overrides - Array of ColorProviderOverrides objects
16953
+ */
16954
+ setThemePalette(themePalette: Array<OpenFin.ThemePalette>): Promise<void>;
16955
+ /**
16956
+ * Retrieves currently used color overrides
16957
+ * @returns Array of ColorProviderOverrides objects
16958
+ */
16959
+ getThemePalette(): Promise<Array<OpenFin.ThemePalette>>;
16580
16960
  }
16581
16961
 
16582
16962
  /**
@@ -16615,6 +16995,8 @@ declare namespace SystemEvents {
16615
16995
  ExtensionsInstallFailedEvent,
16616
16996
  ExtensionInstallFailedEvent,
16617
16997
  ExtensionsInitializationFailedEvent,
16998
+ ThemePaletteChangedEvent,
16999
+ NativeThemeUpdatedEvent,
16618
17000
  Event_11 as Event,
16619
17001
  SystemEvent,
16620
17002
  EventType_8 as EventType,
@@ -16745,6 +17127,7 @@ declare class TabStack extends LayoutNode {
16745
17127
  * and rendered at the front of the tab-stack, while the underlying order of tabs will remain unchanged.
16746
17128
  * If that happens and then getViews() is called, it will return the identities in a different order than
16747
17129
  * than the currently rendered tab order.
17130
+ * Note: This issue does not occur when using `tabOverflowBehavior: 'scroll'` in the layout configuration.
16748
17131
  *
16749
17132
  *
16750
17133
  * @throws If the {@link TabStack} has been destroyed.
@@ -16769,6 +17152,7 @@ declare class TabStack extends LayoutNode {
16769
17152
  *
16770
17153
  * @remarks Known Issue: If adding a view overflows the tab-container, the added view will be set as active
16771
17154
  * and rendered at the front of the tab-stack, while the underlying order of tabs will remain unchanged.
17155
+ * Note: This issue does not occur when using `tabOverflowBehavior: 'scroll'` in the layout configuration.
16772
17156
  *
16773
17157
  * @param view The identity of an existing view to add, or options to create a view.
16774
17158
  * @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 +17274,109 @@ declare type TerminateExternalRequestType = {
16890
17274
  killTree: boolean;
16891
17275
  };
16892
17276
 
17277
+ /**
17278
+ * String literal type of all supported theme color IDs.
17279
+ * Useful wherever you need to refer to a color slot by name.
17280
+ * @interface
17281
+ */
17282
+ declare type ThemeColorId = keyof ThemeColorsMap;
17283
+
17284
+ /**
17285
+ * All supported color slots for the Download Bubble and related UI.
17286
+ * @interface
17287
+ */
17288
+ declare interface ThemeColorsMap {
17289
+ /**
17290
+ * Enterprise/Window/Background – bubble header and footer background.
17291
+ */
17292
+ kColorBubbleBackground?: number;
17293
+ /**
17294
+ * Windows only – Enterprise/Window/Border.
17295
+ */
17296
+ kColorBubbleBorder?: number;
17297
+ /**
17298
+ * Windows only – Enterprise/Window/Border (large shadow).
17299
+ */
17300
+ kColorBubbleBorderShadowLarge?: number;
17301
+ /**
17302
+ * Windows only – Enterprise/Window/Border (small shadow).
17303
+ */
17304
+ kColorBubbleBorderShadowSmall?: number;
17305
+ /**
17306
+ * Enterprise/Window/Background – downloaded item row background.
17307
+ */
17308
+ kColorDialogBackground?: number;
17309
+ /**
17310
+ * Enterprise/Search Result/Background/Hover – download item row hover.
17311
+ */
17312
+ kColorDownloadBubbleRowHover?: number;
17313
+ /**
17314
+ * Enterprise/Window/Icon – “Show all downloads” icon color.
17315
+ */
17316
+ kColorDownloadBubbleShowAllDownloadsIcon?: number;
17317
+ /**
17318
+ * Enterprise/Search Result/Background/Hover – full download history
17319
+ * button (full row) hover background.
17320
+ */
17321
+ kColorHoverButtonBackgroundHovered?: number;
17322
+ /**
17323
+ * Shared/Icon Button/Subtle/Icon/Default – SVG icon color
17324
+ * (except full download history button).
17325
+ */
17326
+ kColorIcon?: number;
17327
+ /**
17328
+ * Enterprise/Window/Text/Base – main label text color.
17329
+ * May be post-processed to increase readability on kColorDialogBackground
17330
+ * (can be disabled via transparent kColorLabelBackground).
17331
+ */
17332
+ kColorLabelForeground?: number;
17333
+ /**
17334
+ * Label background used for readability adjustment.
17335
+ * Set to transparent (0) to disable Chromium’s readability alignment logic.
17336
+ */
17337
+ kColorLabelBackground?: number;
17338
+ /**
17339
+ * Enterprise/Window/Text/Soft – secondary text color.
17340
+ * May be post-processed to increase readability on kColorDialogBackground
17341
+ * (can be disabled via transparent kColorLabelBackground).
17342
+ */
17343
+ kColorSecondaryForeground?: number;
17344
+ }
17345
+
17346
+ /**
17347
+ * Defines a set of color overrides for Chromium UI surfaces based on a theme
17348
+ * provider (e.g., light or dark mode).
17349
+ * @interface
17350
+ */
17351
+ declare type ThemePalette = {
17352
+ /**
17353
+ * Identifies the color provider mode that the palette applies to.
17354
+ */
17355
+ colorProviderKey: {
17356
+ /**
17357
+ * The UI color mode that this palette is intended to style.
17358
+ */
17359
+ colorMode: 'light' | 'dark';
17360
+ };
17361
+ /**
17362
+ * A mapping of known Chromium color IDs to ARGB values (0xAARRGGBB).
17363
+ */
17364
+ colorsMap: ThemeColorsMap;
17365
+ };
17366
+
17367
+ /**
17368
+ * An event that fires when the system theme palette is changed.
17369
+ */
17370
+ declare type ThemePaletteChangedEvent = BaseEvent_9 & {
17371
+ type: 'theme-palette-changed';
17372
+ themePalette: OpenFin.ThemePalette;
17373
+ };
17374
+
17375
+ /**
17376
+ * Settable options for the native theme of the operating system.
17377
+ */
17378
+ declare type ThemePreferences = Pick<NativeTheme, 'themeSource'>;
17379
+
16893
17380
  /**
16894
17381
  * @interface
16895
17382
  */
@@ -20223,6 +20710,32 @@ declare class _Window extends WebContents<OpenFin.WindowEvent> {
20223
20710
  * To print the views embedded in their page context, set `content` to `screenshot`.
20224
20711
  */
20225
20712
  print(options?: OpenFin.WindowPrintOptions): Promise<void>;
20713
+ /**
20714
+ * Displays the download bubble UI. If an anchor is provided, the bubble
20715
+ * will be positioned according to the specified rectangle and anchor point.
20716
+ *
20717
+ * @param {OpenFin.Anchor} options
20718
+ * Anchor configuration used to position the download bubble. This includes
20719
+ * the bounding rectangle and the anchor location within that rectangle.
20720
+ *
20721
+ * @returns {Promise<void>}
20722
+ * A promise that resolves once the request to show the download bubble
20723
+ * has been processed.
20724
+ */
20725
+ showDownloadBubble(options: OpenFin.Anchor): Promise<void>;
20726
+ /**
20727
+ * Updates the anchor used for positioning the download bubble. This allows
20728
+ * moving the bubble reactively—for example, in response to window resizes,
20729
+ * layout changes, or DOM element repositioning.
20730
+ *
20731
+ * @param {OpenFin.Anchor} options
20732
+ * New anchor configuration describing the updated position and anchor
20733
+ * location for the download bubble.
20734
+ *
20735
+ * @returns {Promise<void>}
20736
+ * A promise that resolves once the anchor update has been applied.
20737
+ */
20738
+ updateDownloadBubbleAnchor(options: OpenFin.Anchor): Promise<void>;
20226
20739
  }
20227
20740
 
20228
20741
  /**
@@ -20377,6 +20890,8 @@ declare namespace WindowEvents {
20377
20890
  BoundsChangingEvent,
20378
20891
  DisabledMovementBoundsChangedEvent,
20379
20892
  DisabledMovementBoundsChangingEvent,
20893
+ SnappedEvent,
20894
+ SnapZoneChangedEvent,
20380
20895
  UserBoundsChangeEvent,
20381
20896
  BeginUserBoundsChangingEvent,
20382
20897
  EndUserBoundsChangingEvent,
@@ -20416,6 +20931,8 @@ declare namespace WindowEvents {
20416
20931
  NonPropagatedWindowEvent,
20417
20932
  ShowAllDownloadsEvent,
20418
20933
  DownloadShelfVisibilityChangedEvent,
20934
+ DownloadButtonVisibilityChangedEvent,
20935
+ DownloadButtonIconUpdatedEvent,
20419
20936
  WindowSourcedEvent,
20420
20937
  WillPropagateWindowEvent,
20421
20938
  Event_6 as Event,
@@ -20619,7 +21136,7 @@ declare type WindowShowRequestedEvent = ShowRequestedEvent;
20619
21136
  * A union of all events that emit natively on the `Window` topic, i.e. excluding those that propagate
20620
21137
  * from {@link OpenFin.ViewEvents}.
20621
21138
  */
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;
21139
+ 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
21140
 
20624
21141
  /**
20625
21142
  * Generated when a child window starts loading.