@openfin/core 44.100.48 → 44.100.50

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.
@@ -94,6 +94,34 @@ declare type AnalyticsProtocolMap = {
94
94
  [k in AnalyticsOnlyCalls]: VoidCall;
95
95
  };
96
96
 
97
+ /**
98
+ * Represents an anchor configuration consisting of a bounding rectangle
99
+ * and an anchor point describing which part of that rectangle should be
100
+ * used as the reference for positioning the download bubble.
101
+ * @interface
102
+ */
103
+ declare type Anchor = {
104
+ /**
105
+ * The DOM or screen-space rectangle that defines the anchor area.
106
+ */
107
+ bounds: Rectangle;
108
+ /**
109
+ * The location within the rectangle that should act as the anchor
110
+ * (e.g., `topRight`, `bottomLeft`, `center`, etc.).
111
+ * For example, `topRight` means the rectangle's top-right corner is used
112
+ * as the anchoring reference point.
113
+ */
114
+ location: AnchorLocation;
115
+ };
116
+
117
+ /**
118
+ * Defines the point within the rectangle that should be used as the anchor
119
+ * when positioning UI elements relative to another surface.
120
+ *
121
+ * @interface
122
+ */
123
+ declare type AnchorLocation = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'rightTop' | 'leftBottom' | 'rightBottom' | 'topCenter' | 'bottomCenter' | 'leftCenter' | 'rightCenter' | 'none' | 'float';
124
+
97
125
  declare type AnchorType = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
98
126
 
99
127
  declare type AnyStrategy = ChannelStrategy<any>;
@@ -3867,6 +3895,10 @@ declare type ConstWindowOptions = {
3867
3895
  * 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.
3868
3896
  */
3869
3897
  roundedCorners: boolean;
3898
+ /**
3899
+ * Configuration for download bubble UI.
3900
+ */
3901
+ downloadBubble?: DownloadBubbleOptions;
3870
3902
  };
3871
3903
 
3872
3904
  /**
@@ -4619,6 +4651,50 @@ declare type DomainSettingsRule = {
4619
4651
  matchOptions?: RuleMatchOptions;
4620
4652
  };
4621
4653
 
4654
+ /**
4655
+ * Configuration options for enabling and positioning the download bubble UI.
4656
+ * @interface
4657
+ */
4658
+ declare type DownloadBubbleOptions = {
4659
+ /**
4660
+ * Whether the download bubble feature is enabled.
4661
+ */
4662
+ enabled: boolean;
4663
+ /**
4664
+ * Anchor configuration describing where the download bubble should attach.
4665
+ */
4666
+ anchor: Anchor;
4667
+ };
4668
+
4669
+ /**
4670
+ * Generated when the download button icon needs to be updated. Only raised if the download bubble feature is enabled.
4671
+ *
4672
+ * @interface
4673
+ */
4674
+ declare type DownloadButtonIconUpdatedEvent = BaseEvent_5 & {
4675
+ type: 'download-button-icon-updated';
4676
+ disabled: boolean;
4677
+ active: boolean;
4678
+ touchMode: boolean;
4679
+ progressIndicatorState: 'idle' | 'scanning' | 'downloading' | 'dormant';
4680
+ progressDownloadCount: number;
4681
+ progressPercentage: number;
4682
+ buttonTooltip: string;
4683
+ };
4684
+
4685
+ /**
4686
+ * Generated when the visibility of the window's download button changes. Only raised if the download bubble feature is enabled.
4687
+ *
4688
+ * @interface
4689
+ */
4690
+ declare type DownloadButtonVisibilityChangedEvent = BaseEvent_5 & {
4691
+ type: 'download-button-visibility-changed';
4692
+ /**
4693
+ * True if the download button should be displayed, false if it should be hidden.
4694
+ */
4695
+ visible: boolean;
4696
+ };
4697
+
4622
4698
  /**
4623
4699
  * Metadata returned from a preload script download request.
4624
4700
  *
@@ -4678,6 +4754,7 @@ declare type DownloadRule = {
4678
4754
  *
4679
4755
  * @remarks This will control the styling for the download shelf regardless of whether its display was
4680
4756
  * triggered by the window itself, or a view targeting the window.
4757
+ * @deprecated Use the DownloadBubble API instead.
4681
4758
  */
