@openfin/workspace 23.0.0 → 23.0.1-alpha.37062904

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.
Files changed (47) hide show
  1. package/client-api/src/notifications.d.ts +2 -2
  2. package/client-api/src/shapes/index.d.ts +1 -1
  3. package/client-api/src/shapes/notifications.d.ts +1 -1
  4. package/client-api-platform/src/api/controllers/theme-storage-controller-store.d.ts +16 -2
  5. package/client-api-platform/src/api/controllers/theme-storage-controller.d.ts +26 -23
  6. package/client-api-platform/src/api/dock.d.ts +3 -3
  7. package/client-api-platform/src/api/theming.d.ts +3 -2
  8. package/client-api-platform/src/api/utils.d.ts +11 -0
  9. package/client-api-platform/src/init/override-callback/view-components.d.ts +1 -1
  10. package/client-api-platform/src/init/override-callback/view-defaults.d.ts +2 -1
  11. package/client-api-platform/src/init/theming.d.ts +5 -2
  12. package/client-api-platform/src/shapes.d.ts +128 -16
  13. package/common/src/api/protocol/notifications.d.ts +8 -0
  14. package/common/src/api/protocol/workspace-platform.d.ts +5 -2
  15. package/common/src/api/protocol/workspace.d.ts +2 -2
  16. package/common/src/api/shapes/notifications.d.ts +1 -0
  17. package/common/src/api/theming.d.ts +27 -14
  18. package/common/src/utils/application.d.ts +7 -0
  19. package/common/src/utils/find-in-page/findInPageChannel.d.ts +37 -0
  20. package/common/src/utils/find-in-page/showFindInPageHandler.d.ts +2 -0
  21. package/common/src/utils/global-context-menu.d.ts +7 -0
  22. package/common/src/utils/landing-page.d.ts +1 -1
  23. package/common/src/utils/layout.d.ts +37 -8
  24. package/common/src/utils/logger.d.ts +110 -1
  25. package/common/src/utils/menu-window-provider.d.ts +7 -3
  26. package/common/src/utils/merge-deep.d.ts +1 -0
  27. package/common/src/utils/namespaced-local-storage.d.ts +4 -3
  28. package/common/src/utils/popup-window.d.ts +1 -0
  29. package/common/src/utils/route.d.ts +5 -1
  30. package/common/src/utils/theming.d.ts +6 -0
  31. package/common/src/utils/window.d.ts +12 -9
  32. package/dock3/src/api/protocol.d.ts +3 -0
  33. package/dock3/src/api/utils.d.ts +11 -0
  34. package/dock3/src/shapes/enterprise.d.ts +22 -0
  35. package/dock3/src/shapes/shapes.d.ts +4 -0
  36. package/externals.report.json +23 -64
  37. package/home.js +1 -1485
  38. package/home.js.map +1 -1
  39. package/index.js +1 -1485
  40. package/index.js.map +1 -1
  41. package/notifications.js +1 -1485
  42. package/notifications.js.map +1 -1
  43. package/package.json +5 -11
  44. package/search-api/src/provider/remote/info.d.ts +1 -1
  45. package/store.js +1 -1485
  46. package/store.js.map +1 -1
  47. package/common/src/brand/default-brand.d.ts +0 -8
@@ -1,6 +1,6 @@
1
- import * as Notifications from 'openfin-notifications/dist/client/without-auto-launch';
1
+ import * as Notifications from '@openfin/notifications';
2
2
  import type { NotificationsPlatform, NotificationsRegisterOptions } from './shapes/notifications';
3
- export * from 'openfin-notifications/dist/client/without-auto-launch';
3
+ export * from '@openfin/notifications';
4
4
  export * from './shapes/notifications';
5
5
  /**
6
6
  * @deprecated Use `register` with {@link NotificationsRegisterOptions | options?: NotificationsRegisterOptions} argument instead.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * WARNING: Do not export from './notifications' here. Not unless we move 'openfin-notifications' here.
2
+ * WARNING: Do not export from './notifications' here. Not unless we move '@openfin/notifications' here.
3
3
  */
4
4
  export * from './common';
5
5
  export * from './home';
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This module exports only notifications types that are not defined in 'openfin-notifications' npm package
2
+ * This module exports only notifications types that are not defined in '@openfin/notifications' npm package
3
3
  */
4
4
  import { NotificationsCustomManifestOptions } from '../../../common/src/api/shapes/notifications';
5
5
  /**
@@ -1,5 +1,19 @@
1
- import { GeneratedPalettes } from '../../../../common/src/api/theming';
1
+ import { GeneratedPalettes, NotificationIndicatorColorsParsed } from '../../../../common/src/api/theming';
2
2
  import { ThemeStorageController } from '../../../../client-api-platform/src/api/controllers/theme-storage-controller';
3
3
  import { CustomThemes } from '../../../../client-api-platform/src/shapes';
4
- export declare const initialiseStoragePalettes: (customThemes: CustomThemes | undefined, isWindows: boolean) => CustomThemes | GeneratedPalettes;
4
+ /**
5
+ * Initialises the storage palettes from the custom themes. This function is called on platform init.
6
+ * This function takes both the legacy themes and the new theme system tokens and
7
+ * passes them into the theme engine to generate the css variables.
8
+ *
9
+ * @param customThemes the custom themes to initialise the storage palettes from.
10
+ * @param isWindows whether the operating system is Windows.
11
+ * @returns the generated palettes fromt the theme engine, theme palette sheet which is injected into the DOM, and legacy theme object if it exists.
12
+ */
13
+ export declare const initialiseStoragePalettes: (customThemes: CustomThemes | undefined, isWindows: boolean) => {
14
+ generatedPalettes: GeneratedPalettes;
15
+ themePaletteSheet: string;
16
+ legacyTheme: CustomThemes | null;
17
+ notificationIndicatorColors: NotificationIndicatorColorsParsed | null;
18
+ };
5
19
  export declare const getThemeStorageController: () => ThemeStorageController;
