@openfin/workspace-platform 22.5.25 → 23.0.1-alpha.75ce533e

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 (56) hide show
  1. package/client-api/src/integrations/microsoft.utils.d.ts +6 -6
  2. package/client-api/src/shapes/index.d.ts +1 -1
  3. package/client-api-platform/src/api/controllers/theme-storage-controller-store.d.ts +16 -1
  4. package/client-api-platform/src/api/controllers/theme-storage-controller.d.ts +42 -25
  5. package/client-api-platform/src/api/dock.d.ts +5 -3
  6. package/client-api-platform/src/api/language.d.ts +1 -1
  7. package/client-api-platform/src/api/pages/open-pages.d.ts +2 -2
  8. package/client-api-platform/src/api/theming.d.ts +12 -0
  9. package/client-api-platform/src/api/theming.test.d.ts +1 -0
  10. package/client-api-platform/src/api/utils.d.ts +11 -0
  11. package/client-api-platform/src/init/override-callback/enterprise-page-required-layout-settings.d.ts +5 -0
  12. package/client-api-platform/src/init/override-callback/page-defaults.d.ts +1 -1
  13. package/client-api-platform/src/init/override-callback/view-components.d.ts +1 -1
  14. package/client-api-platform/src/init/override-callback/view-defaults.d.ts +2 -1
  15. package/client-api-platform/src/init/override-callback/view-options.d.ts +1 -1
  16. package/client-api-platform/src/init/theming.d.ts +5 -1
  17. package/client-api-platform/src/shapes.d.ts +124 -21
  18. package/common/src/api/pages/idb.d.ts +2 -4
  19. package/common/src/api/protocol/browser.d.ts +8 -6
  20. package/common/src/api/protocol/notifications.d.ts +8 -0
  21. package/common/src/api/protocol/shapes/workspace.d.ts +8 -0
  22. package/common/src/api/protocol/workspace-platform.d.ts +30 -25
  23. package/common/src/api/protocol/workspace.d.ts +2 -2
  24. package/common/src/api/provider.d.ts +1 -1
  25. package/common/src/api/shapes/notifications.d.ts +1 -0
  26. package/common/src/api/storefront.d.ts +5 -5
  27. package/common/src/api/theming.d.ts +40 -17
  28. package/common/src/utils/application.d.ts +7 -0
  29. package/common/src/utils/enterprise-menu.d.ts +1 -1
  30. package/common/src/utils/find-in-page/findInPageChannel.d.ts +37 -0
  31. package/common/src/utils/find-in-page/showFindInPageHandler.d.ts +2 -0
  32. package/common/src/utils/global-context-menu.d.ts +8 -1
  33. package/common/src/utils/layout.d.ts +38 -10
  34. package/common/src/utils/logger.d.ts +131 -0
  35. package/common/src/utils/menu-window-provider.d.ts +13 -9
  36. package/common/src/utils/merge-deep.d.ts +1 -0
  37. package/common/src/utils/modal-bounds.d.ts +1 -1
  38. package/common/src/utils/namespaced-local-storage.d.ts +5 -4
  39. package/common/src/utils/popup-window.d.ts +16 -0
  40. package/common/src/utils/route.d.ts +5 -1
  41. package/common/src/utils/shared-emitter.d.ts +4 -4
  42. package/common/src/utils/theming.d.ts +6 -0
  43. package/common/src/utils/types.d.ts +1 -1
  44. package/common/src/utils/window.d.ts +20 -9
  45. package/common/src/utils/workspace-modals.d.ts +1 -1
  46. package/dock3/src/api/utils.d.ts +11 -0
  47. package/dock3/src/shapes/shapes.d.ts +13 -1
  48. package/externals.report.json +19 -11
  49. package/index.js +2 -1
  50. package/index.js.LICENSE.txt +1 -0
  51. package/index.js.map +1 -1
  52. package/package.json +7 -3
  53. package/search-api/src/provider/remote/info.d.ts +1 -1
  54. package/search-api/src/shapes.d.ts +22 -1
  55. package/common/src/brand/default-brand.d.ts +0 -8
  56. package/workspace_platform.zip +0 -0