4682
4759
  declare type DownloadShelfOptions = {
4683
4760
  /**
@@ -4713,6 +4790,7 @@ declare type DownloadShelfOptions = {
4713
4790
  * Generated when the visibility of the window's download shelf changes.
4714
4791
  *
4715
4792
  * @interface
4793
+ * @deprecated use DownloadBubble API instead
4716
4794
  */
4717
4795
  declare type DownloadShelfVisibilityChangedEvent = BaseEvent_5 & {
4718
4796
  type: 'download-shelf-visibility-changed';
@@ -4979,7 +5057,7 @@ declare type Event_10 = ApplicationEvents.Event | ApiReadyEvent | SnapshotApplie
4979
5057
  * under the {@link OpenFin.SystemEvents} namespace (payloads inherited from propagated events are defined in the namespace
4980
5058
  * from which they propagate).
4981
5059
  */
4982
- 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;
5060
+ 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;
4983
5061
 
4984
5062
  /**
4985
5063
  * [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.
@@ -8590,6 +8668,42 @@ declare type LayoutOptions = {
8590
8668
  */
8591
8669
  preventDragIn?: boolean;
8592
8670
  /* Excluded from this release type: disableTabOverflowDropdown */
8671
+ /**
8672
+ * When set to 'scroll', enables horizontal scrolling of tabs when they overflow the stack width.
8673
+ * When set to 'dropdown', the default behavior occurs, in which excess tabs appear in a menu.
8674
+ *
8675
+ * Setting this to `scroll` might break styles written for the default dropdown behavior, as it significantly changes the DOM structure and CSS of tabs.
8676
+ *
8677
+ * The DOM structure is modified in this way:
8678
+ * - `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.
8679
+ * - the `.newTabButton` (if enabled) is a direct child of `.lm_header`
8680
+ *
8681
+ * **The following CSS variables are available to customize tab appearance:**
8682
+ *
8683
+ * - `--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`
8684
+ * - `--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).
8685
+ * - `--layout-tab-overflow-fade-size`: The width of the scroll shadows when tabs are overflowing. Default: `20px`
8686
+ * - `--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.
8687
+ *
8688
+ * **CSS Variables for advanced customization (dynamically updated and set on `lm_tabs`):**
8689
+ *
8690
+ * - `--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.
8691
+ * - `--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.
8692
+ * - `--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.
8693
+ *
8694
+ * @example
8695
+ * ```css
8696
+ * .lm_tabs {
8697
+ * --layout-tab-width: 200px;
8698
+ * --layout-tab-min-width: 100px;
8699
+ * --layout-tab-overflow-fade-size: 20px;
8700
+ * --layout-tab-overflow-shadow-color: rgba(0, 0, 0, 0.3);
8701
+ * }
8702
+ * ```
8703
+ *
8704
+ * @defaultValue 'dropdown'
8705
+ */
8706
+ tabOverflowBehavior?: 'dropdown' | 'scroll';
8593
8707
  };
8594
8708
  /**
8595
8709
  * Content of the layout. There can only be one top-level LayoutItem in the content array.
@@ -8842,6 +8956,7 @@ declare type Manifest = {
8842
8956
  policies?: {
8843
8957
  CloudAPAuthEnabled?: 'enabled' | 'disabled';
8844
8958
  };
8959
+ themePalette?: Array<ThemePalette>;
8845
8960
  };
8846
8961
  services?: string[];
8847
8962
  shortcut?: {
@@ -9215,6 +9330,11 @@ declare type MutableViewOptions = {
9215
9330
  * {@inheritDoc ChromiumPolicies}
9216
9331
  */
9217
9332
  chromiumPolicies: ChromiumPolicies;
9333
+ /**
9334
+ * When set to `false`, disables sending application logs to RVM for this view.
9335
+ * When omitted, inherits from the parent application.
9336
+ */
9337
+ enableAppLogging?: boolean;
9218
9338
  };