@@ -1,3 +1,5 @@
1
+ import { GeneratedPalettes } from '../../../../common/src/api/theming';
2
+ import { StorageProxy } from '../../../../client-api-platform/src/api/utils';
1
3
  import { ColorSchemeOptionType, CustomPaletteSet } from '../../../../client-api-platform/src/shapes';
2
4
  /**
3
5
  * Palette extensions can be used to add new variables to the palette set.
@@ -5,21 +7,8 @@ import { ColorSchemeOptionType, CustomPaletteSet } from '../../../../client-api-
5
7
  * This is particularly useful if a value uses a different palette constant depending on scheme.
6
8
  */
7
9
  export declare const getPaletteExtensions: (palette: CustomPaletteSet, paletteScheme: "light" | "dark", isWindows: boolean) => {
8
- dockExpandedContainerBorderColor: string;
9
10
  dockExpandedContainerBorderRadius: string;
10
- dockExpandedContainerBackground: string;
11
11
  fillerBackgroundColor: string;
12
- dockCompanionContainerBackground: string;
13
- dockComponentContainerBackground: string;
14
- styledDropdownActiveBackground: string;
15
- contentMenuWrapperInternalDivBorderColor: string;
16
- contentMenuItemContainerActiveBackground: string;
17
- contentMenuItemContainerHoverBackground: string;
18
- contentMenuHeaderBorderColor: string;
19
- dockCompanionSeparatorBorderColor: string;
20
- dockComponentContainerBorderColor: string;
21
- companionDockButtonActiveBackground: string;
22
- companionDockButtonHoverBackground: string;
23
12
  'computed-scrollbar-thumb-alpha': number;
24
13
  'computed-scrollbar-track-alpha': number;
25
14
  'scrollbar-thumb-rgb': string;
@@ -38,20 +27,33 @@ export declare class ThemeStorageController {
38
27
  private providerStorage;
39
28
  private darkPaletteVars?;
40
29
  private lightPaletteVars?;
41
- private workspaceStorage?;
42
30
  private themePaletteSheet?;
31
+ private generatedPalettes?;
32
+ private workspaceStorage?;
33
+ private recreateFactory?;
43
34
  constructor(providerStorage: Pick<Storage, 'getItem' | 'setItem'>);
44
- private getVarsByScheme;
45
35
  /**
46
36
  * Set the current Storage Proxy to enable Workspace Storage properties to be populated.
47
- *
48
- * Currently, we only support same Storage Based theming for same origin scenarios like EB, where the provider
49
- * is in the same origin as the workspace pages.
50
- *
51
- * A workaround that can be leveraged in cross origin scenarios (which is the majority of the workspace use case) is available in this commit: 233e843cda6cd68968fd5831fb20597e0d5bb7cc
52
- * `git revert 233e843cda6cd68968fd5831fb20597e0d5bb7cc --no-commit`
53
37
  */
54
- setWorkspaceStorage: (proxy: Pick<Storage, "setItem">) => void;
38
+ setWorkspaceStorageProxy: (proxy: StorageProxy) => void;
39
+ /**
40
+ * Set a factory to recreate the storage proxy if it was destroyed (e.g. when a new browser
41
+ * window is opened after the last one closed with preventQuitOnLastWindowClosed true).
42
+ * Called once at platform init; avoids createWindow needing URL/env dependencies.
43
+ */
44
+ setRecreateFactory: (factory: () => Promise<StorageProxy>) => void;
45
+ /**
46
+ * Close the storage proxy window and clear the reference. Called when the last browser window
47
+ * closes so the platform can quit (storage proxy would otherwise keep the process alive).
48
+ * Clears the reference before awaiting destroy() to avoid a race with ensureWorkspaceStorageProxy.
49
+ */
50
+ destroyWorkspaceStorageProxy: () => Promise<void>;
51
+ /**
52
+ * Ensure the workspace storage proxy exists, recreating via the factory set at init if it was
53
+ * previously destroyed. No-op if no factory was set (e.g. in tests). Call before using
54
+ * workspace storage (e.g. when creating a browser window).
55
+ */
56
+ ensureWorkspaceStorageProxy: () => Promise<void>;
55
57
  /**
56
58
  * Check if there's an explicit user preference stored in localStorage.
57
59
  * A user preference is indicated by the presence of a SelectedColorScheme key. Which is something assigned if you click on the Appearance dropdown.
@@ -62,7 +64,7 @@ export declare class ThemeStorageController {
62
64
  * Synchronize the current palette and scheme with workspace's storage instance if
63
65
  * storage based theming is enabled. Only syncs when user has explicitly selected a scheme.
64
66
  */
65
- trySynchronizeWorkspaceStorage: () => void;
67
+ trySynchronizeWorkspaceStorage: () => Promise<void>;
66
68
  /**
67
69
  * Set the current Palette to be used by workspace. This palette will be converted into
68
70
  * css vars and combined into a single stylesheet. This stylesheet is exposed in localstorage
@@ -87,6 +89,7 @@ export declare class ThemeStorageController {
87
89
  * @param scheme The default scheme specified in the palette
88
90
  */
89
91
  setThemeDefaultScheme(scheme: ColorSchemeOptionType): void;
92
+ setGeneratedPalettes(generatedPalettes: GeneratedPalettes): void;
90
93
  /**
91
94
  * Returns the current scheme
92
95
  * @returns 'light' | 'system' | 'dark'
@@ -1,5 +1,5 @@
1
- import { ContentMenuEntry } from '@openfin/ui-library';
2
- import { DockCompanionButton, DockEntry, LaunchDockEntryPayload, Collection } from '../../../client-api-platform/src/shapes';
1
+ import type { ContentMenuEntry } from '@openfin/ui-library';
2
+ import { Collection, DockCompanionButton, DockEntry, LaunchDockEntryPayload } from '../../../client-api-platform/src/shapes';
3
3
  export declare const DockCompanionUpdatesPrefix = "dock-companion-updates";
4
4
  export declare const refreshDockBookmarksPanel: () => Promise<void>;
5
5
  export declare const updateDockFavoriteEntries: (favorites: DockEntry[]) => Promise<void>;
@@ -9,7 +9,7 @@ export declare const refreshDockCollectionMenu: (collections: Collection[]) => P
9
9
  export declare const launchDockEntry: (payload: LaunchDockEntryPayload) => Promise<void>;
10
10
  export declare const setDockFavoritesOrder: (favorites: DockEntry[]) => Promise<void>;
11
11
  export declare const setDefaultDockButtonsOrder: (defaultDockButtons: DockCompanionButton[]) => Promise<void>;
12
- export declare const getDockWorkspacesContextMenu: () => Promise<import("@client/shapes").BaseCustomDropdownItem<any>[]>;
12
+ export declare const getDockWorkspacesContextMenu: () => Promise<import("@client/index").BaseCustomDropdownItem<any>[]>;
13
13
  export declare const handleDockWorkspacesMenuResponse: (payload: any) => Promise<void>;
14
14
  export declare const launchCollection: (collection: Collection) => Promise<void>;
15
15
  export declare const removeFavoriteEntry: (entry: DockEntry) => Promise<void>;
@@ -1,5 +1,5 @@
1
1
  import type OpenFin from '@openfin/core';
2
- import type { GenerateThemeParams, LegacyPalettes } from '../../../common/src/api/theming';
2
+ import type { BaseThemeOptions, CustomTheme, GenerateThemeParams } from '../../../common/src/api/theming';
3
3
  import { ColorSchemeOptionType, ThemeApi } from '../../../client-api-platform/src/shapes';
4
4
  export declare const getThemingApi: (identity: OpenFin.ApplicationIdentity) => ThemeApi;
5
5
  export declare const dispatchThemeToWorkspaceProvider: (themeData: {
@@ -13,4 +13,5 @@ export declare const dispatchThemeToWorkspaceProvider: (themeData: {
13
13
  export declare const setSelectedScheme: (schemeType: ColorSchemeOptionType) => Promise<void>;
14
14
  export declare const getSelectedScheme: () => ColorSchemeOptionType | null | undefined;
15
15
  export declare const getThemePaletteSheet: () => string | undefined;
16
- export declare const mapLegacyThemeToCustomTheme: (legacyTheme: LegacyPalettes) => GenerateThemeParams;
16
+ export declare const mapLegacyThemeToCustomTheme: (legacyTheme: CustomTheme) => GenerateThemeParams;
17
+ export declare const mapLegacyBrandIcons: (legacyBrand: BaseThemeOptions["brand"]) => GenerateThemeParams[1];
@@ -1 +1,12 @@
1
1
  export declare const listenForStoreClose: () => void;
2
+ export type StorageProxy = {
3
+ setItem: (data: string, value: string) => Promise<void>;
4
+ destroy: () => Promise<void>;
5
+ };
6
+ export declare const createStorageProxy: (url: string) => Promise<StorageProxy>;
7
+ /**
8
+ * Ensure the workspace storage proxy window exists. Recreates it if it was previously destroyed
9
+ * (e.g. when the last browser window closed with preventQuitOnLastWindowClosed true and a new
10
+ * browser window is now being created). Uses the factory registered at init; no-op in tests.
11
+ */
12
+ export declare const ensureWorkspaceStorageProxy: () => Promise<void>;
@@ -1,2 +1,2 @@
1
1
  import { OpenFin } from '@openfin/core';
2
- export declare const createNonLayoutViewComponents: (overrideOptions: OpenFin.PlatformWindowCreationOptions) => Promise<void>;
2
+ export declare const createNonLayoutViewComponents: (isEnterprise: boolean, overrideOptions: OpenFin.PlatformWindowCreationOptions) => Promise<void[]>;
@@ -1,7 +1,8 @@
1
1
  import type OpenFin from '@openfin/core';
2
2
  type DefaultViewOptions = Partial<OpenFin.MutableViewOptions> & {
3
3
  downloadShelf?: OpenFin.ConstWindowOptions['downloadShelf'];
4
+ hotkeys?: OpenFin.ViewOptions['hotkeys'];
4
5
  };
5
6
  export declare const DEFAULT_VIEW_OPTIONS: DefaultViewOptions;
6
- export declare function applyViewDefaults(options: Partial<OpenFin.ViewOptions>, initViewOptions?: Partial<OpenFin.ViewOptions>): any;
7
+ export declare function applyViewDefaults(options: Partial<OpenFin.ViewOptions>, initViewOptions?: Partial<OpenFin.ViewOptions>): Promise<any>;
7
8
  export {};
@@ -1,6 +1,9 @@
1
- import { GeneratedPalettes } from '../../../common/src/api/theming';
1
+ import { GeneratedPalettes, NotificationIndicatorColorsParsed } from '../../../common/src/api/theming';
2
2
  import { CustomThemes } from '../shapes';
3
- export declare const getThemes: () => CustomThemes | GeneratedPalettes;
3
+ export declare const getThemes: () => CustomThemes | null;
4
+ export declare const getGeneratedPalettes: () => GeneratedPalettes;
5
+ export declare const getThemePaletteSheet: () => string;
6
+ export declare const getNotificationIndicatorColorsInternal: () => NotificationIndicatorColorsParsed;
4
7
  /**
5
8
  * initTheming()
6
9
  * @param customThemes array of theme objects
@@ -1,16 +1,16 @@
1
1
  import type OpenFin from '@openfin/core';
2
- import { IconProps, IconType, Languages } from '@openfin/ui-library';
3
- import { ModalResponseEvent } from '../../common/src/utils/menu-window-provider';
2
+ import type { IconProps, IconType, Languages } from '@openfin/ui-library';
3
+ import type { ModalResponseEvent } from '../../common/src/utils/menu-window-provider';
4
4
  import type { AnalyticsEvent, AnalyticsEventInternal } from '../../common/src/utils/usage-register';
5
- import { BaseCustomDropdownItem, CustomActionSpecifier, CustomButtonConfig } from '../../common/src/api/action';
6
- import { Resource } from '../../common/src/api/i18next';
7
- import { TrackedSite } from '../../common/src/api/pages/idb';
8
- import { AddDefaultPagePayload, AttachedPage, BookmarkNode, CopyPagePayload, CreateBookmarkNodeRequest, HandlePagesAndWindowClosePayload, HandlePagesAndWindowCloseResult, HandleSaveModalOnPageClosePayload, Page, PageLayoutsWithSelectedViews, PageWithUpdatableRuntimeAttribs, SaveModalOnPageCloseResult, SetActivePageForWindowPayload, ShouldPageClosePayload, ShouldPageCloseResult, UpdateBookmarkNodeRequest, ViewsPreventingUnloadPayload } from '../../common/src/api/pages/shapes';
9
- import { NotificationsCustomManifestOptions } from '../../common/src/api/shapes/notifications';
10
- import type { CustomThemes, GeneratedPalettes } from '../../common/src/api/theming';
11
- import { App, DockProviderConfigWithIdentity, StoreButtonConfig } from '../../client-api/src/shapes';
5
+ import type { BaseCustomDropdownItem, CustomActionSpecifier, CustomButtonConfig } from '../../common/src/api/action';
6
+ import type { Resource } from '../../common/src/api/i18next';
7
+ import type { TrackedSite } from '../../common/src/api/pages/idb';
8
+ import type { AddDefaultPagePayload, AttachedPage, BookmarkNode, CopyPagePayload, CreateBookmarkNodeRequest, HandlePagesAndWindowClosePayload, HandlePagesAndWindowCloseResult, HandleSaveModalOnPageClosePayload, Page, PageLayoutsWithSelectedViews, PageWithUpdatableRuntimeAttribs, SaveModalOnPageCloseResult, SetActivePageForWindowPayload, ShouldPageClosePayload, ShouldPageCloseResult, UpdateBookmarkNodeRequest, ViewsPreventingUnloadPayload } from '../../common/src/api/pages/shapes';
9
+ import type { NotificationsCustomManifestOptions } from '../../common/src/api/shapes/notifications';
10
+ import type { CustomThemes, GeneratedPalettes, NotificationIndicatorColorsParsed } from '../../common/src/api/theming';
11
+ import type { App, DockProviderConfigWithIdentity, StoreButtonConfig } from '../../client-api/src/shapes';
12
12
  import type { WorkflowIntegration } from '../../client-api/src/shapes/integrations';
13
- import { DockCompanionButton } from '../../dock3/src/shapes/index';
13
+ import type { DockCompanionButton } from '../../dock3/src/shapes/index';
14
14
  import type { AddPagesOptions, BasePageOpts, PageOpts } from '../../enterprise-api/src/shapes';
15
15
  export * from '../../dock3/src/shapes';
16
16
  export { AppManifestType } from '../../client-api/src/shapes';
@@ -18,7 +18,7 @@ export type { App, AppIntent, Image } from '../../client-api/src/shapes';
18
18
  export type { CustomActionSpecifier, CustomButtonConfig } from '../../common/src/api/action';
19
19
  export type { AttachedPage, Page, PageLayout, PageLayoutDetails, PageWithUpdatableRuntimeAttribs, PanelConfigHorizontal, PanelConfigVertical, PanelConfig, ExtendedPanelConfig, CopyPagePayload, HandleSaveModalOnPageClosePayload, SaveModalOnPageCloseResult, SetActivePageForWindowPayload, ShouldPageClosePayload, ShouldPageCloseResult, ViewsPreventingUnloadPayload } from '../../common/src/api/pages/shapes';
20
20
  export { PanelPosition } from '../../common/src/api/pages/shapes';
21
- export type { CustomThemes, CustomThemeOptions, CustomThemeOptionsWithScheme, CustomPaletteSet, BaseThemeOptions, ThemeExtension, WorkspaceThemeSet, NotificationIndicatorColorsSet, NotificationIndicatorColorsSetDarkScheme, NotificationIndicatorColorsSetLightScheme, NotificationIndicatorColorsWithScheme } from '../../common/src/api/theming';
21
+ export type { CustomThemes, CustomThemeOptions, ThemeOptions, CustomThemeOptionsWithScheme, CustomPaletteSet, BaseThemeOptions, ThemeExtension, WorkspaceThemeSet, NotificationIndicatorColorsSet, NotificationIndicatorColorsSetDarkScheme, NotificationIndicatorColorsSetLightScheme, NotificationIndicatorColorsWithScheme } from '../../common/src/api/theming';
22
22
  export type { AnalyticsEvent } from '../../common/src/utils/usage-register';
23
23
  export type { WorkflowIntegration } from '../../client-api/src/shapes/integrations';
24
24
  /**
@@ -124,6 +124,7 @@ export declare enum GlobalContextMenuOptionType {
124
124
  Downloads = "Downloads",
125
125
  OpenStorefront = "OpenStorefront",
126
126
  ManageDesktopSignals = "ManageDesktopSignals",
127
+ FindInPage = "FindInPage",
127
128
  Appearance = "Appearance",
128
129
  Quit = "Quit",
129
130
  Custom = "Custom"
@@ -177,6 +178,7 @@ export declare enum EnterpriseMainContextMenuOptionType {
177
178
  ShowHideTabs = "ShowHideTabs",
178
179
  AddToChanel = "AddToChannel",
179
180
  ManageDesktopSignals = "ManageDesktopSignals",// Enterprise
181
+ FindInPage = "FindInPage",// Enterprise
180
182
  Print = "Print",
181
183
  Pin = "Pin"
182
184
  }
@@ -264,6 +266,40 @@ export type InternalOpenGlobalContextMenuRequest = OpenGlobalContextMenuRequest
264
266
  rect?: DOMRect;
265
267
  };
266
268
  export type ViewTabContextMenuTemplate = OpenFin.MenuItemTemplate<ViewTabMenuData>;
269
+ /**
270
+ * UI elements within a view tab that can be navigated to via keyboard.
271
+ */
272
+ export type ViewTabElements = 'inactive-tab' | 'active-tab' | 'inactive-tab-close-button' | 'active-tab-close-button' | 'add-tab-button';
273
+ /**
274
+ * Configuration options for view tab keyboard navigation behavior.
275
+ */
276
+ export interface ViewTabOptions {
277
+ /**
278
+ * Elements in the view tab that are able to be focused using
279
+ * arrow keys when an element in the view is selected.
280
+ * The order of the items in the array have no impact.
281
+ * Note: these are not mutually exclusive and can overlap.
282
+ * Default (when undefined): ["inactive-tab","active-tab","active-tab-close-button","inactive-tab-close-button","add-tab-button"]
283
+ */
284
+ arrowNavigation?: ViewTabElements[];
285
+ /**
286
+ * Elements in the view tab that are able to be focused using
287
+ * tab and shift+tab when an element in the view is selected.
288
+ * The order of the items in the array have no impact.
289
+ * Note: these are not mutually exclusive and can overlap.
290
+ * Default (when undefined): ["active-tab","add-tab-button"]
291
+ */
292
+ tabNavigation?: ViewTabElements[];
293
+ }
294
+ /**
295
+ * Configuration options for accessibility features in the Browser.
296
+ */
297
+ export interface AccessibilityOptions {
298
+ /**
299
+ * View tab keyboard navigation options.
300
+ */
301
+ viewTabOptions?: ViewTabOptions;
302
+ }
267
303
  /**
268
304
  * Request for opening a view tab context menu in Browser.
269
305
  */
@@ -413,6 +449,7 @@ export declare enum BrowserButtonType {
413
449
  LockUnlockPage = "LockUnlockPage",
414
450
  SaveMenu = "SaveMenu",
415
451
  SavePage = "SavePage",
452
+ Download = "Download",
416
453
  Minimise = "Minimise",
417
454
  Maximise = "Maximise",
418
455
  Close = "Close",
@@ -679,6 +716,30 @@ export interface BrowserWorkspacePlatformWindowOptions {
679
716
  minWidth?: string;
680
717
  maxWidth?: string;
681
718
  };
719
+ /**
720
+ * Accessibility options for the browser window.
721
+ * These options override the default accessibility options set at the platform or browser initialization level.
722
+ *
723
+ * @example
724
+ * ```ts
725
+ * import * as WorkspacePlatform from '@openfin/workspace-platform';
726
+ *
727
+ * const platform = WorkspacePlatform.getCurrentSync();
728
+ * const browserWin = platform.Browser.createWindow({
729
+ * ...,
730
+ * workspacePlatform: {
731
+ * ...,
732
+ * accessibilityOptions: {
733
+ * viewTabOptions: {
734
+ * arrowNavigation: ["inactive-tab", "active-tab"],
735
+ * tabNavigation: ["active-tab"]
736
+ * }
737
+ * }
738
+ * }
739
+ * });
740
+ * ```
741
+ */
742
+ accessibilityOptions?: AccessibilityOptions;
682
743
  /**
683
744
  * Use when you want to display navigation buttons in Browser toolbar. Disabled by default.
684
745
  *
@@ -1718,13 +1779,40 @@ export interface LaunchAppRequest {
1718
1779
  target?: OpenFin.EntityInfo;
1719
1780
  app: App;
1720
1781
  }
1721
- /**
1722
- * Get Themes from API
1723
- */
1724
1782
  export interface ThemeApi {
1725
- getThemes(): Promise<CustomThemes | GeneratedPalettes>;
1783
+ /**
1784
+ * @deprecated This method is deprecated. It is recommended to use {@link getGeneratedPalettes} instead.
1785
+ * Get the legacy themes from the platform provider.
1786
+ * @returns the legacy themes or null if the platform provider is using the new theme system.
1787
+ */
1788
+ getThemes(): Promise<CustomThemes | null>;
1789
+ /**
1790
+ * Get the generated palettes from the platform provider.
1791
+ * @returns the generated palettes.
1792
+ */
1793
+ getGeneratedPalettes(): Promise<GeneratedPalettes>;
1794
+ /**
1795
+ * @internal
1796
+ * Get the theme palette sheet from the platform provider.
1797
+ * @returns the theme palette sheet.
1798
+ */
1799
+ getThemePaletteSheet(): Promise<string>;
1800
+ /**
1801
+ * Set the selected scheme for the platform provider.
1802
+ * @param newScheme the new scheme to set.
1803
+ */
1726
1804
  setSelectedScheme(newScheme: ColorSchemeOptionType): Promise<void>;
1805
+ /**
1806
+ * Get the selected scheme from the platform provider.
1807
+ * @returns the selected scheme.
1808
+ */
1727
1809
  getSelectedScheme(): Promise<ColorSchemeOptionType>;
1810
+ /**
1811
+ * @internal
1812
+ * Get the notification indicator colors from the platform provider.
1813
+ * @returns the notification indicator colors.
1814
+ */
1815
+ getNotificationIndicatorColorsInternal(): Promise<NotificationIndicatorColorsParsed | null>;
1728
1816
  }
1729
1817
  /**
1730
1818
  * Controller for a Workspace Platform.
@@ -1914,6 +2002,7 @@ export interface WorkspacePlatformModule extends OpenFin.Platform {
1914
2002
  setLanguage(locale: Locale): Promise<void>;
1915
2003
  /**
1916
2004
  * Implementation for getting the notifications workspace platform configuration.
2005
+ * @deprecated Notifications config is now part of the platform manifest and is automatically resolved by the notifications API. Do not use this method as it will not return the correct configuration.
1917
2006
  */
1918
2007
  getNotificationsConfig(): Promise<NotificationsCustomManifestOptions | undefined>;
1919
2008
  /**
@@ -2008,7 +2097,7 @@ export interface WorkspacePlatformModule extends OpenFin.Platform {
2008
2097
  * @internal
2009
2098
  */
2010
2099
  _focusAndExpandSearchInternal(): Promise<void>;
2011
- /** Shows a popup window for Here About page with provided data parameters
2100
+ /** Shows a popup window for HERE About page with provided data parameters
2012
2101
  * @internal
2013
2102
  */
2014
2103
  _showAboutPagePopup(payload: AboutPageConfig): Promise<OpenFin.Window>;
@@ -2579,6 +2668,7 @@ export interface WorkspacePlatformInitConfig {
2579
2668
  /**
2580
2669
  * Config for overriding default notifications behaviour.
2581
2670
  * Leave undefined to use OpenFin hosted Notification Center.
2671
+ * @deprecated Notifications config is now part of the platform manifest and is automatically resolved by the notifications API. Do not use this property as it will not have any effect.
2582
2672
  */
2583
2673
  notifications?: NotificationsCustomManifestOptions;
2584
2674
  /**
@@ -2809,6 +2899,28 @@ export interface BrowserInitConfig {
2809
2899
  * that are PNGs you will need to update these assets for best results.
2810
2900
  */
2811
2901
  browserIconSize?: IconSize;
2902
+ /**
2903
+ * Default accessibility options that will be applied to all browser windows.
2904
+ * These options can be overridden at the window creation level via workspacePlatform.accessibilityOptions.
2905
+ *
2906
+ * @example
2907
+ * ```ts
2908
+ * import * as WorkspacePlatform from '@openfin/workspace-platform';
2909
+ *
2910
+ * await WorkspacePlatform.init({
2911
+ * browser: {
2912
+ * title: "My Browser",
2913
+ * accessibilityOptions: {
2914
+ * viewTabOptions: {
2915
+ * arrowNavigation: ["inactive-tab", "active-tab"],
2916
+ * tabNavigation: ["active-tab"]
2917
+ * }
2918
+ * }
2919
+ * }
2920
+ * });
2921
+ * ```
2922
+ */
2923
+ accessibilityOptions?: AccessibilityOptions;
2812
2924
  /**
2813
2925
  * Override workspace platform behavior
2814
2926
  *
@@ -1,5 +1,6 @@
1
1
  import type OpenFin from '@openfin/core';
2
2
  import { ColorSchemeOptionType } from '../../../../client-api-platform/src/shapes';
3
+ import { NotificationsCustomManifestOptions } from '../shapes/notifications';
3
4
  export declare const NOTIFICATIONS_SYNC_CHANNEL = "of-workspace-notifications-sync";
4
5
  export declare enum NotificationsChannelAction {
5
6
  UpdatePlatformThemeScheme = "update-platform-theme-scheme"
@@ -10,5 +11,12 @@ export interface UpdatePlatformSchemePayload {
10
11
  interface NotificationsSyncChannelClient extends OpenFin.ChannelClient {
11
12
  dispatch(action: NotificationsChannelAction.UpdatePlatformThemeScheme, payload: UpdatePlatformSchemePayload): Promise<void>;
12
13
  }
14
+ export type ManifestNotificationsConfig = {
15
+ notifications?: {
16
+ customManifest?: NotificationsCustomManifestOptions;
17
+ };
18
+ };
19
+ export declare function getNotificationCenterUuid(): Promise<string>;
20
+ export declare function getSyncChannelName(): Promise<string>;
13
21
  export declare const getNotificationsSyncChannelClient: () => Promise<NotificationsSyncChannelClient>;
14
22
  export {};
@@ -35,6 +35,8 @@ export declare enum WorkspacePlatformChannelAction {
35
35
  GetLastFocusedBrowserWindow = "getLastFocusedBrowserWindow",
36
36
  GetPageByViewIdentity = "getPageByViewIdentity",
37
37
  GetThemes = "getThemes",
38
+ GetGeneratedPalettes = "getGeneratedPalettes",
39
+ GetThemePaletteSheet = "getThemePaletteSheet",
38
40
  GetSelectedScheme = "getSelectedScheme",
39
41
  SetSelectedScheme = "setSelectedScheme",
40
42
  OpenGlobalContextMenuInternal = "openGlobalContextMenuInternal",
@@ -78,7 +80,7 @@ export declare enum WorkspacePlatformChannelAction {
78
80
  HandleRequestNavigationInternal = "handleRequestNavigationInternal",// Enterprise
79
81
  RefreshBookmarksInternal = "refreshBookmarksInternal",// Enterprise
80
82
  LaunchBookmarkInternal = "launchBookmarkInternal",// Enterprise
81
- GetNotificationsConfig = "getNotificationsConfig",
83
+ GetNotificationsConfig = "getNotificationsConfig",// Deprecated
82
84
  UpdateDockFavoritesInternal = "updateDockFavoritesInternal",// Enterprise
83
85
  UpdateContentMenuInternal = "updateContentMenuInternal",// Enterprise
84
86
  LaunchDockEntryInternal = "launchDockEntryInternal",// Enterprise
@@ -93,7 +95,8 @@ export declare enum WorkspacePlatformChannelAction {
93
95
  AddDockFavoriteInternal = "addDockFavoriteInternal",// Enterprise
94
96
  FocusAndExpandSearchInternal = "focusAndExpandSearchInternal",// Enterprise
95
97
  SendUpdateVersionModalResponseInternal = "sendUpdateVersionModalResponseInternal",// Enterprise
96
- ShowUpdateVersionModalInternal = "showUpdateVersionModalInternal"
98
+ ShowUpdateVersionModalInternal = "showUpdateVersionModalInternal",// Enterprise
99
+ GetNotificationIndicatorColorsInternal = "getNotificationIndicatorColorsInternal"
97
100
  }
98
101
  export type PlatFormSupportedFeatures = boolean | {
99
102
  isWorkspacePlatform: boolean;
@@ -19,8 +19,8 @@ export declare const launchProvider: () => Promise<void>;
19
19
  */
20
20
  export declare const getChannelClientAndLaunchProvider: () => Promise<WorkspaceComponentChannelClient>;
21
21
  /**
22
- * Launches the Workspace provider if it is not running.
22
+ * Gets the theme data from the Platform provider, then launches the Workspace provider if it is not running, and then dispatches the theme data to the Workspace provider.
23
23
  * Then gets a Channel Client that is connected to the Workspace Provider.
24
24
  * @returns the Channel Client that is connected to the Workspace Provider.
25
25
  */
26
- export declare const getClientAPIChannelClientAndLaunchProvider: () => Promise<WorkspaceAPIClientChannelClient>;
26
+ export declare const getChannelClientAndInitializeWorkspaceProvider: () => Promise<WorkspaceAPIClientChannelClient>;
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Options for using privately hosted notification service.
3
+ * @deprecated Custom manifest is now part of the platform manifest and is automatically resolved by the notifications API. Do not use this type as it will be ignored.
3
4
  */
4
5
  export type NotificationsCustomManifestOptions = {
5
6
  /**
@@ -1,8 +1,13 @@
1
1
  import type { DefaultTheme } from 'styled-components';
2
2
  import type OpenFin from '@openfin/core';
3
- import { type ColorSchemeType, type ThemeSet, Palette } from '@openfin/ui-library';
3
+ import type { ColorSchemeType, ThemeSet } from '@openfin/ui-library';
4
4
  import { ColorSchemeOptionType } from '../../../client-api-platform/src/shapes';
5
5
  import type { generateTheme } from '@openfin/theme-engine';
6
+ export declare const ColorScheme: {
7
+ light: string;
8
+ dark: string;
9
+ system: string;
10
+ };
6
11
  export type WorkspaceComponentSetSelectedSchemePayload = {
7
12
  newScheme: ColorSchemeOptionType;
8
13
  identity: OpenFin.Identity;
@@ -49,6 +54,13 @@ export interface NotificationIndicatorColorsSetLightScheme {
49
54
  dark?: NotificationIndicatorColorsSet;
50
55
  light: NotificationIndicatorColorsSet;
51
56
  }
57
+ export type NotificationIndicatorColors = Record<string, Omit<NotificationIndicatorColorsSet, 'foreground'> & {
58
+ foreground: string;
59
+ }>;
60
+ export type NotificationIndicatorColorsParsed = {
61
+ dark: NotificationIndicatorColors;
62
+ light: NotificationIndicatorColors;
63
+ };
52
64
  export type NotificationIndicatorColorsWithScheme = Record<string, NotificationIndicatorColorsSetDarkScheme | NotificationIndicatorColorsSetLightScheme>;
53
65
  export interface BaseThemeOptions {
54
66
  label: string;
@@ -89,7 +101,7 @@ export type CustomThemeOptions = BaseThemeOptions & {
89
101
  * };
90
102
  * ```
91
103
  */
92
- notificationIndicatorColors?: Record<string, NotificationIndicatorColorsSet>;
104
+ notificationIndicatorColors?: NotificationIndicatorColors;
93
105
  };
94
106
  export type CustomThemeOptionsWithScheme = BaseThemeOptions & {
95
107
  /**
@@ -148,12 +160,16 @@ export type CustomThemeOptionsWithScheme = BaseThemeOptions & {
148
160
  export type ThemeOptions = BaseThemeOptions & {
149
161
  seed: Parameters<typeof generateTheme>[0];
150
162
  overrides?: Parameters<typeof generateTheme>[1];
163
+ default?: Exclude<ColorSchemeOptionType, 'system'>;
164
+ } & {
165
+ notificationIndicatorColors?: NotificationIndicatorColorsWithScheme | NotificationIndicatorColors;
151
166
  };
152
167
  type GenerateThemeReturn = ReturnType<typeof generateTheme>;
153
168
  export type GeneratedPalettes = Pick<GenerateThemeReturn, 'dark' | 'light'>;
154
169
  export type LegacyPalettes = CustomThemeOptions | CustomThemeOptionsWithScheme;
155
170
  export type GenerateThemeParams = Parameters<typeof generateTheme>;
156
- export type CustomThemes = (CustomThemeOptions | CustomThemeOptionsWithScheme | ThemeOptions)[];
171
+ export type CustomTheme = CustomThemeOptions | CustomThemeOptionsWithScheme | ThemeOptions;
172
+ export type CustomThemes = CustomTheme[];
157
173
  export interface PreloadedThemeData {
158
174
  themes: CustomThemes | GeneratedPalettes;
159
175
  selectedScheme: ColorSchemeOptionType;
@@ -298,17 +314,14 @@ export declare const OpenFinDarkTheme: {
298
314
  borderNeutral: "#C0C1C2";
299
315
  };
300
316
  export declare const DefaultOpenFinTheme: CustomThemes;
301
- export declare const getComputedPaletteSets: (customTheme: CustomThemeOptions | CustomThemeOptionsWithScheme) => WorkspaceThemeSet;
302
- /**
303
- * Transforms input {@link CustomThemes} to {@link ComputedThemes} used by Workspace Platform / Notifications Platform.
304
- *
305
- * @param customThemes array of themes to transform
306
- * @param storedScheme sets the default scheme if provided
307
- * @returns array of {@link ComputedThemes | computed themes}
308
- */
309
- export declare const computeThemes: (customThemes: CustomThemes | GeneratedPalettes, storedScheme?: ColorSchemeOptionType) => ComputedThemes;
310
- export declare const getComputedPlatformTheme: (platformIdentity: OpenFin.Identity) => Promise<ComputedTheme>;
317
+ export declare const parseNotificationIndicatorColors: (customTheme: CustomTheme) => NotificationIndicatorColorsParsed;
318
+ export declare const constructThemePaletteSheet: (themes: GeneratedPalettes) => string;
319
+ export declare const getComputedPlatformTheme: (platformIdentity: OpenFin.Identity) => Promise<{
320
+ theme: GeneratedPalettes | CustomThemes;
321
+ defaultScheme: ColorSchemeOptionType;
322
+ themePaletteSheet: string;
323
+ }>;
311
324
  export declare const setSelectedScheme: (ctx: ColorSchemeOptionType) => Promise<void>;
312
325
  export declare const getComputedScheme: (identity?: OpenFin.Identity) => Promise<Exclude<ColorSchemeType, "system">>;
313
- export declare const getComputedBackgroundColor: (paletteKey: keyof typeof Palette, defaultColor?: string) => Promise<string>;
326
+ export declare const getComputedBackgroundColor: (platformIdentity: OpenFin.Identity) => Promise<string>;
314
327
  export {};
@@ -23,3 +23,10 @@ export type ApplicationInfoExtended = OpenFin.ApplicationInfo & {
23
23
  };
24
24
  export declare const getCurrentOFApplication: () => OpenFin.Application;
25
25
  export declare const getWorkspaceOFApplication: () => OpenFin.Application;
26
+ /**
27
+ * Gets the application manifest, caching the result after the first call.
28
+ * The manifest never changes during the application lifecycle, so this avoids redundant async calls.
29
+ * Uses promise-based caching to prevent race conditions when multiple calls occur before the first completes.
30
+ * @returns A Promise resolving to the application manifest
31
+ */
32
+ export declare const getCachedManifest: () => Promise<OpenFin.Manifest>;
@@ -0,0 +1,37 @@
1
+ export type FindInPageChannelMessagePayload = {
2
+ type: 'close';
3
+ } | {
4
+ type: 'find-text-changed';
5
+ value: string;
6
+ } | {
7
+ type: 'focus-input';
8
+ } | {
9
+ type: 'hide-from-search-menu';
10
+ } | {
11
+ type: 'next-result';
12
+ } | {
13
+ type: 'previous-result';
14
+ } | {
15
+ type: 'show';
16
+ } | {
17
+ type: 'update-state';
18
+ currentResultIndex?: number | null;
19
+ totalResults?: number | null;
20
+ value?: string | null;
21
+ } | {
22
+ type: 'view-ready';
23
+ } | {
24
+ type: 'window-ready';
25
+ };
26
+ /**
27
+ * Closes the find in page channel
28
+ */
29
+ export declare const closeFindInPageChannel: (channel: BroadcastChannel) => void;
30
+ /**
31
+ * Creates a new find in page channel
32
+ */
33
+ export declare const createFindInPageChannel: (windowName?: string) => Promise<BroadcastChannel>;
34
+ /**
35
+ * Sends a message via the find in page channel
36
+ */
37
+ export declare const sendFindInPageMessage: (channel: BroadcastChannel, message: FindInPageChannelMessagePayload) => void;