@@ -36,9 +36,9 @@ export declare const MICROSOFT_365_SEARCH_RESULT_ACTIONS: {
36
36
  * @param req The user input request object from which to extract the selected filters.
37
37
  * @returns An array of CLIFilter objects representing the validated filters.
38
38
  */
39
- export declare const getValidFilters: (req: Parameters<HomeProvider['onUserInput']>[0], searchTypePossibleFilters: Set<Microsoft365DocumentType>) => CLIFilter[];
40
- export declare const getValidContactFilters: (users: MicrosoftGraphTypes.User[], req: Parameters<HomeProvider['onUserInput']>[0]) => CLIFilter[];
41
- export declare const getContactFiltersFromRequest: (req: Parameters<HomeProvider['onUserInput']>[0]) => {
39
+ export declare const getValidFilters: (req: Parameters<HomeProvider["onUserInput"]>[0], searchTypePossibleFilters: Set<Microsoft365DocumentType>) => CLIFilter[];
40
+ export declare const getValidContactFilters: (users: MicrosoftGraphTypes.User[], req: Parameters<HomeProvider["onUserInput"]>[0]) => CLIFilter[];
41
+ export declare const getContactFiltersFromRequest: (req: Parameters<HomeProvider["onUserInput"]>[0]) => {
42
42
  department: string[];
43
43
  jobTitle: string[];
44
44
  };
@@ -58,7 +58,7 @@ export declare const filterContactFromRequest: (items: MicrosoftGraphTypes.User[
58
58
  * If no types are selected or all types are deselected, the function marks all types to be shown.
59
59
  * Otherwise, it marks only the selected types to be shown.
60
60
  */
61
- export declare const getTypeFiltersFromRequest: (req: Parameters<HomeProvider['onUserInput']>[0], searchTypePossibleFilters: Set<Microsoft365DocumentType>) => {
61
+ export declare const getTypeFiltersFromRequest: (req: Parameters<HomeProvider["onUserInput"]>[0], searchTypePossibleFilters: Set<Microsoft365DocumentType>) => {
62
62
  readonly showDocuments: boolean;
63
63
  readonly showContacts: boolean;
64
64
  /** Teams Messages */
@@ -70,7 +70,7 @@ export declare const getTypeFiltersFromRequest: (req: Parameters<HomeProvider['o
70
70
  /** SharePoint Lists */
71
71
  readonly showLists: boolean;
72
72
  };
73
- export declare const getDocumentFiltersFromRequest: (req: Parameters<HomeProvider['onUserInput']>[0]) => {
73
+ export declare const getDocumentFiltersFromRequest: (req: Parameters<HomeProvider["onUserInput"]>[0]) => {
74
74
  readonly filterFiles: boolean;
75
75
  readonly showWord: boolean;
76
76
  readonly showExcel: boolean;
@@ -81,6 +81,6 @@ export declare const getDocumentFiltersFromRequest: (req: Parameters<HomeProvide
81
81
  export declare const filterDocumentsFromRequest: (items: MicrosoftGraphTypes.DriveItem[], filter: ReturnType<typeof getDocumentFiltersFromRequest>) => MicrosoftGraphTypes.DriveItem[];
82
82
  export declare const getFileType: (fileName?: string) => string;
83
83
  export declare const getFileIcon: (fileName?: string) => string;
84
- export declare const mapMicrosoftAvailabilityToPresence: (availability: Presence) => CLISearchResultContact['templateContent']['onlineStatus'] | undefined;
84
+ export declare const mapMicrosoftAvailabilityToPresence: (availability: Presence) => CLISearchResultContact["templateContent"]["onlineStatus"] | undefined;
85
85
  /** base64IdToUrl converts a base64 encoded id to a url safe id */
86
86
  export declare const base64IdToUrl: (b64Id: string) => string;
@@ -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,4 +1,19 @@
1
+ import { GeneratedPalettes, NotificationIndicatorColorsParsed } from '../../../../common/src/api/theming';
1
2
  import { ThemeStorageController } from '../../../../client-api-platform/src/api/controllers/theme-storage-controller';
2
3
  import { CustomThemes } from '../../../../client-api-platform/src/shapes';
3
- export declare const initialiseStoragePalettes: (customThemes: CustomThemes | undefined, isWindows: boolean) => CustomThemes;
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
+ };
4
19
  export declare const getThemeStorageController: () => ThemeStorageController;
@@ -1,52 +1,59 @@
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.
4
6
  *
5
7
  * This is particularly useful if a value uses a different palette constant depending on scheme.
6
8
  */
7
- export declare const getPaletteExtensions: (palette: CustomPaletteSet, paletteScheme: 'light' | 'dark', isWindows: boolean) => {
8
- dockExpandedContainerBorderColor: string;
9
+ export declare const getPaletteExtensions: (palette: CustomPaletteSet, paletteScheme: "light" | "dark", isWindows: boolean) => {
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;
26
15
  'scrollbar-track-rgb': string;
27
16
  selectedTab: string;
28
17
  };
29
- export type Palettes = {
18
+ export type LegacyPalettes = {
30
19
  dark: CustomPaletteSet;
31
20
  light: CustomPaletteSet;
32
21
  };
22
+ export type Palettes = {
23
+ light: string;
24
+ dark: string;
25
+ };
33
26
  export declare class ThemeStorageController {
34
27
  private providerStorage;
35
28
  private darkPaletteVars?;
36
29
  private lightPaletteVars?;
30
+ private themePaletteSheet?;
31
+ private generatedPalettes?;
37
32
  private workspaceStorage?;
33
+ private recreateFactory?;
38
34
  constructor(providerStorage: Pick<Storage, 'getItem' | 'setItem'>);
39
- private getVarsByScheme;
40
35
  /**
41
36
  * Set the current Storage Proxy to enable Workspace Storage properties to be populated.
42
- *
43
- * Currently, we only support same Storage Based theming for same origin scenarios like EB, where the provider
44
- * is in the same origin as the workspace pages.
45
- *
46
- * 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
47
- * `git revert 233e843cda6cd68968fd5831fb20597e0d5bb7cc --no-commit`
48
37
  */
49
- 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>;
50
57
  /**
51
58
  * Check if there's an explicit user preference stored in localStorage.
52
59
  * A user preference is indicated by the presence of a SelectedColorScheme key. Which is something assigned if you click on the Appearance dropdown.
@@ -57,14 +64,18 @@ export declare class ThemeStorageController {
57
64
  * Synchronize the current palette and scheme with workspace's storage instance if
58
65
  * storage based theming is enabled. Only syncs when user has explicitly selected a scheme.
59
66
  */
60
- trySynchronizeWorkspaceStorage: () => void;
67
+ trySynchronizeWorkspaceStorage: () => Promise<void>;
61
68
  /**
62
69
  * Set the current Palette to be used by workspace. This palette will be converted into
63
70
  * css vars and combined into a single stylesheet. This stylesheet is exposed in localstorage
64
71
  * to allow workspace UI elements to load the palette before their first paint.
65
72
  * @param palettes Light and Dark Palette constants
66
73
  */
67
- setPalettes: ({ light, dark }: Palettes, isWindows: boolean) => Promise<void>;
74
+ setLegacyPalettes: ({ light, dark }: LegacyPalettes, isWindows: boolean) => Promise<void>;
75
+ setPalettes: ({ light, dark }: {
76
+ light: string;
77
+ dark: string;
78
+ }) => Promise<void>;
68
79
  /**
69
80
  * Set the current scheme of workspace. Specifically setting light or dark
70
81
  * will ignore the OS scheme, whereas 'system' will always respect it.
@@ -78,9 +89,15 @@ export declare class ThemeStorageController {
78
89
  * @param scheme The default scheme specified in the palette
79
90
  */
80
91
  setThemeDefaultScheme(scheme: ColorSchemeOptionType): void;
92
+ setGeneratedPalettes(generatedPalettes: GeneratedPalettes): void;
81
93
  /**
82
94
  * Returns the current scheme
83
95
  * @returns 'light' | 'system' | 'dark'
84
96
  */
85
97
  getScheme(): ColorSchemeOptionType;
98
+ getThemePaletteSheet(): string | undefined;
99
+ getThemePalette(): {
100
+ light: string;
101
+ dark: string;
102
+ };
86
103
  }
@@ -1,15 +1,17 @@
1
- import { ContentMenuEntry } from '@openfin/ui-library';
2
- import { DockCompanionButton, DockEntry, LaunchDockEntryPayload } 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>;
6
6
  export declare const updateContentMenu: (contentMenu: ContentMenuEntry[]) => Promise<void>;
7
7
  export declare const navigateContentMenu: (id: string) => Promise<void>;
8
+ export declare const refreshDockCollectionMenu: (collections: Collection[]) => Promise<void>;
8
9
  export declare const launchDockEntry: (payload: LaunchDockEntryPayload) => Promise<void>;
9
10
  export declare const setDockFavoritesOrder: (favorites: DockEntry[]) => Promise<void>;
10
11
  export declare const setDefaultDockButtonsOrder: (defaultDockButtons: DockCompanionButton[]) => Promise<void>;
11
- export declare const getDockWorkspacesContextMenu: () => Promise<import("@client/index").BaseCustomDropdownItem<any>[]>;
12
+ export declare const getDockWorkspacesContextMenu: () => Promise<import("@client/shapes").BaseCustomDropdownItem<any>[]>;
12
13
  export declare const handleDockWorkspacesMenuResponse: (payload: any) => Promise<void>;
14
+ export declare const launchCollection: (collection: Collection) => Promise<void>;
13
15
  export declare const removeFavoriteEntry: (entry: DockEntry) => Promise<void>;
14
16
  export declare const addFavoriteEntry: (entry: DockEntry) => Promise<void>;
15
17
  export declare const focusAndExpandSearchMenu: () => Promise<void>;
@@ -4,7 +4,7 @@ export declare const dispatchLanguageToBrowserWindows: (language: Locale) => Pro
4
4
  export declare const setLanguage: (locale: Locale) => Promise<void>;
5
5
  export declare function getLanguageResourcesInternal(): {
6
6
  currentLanguage: "en-US" | "ja-JP" | "zh-CN" | "ko-KR" | "ru-RU" | "de-DE" | "zh-Hant";
7
- resources: import("i18next/typescript/options").Resource;
7
+ resources: import("i18next").Resource;
8
8
  };
9
9
  /**
10
10
  * initLanguage()
@@ -1,5 +1,5 @@
1
1
  import { AnalyticsEventInternal } from '../../../../common/src/utils/usage-register';
2
2
  import { Page } from '../../../../client-api-platform/src/shapes';
3
3
  export declare const getOpenPages: () => Map<string, AnalyticsEventInternal>;
4
- export declare const addOpenPageToCache: (pageId: Page['pageId'], event: AnalyticsEventInternal) => void;
5
- export declare const removeOpenPageFromCache: (pageId: Page['pageId']) => boolean;
4
+ export declare const addOpenPageToCache: (pageId: Page["pageId"], event: AnalyticsEventInternal) => void;
5
+ export declare const removeOpenPageFromCache: (pageId: Page["pageId"]) => boolean;
@@ -1,5 +1,17 @@
1
1
  import type OpenFin from '@openfin/core';
2
+ import type { BaseThemeOptions, CustomTheme, GenerateThemeParams } from '../../../common/src/api/theming';
2
3
  import { ColorSchemeOptionType, ThemeApi } from '../../../client-api-platform/src/shapes';
3
4
  export declare const getThemingApi: (identity: OpenFin.ApplicationIdentity) => ThemeApi;
5
+ export declare const dispatchThemeToWorkspaceProvider: (themeData: {
6
+ themePaletteSheet: string;
7
+ selectedScheme: ColorSchemeOptionType;
8
+ themePalette: {
9
+ light: string;
10
+ dark: string;
11
+ };
12
+ }) => Promise<void>;
4
13
  export declare const setSelectedScheme: (schemeType: ColorSchemeOptionType) => Promise<void>;
5
14
  export declare const getSelectedScheme: () => ColorSchemeOptionType | null | undefined;
15
+ export declare const getThemePaletteSheet: () => string | undefined;
16
+ export declare const mapLegacyThemeToCustomTheme: (legacyTheme: CustomTheme) => GenerateThemeParams;
17
+ export declare const mapLegacyBrandIcons: (legacyBrand: BaseThemeOptions["brand"]) => GenerateThemeParams[1];
@@ -0,0 +1 @@
1
+ export {};
@@ -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>;
@@ -2,4 +2,9 @@ import { PageLayout } from '../../../../common/src/api/pages/shapes';
2
2
  export type EnterprisePageRequiredLayoutSettings = {
3
3
  newTabButtonUrl: string;
4
4
  };
5
+ /**
6
+ * Applies required layout settings for enterprise pages.
7
+ * Always sets the newTabButton URL to ensure pages from storage or other sources
8
+ * have the correct landing page URL.
9
+ */
5
10
  export declare const applyEnterprisePageRequiredLayoutSettings: (requiredSettings: EnterprisePageRequiredLayoutSettings, layout: PageLayout) => void;
@@ -1,4 +1,4 @@
1
1
  import OpenFin from '@openfin/core';
2
2
  import type { AttachedPage, AttachedPageInternal } from '../../../../common/src/api/pages/shapes';
3
3
  import { BrowserInitConfig } from '../..';
4
- export declare const applyPageDefaults: (pages: AttachedPage[], initOptions?: Pick<BrowserInitConfig, 'defaultPageOptions' | 'defaultViewOptions' | 'defaultWindowOptions'>, overrideOptions?: OpenFin.PlatformWindowCreationOptions) => Promise<AttachedPageInternal[]>;
4
+ export declare const applyPageDefaults: (pages: AttachedPage[], initOptions?: Pick<BrowserInitConfig, "defaultPageOptions" | "defaultViewOptions" | "defaultWindowOptions">, overrideOptions?: OpenFin.PlatformWindowCreationOptions) => Promise<AttachedPageInternal[]>;
@@ -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 {};
@@ -7,5 +7,5 @@ type ViewStateBase = Pick<BrowserViewState, '_internalWorkspaceData' | 'workspac
7
7
  export declare const mapInternalWorkspaceDataToWorkspacePlatform: <T extends ViewStateBase>(viewState: T) => T;
8
8
  export declare const mapWorkspacePlatformToInternalWorkspaceData: <T extends ViewStateBase>(viewState: T) => T;
9
9
  export declare const setHotkeysIfNavigationButtonsEnabled: (options: BrowserCreateViewRequest) => Promise<BrowserCreateViewRequest>;
10
- export declare const registerHotkeyListenersIfEnabled: (viewIdentity: OpenFin.Identity, buttonOptions?: BrowserWorkspacePlatformViewOptions['browserNavigationButtons']) => void;
10
+ export declare const registerHotkeyListenersIfEnabled: (viewIdentity: OpenFin.Identity, buttonOptions?: BrowserWorkspacePlatformViewOptions["browserNavigationButtons"]) => void;
11
11
  export {};
@@ -1,5 +1,9 @@
1
+ import { GeneratedPalettes, NotificationIndicatorColorsParsed } from '../../../common/src/api/theming';
1
2
  import { CustomThemes } from '../shapes';
2
- export declare const getThemes: () => CustomThemes;
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;
3
7
  /**
4
8
  * initTheming()
5
9
  * @param customThemes array of theme objects
@@ -1,11 +1,11 @@
1
1
  import type OpenFin from '@openfin/core';
2
- import { IconProps, IconType, Languages } from '@openfin/ui-library';
2
+ import type { IconProps, IconType, Languages } from '@openfin/ui-library';
3
3
  import type { AnalyticsEvent } from '../../common/src/utils/usage-register';
4
- import { CustomActionSpecifier, CustomButtonConfig } from '../../common/src/api/action';
5
- import { AddDefaultPagePayload, AttachedPage, BookmarkNode, CopyPagePayload, HandlePagesAndWindowClosePayload, HandlePagesAndWindowCloseResult, HandleSaveModalOnPageClosePayload, Page, PageLayoutsWithSelectedViews, PageWithUpdatableRuntimeAttribs, SaveModalOnPageCloseResult, SetActivePageForWindowPayload, ShouldPageClosePayload, ShouldPageCloseResult, ViewsPreventingUnloadPayload } from '../../common/src/api/pages/shapes';
6
- import { NotificationsCustomManifestOptions } from '../../common/src/api/shapes/notifications';
7
- import type { CustomThemes } from '../../common/src/api/theming';
8
- import { App, DockProviderConfigWithIdentity, StoreButtonConfig } from '../../client-api/src/shapes';
4
+ import type { CustomActionSpecifier, CustomButtonConfig } from '../../common/src/api/action';
5
+ import type { AddDefaultPagePayload, AttachedPage, BookmarkNode, CopyPagePayload, HandlePagesAndWindowClosePayload, HandlePagesAndWindowCloseResult, HandleSaveModalOnPageClosePayload, Page, PageLayoutsWithSelectedViews, PageWithUpdatableRuntimeAttribs, SaveModalOnPageCloseResult, SetActivePageForWindowPayload, ShouldPageClosePayload, ShouldPageCloseResult, ViewsPreventingUnloadPayload } from '../../common/src/api/pages/shapes';
6
+ import type { NotificationsCustomManifestOptions } from '../../common/src/api/shapes/notifications';
7
+ import type { CustomThemes, GeneratedPalettes } from '../../common/src/api/theming';
8
+ import type { App, DockProviderConfigWithIdentity, StoreButtonConfig } from '../../client-api/src/shapes';
9
9
  import type { WorkflowIntegration } from '../../client-api/src/shapes/integrations';
10
10
  export * from '../../dock3/src/shapes';
11
11
  export { AppManifestType } from '../../client-api/src/shapes';
@@ -13,7 +13,7 @@ export type { App, AppIntent, Image } from '../../client-api/src/shapes';
13
13
  export type { CustomActionSpecifier, CustomButtonConfig } from '../../common/src/api/action';
14
14
  export type { AttachedPage, Page, PageLayout, PageLayoutDetails, PageWithUpdatableRuntimeAttribs, PanelConfigHorizontal, PanelConfigVertical, PanelConfig, ExtendedPanelConfig, CopyPagePayload, HandleSaveModalOnPageClosePayload, SaveModalOnPageCloseResult, SetActivePageForWindowPayload, ShouldPageClosePayload, ShouldPageCloseResult, ViewsPreventingUnloadPayload } from '../../common/src/api/pages/shapes';
15
15
  export { PanelPosition } from '../../common/src/api/pages/shapes';
16
- export type { CustomThemes, CustomThemeOptions, CustomThemeOptionsWithScheme, CustomPaletteSet, BaseThemeOptions, ThemeExtension, WorkspaceThemeSet, NotificationIndicatorColorsSet, NotificationIndicatorColorsSetDarkScheme, NotificationIndicatorColorsSetLightScheme, NotificationIndicatorColorsWithScheme } from '../../common/src/api/theming';
16
+ export type { CustomThemes, CustomThemeOptions, ThemeOptions, CustomThemeOptionsWithScheme, CustomPaletteSet, BaseThemeOptions, ThemeExtension, WorkspaceThemeSet, NotificationIndicatorColorsSet, NotificationIndicatorColorsSetDarkScheme, NotificationIndicatorColorsSetLightScheme, NotificationIndicatorColorsWithScheme } from '../../common/src/api/theming';
17
17
  export type { AnalyticsEvent } from '../../common/src/utils/usage-register';
18
18
  export type { WorkflowIntegration } from '../../client-api/src/shapes/integrations';
19
19
  /**
@@ -119,6 +119,7 @@ export declare enum GlobalContextMenuOptionType {
119
119
  Downloads = "Downloads",
120
120
  OpenStorefront = "OpenStorefront",
121
121
  ManageDesktopSignals = "ManageDesktopSignals",
122
+ FindInPage = "FindInPage",
122
123
  Appearance = "Appearance",
123
124
  Quit = "Quit",
124
125
  Custom = "Custom"
@@ -154,16 +155,16 @@ export declare enum PageTabContextMenuOptionType {
154
155
  Save = "Save",
155
156
  SaveAs = "Save As",
156
157
  NewPage = "New Page",
157
- DeletePage = "Delete Page",
158
- SaveWorkspaceAs = "SaveWorkspaceAs",
159
- Refresh = "Refresh",
160
- CloseOthers = "Close others",
161
- Delete = "Delete",
162
- Print = "Print",
163
- PrintAll = "PrintAll",
164
- PrintScreen = "PrintScreen",
165
- ManageDesktopSignals = "ManageDesktopSignals",
166
- AddToChannel = "AddToChannel",
158
+ DeletePage = "Delete Page",// Enterprise
159
+ SaveWorkspaceAs = "SaveWorkspaceAs",// Enterprise
160
+ Refresh = "Refresh",// Enterprise
161
+ CloseOthers = "Close others",// Enterprise
162
+ Delete = "Delete",// Enterprise
163
+ Print = "Print",// Enterprise
164
+ PrintAll = "PrintAll",// Enterprise
165
+ PrintScreen = "PrintScreen",// Enterprise
166
+ ManageDesktopSignals = "ManageDesktopSignals",// Enterprise
167
+ AddToChannel = "AddToChannel",// Enterprise
167
168
  Custom = "Custom"
168
169
  }
169
170
  /**Shape of the data property of a global context menu template item */
@@ -222,6 +223,40 @@ export type OpenGlobalContextMenuPayload = OpenGlobalContextMenuRequest & {
222
223
  callback: (data: GlobalContextMenuItemData, payload: OpenGlobalContextMenuPayload) => any;
223
224
  };
224
225
  export type ViewTabContextMenuTemplate = OpenFin.MenuItemTemplate<ViewTabMenuData>;
226
+ /**
227
+ * UI elements within a view tab that can be navigated to via keyboard.
228
+ */
229
+ export type ViewTabElements = 'inactive-tab' | 'active-tab' | 'inactive-tab-close-button' | 'active-tab-close-button' | 'add-tab-button';
230
+ /**
231
+ * Configuration options for view tab keyboard navigation behavior.
232
+ */
233
+ export interface ViewTabOptions {
234
+ /**
235
+ * Elements in the view tab that are able to be focused using
236
+ * arrow keys when an element in the view is selected.
237
+ * The order of the items in the array have no impact.
238
+ * Note: these are not mutually exclusive and can overlap.
239
+ * Default (when undefined): ["inactive-tab","active-tab","active-tab-close-button","inactive-tab-close-button","add-tab-button"]
240
+ */
241
+ arrowNavigation?: ViewTabElements[];
242
+ /**
243
+ * Elements in the view tab that are able to be focused using
244
+ * tab and shift+tab when an element in the view is selected.
245
+ * The order of the items in the array have no impact.
246
+ * Note: these are not mutually exclusive and can overlap.
247
+ * Default (when undefined): ["active-tab","add-tab-button"]
248
+ */
249
+ tabNavigation?: ViewTabElements[];
250
+ }
251
+ /**
252
+ * Configuration options for accessibility features in the Browser.
253
+ */
254
+ export interface AccessibilityOptions {
255
+ /**
256
+ * View tab keyboard navigation options.
257
+ */
258
+ viewTabOptions?: ViewTabOptions;
259
+ }
225
260
  /**
226
261
  * Request for opening a view tab context menu in Browser.
227
262
  */
@@ -363,6 +398,7 @@ export declare enum BrowserButtonType {
363
398
  LockUnlockPage = "LockUnlockPage",
364
399
  SaveMenu = "SaveMenu",
365
400
  SavePage = "SavePage",
401
+ Download = "Download",
366
402
  Minimise = "Minimise",
367
403
  Maximise = "Maximise",
368
404
  Close = "Close",
@@ -628,6 +664,30 @@ export interface BrowserWorkspacePlatformWindowOptions {
628
664
  minWidth?: string;
629
665
  maxWidth?: string;
630
666
  };
667
+ /**
668
+ * Accessibility options for the browser window.
669
+ * These options override the default accessibility options set at the platform or browser initialization level.
670
+ *
671
+ * @example
672
+ * ```ts
673
+ * import * as WorkspacePlatform from '@openfin/workspace-platform';
674
+ *
675
+ * const platform = WorkspacePlatform.getCurrentSync();
676
+ * const browserWin = platform.Browser.createWindow({
677
+ * ...,
678
+ * workspacePlatform: {
679
+ * ...,
680
+ * accessibilityOptions: {
681
+ * viewTabOptions: {
682
+ * arrowNavigation: ["inactive-tab", "active-tab"],
683
+ * tabNavigation: ["active-tab"]
684
+ * }
685
+ * }
686
+ * }
687
+ * });
688
+ * ```
689
+ */
690
+ accessibilityOptions?: AccessibilityOptions;
631
691
  /**
632
692
  * Use when you want to display navigation buttons in Browser toolbar. Disabled by default.
633
693
  *
@@ -1418,12 +1478,27 @@ export interface LaunchAppRequest {
1418
1478
  target?: OpenFin.EntityInfo;
1419
1479
  app: App;
1420
1480
  }
1421
- /**
1422
- * Get Themes from API
1423
- */
1424
1481
  export interface ThemeApi {
1425
- getThemes(): Promise<CustomThemes>;
1482
+ /**
1483
+ * @deprecated This method is deprecated. It is recommended to use {@link getGeneratedPalettes} instead.
1484
+ * Get the legacy themes from the platform provider.
1485
+ * @returns the legacy themes or null if the platform provider is using the new theme system.
1486
+ */
1487
+ getThemes(): Promise<CustomThemes | null>;
1488
+ /**
1489
+ * Get the generated palettes from the platform provider.
1490
+ * @returns the generated palettes.
1491
+ */
1492
+ getGeneratedPalettes(): Promise<GeneratedPalettes>;
1493
+ /**
1494
+ * Set the selected scheme for the platform provider.
1495
+ * @param newScheme the new scheme to set.
1496
+ */
1426
1497
  setSelectedScheme(newScheme: ColorSchemeOptionType): Promise<void>;
1498
+ /**
1499
+ * Get the selected scheme from the platform provider.
1500
+ * @returns the selected scheme.
1501
+ */
1427
1502
  getSelectedScheme(): Promise<ColorSchemeOptionType>;
1428
1503
  }
1429
1504
  /**
@@ -1591,6 +1666,7 @@ export interface WorkspacePlatformModule extends OpenFin.Platform {
1591
1666
  setLanguage(locale: Locale): Promise<void>;
1592
1667
  /**
1593
1668
  * Implementation for getting the notifications workspace platform configuration.
1669
+ * @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.
1594
1670
  */
1595
1671
  getNotificationsConfig(): Promise<NotificationsCustomManifestOptions | undefined>;
1596
1672
  /**
@@ -2085,6 +2161,7 @@ export interface WorkspacePlatformInitConfig {
2085
2161
  /**
2086
2162
  * Config for overriding default notifications behaviour.
2087
2163
  * Leave undefined to use OpenFin hosted Notification Center.
2164
+ * @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.
2088
2165
  */
2089
2166
  notifications?: NotificationsCustomManifestOptions;
2090
2167
  /**
@@ -2264,6 +2341,28 @@ export interface BrowserInitConfig {
2264
2341
  * that are PNGs you will need to update these assets for best results.
2265
2342
  */
2266
2343
  browserIconSize?: IconSize;
2344
+ /**
2345
+ * Default accessibility options that will be applied to all browser windows.
2346
+ * These options can be overridden at the window creation level via workspacePlatform.accessibilityOptions.
2347
+ *
2348
+ * @example
2349
+ * ```ts
2350
+ * import * as WorkspacePlatform from '@openfin/workspace-platform';
2351
+ *
2352
+ * await WorkspacePlatform.init({
2353
+ * browser: {
2354
+ * title: "My Browser",
2355
+ * accessibilityOptions: {
2356
+ * viewTabOptions: {
2357
+ * arrowNavigation: ["inactive-tab", "active-tab"],
2358
+ * tabNavigation: ["active-tab"]
2359
+ * }
2360
+ * }
2361
+ * }
2362
+ * });
2363
+ * ```
2364
+ */
2365
+ accessibilityOptions?: AccessibilityOptions;
2267
2366
  /**
2268
2367
  * Override workspace platform behavior
2269
2368
  *
@@ -2288,6 +2387,10 @@ export interface Workspace {
2288
2387
  metadata?: WorkspaceMetadata;
2289
2388
  snapshot: BrowserSnapshot;
2290
2389
  }
2390
+ export interface Collection {
2391
+ collectionId: string;
2392
+ title: string;
2393
+ }
2291
2394
  /**
2292
2395
  * Request for creating a saved workspace in persistent storage.
2293
2396
  */
@@ -14,10 +14,8 @@ export declare function updatePage({ pageId, page }: {
14
14
  export declare const addRemovedTab: (payload: TrackedTab) => Promise<void>;
15
15
  export declare const popLastRemovedTab: () => Promise<TrackedTab | undefined>;
16
16
  export declare const trackVisitedSite: (payload: Site) => Promise<void>;
17
- export declare const getRecentVisitedSites: (numOfSites?: number) => Promise<TrackedSite[] | [
18
- ]>;
19
- export declare const getFrequentlyVisitedSites: () => Promise<TrackedSite[] | [
20
- ]>;
17
+ export declare const getRecentVisitedSites: (numOfSites?: number) => Promise<TrackedSite[] | []>;
18
+ export declare const getFrequentlyVisitedSites: () => Promise<TrackedSite[] | []>;
21
19
  export declare const searchSites: (payload: {
22
20
  req: SearchSitesRequest;
23
21
  } & {
@@ -34,8 +34,8 @@ declare enum GeneralBrowserChannelActions {
34
34
  SetSelectedScheme = "set-selected-scheme",
35
35
  ShowBrowserIndicator = "show-browser-indicator",
36
36
  SetSelectedLanguage = "set-selected-language",
37
- RefreshBookmarksInternal = "refresh-bookmarks",
38
- GetLayoutsWithSelectedViewsInternal = "get-layouts-with-selected-views",
37
+ RefreshBookmarksInternal = "refresh-bookmarks",// Enterprise
38
+ GetLayoutsWithSelectedViewsInternal = "get-layouts-with-selected-views",// Enterprise
39
39
  FocusAndExpandSearchInternal = "focus-and-expand-search"
40
40
  }
41
41
  /**
@@ -56,16 +56,18 @@ export declare enum PageChannelAction {
56
56
  IsActivePageChanging = "is-active-page-changing"
57
57
  }
58
58
  export declare enum CompanionDockChannelAction {
59
- UpdateFavoriteEntries = "update-favorite-entries",
60
- UpdateContentMenu = "update-content-menu",
61
- NavigateContentMenu = "navigate-content-menu",
62
- MoreMenuCustomOptionClicked = "more-menu-custom-option-clicked"
59
+ UpdateFavoriteEntries = "update-favorite-entries",// Enterprise
60
+ UpdateContentMenu = "update-content-menu",// Enterprise
61
+ NavigateContentMenu = "navigate-content-menu",// Enterprise
62
+ MoreMenuCustomOptionClicked = "more-menu-custom-option-clicked",// Enterprise
63
+ RefreshDockCollectionMenu = "refresh-dock-collection-menu"
63
64
  }
64
65
  export declare const BrowserChannelAction: {
65
66
  UpdateFavoriteEntries: CompanionDockChannelAction.UpdateFavoriteEntries;
66
67
  UpdateContentMenu: CompanionDockChannelAction.UpdateContentMenu;
67
68
  NavigateContentMenu: CompanionDockChannelAction.NavigateContentMenu;
68
69
  MoreMenuCustomOptionClicked: CompanionDockChannelAction.MoreMenuCustomOptionClicked;
70
+ RefreshDockCollectionMenu: CompanionDockChannelAction.RefreshDockCollectionMenu;
69
71
  GetPages: PageChannelAction.GetPages;
70
72
  GetActivePageForWindow: PageChannelAction.GetActivePageForWindow;
71
73
  AttachPagesToWindow: PageChannelAction.AttachPagesToWindow;
@@ -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 {};
@@ -85,6 +85,14 @@ type WorkspaceChannelTypes = {
85
85
  'set-search-query': (payload: SearchQueryWithProviderID) => Promise<void>;
86
86
  'assign-home-search-context': (payload: Partial<HomeSearchListenerRequest['context']>) => Promise<void>;
87
87
  'set-selected-scheme': (ctx: ColorSchemeOptionType) => Promise<void>;
88
+ 'initialize-theme': (themeData: {
89
+ themePaletteSheet: string;
90
+ selectedScheme: ColorSchemeOptionType;
91
+ themePalette: {
92
+ light: string;
93
+ dark: string;
94
+ };
95
+ }) => Promise<void>;
88
96
  'get-legacy-pages': () => Promise<Page[]>;
89
97
  'get-legacy-workspaces': (payload: undefined) => Promise<LegacyWorkspace[]>;
90
98
  'register-storefront-provider': () => Promise<void>;