9219
9339
 
9220
9340
  /**
@@ -9489,6 +9609,12 @@ declare type MutableWindowOptions = {
9489
9609
  * {@inheritDoc ChromiumPolicies}
9490
9610
  */
9491
9611
  chromiumPolicies: ChromiumPolicies;
9612
+ /**
9613
+ * When set to `false`, disables sending application logs to RVM for this window.
9614
+ * When omitted, inherits from the parent application.
9615
+ *
9616
+ */
9617
+ enableAppLogging?: boolean;
9492
9618
  };
9493
9619
 
9494
9620
  declare type NackHandler = (payloadOrMessage: RuntimeErrorPayload | string) => void;
@@ -9501,6 +9627,78 @@ declare type NamedEvent = IdentityEvent & {
9501
9627
  name: string;
9502
9628
  };
9503
9629
 
9630
+ /**
9631
+ * @interface
9632
+ *
9633
+ * Represents the native theme of the operating system.
9634
+ * This is used to determine how the application should render its UI based on the system's theme settings.
9635
+ * Defer to CSS properties whenever possible.
9636
+ *
9637
+ * Re-exported from Electron's `NativeTheme` type.
9638
+ */
9639
+ declare type NativeTheme = {
9640
+ /**
9641
+ * A `boolean` indicating whether Chromium is in forced colors mode, controlled by
9642
+ * system accessibility settings. Currently, Windows high contrast is the only
9643
+ * system setting that triggers forced colors mode.
9644
+ *
9645
+ * @platform win32
9646
+ */
9647
+ inForcedColorsMode: boolean;
9648
+ /**
9649
+ * A `boolean` that indicates the whether the user has chosen via system
9650
+ * accessibility settings to reduce transparency at the OS level.
9651
+ *
9652
+ */
9653
+ prefersReducedTransparency: boolean;
9654
+ /**
9655
+ * A `boolean` for if the OS / Chromium currently has a dark mode enabled or is
9656
+ * being instructed to show a dark-style UI. If you want to modify this value you
9657
+ * should use `themeSource` below.
9658
+ *
9659
+ */
9660
+ shouldUseDarkColors: boolean;
9661
+ /**
9662
+ * A `boolean` property indicating whether or not the system theme has been set to
9663
+ * dark or light.
9664
+ *
9665
+ * On Windows this property distinguishes between system and app light/dark theme,
9666
+ * returning `true` if the system theme is set to dark theme and `false` otherwise.
9667
+ * On macOS the return value will be the same as `nativeTheme.shouldUseDarkColors`.
9668
+ *
9669
+ * @platform darwin,win32
9670
+ */
9671
+ shouldUseDarkColorsForSystemIntegratedUI: boolean;
9672
+ /**
9673
+ * A `boolean` for if the OS / Chromium currently has high-contrast mode enabled or
9674
+ * is being instructed to show a high-contrast UI.
9675
+ *
9676
+ * @platform darwin,win32
9677
+ */
9678
+ shouldUseHighContrastColors: boolean;
9679
+ /**
9680
+ * A `boolean` for if the OS / Chromium currently has an inverted color scheme or
9681
+ * is being instructed to use an inverted color scheme.
9682
+ *
9683
+ * @platform darwin,win32
9684
+ */
9685
+ shouldUseInvertedColorScheme: boolean;
9686
+ /**
9687
+ * A `string` property that can be `system`, `light` or `dark`. It is used (via `setTheme) to
9688
+ * override and supersede the value that Chromium has chosen to use internally.
9689
+ */
9690
+ themeSource: 'system' | 'light' | 'dark';
9691
+ };
9692
+
9693
+ /**
9694
+ * Generated when the operating system's theme preferences change.
9695
+ * Occurs when dark mode, high contrast mode, or inverted color scheme settings are modified.
9696
+ */
9697
+ declare type NativeThemeUpdatedEvent = BaseEvent_9 & {
9698
+ type: 'native-theme-updated';
9699
+ theme: OpenFin_2.NativeTheme;
9700
+ };
9701
+
9504
9702
  /**
9505
9703
  * @interface
9506
9704
  */
@@ -9786,6 +9984,9 @@ declare namespace OpenFin_2 {
9786
9984
  CustomProtocolOptions,
9787
9985
  InteropBrokerOptions,
9788
9986
  ContextGroupInfo,
9987
+ AnchorLocation,
9988
+ Anchor,
9989
+ DownloadBubbleOptions,
9789
9990
  DisplayMetadata,
9790
9991
  LegacyWinOptionsInAppOptions,
9791
9992
  Snapshot,
@@ -9889,9 +10090,14 @@ declare namespace OpenFin_2 {
9889
10090
  LogUploaderUIOptions,
9890
10091
  LogTypes,
9891
10092
  LogUploadOptions,
10093
+ ThemeColorsMap,
10094
+ ThemeColorId,
10095
+ ThemePalette,
9892
10096
  Manifest,
9893
10097
  LayoutContent,
9894
10098
  LayoutItemConfig,
10099
+ ThemePreferences,
10100
+ NativeTheme,
9895
10101
  LayoutRow,
9896
10102
  LayoutColumn,
9897
10103
  LayoutComponent,
@@ -10388,6 +10594,11 @@ declare type PerDomainSettings = {
10388
10594
  */
10389
10595
  drag?: 'allow' | 'block';
10390
10596
  };
10597
+ /**
10598
+ * When set to `false`, disables sending application logs to RVM for this window.
10599
+ * When omitted, inherits from the parent application.
10600
+ */
10601
+ enableAppLogging?: boolean;
10391
10602
  };
10392
10603
 
10393
10604
  /**
@@ -12723,6 +12934,12 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
12723
12934
  'create-window': VoidCall;
12724
12935
  'get-current-window': VoidCall;
12725
12936
  'get-current-window-sync': VoidCall;
12937
+ 'show-download-bubble': IdentityCall<{
12938
+ options: OpenFin_2.Anchor;
12939
+ }, void>;
12940
+ 'update-download-bubble-anchor': IdentityCall<{
12941
+ options: OpenFin_2.Anchor;
12942
+ }, void>;
12726
12943
  'get-external-application-info': ApiCall<OpenFin_2.ApplicationIdentity, OpenFin_2.ExternalApplicationInfo>;
12727
12944
  'external-application-wrap': VoidCall;
12728
12945
  'external-application-wrap-sync': VoidCall;
@@ -12819,6 +13036,10 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
12819
13036
  request: any;
12820
13037
  response: any;
12821
13038
  };
13039
+ 'set-theme-preferences': ApiCall<{
13040
+ preferences: OpenFin_2.ThemePreferences;
13041
+ }, OpenFin_2.NativeTheme>;
13042
+ 'get-theme-preferences': GetterCall<OpenFin_2.NativeTheme>;
12822
13043
  'get-version': GetterCall<string>;
12823
13044
  'clear-cache': ApiCall<OpenFin_2.ClearCacheOption, void>;
12824
13045
  'delete-cache-request': VoidCall;
@@ -12906,6 +13127,9 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
12906
13127
  'write-to-log': ApiCall<{
12907
13128
  level: string;
12908
13129
  message: string;
13130
+ target?: {
13131
+ type?: 'app.log' | 'debug.log';
13132
+ };
12909
13133
  }, void>;
12910
13134
  'open-url-with-browser': ApiCall<{
12911
13135
  url: string;
@@ -13069,6 +13293,15 @@ declare type ProtocolMap = ExternalAdapterOnlyCallsMap & AnalyticsProtocolMap &
13069
13293
  request: void;
13070
13294
  response: OpenFin_2.ExtensionInfo[];
13071
13295
  };
13296
+ 'set-theme-palette': ApiCall<{
13297
+ themePalette: Array<OpenFin_2.ThemePalette>;
13298
+ }, void> & {
13299
+ themePalette: Array<OpenFin_2.ThemePalette>;
13300
+ };
13301
+ 'get-theme-palette': ApiCall<void, Array<OpenFin_2.ThemePalette>> & {
13302
+ request: void;
13303
+ response: Array<OpenFin_2.ThemePalette>;
13304
+ };
13072
13305
  'fdc3-add-context-listener': VoidCall;
13073
13306
  'fdc3-add-intent-listener': VoidCall;
13074
13307
  'fdc3-raise-intent': VoidCall;
@@ -15120,13 +15353,16 @@ declare class System extends EmitterBase<OpenFin_2.SystemEvent> {
15120
15353
  * Writes the passed message into both the log file and the console.
15121
15354
  * @param level The log level for the entry. Can be either "info", "warning" or "error"
15122
15355
  * @param message The log message text
15356
+ * @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.
15123
15357
  *
15124
15358
  * @example
15125
15359
  * ```js
15126
- * fin.System.log("info", "An example log message").then(() => console.log('Log info message')).catch(err => console.log(err));
15360
+ * fin.System.log("info", "An example log message", { type: 'debug.log' }).then(() => console.log('Log info message')).catch(err => console.log(err));
15127
15361
  * ```
15128
15362
  */
15129
- log(level: string, message: string): Promise<void>;
15363
+ log(level: string, message: string, { type }?: {
15364
+ type?: 'app.log' | 'debug.log';
15365
+ }): Promise<void>;
15130
15366
  /**
15131
15367
  * Opens the passed URL in the default web browser.
15132
15368
  *
@@ -15865,11 +16101,99 @@ declare class System extends EmitterBase<OpenFin_2.SystemEvent> {
15865
16101
  * Not indended for general use, will be used by the `@openfin/workspace-platform` package.
15866
16102
  */
15867
16103
  serveAsset(options: OpenFin_2.ServeAssetOptions): Promise<OpenFin_2.ServedAssetInfo>;
16104
+ /**
16105
+ * Get's the native theme preferences for the current runtime.
16106
+ * Prefer css media-queries wherever possible, but this can be useful to see if the system setting has been overridden.
16107
+ * See @link OpenFin.NativeTheme for more information.
16108
+ * @example Theme selector menu
16109
+ * ```ts
16110
+ async function handleThemeMenu(e: React.MouseEvent<HTMLDivElement>) {
16111
+ const currentTheme = await fin.System.getThemePreferences();
16112
+ const result = await (fin.me as OpenFin.Window).showPopupMenu({
16113
+ x: e.clientX,
16114
+ y: e.clientY,
16115
+ template: [
16116
+ {
16117
+ label: 'Light',
16118
+ type: 'checkbox',
16119
+ checked: currentTheme.themeSource === 'light',
16120
+ data: { themeSource: 'light' } as const
16121
+ },
16122
+ {
16123
+ label: 'Dark',
16124
+ type: 'checkbox',
16125
+ checked: currentTheme.themeSource === 'dark',
16126
+ data: { themeSource: 'dark' } as const
16127
+ },
16128
+ {
16129
+ label: 'System',
16130
+ type: 'checkbox',
16131
+ checked: currentTheme.themeSource === 'system',
16132
+ data: { themeSource: 'system' } as const
16133
+ }
16134
+ ]
16135
+ });
16136
+ if (result.result === 'clicked') {
16137
+ await fin.System.setThemePreferences(result.data);
16138
+ }
16139
+ }
16140
+ ```
16141
+ */
16142
+ getThemePreferences(): Promise<OpenFin_2.NativeTheme>;
16143
+ /**
16144
+ * Sets the native theme preferences for the current runtime.
16145
+ * Can be used to force runtime-wide light or dark mode.
16146
+ * @important Due to this impacting all applications on a runtime, this method is only usable if a security realm has been set.
16147
+ * @example Theme selector menu
16148
+ * ```ts
16149
+ async function handleThemeMenu(e: React.MouseEvent<HTMLDivElement>) {
16150
+ const currentTheme = await fin.System.getThemePreferences();
16151
+ const result = await (fin.me as OpenFin.Window).showPopupMenu({
16152
+ x: e.clientX,
16153
+ y: e.clientY,
16154
+ template: [
16155
+ {
16156
+ label: 'Light',
16157
+ type: 'checkbox',
16158
+ checked: currentTheme.themeSource === 'light',
16159
+ data: { themeSource: 'light' } as const
16160
+ },
16161
+ {
16162
+ label: 'Dark',
16163
+ type: 'checkbox',
16164
+ checked: currentTheme.themeSource === 'dark',
16165
+ data: { themeSource: 'dark' } as const
16166
+ },
16167
+ {
16168
+ label: 'System',
16169
+ type: 'checkbox',
16170
+ checked: currentTheme.themeSource === 'system',
16171
+ data: { themeSource: 'system' } as const
16172
+ }
16173
+ ]
16174
+ });
16175
+ if (result.result === 'clicked') {
16176
+ await fin.System.setThemePreferences(result.data);
16177
+ }
16178
+ }
16179
+ ```
16180
+ */
16181
+ setThemePreferences(preferences: OpenFin_2.ThemePreferences): Promise<OpenFin_2.ThemePreferences>;
15868
16182
  /**
15869
16183
  * Launches the Log Uploader. Full documentation can be found [here](https://resources.here.io/docs/core/develop/debug/log-uploader/).
15870
16184
  * @experimental
15871
16185
  */
15872
16186
  launchLogUploader(options: OpenFin_2.LogUploaderOptions): Promise<void>;
16187
+ /**
16188
+ * Overrides original Chromium theme color providers matching key (currently except high contrast ones). Only colors passed in the map will be overridden.
16189
+ * @param overrides - Array of ColorProviderOverrides objects
16190
+ */
16191
+ setThemePalette(themePalette: Array<OpenFin_2.ThemePalette>): Promise<void>;
16192
+ /**
16193
+ * Retrieves currently used color overrides
16194
+ * @returns Array of ColorProviderOverrides objects
16195
+ */
16196
+ getThemePalette(): Promise<Array<OpenFin_2.ThemePalette>>;
15873
16197
  }
15874
16198
 
15875
16199
  /**
@@ -15908,6 +16232,8 @@ declare namespace SystemEvents {
15908
16232
  ExtensionsInstallFailedEvent,
15909
16233
  ExtensionInstallFailedEvent,
15910
16234
  ExtensionsInitializationFailedEvent,
16235
+ ThemePaletteChangedEvent,
16236
+ NativeThemeUpdatedEvent,
15911
16237
  Event_11 as Event,
15912
16238
  SystemEvent,
15913
16239
  EventType_8 as EventType,
@@ -16031,6 +16357,7 @@ declare class TabStack extends LayoutNode {
16031
16357
  * and rendered at the front of the tab-stack, while the underlying order of tabs will remain unchanged.
16032
16358
  * If that happens and then getViews() is called, it will return the identities in a different order than
16033
16359
  * than the currently rendered tab order.
16360
+ * Note: This issue does not occur when using `tabOverflowBehavior: 'scroll'` in the layout configuration.
16034
16361
  *
16035
16362
  *
16036
16363
  * @throws If the {@link TabStack} has been destroyed.
@@ -16055,6 +16382,7 @@ declare class TabStack extends LayoutNode {
16055
16382
  *
16056
16383
  * @remarks Known Issue: If adding a view overflows the tab-container, the added view will be set as active
16057
16384
  * and rendered at the front of the tab-stack, while the underlying order of tabs will remain unchanged.
16385
+ * Note: This issue does not occur when using `tabOverflowBehavior: 'scroll'` in the layout configuration.
16058
16386
  *
16059
16387
  * @param view The identity of an existing view to add, or options to create a view.
16060
16388
  * @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)
@@ -16176,6 +16504,109 @@ declare type TerminateExternalRequestType = {
16176
16504
  killTree: boolean;
16177
16505
  };
16178
16506
 
16507
+ /**
16508
+ * String literal type of all supported theme color IDs.
16509
+ * Useful wherever you need to refer to a color slot by name.
16510
+ * @interface
16511
+ */
16512
+ declare type ThemeColorId = keyof ThemeColorsMap;
16513
+
16514
+ /**
16515
+ * All supported color slots for the Download Bubble and related UI.
16516
+ * @interface
16517
+ */
16518
+ declare interface ThemeColorsMap {
16519
+ /**
16520
+ * Enterprise/Window/Background – bubble header and footer background.
16521
+ */
16522
+ kColorBubbleBackground?: number;
16523
+ /**
16524
+ * Windows only – Enterprise/Window/Border.
16525
+ */
16526
+ kColorBubbleBorder?: number;
16527
+ /**
16528
+ * Windows only – Enterprise/Window/Border (large shadow).
16529
+ */
16530
+ kColorBubbleBorderShadowLarge?: number;
16531
+ /**
16532
+ * Windows only – Enterprise/Window/Border (small shadow).
16533
+ */
16534
+ kColorBubbleBorderShadowSmall?: number;
16535
+ /**
16536
+ * Enterprise/Window/Background – downloaded item row background.
16537
+ */
16538
+ kColorDialogBackground?: number;
16539
+ /**
16540
+ * Enterprise/Search Result/Background/Hover – download item row hover.
16541
+ */
16542
+ kColorDownloadBubbleRowHover?: number;
16543
+ /**
16544
+ * Enterprise/Window/Icon – “Show all downloads” icon color.
16545
+ */
16546
+ kColorDownloadBubbleShowAllDownloadsIcon?: number;
16547
+ /**
16548
+ * Enterprise/Search Result/Background/Hover – full download history
16549
+ * button (full row) hover background.
16550
+ */
16551
+ kColorHoverButtonBackgroundHovered?: number;
16552
+ /**
16553
+ * Shared/Icon Button/Subtle/Icon/Default – SVG icon color
16554
+ * (except full download history button).
16555
+ */
16556
+ kColorIcon?: number;
16557
+ /**
16558
+ * Enterprise/Window/Text/Base – main label text color.
16559
+ * May be post-processed to increase readability on kColorDialogBackground
16560
+ * (can be disabled via transparent kColorLabelBackground).
16561
+ */
16562
+ kColorLabelForeground?: number;
16563
+ /**
16564
+ * Label background used for readability adjustment.
16565
+ * Set to transparent (0) to disable Chromium’s readability alignment logic.
16566
+ */
16567
+ kColorLabelBackground?: number;
16568
+ /**
16569
+ * Enterprise/Window/Text/Soft – secondary text color.
16570
+ * May be post-processed to increase readability on kColorDialogBackground
16571
+ * (can be disabled via transparent kColorLabelBackground).
16572
+ */
16573
+ kColorSecondaryForeground?: number;
16574
+ }
16575
+
16576
+ /**
16577
+ * Defines a set of color overrides for Chromium UI surfaces based on a theme
16578
+ * provider (e.g., light or dark mode).
16579
+ * @interface
16580
+ */
16581
+ declare type ThemePalette = {
16582
+ /**
16583
+ * Identifies the color provider mode that the palette applies to.
16584
+ */
16585
+ colorProviderKey: {
16586
+ /**
16587
+ * The UI color mode that this palette is intended to style.
16588
+ */
16589
+ colorMode: 'light' | 'dark';
16590
+ };
16591
+ /**
16592
+ * A mapping of known Chromium color IDs to ARGB values (0xAARRGGBB).
16593
+ */
16594
+ colorsMap: ThemeColorsMap;
16595
+ };
16596
+
16597
+ /**
16598
+ * An event that fires when the system theme palette is changed.
16599
+ */
16600
+ declare type ThemePaletteChangedEvent = BaseEvent_9 & {
16601
+ type: 'theme-palette-changed';
16602
+ themePalette: OpenFin_2.ThemePalette;
16603
+ };
16604
+
16605
+ /**
16606
+ * Settable options for the native theme of the operating system.
16607
+ */
16608
+ declare type ThemePreferences = Pick<NativeTheme, 'themeSource'>;
16609
+
16179
16610
  /**
16180
16611
  * @interface
16181
16612
  */
@@ -19363,6 +19794,32 @@ declare class _Window extends WebContents<OpenFin_2.WindowEvent> {
19363
19794
  * To print the views embedded in their page context, set `content` to `screenshot`.
19364
19795
  */
19365
19796
  print(options?: OpenFin_2.WindowPrintOptions): Promise<void>;
19797
+ /**
19798
+ * Displays the download bubble UI. If an anchor is provided, the bubble
19799
+ * will be positioned according to the specified rectangle and anchor point.
19800
+ *
19801
+ * @param {OpenFin.Anchor} options
19802
+ * Anchor configuration used to position the download bubble. This includes
19803
+ * the bounding rectangle and the anchor location within that rectangle.
19804
+ *
19805
+ * @returns {Promise<void>}
19806
+ * A promise that resolves once the request to show the download bubble
19807
+ * has been processed.
19808
+ */
19809
+ showDownloadBubble(options: OpenFin_2.Anchor): Promise<void>;
19810
+ /**
19811
+ * Updates the anchor used for positioning the download bubble. This allows
19812
+ * moving the bubble reactively—for example, in response to window resizes,
19813
+ * layout changes, or DOM element repositioning.
19814
+ *
19815
+ * @param {OpenFin.Anchor} options
19816
+ * New anchor configuration describing the updated position and anchor
19817
+ * location for the download bubble.
19818
+ *
19819
+ * @returns {Promise<void>}
19820
+ * A promise that resolves once the anchor update has been applied.
19821
+ */
19822
+ updateDownloadBubbleAnchor(options: OpenFin_2.Anchor): Promise<void>;
19366
19823
  }
19367
19824
 
19368
19825
  /**
@@ -19558,6 +20015,8 @@ declare namespace WindowEvents {
19558
20015
  NonPropagatedWindowEvent,
19559
20016
  ShowAllDownloadsEvent,
19560
20017
  DownloadShelfVisibilityChangedEvent,
20018
+ DownloadButtonVisibilityChangedEvent,
20019
+ DownloadButtonIconUpdatedEvent,
19561
20020
  WindowSourcedEvent,
19562
20021
  WillPropagateWindowEvent,
19563
20022
  Event_6 as Event,
@@ -19761,7 +20220,7 @@ declare type WindowShowRequestedEvent = ShowRequestedEvent;
19761
20220
  * A union of all events that emit natively on the `Window` topic, i.e. excluding those that propagate
19762
20221
  * from {@link OpenFin.ViewEvents}.
19763
20222
  */
19764
- 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 | SnappedEvent | SnapZoneChangedEvent;
20223
+ 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;
19765
20224
 
19766
20225
  /**
19767
20226
  * Generated when a child window starts loading.