@gooddata/sdk-ui-pluggable-host 11.41.0-alpha.3 → 11.41.0-alpha.5

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 (100) hide show
  1. package/esm/components/FullScreenLoader.d.ts +1 -0
  2. package/esm/components/FullScreenLoader.d.ts.map +1 -0
  3. package/esm/components/HostUiContainer.d.ts +1 -0
  4. package/esm/components/HostUiContainer.d.ts.map +1 -0
  5. package/esm/components/HostUiContainer.js +16 -2
  6. package/esm/components/Root.d.ts +1 -0
  7. package/esm/components/Root.d.ts.map +1 -0
  8. package/esm/components/lib/translations.d.ts +1 -0
  9. package/esm/components/lib/translations.d.ts.map +1 -0
  10. package/esm/components/useRedirectNavigation.d.ts +1 -0
  11. package/esm/components/useRedirectNavigation.d.ts.map +1 -0
  12. package/esm/components/useRedirectTarget.d.ts +1 -0
  13. package/esm/components/useRedirectTarget.d.ts.map +1 -0
  14. package/esm/debug.d.ts +1 -0
  15. package/esm/debug.d.ts.map +1 -0
  16. package/esm/index.d.ts +1 -0
  17. package/esm/index.d.ts.map +1 -0
  18. package/esm/lib/chunkReloadGuard.d.ts +1 -0
  19. package/esm/lib/chunkReloadGuard.d.ts.map +1 -0
  20. package/esm/lib/hostNotifications.d.ts +1 -0
  21. package/esm/lib/hostNotifications.d.ts.map +1 -0
  22. package/esm/lib/isProduction.d.ts +1 -0
  23. package/esm/lib/isProduction.d.ts.map +1 -0
  24. package/esm/loader/lastVisitedApp.d.ts +1 -0
  25. package/esm/loader/lastVisitedApp.d.ts.map +1 -0
  26. package/esm/loader/localLoader.d.ts +1 -0
  27. package/esm/loader/localLoader.d.ts.map +1 -0
  28. package/esm/loader/pluggableApplicationsLoader.d.ts +1 -0
  29. package/esm/loader/pluggableApplicationsLoader.d.ts.map +1 -0
  30. package/esm/loader/redirectLogic.d.ts +1 -0
  31. package/esm/loader/redirectLogic.d.ts.map +1 -0
  32. package/esm/loader/remoteLoader.d.ts +1 -0
  33. package/esm/loader/remoteLoader.d.ts.map +1 -0
  34. package/esm/loader/remoteUrlSecurity.d.ts +1 -0
  35. package/esm/loader/remoteUrlSecurity.d.ts.map +1 -0
  36. package/esm/loader/routing.d.ts +1 -0
  37. package/esm/loader/routing.d.ts.map +1 -0
  38. package/esm/platformContext/backend.d.ts +1 -0
  39. package/esm/platformContext/backend.d.ts.map +1 -0
  40. package/esm/platformContext/bootstrap.d.ts +1 -0
  41. package/esm/platformContext/bootstrap.d.ts.map +1 -0
  42. package/esm/platformContext/loadPlatformContext.d.ts +1 -0
  43. package/esm/platformContext/loadPlatformContext.d.ts.map +1 -0
  44. package/esm/platformContext/tigerNotAuthenticatedHandler.d.ts +1 -0
  45. package/esm/platformContext/tigerNotAuthenticatedHandler.d.ts.map +1 -0
  46. package/esm/platformContext/types.d.ts +1 -0
  47. package/esm/platformContext/types.d.ts.map +1 -0
  48. package/esm/platformContext/useLoadPlatformContext.d.ts +1 -0
  49. package/esm/platformContext/useLoadPlatformContext.d.ts.map +1 -0
  50. package/esm/platformContext/useWorkspaceColorPalette.d.ts +1 -0
  51. package/esm/platformContext/useWorkspaceColorPalette.d.ts.map +1 -0
  52. package/esm/platformContext/useWorkspacePermissions.d.ts +1 -0
  53. package/esm/platformContext/useWorkspacePermissions.d.ts.map +1 -0
  54. package/esm/platformContext/useWorkspaceSettings.d.ts +1 -0
  55. package/esm/platformContext/useWorkspaceSettings.d.ts.map +1 -0
  56. package/esm/platformContext/useWorkspaceTheme.d.ts +1 -0
  57. package/esm/platformContext/useWorkspaceTheme.d.ts.map +1 -0
  58. package/esm/platformContext/waitForInjectedApiToken.d.ts +1 -0
  59. package/esm/platformContext/waitForInjectedApiToken.d.ts.map +1 -0
  60. package/esm/registry/pluggableApplicationsRegistry.d.ts +1 -0
  61. package/esm/registry/pluggableApplicationsRegistry.d.ts.map +1 -0
  62. package/esm/types/lifecycle.d.ts +1 -0
  63. package/esm/types/lifecycle.d.ts.map +1 -0
  64. package/esm/ui/DefaultHostUi.d.ts +1 -0
  65. package/esm/ui/DefaultHostUi.d.ts.map +1 -0
  66. package/esm/ui/DefaultHostUi.js +10 -3
  67. package/esm/ui/GenAIChat.d.ts +1 -0
  68. package/esm/ui/GenAIChat.d.ts.map +1 -0
  69. package/esm/ui/HostChrome.d.ts +7 -1
  70. package/esm/ui/HostChrome.d.ts.map +1 -0
  71. package/esm/ui/HostChrome.js +32 -6
  72. package/esm/ui/HostIntlProvider.d.ts +1 -0
  73. package/esm/ui/HostIntlProvider.d.ts.map +1 -0
  74. package/esm/ui/HostNotificationDispatcher.d.ts +1 -0
  75. package/esm/ui/HostNotificationDispatcher.d.ts.map +1 -0
  76. package/esm/ui/PluggableApplicationRenderer.d.ts +3 -1
  77. package/esm/ui/PluggableApplicationRenderer.d.ts.map +1 -0
  78. package/esm/ui/PluggableApplicationRenderer.js +13 -2
  79. package/esm/ui/SemanticSearch.d.ts +1 -0
  80. package/esm/ui/SemanticSearch.d.ts.map +1 -0
  81. package/esm/ui/WorkspacePicker.d.ts +1 -0
  82. package/esm/ui/WorkspacePicker.d.ts.map +1 -0
  83. package/esm/ui/appMenuItems.d.ts +2 -0
  84. package/esm/ui/appMenuItems.d.ts.map +1 -0
  85. package/esm/ui/appMenuItems.js +1 -1
  86. package/esm/ui/chromeHelpers.d.ts +1 -0
  87. package/esm/ui/chromeHelpers.d.ts.map +1 -0
  88. package/esm/ui/hostChromeBem.d.ts +1 -0
  89. package/esm/ui/hostChromeBem.d.ts.map +1 -0
  90. package/esm/ui/resolveHostUiModule.d.ts +1 -0
  91. package/esm/ui/resolveHostUiModule.d.ts.map +1 -0
  92. package/esm/ui/useHostChromeChat.d.ts +1 -0
  93. package/esm/ui/useHostChromeChat.d.ts.map +1 -0
  94. package/esm/ui/useHostChromePricing.d.ts +1 -0
  95. package/esm/ui/useHostChromePricing.d.ts.map +1 -0
  96. package/esm/ui/useHostChromeSearch.d.ts +1 -0
  97. package/esm/ui/useHostChromeSearch.d.ts.map +1 -0
  98. package/esm/ui/useHostChromeWorkspaceFeatures.d.ts +1 -0
  99. package/esm/ui/useHostChromeWorkspaceFeatures.d.ts.map +1 -0
  100. package/package.json +17 -17
@@ -1 +1,2 @@
1
1
  export declare function FullScreenLoader(): import("react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=FullScreenLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FullScreenLoader.d.ts","sourceRoot":"","sources":["../../src/components/FullScreenLoader.tsx"],"names":[],"mappings":"AAOA,wBAAgB,gBAAgB,4CAM/B"}
@@ -14,3 +14,4 @@ export interface IHostUiContainerProps {
14
14
  * updates (context, apps, pathname) via the host mount handle.
15
15
  */
16
16
  export declare function HostUiContainer({ ctx, apps, pathname, routerNavigate }: IHostUiContainerProps): import("react/jsx-runtime").JSX.Element;
17
+ //# sourceMappingURL=HostUiContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HostUiContainer.d.ts","sourceRoot":"","sources":["../../src/components/HostUiContainer.tsx"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,KAAK,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAEH,KAAK,gBAAgB,EAExB,MAAM,2CAA2C,CAAC;AAWnD,OAAO,wBAAwB,CAAC;AAEhC,MAAM,WAAW,qBAAqB;IAClC,GAAG,EAAE,gBAAgB,CAAC;IACtB,IAAI,EAAE,gCAAgC,EAAE,CAAC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,gBAAgB,CAAC;CACpC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,qBAAqB,2CAsL7F"}
@@ -24,12 +24,18 @@ export function HostUiContainer({ ctx, apps, pathname, routerNavigate }) {
24
24
  const [hostReady, setHostReady] = useState(false);
25
25
  const latestMountStateRef = useAutoupdateRef({ ctx, apps, pathname });
26
26
  const [headerOptions, setHeaderOptions] = useState(undefined);
27
+ const [pageTitle, setPageTitle] = useState(undefined);
27
28
  const activeAppRef = useAutoupdateRef(activeInternalApplication);
28
29
  const onHeaderChange = useCallback((appId, header) => {
29
30
  if (activeAppRef.current?.id === appId) {
30
31
  setHeaderOptions(header);
31
32
  }
32
33
  }, [activeAppRef]);
34
+ const onDocumentTitleChange = useCallback((appId, title) => {
35
+ if (activeAppRef.current?.id === appId) {
36
+ setPageTitle(title);
37
+ }
38
+ }, [activeAppRef]);
33
39
  // Stable navigation callbacks that always use the latest router navigate
34
40
  const navigateRef = useAutoupdateRef(routerNavigate);
35
41
  const navigate = useCallback((url) => {
@@ -110,6 +116,13 @@ export function HostUiContainer({ ctx, apps, pathname, routerNavigate }) {
110
116
  }
111
117
  handleRef.current?.updateHeader?.(headerOptions);
112
118
  }, [hostReady, headerOptions]);
119
+ // Push the active application's page title to the host UI whenever it changes
120
+ useEffect(() => {
121
+ if (!hostReady) {
122
+ return;
123
+ }
124
+ handleRef.current?.updateDocumentTitle?.(pageTitle);
125
+ }, [hostReady, pageTitle]);
113
126
  // Track app navigation and page views when the active application changes.
114
127
  // Also clear header options on app switch so stale customizations don't leak.
115
128
  const prevAppIdRef = useRef(undefined);
@@ -123,6 +136,7 @@ export function HostUiContainer({ ctx, apps, pathname, routerNavigate }) {
123
136
  }
124
137
  prevAppIdRef.current = activeId;
125
138
  setHeaderOptions(undefined);
139
+ setPageTitle(undefined);
126
140
  }
127
141
  }, [activeInternalApplication, pathname]);
128
142
  // Render the active pluggable application into the host UI's app container
@@ -131,11 +145,11 @@ export function HostUiContainer({ ctx, apps, pathname, routerNavigate }) {
131
145
  return;
132
146
  }
133
147
  if (activeInternalApplication) {
134
- appRootRef.current.render(_jsx(HostIntlProvider, { locale: resolveLocale(ctx.preferredLocale), children: _jsx(PluggableApplicationRenderer, { app: activeInternalApplication, ctx: ctx, pathname: pathname, onHeaderChange: onHeaderChange }, activeInternalApplication.id) }));
148
+ appRootRef.current.render(_jsx(HostIntlProvider, { locale: resolveLocale(ctx.preferredLocale), children: _jsx(PluggableApplicationRenderer, { app: activeInternalApplication, ctx: ctx, pathname: pathname, onHeaderChange: onHeaderChange, onDocumentTitleChange: onDocumentTitleChange }, activeInternalApplication.id) }));
135
149
  }
136
150
  else {
137
151
  appRootRef.current.render(null);
138
152
  }
139
- }, [hostReady, activeInternalApplication, ctx, onHeaderChange, pathname]);
153
+ }, [hostReady, activeInternalApplication, ctx, onHeaderChange, onDocumentTitleChange, pathname]);
140
154
  return _jsx("div", { ref: containerRef, className: "gd-host-ui-container" });
141
155
  }
@@ -14,3 +14,4 @@ export interface IRootCallbacks {
14
14
  export declare function Root({ callbacks }: {
15
15
  callbacks?: IRootCallbacks;
16
16
  }): import("react/jsx-runtime").JSX.Element;
17
+ //# sourceMappingURL=Root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Root.d.ts","sourceRoot":"","sources":["../../src/components/Root.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAYlF,OAAO,sBAAsB,CAAC;AAE9B,OAAO,aAAa,CAAC;AAIrB;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACtD;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE;IAAE,SAAS,CAAC,EAAE,cAAc,CAAA;CAAE,2CAqBjE"}
@@ -5,3 +5,4 @@ export declare const DEFAULT_MESSAGES: Record<string, ITranslations>;
5
5
  * Memoized to cache promises and prevent duplicate async imports.
6
6
  */
7
7
  export declare const resolveMessages: (locale: string) => Promise<ITranslations>;
8
+ //# sourceMappingURL=translations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/components/lib/translations.ts"],"names":[],"mappings":"AAIA,OAAO,EAIH,KAAK,aAAa,EAGrB,MAAM,kBAAkB,CAAC;AAuC1B,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAK1D,CAAC;AAyBF;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,CAAoC,CAAC"}
@@ -5,3 +5,4 @@ import { type RedirectTargetState } from "./useRedirectTarget.js";
5
5
  * Deduplicates consecutive redirects to the same URL by tracking the last navigated path.
6
6
  */
7
7
  export declare function useRedirectNavigation(redirect: RedirectTargetState, navigate: NavigateFunction): void;
8
+ //# sourceMappingURL=useRedirectNavigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRedirectNavigation.d.ts","sourceRoot":"","sources":["../../src/components/useRedirectNavigation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIrD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAElE;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAgBrG"}
@@ -17,3 +17,4 @@ export type RedirectTargetState = {
17
17
  * Resolves the redirect target for the current URL and permission context.
18
18
  */
19
19
  export declare function useRedirectTarget(apps: PluggableApplicationRegistryItem[], ctx: IPlatformContext, pathname: string): RedirectTargetState;
20
+ //# sourceMappingURL=useRedirectTarget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRedirectTarget.d.ts","sourceRoot":"","sources":["../../src/components/useRedirectTarget.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAMlF,MAAM,MAAM,mBAAmB,GACzB;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GACpB;IAAE,KAAK,EAAE,QAAQ,CAAA;CAAE,GACnB;IAAE,KAAK,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GACtB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,IAAI,EAAE,gCAAgC,EAAE,EACxC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GACjB,mBAAmB,CA2DrB"}
package/esm/debug.d.ts CHANGED
@@ -7,3 +7,4 @@ export declare function debugLog(message: string, ...args: unknown[]): void;
7
7
  * when available and falling back to Date.now().
8
8
  */
9
9
  export declare function now(): number;
10
+ //# sourceMappingURL=debug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAKlE;AAED;;;GAGG;AACH,wBAAgB,GAAG,IAAI,MAAM,CAE5B"}
package/esm/index.d.ts CHANGED
@@ -9,3 +9,4 @@ export { type IAppLifecycleCallbacks } from "./types/lifecycle.js";
9
9
  export { STALE_CHUNK_RELOAD_PARAM, installPreloadErrorHandler, installVersionWatcher, reloadForStaleChunks, setStaleChunkReloadListener, type IStaleChunkReloadInfo, type IVersionWatcherOptions, type StaleChunkReloadListener, } from "./lib/chunkReloadGuard.js";
10
10
  export { dispatchHostNotification } from "./lib/hostNotifications.js";
11
11
  export { setHostPricingExtension, type UseHostPricingExtension, type IHostChromePricing, } from "./ui/useHostChromePricing.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACjF,OAAO,EAAE,gCAAgC,EAAE,MAAM,6CAA6C,CAAC;AAC/F,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAE9F,OAAO,EACH,+BAA+B,EAC/B,KAAK,+BAA+B,GACvC,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6CAA6C,CAAC;AACxF,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAExF,OAAO,EAAE,IAAI,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAEnE,OAAO,EACH,wBAAwB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,GAChC,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EACH,uBAAuB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GAC1B,MAAM,8BAA8B,CAAC"}
@@ -87,3 +87,4 @@ export interface IVersionWatcherOptions {
87
87
  * @alpha
88
88
  */
89
89
  export declare function installVersionWatcher({ url, intervalMs, onNewDeployment }: IVersionWatcherOptions): void;
90
+ //# sourceMappingURL=chunkReloadGuard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chunkReloadGuard.d.ts","sourceRoot":"","sources":["../../src/lib/chunkReloadGuard.ts"],"names":[],"mappings":"AAsBA;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IAClC,2EAAyE;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,IAAI,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAoC7E;;;;;;;;;;GAUG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,wBAAwB,GAAG,SAAS,GAAG,IAAI,CAEhG;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,UAAU,CAAC;AAEhD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CA2BzD;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,IAAI,IAAI,CAkBjD;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACnC,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,EAClC,GAAG,EACH,UAAuB,EACvB,eAAe,EAClB,EAAE,sBAAsB,GAAG,IAAI,CAsE/B"}
@@ -18,3 +18,4 @@ export declare function dispatchHostNotification(notification: IHostUiNotificati
18
18
  * on unmount. On register, any queued notifications are flushed in arrival order.
19
19
  */
20
20
  export declare function setActiveHostHandle(handle: IHostUiMountHandle | undefined): void;
21
+ //# sourceMappingURL=hostNotifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostNotifications.d.ts","sourceRoot":"","sources":["../../src/lib/hostNotifications.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAiB9G;;;;;;;;;GASG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAShF;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,GAAG,IAAI,CAShF"}
@@ -10,3 +10,4 @@
10
10
  * @internal
11
11
  */
12
12
  export declare const isProduction: boolean;
13
+ //# sourceMappingURL=isProduction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isProduction.d.ts","sourceRoot":"","sources":["../../src/lib/isProduction.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,YAAY,EAAE,OAAyD,CAAC"}
@@ -9,3 +9,4 @@ export declare function getLastVisitedApp(scope: ApplicationScope): string | und
9
9
  * Silently swallows errors (e.g. storage full, private browsing).
10
10
  */
11
11
  export declare function setLastVisitedApp(scope: ApplicationScope, appId: string): void;
12
+ //# sourceMappingURL=lastVisitedApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lastVisitedApp.d.ts","sourceRoot":"","sources":["../../src/loader/lastVisitedApp.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAuB5D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAM7E;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAQ9E"}
@@ -14,3 +14,4 @@ export type LocalPluggableApplicationLoader = () => Promise<{
14
14
  */
15
15
  export declare function registerLocalApplicationLoaders(loaders: Record<string, LocalPluggableApplicationLoader>): void;
16
16
  export declare function loadLocalPluggableApplication(moduleId: string): Promise<IPluggableApp>;
17
+ //# sourceMappingURL=localLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localLoader.d.ts","sourceRoot":"","sources":["../../src/loader/localLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAE/E;;GAEG;AACH,MAAM,MAAM,+BAA+B,GAAG,MAAM,OAAO,CAAC;IAGxD,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC;IAClC,YAAY,CAAC,EAAE,aAAa,CAAC;CAChC,CAAC,CAAC;AAaH;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC3C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,+BAA+B,CAAC,GACzD,IAAI,CAGN;AAcD,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAqBtF"}
@@ -11,3 +11,4 @@ export declare function registerAppLifecycleCallbacks(callbacks: IAppLifecycleCa
11
11
  export declare function getAppLifecycleCallbacks(): IAppLifecycleCallbacks | undefined;
12
12
  export declare function preloadPluggableApplication(app: PluggableApplicationRegistryItem): void;
13
13
  export declare function loadPluggableApplication(app: PluggableApplicationRegistryItem): Promise<IPluggableApp>;
14
+ //# sourceMappingURL=pluggableApplicationsLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluggableApplicationsLoader.d.ts","sourceRoot":"","sources":["../../src/loader/pluggableApplicationsLoader.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,gCAAgC,EAIxC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAG/E,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAOpE;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,sBAAsB,GAAG,IAAI,CAErF;AAED,wBAAgB,wBAAwB,IAAI,sBAAsB,GAAG,SAAS,CAE7E;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,gCAAgC,GAAG,IAAI,CAwBvF;AAED,wBAAsB,wBAAwB,CAC1C,GAAG,EAAE,gCAAgC,GACtC,OAAO,CAAC,aAAa,CAAC,CAgBxB"}
@@ -28,3 +28,4 @@ export interface IResolveRedirectTargetOptions {
28
28
  * @throws {Error} Unexpected failure (show generic error screen)
29
29
  */
30
30
  export declare function resolveRedirectTarget({ apps, ctx, pathname, fetchFirstWorkspaceId }: IResolveRedirectTargetOptions): Promise<string | null>;
31
+ //# sourceMappingURL=redirectLogic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redirectLogic.d.ts","sourceRoot":"","sources":["../../src/loader/redirectLogic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAyB,KAAK,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACnG,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAOlF;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACvC,YAAY,OAAO,EAAE,MAAM,EAG1B;CACJ;AAED,MAAM,WAAW,6BAA6B;IAC1C;;;OAGG;IACH,IAAI,EAAE,gCAAgC,EAAE,CAAC;IACzC,GAAG,EAAE,gBAAgB,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,2DAA2D;IAC3D,qBAAqB,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC5D;AAqFD;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CAAC,EACxC,IAAI,EACJ,GAAG,EACH,QAAQ,EACR,qBAAqB,EACxB,EAAE,6BAA6B,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoExD"}
@@ -3,3 +3,4 @@ import { type IPluggableApp, type IHostUiModule } from "@gooddata/sdk-pluggable-
3
3
  export declare function loadRemotePluggableApplication(remote: IRemotePluggableApplicationModule): Promise<IPluggableApp>;
4
4
  export declare function loadRemoteHostUiModule(remote: IRemotePluggableApplicationModule): Promise<IHostUiModule>;
5
5
  export declare function preloadRemotePluggableApplication(remote: IRemotePluggableApplicationModule): Promise<IPluggableApp>;
6
+ //# sourceMappingURL=remoteLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remoteLoader.d.ts","sourceRoot":"","sources":["../../src/loader/remoteLoader.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,iCAAiC,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,MAAM,2CAA2C,CAAC;AA4GnG,wBAAgB,8BAA8B,CAC1C,MAAM,EAAE,iCAAiC,GAC1C,OAAO,CAAC,aAAa,CAAC,CAiBxB;AA0BD,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,iCAAiC,GAC1C,OAAO,CAAC,aAAa,CAAC,CAGxB;AAED,wBAAgB,iCAAiC,CAC7C,MAAM,EAAE,iCAAiC,GAC1C,OAAO,CAAC,aAAa,CAAC,CA8BxB"}
@@ -1 +1,2 @@
1
1
  export declare function isAllowedRemoteHostname(url: string): boolean;
2
+ //# sourceMappingURL=remoteUrlSecurity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remoteUrlSecurity.d.ts","sourceRoot":"","sources":["../../src/loader/remoteUrlSecurity.ts"],"names":[],"mappings":"AAmBA,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAO5D"}
@@ -20,3 +20,4 @@ export declare function substituteExternalUrlPlaceholders(url: string, ctx: IPla
20
20
  export declare function getApplicationHref(app: PluggableApplicationRegistryItem, ctx: IPlatformContext, pathname?: string): string;
21
21
  export declare function isInternalAppRouteActive(app: PluggableApplicationRegistryItem, ctx: IPlatformContext, pathname: string): boolean;
22
22
  export declare function getActiveInternalApplication(apps: PluggableApplicationRegistryItem[], ctx: IPlatformContext, pathname: string): PluggableApplicationRegistryItem | undefined;
23
+ //# sourceMappingURL=routing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.d.ts","sourceRoot":"","sources":["../../src/loader/routing.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,gCAAgC,EAIxC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAQlF;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAYtF;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAEvF;AA4CD;;;;;GAKG;AACH,wBAAgB,iCAAiC,CAC7C,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,gBAAgB,EACrB,QAAQ,CAAC,EAAE,MAAM,GAClB,MAAM,CAMR;AAED,wBAAgB,kBAAkB,CAC9B,GAAG,EAAE,gCAAgC,EACrC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,CAAC,EAAE,MAAM,GAClB,MAAM,CAWR;AAED,wBAAgB,wBAAwB,CACpC,GAAG,EAAE,gCAAgC,EACrC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GACjB,OAAO,CAQT;AAED,wBAAgB,4BAA4B,CACxC,IAAI,EAAE,gCAAgC,EAAE,EACxC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GACjB,gCAAgC,GAAG,SAAS,CAK9C"}
@@ -42,3 +42,4 @@ export declare function getAuthCredentials(): IAuthCredentials;
42
42
  export declare function setNotAuthenticatedHandler(handler: NotAuthenticatedHandler): void;
43
43
  export declare function setApiToken(token: string): void;
44
44
  export declare function setJwt(jwt: string, secondsBeforeTokenExpirationToCallReminder?: number): void;
45
+ //# sourceMappingURL=backend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../../src/platformContext/backend.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AASlG,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAIlF,MAAM,WAAW,qBAAqB;IAClC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC5B,UAAU,EAAE,MAAM,kBAAkB,CAAC;IACrC,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;IAC3C,0BAA0B,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,IAAI,CAAC;IACvE,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,0CAA0C,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CACtF;AAiBD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,eAAe,CAiGzF;AAYD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAExD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAEjE;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,kBAAkB,CAE/C;AAED,wBAAgB,kBAAkB,IAAI,gBAAgB,CAErD;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAEjF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,0CAA0C,CAAC,EAAE,MAAM,GAAG,IAAI,CAE7F"}
@@ -13,3 +13,4 @@ export interface IBootstrapResult {
13
13
  }
14
14
  export declare const PLATFORM_CONTEXT_VERSION: IPlatformContext["version"];
15
15
  export declare function bootstrapApplication(backend: IAnalyticalBackend): Promise<IBootstrapResult>;
16
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/platformContext/bootstrap.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,MAAM,EAAE,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EACH,KAAK,aAAa,EAClB,KAAK,wBAAwB,EAC7B,KAAK,gBAAgB,EACrB,WAAW,EACd,MAAM,2CAA2C,CAAC;AAsBnD,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC/B,YAAY,EAAE,gBAAgB,CAAC,cAAc,CAAC,CAAC;IAC/C,YAAY,EAAE,aAAa,GAAG,SAAS,CAAC;IACxC,uBAAuB,EAAE,wBAAwB,CAAC;IAClD,YAAY,EAAE,sBAAsB,EAAE,CAAC;IACvC,aAAa,EAAE,cAAc,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,wBAAwB,EAAE,gBAAgB,CAAC,SAAS,CAAS,CAAC;AA4B3E,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA6FjG"}
@@ -16,3 +16,4 @@ export interface ILoadPlatformContextOptions {
16
16
  callbacks?: ILoadPlatformContextCallbacks;
17
17
  }
18
18
  export declare function loadPlatformContext(options?: ILoadPlatformContextOptions): Promise<IBackendPlatformContext>;
19
+ //# sourceMappingURL=loadPlatformContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadPlatformContext.d.ts","sourceRoot":"","sources":["../../src/platformContext/loadPlatformContext.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAMlF,OAAO,EAAE,KAAK,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAE1D,qBAAa,4BAA6B,SAAQ,KAAK;IACnD,cAGC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,2BAA2B;IACxC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,SAAS,CAAC,EAAE,6BAA6B,CAAC;CAC7C;AAQD,wBAAsB,mBAAmB,CACrC,OAAO,GAAE,2BAAgC,GAC1C,OAAO,CAAC,uBAAuB,CAAC,CA2ClC"}
@@ -1,3 +1,4 @@
1
1
  import { type IAuthenticationContext, type NotAuthenticated } from "@gooddata/sdk-backend-spi";
2
2
  /** Not authenticated handler will be called every time 401 is returned from Tiger backend. */
3
3
  export declare function createNotAuthenticatedHandler(externalProviderId?: string): (ctx: IAuthenticationContext, err: NotAuthenticated) => void;
4
+ //# sourceMappingURL=tigerNotAuthenticatedHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tigerNotAuthenticatedHandler.d.ts","sourceRoot":"","sources":["../../src/platformContext/tigerNotAuthenticatedHandler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,sBAAsB,EAAE,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAM/F,8FAA8F;AAE9F,wBAAgB,6BAA6B,CACzC,kBAAkB,CAAC,EAAE,MAAM,GAC5B,CAAC,GAAG,EAAE,sBAAsB,EAAE,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAY9D"}
@@ -15,3 +15,4 @@ export type IRoutePlatformContext = Pick<IPlatformContext, RoutePlatformContextF
15
15
  export type IBackendPlatformContext = Omit<IPlatformContext, RoutePlatformContextFields>;
16
16
  export type IPlatformContextLoadResult<TContext> = IPlatformContextLoadingResult | IPlatformContextReadyResult<TContext> | IPlatformContextErrorResult;
17
17
  export {};
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/platformContext/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAElF,MAAM,WAAW,6BAA6B;IAC1C,KAAK,EAAE,SAAS,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B,CAAC,QAAQ;IACjD,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,2BAA2B;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,KAAK,0BAA0B,GACzB,oBAAoB,GACpB,yBAAyB,GACzB,sBAAsB,GACtB,mBAAmB,GACnB,cAAc,GACd,UAAU,GACV,iBAAiB,CAAC;AAExB,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;AACvF,MAAM,MAAM,uBAAuB,GAAG,IAAI,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC;AAEzF,MAAM,MAAM,0BAA0B,CAAC,QAAQ,IACzC,6BAA6B,GAC7B,2BAA2B,CAAC,QAAQ,CAAC,GACrC,2BAA2B,CAAC"}
@@ -33,3 +33,4 @@ export declare const BackendPlatformContextProvider: IBackendPlatformContextProv
33
33
  * @alpha
34
34
  */
35
35
  export declare function registerPlatformContextCallbacks(callbacks: ILoadPlatformContextCallbacks): void;
36
+ //# sourceMappingURL=useLoadPlatformContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLoadPlatformContext.d.ts","sourceRoot":"","sources":["../../src/platformContext/useLoadPlatformContext.ts"],"names":[],"mappings":"AAOA,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAM3G,OAAO,EACH,KAAK,6BAA6B,EAGrC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACH,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,EAElC,MAAM,YAAY,CAAC;AAYpB;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,IAAI,0BAA0B,CAAC,gBAAgB,CAAC,CA0ErF;AAED;;;;GAIG;AACH,MAAM,WAAW,+BAA+B;IAC5C,YAAY,CAAC,SAAS,EAAE,6BAA6B,GAAG,IAAI,CAAC;IAC7D,SAAS,EAAE,MAAM,QAAQ,CAAC,0BAA0B,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC/E,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,MAAM,IAAI,CAAC;IAChD,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAmED;;GAEG;AACH,eAAO,MAAM,8BAA8B,EAAE,+BACA,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAAC,SAAS,EAAE,6BAA6B,GAAG,IAAI,CAE/F"}
@@ -15,3 +15,4 @@ type WorkspaceColorPaletteState = {
15
15
  };
16
16
  export declare function useWorkspaceColorPalette(backend: IAnalyticalBackend | undefined, workspaceId: string | undefined): WorkspaceColorPaletteState;
17
17
  export {};
18
+ //# sourceMappingURL=useWorkspaceColorPalette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspaceColorPalette.d.ts","sourceRoot":"","sources":["../../src/platformContext/useWorkspaceColorPalette.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,KAAK,0BAA0B,GACzB;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GACpB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,YAAY,EAAE,aAAa,GAAG,SAAS,CAAA;CAAE,GAC3D;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GACtB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,wBAAgB,wBAAwB,CACpC,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,WAAW,EAAE,MAAM,GAAG,SAAS,GAChC,0BAA0B,CAsC5B"}
@@ -24,3 +24,4 @@ type WorkspacePermissionsState = {
24
24
  */
25
25
  export declare function useWorkspacePermissions(backend: IAnalyticalBackend | undefined, workspaceId: string | undefined): WorkspacePermissionsState;
26
26
  export {};
27
+ //# sourceMappingURL=useWorkspacePermissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspacePermissions.d.ts","sourceRoot":"","sources":["../../src/platformContext/useWorkspacePermissions.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE,KAAK,yBAAyB,GACxB;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GACpB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,qBAAqB,CAAA;CAAE,GACtD;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GACtB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACnC,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,WAAW,EAAE,MAAM,GAAG,SAAS,GAChC,yBAAyB,CA2C3B"}
@@ -23,3 +23,4 @@ type WorkspaceSettingsState = {
23
23
  */
24
24
  export declare function useWorkspaceSettings(backend: IAnalyticalBackend | undefined, workspaceId: string | undefined): WorkspaceSettingsState;
25
25
  export {};
26
+ //# sourceMappingURL=useWorkspaceSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspaceSettings.d.ts","sourceRoot":"","sources":["../../src/platformContext/useWorkspaceSettings.ts"],"names":[],"mappings":"AAIA,OAAO,EAEH,KAAK,kBAAkB,EACvB,KAAK,sBAAsB,EAC9B,MAAM,2BAA2B,CAAC;AAEnC,KAAK,sBAAsB,GACrB;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GACpB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,sBAAsB,CAAA;CAAE,GACpD;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GACtB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAChC,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,WAAW,EAAE,MAAM,GAAG,SAAS,GAChC,sBAAsB,CAqCxB"}
@@ -15,3 +15,4 @@ type WorkspaceThemeState = {
15
15
  };
16
16
  export declare function useWorkspaceTheme(backend: IAnalyticalBackend | undefined, workspaceId: string | undefined): WorkspaceThemeState;
17
17
  export {};
18
+ //# sourceMappingURL=useWorkspaceTheme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkspaceTheme.d.ts","sourceRoot":"","sources":["../../src/platformContext/useWorkspaceTheme.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,KAAK,mBAAmB,GAClB;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,GACpB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC7C;IAAE,KAAK,EAAE,WAAW,CAAA;CAAE,GACtB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,wBAAgB,iBAAiB,CAC7B,OAAO,EAAE,kBAAkB,GAAG,SAAS,EACvC,WAAW,EAAE,MAAM,GAAG,SAAS,GAChC,mBAAmB,CAqCrB"}
@@ -24,3 +24,4 @@ export declare function shouldWaitForInjectedApiToken(): boolean;
24
24
  * Resolves once a valid token has been applied. Rejects if `signal` aborts.
25
25
  */
26
26
  export declare function waitForInjectedApiToken(signal?: AbortSignal): Promise<void>;
27
+ //# sourceMappingURL=waitForInjectedApiToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"waitForInjectedApiToken.d.ts","sourceRoot":"","sources":["../../src/platformContext/waitForInjectedApiToken.ts"],"names":[],"mappings":"AA6BA;;;;;;;GAOG;AACH,wBAAgB,6BAA6B,IAAI,OAAO,CAQvD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,uBAAuB,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DjF"}
@@ -53,3 +53,4 @@ export declare function resolveApplications({ localApps, remoteRegistry, ctx, sc
53
53
  */
54
54
  export declare function usePluggableApplications(ctx: IPlatformContext): PluggableApplicationRegistryItem[];
55
55
  export {};
56
+ //# sourceMappingURL=pluggableApplicationsRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pluggableApplicationsRegistry.d.ts","sourceRoot":"","sources":["../../src/registry/pluggableApplicationsRegistry.tsx"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,gBAAgB,EAKrB,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,mCAAmC,EAE3C,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEH,KAAK,gBAAgB,EACxB,MAAM,2CAA2C,CAAC;AAMnD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,kCAAkC,GAAG,IAAI,CAE5F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,GAAG,mCAAmC,GAAG,SAAS,CAaxG;AAyMD,UAAU,2BAA2B;IACjC;;OAEG;IACH,SAAS,EAAE,gCAAgC,EAAE,CAAC;IAC9C;;OAEG;IACH,cAAc,EAAE,mCAAmC,GAAG,SAAS,CAAC;IAChE;;OAEG;IACH,GAAG,EAAE,gBAAgB,CAAC;IACtB;;OAEG;IACH,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACvC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,EAChC,SAAS,EACT,cAAc,EACd,GAAG,EACH,KAAK,EACR,EAAE,2BAA2B,GAAG,gCAAgC,EAAE,CAelE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,gCAAgC,EAAE,CAWlG"}
@@ -16,3 +16,4 @@ export interface IAppLifecycleCallbacks {
16
16
  onUnmounted?: (appId: string) => void;
17
17
  createTelemetryCallbacks?: (appId: string) => IPluggableAppTelemetryCallbacks;
18
18
  }
19
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/types/lifecycle.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,2CAA2C,CAAC;AAEjG;;GAEG;AACH,MAAM,WAAW,sBAAsB;IAEnC,eAAe,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAG/C,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAGxC,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACjE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,gBAAgB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9D,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,+BAA+B,CAAC;CACjF"}
@@ -10,3 +10,4 @@ import "./DefaultHostUi.scss";
10
10
  * framework-agnostic and ensuring consistent behavior for both local and remote UI modules.
11
11
  */
12
12
  export declare const defaultHostUiModule: IHostUiModule;
13
+ //# sourceMappingURL=DefaultHostUi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DefaultHostUi.d.ts","sourceRoot":"","sources":["../../src/ui/DefaultHostUi.tsx"],"names":[],"mappings":"AAQA,OAAO,EAEH,KAAK,aAAa,EAKrB,MAAM,2CAA2C,CAAC;AAInD,OAAO,sBAAsB,CAAC;AAgK9B;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,EAAE,aAEjC,CAAC"}
@@ -12,17 +12,18 @@ function HostUiBridge({ initialCtx, initialApps, initialPathname, navigate, repl
12
12
  const [pathname, setPathname] = useState(initialPathname);
13
13
  const [headerOptions, setHeaderOptions] = useState(undefined);
14
14
  const [notification, setNotification] = useState(null);
15
+ const [pageTitle, setPageTitle] = useState(undefined);
15
16
  const appContainerRef = useRef(null);
16
17
  // Layout effect runs in the same synchronous commit as flushSync.
17
18
  useLayoutEffect(() => {
18
- onReady(setCtx, setApps, setPathname, setHeaderOptions, setNotification);
19
+ onReady(setCtx, setApps, setPathname, setHeaderOptions, setNotification, setPageTitle);
19
20
  if (appContainerRef.current) {
20
21
  onAppContainerReady(appContainerRef.current);
21
22
  }
22
23
  // Only call once on mount
23
24
  // eslint-disable-next-line react-hooks/exhaustive-deps
24
25
  }, []);
25
- return (_jsx(HostChrome, { ctx: ctx, resolvedApplications: apps, pathname: pathname, onNavigate: navigate, onReplace: replace, headerOptions: headerOptions, notification: notification, children: _jsx("div", { ref: appContainerRef, className: e("app-container") }) }));
26
+ return (_jsx(HostChrome, { ctx: ctx, resolvedApplications: apps, pathname: pathname, onNavigate: navigate, onReplace: replace, headerOptions: headerOptions, notification: notification, appPageTitle: pageTitle, children: _jsx("div", { ref: appContainerRef, className: e("app-container") }) }));
26
27
  }
27
28
  // ---------------------------------------------------------------------------
28
29
  // Imperative mount function conforming to IHostUiModule
@@ -36,17 +37,19 @@ function mountDefaultHostUi(options) {
36
37
  let updatePathnameFn = null;
37
38
  let updateHeaderFn = null;
38
39
  let updateNotificationFn = null;
40
+ let updateDocumentTitleFn = null;
39
41
  // Use flushSync so that the DOM is ready synchronously after mount() returns,
40
42
  // making getAppContainer() safe to call immediately.
41
43
  flushSync(() => {
42
44
  reactRoot?.render(_jsx(HostUiBridge, { initialCtx: ctx, initialApps: resolvedApplications, initialPathname: pathname, navigate: navigate, replace: replace, onAppContainerReady: (el) => {
43
45
  appContainer = el;
44
- }, onReady: (setCtx, setApps, setPathname, setHeaderOptions, setNotification) => {
46
+ }, onReady: (setCtx, setApps, setPathname, setHeaderOptions, setNotification, setPageTitle) => {
45
47
  updateCtxFn = setCtx;
46
48
  updateAppsFn = setApps;
47
49
  updatePathnameFn = setPathname;
48
50
  updateHeaderFn = setHeaderOptions;
49
51
  updateNotificationFn = setNotification;
52
+ updateDocumentTitleFn = setPageTitle;
50
53
  } }));
51
54
  });
52
55
  return {
@@ -60,6 +63,7 @@ function mountDefaultHostUi(options) {
60
63
  updatePathnameFn = null;
61
64
  updateHeaderFn = null;
62
65
  updateNotificationFn = null;
66
+ updateDocumentTitleFn = null;
63
67
  root.unmount();
64
68
  }
65
69
  },
@@ -75,6 +79,9 @@ function mountDefaultHostUi(options) {
75
79
  updateHeader(header) {
76
80
  updateHeaderFn?.(header);
77
81
  },
82
+ updateDocumentTitle(pageTitle) {
83
+ updateDocumentTitleFn?.(pageTitle);
84
+ },
78
85
  getAppContainer() {
79
86
  if (!appContainer) {
80
87
  throw new Error("Host UI app container is not available. " +
@@ -41,3 +41,4 @@ export interface IGenAIChatProps {
41
41
  onEvent?: (event: GenAIChatEvent) => void;
42
42
  }
43
43
  export declare function GenAIChat({ workspaceId, open, onOpen, onClose, askedQuestion, canManageProject, canAnalyzeProject, canFullControl, settings, onEvent }: IGenAIChatProps): import("react/jsx-runtime").JSX.Element;
44
+ //# sourceMappingURL=GenAIChat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenAIChat.d.ts","sourceRoot":"","sources":["../../src/ui/GenAIChat.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAGxE,OAAO,EACH,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,KAAK,oBAAoB,EAY5B,MAAM,yBAAyB,CAAC;AAWjC;;;;;;;;GAQG;AACH,MAAM,MAAM,cAAc,GACpB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,eAAe,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,OAAO,EAAE,oBAAoB,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,OAAO,EAAE,yBAAyB,CAAA;CAAE,CAAC;AAI7E,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;CAC7C;AAED,wBAAgB,SAAS,CAAC,EACtB,WAAW,EACX,IAAI,EACJ,MAAM,EACN,OAAO,EACP,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,OAAO,EACV,EAAE,eAAe,2CAyHjB"}
@@ -14,6 +14,12 @@ export interface IHostChromeProps {
14
14
  onReplace: (url: string) => void;
15
15
  headerOptions?: IAppHeaderOptions;
16
16
  notification?: IHostUiNotification | null;
17
+ /**
18
+ * Page-title segment set by the active pluggable application via its `onDocumentTitleChange`
19
+ * callback. When omitted, the active application's manifest title is used instead.
20
+ */
21
+ appPageTitle?: string;
17
22
  children?: ReactNode;
18
23
  }
19
- export declare function HostChrome({ ctx, resolvedApplications, pathname, onNavigate, onReplace: _onReplace, headerOptions, notification, children }: IHostChromeProps): import("react/jsx-runtime").JSX.Element;
24
+ export declare function HostChrome({ ctx, resolvedApplications, pathname, onNavigate, onReplace: _onReplace, headerOptions, notification, appPageTitle, children }: IHostChromeProps): import("react/jsx-runtime").JSX.Element;
25
+ //# sourceMappingURL=HostChrome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HostChrome.d.ts","sourceRoot":"","sources":["../../src/ui/HostChrome.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAuC,KAAK,SAAS,EAAwB,MAAM,OAAO,CAAC;AAElG,OAAO,EAEH,KAAK,gCAAgC,EACxC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACxB,MAAM,2CAA2C,CAAC;AA+BnD,OAAO,mBAAmB,CAAC;AAK3B,OAAO,0CAA0C,CAAC;AAClD,OAAO,6CAA6C,CAAC;AACrD,OAAO,sDAAsD,CAAC;AAC9D,OAAO,0DAA0D,CAAC;AAIlE,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,gBAAgB,CAAC;IACtB,oBAAoB,EAAE,gCAAgC,EAAE,CAAC;IACzD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,YAAY,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAC1C;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB;AAED,wBAAgB,UAAU,CAAC,EACvB,GAAG,EACH,oBAAoB,EACpB,QAAQ,EACR,UAAU,EACV,SAAS,EAAE,UAAU,EACrB,aAAa,EACb,YAAmB,EACnB,YAAY,EACZ,QAAQ,EACX,EAAE,gBAAgB,2CAsNlB"}
@@ -4,13 +4,13 @@ import { useCallback, useMemo } from "react";
4
4
  import { isExternalPluggableApplicationRegistryItem, } from "@gooddata/sdk-model";
5
5
  import { BackendProvider, resolveLocale } from "@gooddata/sdk-ui";
6
6
  import { AppHeaderNotifications } from "@gooddata/sdk-ui-application-header";
7
- import { AppHeader, ToastsCenterContextProvider, generateHeaderStaticHelpMenuItems, } from "@gooddata/sdk-ui-kit";
7
+ import { AppHeader, DocumentHeader, ToastsCenterContextProvider, generateHeaderStaticHelpMenuItems, } from "@gooddata/sdk-ui-kit";
8
8
  import { defaultHeaderTheme } from "@gooddata/sdk-ui-theme-provider";
9
9
  import defaultLogoUrl from "../assets/logo-white.svg";
10
10
  import { getAppLifecycleCallbacks, preloadPluggableApplication, } from "../loader/pluggableApplicationsLoader.js";
11
- import { getApplicationHref } from "../loader/routing.js";
11
+ import { getActiveInternalApplication, getApplicationHref } from "../loader/routing.js";
12
12
  import { getBackend } from "../platformContext/backend.js";
13
- import { buildAppMenu } from "./appMenuItems.js";
13
+ import { buildAppMenu, getLocalizedTitle } from "./appMenuItems.js";
14
14
  import { getUserDisplayName, swapWorkspaceInPath } from "./chromeHelpers.js";
15
15
  import { b, e } from "./hostChromeBem.js";
16
16
  import { HostIntlProvider } from "./HostIntlProvider.js";
@@ -30,7 +30,7 @@ import "@gooddata/sdk-ui-gen-ai/styles/css/main.css";
30
30
  import "@gooddata/sdk-ui-semantic-search/styles/css/main.css";
31
31
  import "@gooddata/sdk-ui-semantic-search/styles/css/internal.css";
32
32
  const LOGOUT_MENU_ITEM_KEY = "gs.header.logout";
33
- export function HostChrome({ ctx, resolvedApplications, pathname, onNavigate, onReplace: _onReplace, headerOptions, notification = null, children, }) {
33
+ export function HostChrome({ ctx, resolvedApplications, pathname, onNavigate, onReplace: _onReplace, headerOptions, notification = null, appPageTitle, children, }) {
34
34
  const locale = resolveLocale(ctx.preferredLocale);
35
35
  const userName = getUserDisplayName(ctx.user);
36
36
  const features = useHostChromeWorkspaceFeatures(resolvedApplications, ctx, pathname);
@@ -44,7 +44,12 @@ export function HostChrome({ ctx, resolvedApplications, pathname, onNavigate, on
44
44
  telemetry: shellTelemetry,
45
45
  });
46
46
  const { menuItemsGroups, messages: appMessages } = useMemo(() => buildAppMenu(resolvedApplications, ctx, pathname, ctx.preferredLocale), [resolvedApplications, ctx, pathname]);
47
- const helpMenuItems = useMemo(() => headerOptions?.helpMenuItems ?? generateHeaderStaticHelpMenuItems(), [headerOptions]);
47
+ // The default help menu links exclusively to GoodData resources (documentation, university,
48
+ // community, Slack). When white-labeling is enabled (the "Hide links to GoodData documentation"
49
+ // setting) those must not leak into the branded header, so the host renders no default help
50
+ // menu. Apps may still supply their own help items via headerOptions.
51
+ const helpMenuItems = useMemo(() => headerOptions?.helpMenuItems ??
52
+ (ctx.whiteLabeling?.enabled ? [] : generateHeaderStaticHelpMenuItems()), [headerOptions, ctx.whiteLabeling?.enabled]);
48
53
  const accountMenuItems = useMemo(() => [
49
54
  {
50
55
  key: LOGOUT_MENU_ITEM_KEY,
@@ -103,11 +108,32 @@ export function HostChrome({ ctx, resolvedApplications, pathname, onNavigate, on
103
108
  const logoTitle = ctx.whiteLabeling?.enabled
104
109
  ? ctx.user.organizationName || defaultLogoTitle
105
110
  : defaultLogoTitle;
111
+ // White-label icons are applied whenever their URLs are set, independent of the `enabled`
112
+ // flag (matching the standalone apps and the Appearance behavior). The favicon falls back to
113
+ // the default served at /favicon.ico so a previously applied custom favicon is reset once its
114
+ // URL is cleared, instead of leaving the stale icon in place.
115
+ const faviconUrl = ctx.whiteLabeling?.faviconUrl || "/favicon.ico";
116
+ // The host owns the browser tab title as "{page} - {brand}". The page segment defaults to the
117
+ // active application's manifest title, but an embedded app can override it dynamically via its
118
+ // mount `onDocumentTitleChange` callback (surfaced here as `appPageTitle`). When white-labeling
119
+ // is enabled the brand is the organization name — preferring the user profile's name, then the
120
+ // resolved organization descriptor title (the profile field is optional) — and is omitted (so
121
+ // DocumentHeader drops the " - " separator) only when neither is set. The GoodData product name
122
+ // is used solely when white-labeling is disabled, so a branded org never falls back to it.
123
+ const activeApplication = getActiveInternalApplication(resolvedApplications, ctx, pathname);
124
+ // An app may report an empty page segment (e.g. no insight open); treat it the same as `undefined`
125
+ // (omitted) so the tab falls back to the active application's manifest title rather than going blank.
126
+ const documentPageTitle = appPageTitle ||
127
+ (activeApplication ? getLocalizedTitle(activeApplication, ctx.preferredLocale) : undefined);
128
+ const documentBrandTitle = ctx.whiteLabeling?.enabled
129
+ ? ctx.user.organizationName || ctx.organization?.title || ""
130
+ : defaultLogoTitle;
106
131
  const headerColor = ctx.theme?.header?.backgroundColor ?? defaultHeaderTheme.backgroundColor;
107
132
  const headerTextColor = ctx.theme?.header?.color ?? defaultHeaderTheme.color;
108
133
  const activeColor = ctx.theme?.header?.activeColor ?? defaultHeaderTheme.activeColor;
109
134
  const isEmbedded = ctx.embeddingMode === "iframe";
110
- return (_jsx(HostIntlProvider, { locale: locale, additionalMessages: appMessages, children: _jsx(BackendProvider, { backend: getBackend(), children: _jsx(ToastsCenterContextProvider, { children: _jsxs("div", { className: b(), children: [isEmbedded ? null : (_jsx("div", { className: e("header"), onMouseOver: handleHeaderMouseOver, children: _jsx(AppHeader, { logoUrl: ctx.whiteLabeling?.logoUrl || defaultLogoUrl, logoHref: "/organization" // switch the host scope to organization, the first org app will be chosen
135
+ return (_jsx(HostIntlProvider, { locale: locale, additionalMessages: appMessages, children: _jsx(BackendProvider, { backend: getBackend(), children: _jsx(ToastsCenterContextProvider, { children: _jsxs("div", { className: b(), children: [
136
+ _jsx(DocumentHeader, { pageTitle: documentPageTitle, brandTitle: documentBrandTitle, faviconUrl: faviconUrl, appleTouchIconUrl: ctx.whiteLabeling?.appleTouchIconUrl }), isEmbedded ? null : (_jsx("div", { className: e("header"), onMouseOver: handleHeaderMouseOver, children: _jsx(AppHeader, { logoUrl: ctx.whiteLabeling?.logoUrl || defaultLogoUrl, logoHref: "/organization" // switch the host scope to organization, the first org app will be chosen
111
137
  , logoTitle: logoTitle, headerColor: headerColor, headerTextColor: headerTextColor, activeColor: activeColor, userName: userName, organizationName: ctx.organization?.title, isAccessibilityCompliant: true, workspacePicker: workspacePicker, menuItemsGroups: menuItemsGroups, helpMenuItems: helpMenuItems, accountMenuItems: accountMenuItems, onMenuItemClick: handleMenuItemClick, showUpsellButton: pricing.isTrial, onUpsellButtonClick: pricing.onUpsellButtonClick, expiredDate: pricing.isTrial ? pricing.expiredDate : undefined, search: search.element, showChatItem: chat.showChatItem, onChatItemClick: chat.open, notificationsPanel: ctx.userSettings.enableInPlatformNotifications
112
138
  ? ({ isMobile, closeNotificationsOverlay }) => (_jsx(AppHeaderNotifications, { locale: locale, isMobile: isMobile, closeNotificationsOverlay: closeNotificationsOverlay, useAsOfDateParam: ctx.userSettings.enableExecutionTimestamp ?? false, enableExportToDocumentStorage: ctx.userSettings.enableExportToDocumentStorage ??
113
139
  false }))
@@ -7,3 +7,4 @@ interface IHostIntlProviderProps {
7
7
  }
8
8
  export declare function HostIntlProvider({ locale, additionalMessages, children }: IHostIntlProviderProps): import("react/jsx-runtime").JSX.Element;
9
9
  export {};
10
+ //# sourceMappingURL=HostIntlProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HostIntlProvider.d.ts","sourceRoot":"","sources":["../../src/ui/HostIntlProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAIhD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAKnD,UAAU,sBAAsB;IAC5B,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,sBAAsB,2CAehG"}
@@ -10,3 +10,4 @@ interface IHostNotificationDispatcherProps {
10
10
  */
11
11
  export declare function HostNotificationDispatcher({ notification }: IHostNotificationDispatcherProps): null;
12
12
  export {};
13
+ //# sourceMappingURL=HostNotificationDispatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HostNotificationDispatcher.d.ts","sourceRoot":"","sources":["../../src/ui/HostNotificationDispatcher.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAGrF,UAAU,gCAAgC;IACtC,YAAY,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC5C;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,EAAE,YAAY,EAAE,EAAE,gCAAgC,QAwC5F"}
@@ -6,5 +6,7 @@ export interface IPluggableApplicationRendererProps {
6
6
  ctx: IPlatformContext;
7
7
  pathname: string;
8
8
  onHeaderChange?: (appId: string, header: IAppHeaderOptions) => void;
9
+ onDocumentTitleChange?: (appId: string, pageTitle: string | undefined) => void;
9
10
  }
10
- export declare function PluggableApplicationRenderer({ app, ctx, pathname, onHeaderChange }: IPluggableApplicationRendererProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function PluggableApplicationRenderer({ app, ctx, pathname, onHeaderChange, onDocumentTitleChange }: IPluggableApplicationRendererProps): import("react/jsx-runtime").JSX.Element;
12
+ //# sourceMappingURL=PluggableApplicationRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluggableApplicationRenderer.d.ts","sourceRoot":"","sources":["../../src/ui/PluggableApplicationRenderer.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EACH,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAIxB,MAAM,2CAA2C,CAAC;AASnD,OAAO,qCAAqC,CAAC;AAM7C,MAAM,WAAW,kCAAkC;IAC/C,GAAG,EAAE,gCAAgC,CAAC;IACtC,GAAG,EAAE,gBAAgB,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACpE,qBAAqB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC;CAClF;AAED,wBAAgB,4BAA4B,CAAC,EACzC,GAAG,EACH,GAAG,EACH,QAAQ,EACR,cAAc,EACd,qBAAqB,EACxB,EAAE,kCAAkC,2CAqIpC"}
@@ -11,9 +11,10 @@ import { getApplicationHref } from "../loader/routing.js";
11
11
  import { BackendPlatformContextProvider } from "../platformContext/useLoadPlatformContext.js";
12
12
  import "./PluggableApplicationRenderer.scss";
13
13
  const { b, e } = bemFactory("gd-pluggable-application-renderer");
14
- export function PluggableApplicationRenderer({ app, ctx, pathname, onHeaderChange, }) {
14
+ export function PluggableApplicationRenderer({ app, ctx, pathname, onHeaderChange, onDocumentTitleChange, }) {
15
15
  const ctxRef = useAutoupdateRef(ctx);
16
16
  const onHeaderChangeRef = useAutoupdateRef(onHeaderChange);
17
+ const onDocumentTitleChangeRef = useAutoupdateRef(onDocumentTitleChange);
17
18
  const containerRef = useRef(null);
18
19
  const mountHandleRef = useRef(undefined);
19
20
  const [viewState, setViewState] = useState({ state: "loading" });
@@ -62,6 +63,7 @@ export function PluggableApplicationRenderer({ app, ctx, pathname, onHeaderChang
62
63
  onEvent,
63
64
  onTelemetryEvent,
64
65
  onHeaderChange: (header) => onHeaderChangeRef.current?.(app.id, header),
66
+ onDocumentTitleChange: (pageTitle) => onDocumentTitleChangeRef.current?.(app.id, pageTitle),
65
67
  });
66
68
  lifecycle?.onMountCompleted?.(app.id, now() - mountStart);
67
69
  lifecycle?.onRendered?.(app.id, now() - totalStart);
@@ -90,7 +92,16 @@ export function PluggableApplicationRenderer({ app, ctx, pathname, onHeaderChang
90
92
  });
91
93
  }
92
94
  };
93
- }, [app, appBasePath, ctxRef, onHeaderChangeRef, onTelemetryEvent, lifecycle, onEvent]);
95
+ }, [
96
+ app,
97
+ appBasePath,
98
+ ctxRef,
99
+ onHeaderChangeRef,
100
+ onDocumentTitleChangeRef,
101
+ onTelemetryEvent,
102
+ lifecycle,
103
+ onEvent,
104
+ ]);
94
105
  useEffect(() => {
95
106
  mountHandleRef.current?.updateContext?.(ctx);
96
107
  }, [ctx]);
@@ -23,3 +23,4 @@ export interface ISemanticSearchProps {
23
23
  onEvent?: (event: SemanticSearchEvent) => void;
24
24
  }
25
25
  export declare function SemanticSearch({ backend, workspaceId, metadataTimeZone, canManage, canAnalyze, canFullControl, isTrial, enableUseGenAIChat, useHostedMetricEditor, useHostedAnalyticalDesigner, useHostedLdmModeler, onAskAiAssistant, onEvent }: ISemanticSearchProps): import("react/jsx-runtime").JSX.Element;
26
+ //# sourceMappingURL=SemanticSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SemanticSearch.d.ts","sourceRoot":"","sources":["../../src/ui/SemanticSearch.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,OAAO,EAEH,KAAK,cAAc,EAItB,MAAM,2CAA2C,CAAC;AAInD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,CAAC;AAExF,MAAM,WAAW,oBAAoB;IACjC,OAAO,EAAE,kBAAkB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,cAAc,CAAC,EAC3B,OAAO,EACP,WAAW,EACX,gBAAgB,EAChB,SAAiB,EACjB,UAAkB,EAClB,cAAsB,EACtB,OAAe,EACf,kBAA0B,EAC1B,qBAA6B,EAC7B,2BAAmC,EACnC,mBAA2B,EAC3B,gBAAgB,EAChB,OAAO,EACV,EAAE,oBAAoB,2CA6EtB"}
@@ -7,3 +7,4 @@ export interface IAppHeaderWorkspacePickerProps {
7
7
  onWorkspaceSelect: (workspace: IHeaderWorkspace) => void;
8
8
  }
9
9
  export declare function AppHeaderWorkspacePicker({ backend, userId, workspaceId, onWorkspaceSelect }: IAppHeaderWorkspacePickerProps): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=WorkspacePicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspacePicker.d.ts","sourceRoot":"","sources":["../../src/ui/WorkspacePicker.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE7D,MAAM,WAAW,8BAA8B;IAC3C,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,CAAC,SAAS,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC5D;AA8BD,wBAAgB,wBAAwB,CAAC,EACrC,OAAO,EACP,MAAM,EACN,WAAW,EACX,iBAAiB,EACpB,EAAE,8BAA8B,2CAWhC"}
@@ -1,6 +1,7 @@
1
1
  import { type ILocale, type PluggableApplicationRegistryItem } from "@gooddata/sdk-model";
2
2
  import { type IPlatformContext } from "@gooddata/sdk-pluggable-application-model";
3
3
  import { type IHeaderMenuItem } from "@gooddata/sdk-ui-kit";
4
+ export declare function getLocalizedTitle(app: PluggableApplicationRegistryItem, locale: ILocale | undefined): string;
4
5
  export interface IAppMenuResult {
5
6
  menuItemsGroups: IHeaderMenuItem[][];
6
7
  messages: Record<string, string>;
@@ -15,3 +16,4 @@ export interface IAppMenuResult {
15
16
  * workspace/organization-scoped URLs and active state detection.
16
17
  */
17
18
  export declare function buildAppMenu(apps: PluggableApplicationRegistryItem[], ctx: IPlatformContext, pathname: string, locale: ILocale | undefined): IAppMenuResult;
19
+ //# sourceMappingURL=appMenuItems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appMenuItems.d.ts","sourceRoot":"","sources":["../../src/ui/appMenuItems.ts"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,OAAO,EACZ,KAAK,gCAAgC,EAExC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AACxG,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAkC5D,wBAAgB,iBAAiB,CAC7B,GAAG,EAAE,gCAAgC,EACrC,MAAM,EAAE,OAAO,GAAG,SAAS,GAC5B,MAAM,CAQR;AAED,MAAM,WAAW,cAAc;IAC3B,eAAe,EAAE,eAAe,EAAE,EAAE,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAeD;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CACxB,IAAI,EAAE,gCAAgC,EAAE,EACxC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,GAAG,SAAS,GAC5B,cAAc,CA4BhB"}
@@ -27,7 +27,7 @@ const NAV_MSG_PREFIX = "shellApplication.menuItem.";
27
27
  function navMessageKey(appId) {
28
28
  return `${NAV_MSG_PREFIX}${appId}`;
29
29
  }
30
- function getLocalizedTitle(app, locale) {
30
+ export function getLocalizedTitle(app, locale) {
31
31
  if (locale && app.localizedTitle) {
32
32
  const localizedTitle = app.localizedTitle[locale];
33
33
  if (localizedTitle) {
@@ -15,3 +15,4 @@ export declare function getUserDisplayName(user: IUser): string;
15
15
  * an organization-scoped route).
16
16
  */
17
17
  export declare function swapWorkspaceInPath(pathname: string, newWorkspaceId: string): string;
18
+ //# sourceMappingURL=chromeHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chromeHelpers.d.ts","sourceRoot":"","sources":["../../src/ui/chromeHelpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,CAStD;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAGpF"}
@@ -1 +1,2 @@
1
1
  export declare const b: (props?: import("@gooddata/sdk-ui-kit").StyleProps | undefined) => string, e: (element: string, props?: import("@gooddata/sdk-ui-kit").StyleProps | undefined) => string;
2
+ //# sourceMappingURL=hostChromeBem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostChromeBem.d.ts","sourceRoot":"","sources":["../../src/ui/hostChromeBem.ts"],"names":[],"mappings":"AAIA,eAAO,MAAQ,CAAC,6EAAE,CAAC,4FAAiC,CAAC"}
@@ -6,3 +6,4 @@ import { type IPlatformContext, type IHostUiModule } from "@gooddata/sdk-pluggab
6
6
  * via module federation. Otherwise, the built-in default host UI is used.
7
7
  */
8
8
  export declare function resolveHostUiModule(ctx: IPlatformContext): Promise<IHostUiModule>;
9
+ //# sourceMappingURL=resolveHostUiModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveHostUiModule.d.ts","sourceRoot":"","sources":["../../src/ui/resolveHostUiModule.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAOtG;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAevF"}
@@ -27,3 +27,4 @@ export interface IUseHostChromeChatArgs {
27
27
  * events to the host telemetry callbacks.
28
28
  */
29
29
  export declare function useHostChromeChat({ features, ctx, telemetry }: IUseHostChromeChatArgs): IHostChromeChat;
30
+ //# sourceMappingURL=useHostChromeChat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHostChromeChat.d.ts","sourceRoot":"","sources":["../../src/ui/useHostChromeChat.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAyB,MAAM,OAAO,CAAC;AAE9D,OAAO,EACH,KAAK,gBAAgB,EACrB,KAAK,+BAA+B,EACvC,MAAM,2CAA2C,CAAC;AAMnD,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAExF,MAAM,WAAW,eAAe;IAC5B,4EAA4E;IAC5E,OAAO,EAAE,SAAS,CAAC;IACnB;;;OAGG;IACH,YAAY,EAAE,OAAO,CAAC;IACtB,4BAA4B;IAC5B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,4DAA4D;IAC5D,cAAc,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,MAAM,WAAW,sBAAsB;IACnC,QAAQ,EAAE,4BAA4B,CAAC;IACvC,GAAG,EAAE,gBAAgB,CAAC;IACtB,SAAS,EAAE,+BAA+B,GAAG,SAAS,CAAC;CAC1D;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,sBAAsB,GAAG,eAAe,CAqDvG"}
@@ -50,3 +50,4 @@ export declare function setHostPricingExtension(extension: UseHostPricingExtensi
50
50
  * back to a no-op shape when no pricing extension is registered.
51
51
  */
52
52
  export declare function useHostChromePricing(ctx: IPlatformContext, locale: string): IHostChromePricing;
53
+ //# sourceMappingURL=useHostChromePricing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHostChromePricing.d.ts","sourceRoot":"","sources":["../../src/ui/useHostChromePricing.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAElF;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IAC/B,oEAAoE;IACpE,OAAO,EAAE,SAAS,CAAC;IACnB,2FAA2F;IAC3F,OAAO,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,WAAW,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,mBAAmB,EAAE,MAAM,IAAI,CAAC;CACnC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,uBAAuB,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,KAAK,kBAAkB,CAAC;AAIpG;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,uBAAuB,GAAG,SAAS,GAAG,IAAI,CAE5F;AASD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAE9F"}
@@ -18,3 +18,4 @@ export interface IUseHostChromeSearchArgs {
18
18
  * footer button so it can hand the user's question to the chat hook.
19
19
  */
20
20
  export declare function useHostChromeSearch({ features, isTrial, onAskAiAssistant, telemetry }: IUseHostChromeSearchArgs): IHostChromeSearch;
21
+ //# sourceMappingURL=useHostChromeSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHostChromeSearch.d.ts","sourceRoot":"","sources":["../../src/ui/useHostChromeSearch.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAe,MAAM,OAAO,CAAC;AAEpD,OAAO,EAAE,KAAK,+BAA+B,EAAE,MAAM,2CAA2C,CAAC;AAKjG,OAAO,EAAE,KAAK,4BAA4B,EAAE,MAAM,qCAAqC,CAAC;AAExF,MAAM,WAAW,iBAAiB;IAC9B,uFAAuF;IACvF,OAAO,EAAE,SAAS,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACrC,QAAQ,EAAE,4BAA4B,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,SAAS,EAAE,+BAA+B,GAAG,SAAS,CAAC;CAC1D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,EAChC,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,SAAS,EACZ,EAAE,wBAAwB,GAAG,iBAAiB,CA8B9C"}
@@ -17,3 +17,4 @@ export interface IHostChromeWorkspaceFeatures {
17
17
  * chrome needs to decide whether to render search, chat, etc.
18
18
  */
19
19
  export declare function useHostChromeWorkspaceFeatures(resolvedApplications: PluggableApplicationRegistryItem[], ctx: IPlatformContext, pathname: string): IHostChromeWorkspaceFeatures;
20
+ //# sourceMappingURL=useHostChromeWorkspaceFeatures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useHostChromeWorkspaceFeatures.d.ts","sourceRoot":"","sources":["../../src/ui/useHostChromeWorkspaceFeatures.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AAC5E,OAAO,EAAE,KAAK,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAI3G,MAAM,WAAW,4BAA4B;IACzC,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,sBAAsB,EAAE,OAAO,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC1C,oBAAoB,EAAE,gCAAgC,EAAE,EACxD,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GACjB,4BAA4B,CAmC9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-pluggable-host",
3
- "version": "11.41.0-alpha.3",
3
+ "version": "11.41.0-alpha.5",
4
4
  "description": "GoodData SDK runtime for hosting pluggable applications — registry, loader, routing, platform context, default UI chrome",
5
5
  "license": "MIT",
6
6
  "author": "GoodData Corporation",
@@ -29,20 +29,20 @@
29
29
  "dependencies": {
30
30
  "@module-federation/runtime": "2.3.1",
31
31
  "lodash-es": "^4.17.23",
32
- "@gooddata/sdk-backend-base": "11.41.0-alpha.3",
33
- "@gooddata/sdk-backend-spi": "11.41.0-alpha.3",
34
- "@gooddata/sdk-embedding": "11.41.0-alpha.3",
35
- "@gooddata/sdk-model": "11.41.0-alpha.3",
36
- "@gooddata/sdk-backend-tiger": "11.41.0-alpha.3",
37
- "@gooddata/sdk-pluggable-application-model": "11.41.0-alpha.3",
38
- "@gooddata/sdk-ui": "11.41.0-alpha.3",
39
- "@gooddata/sdk-ui-application-header": "11.41.0-alpha.3",
40
- "@gooddata/sdk-ui-ext": "11.41.0-alpha.3",
41
- "@gooddata/sdk-ui-gen-ai": "11.41.0-alpha.3",
42
- "@gooddata/sdk-ui-kit": "11.41.0-alpha.3",
43
- "@gooddata/sdk-ui-semantic-search": "11.41.0-alpha.3",
44
- "@gooddata/sdk-ui-theme-provider": "11.41.0-alpha.3",
45
- "@gooddata/util": "11.41.0-alpha.3"
32
+ "@gooddata/sdk-backend-base": "11.41.0-alpha.5",
33
+ "@gooddata/sdk-backend-spi": "11.41.0-alpha.5",
34
+ "@gooddata/sdk-backend-tiger": "11.41.0-alpha.5",
35
+ "@gooddata/sdk-model": "11.41.0-alpha.5",
36
+ "@gooddata/sdk-embedding": "11.41.0-alpha.5",
37
+ "@gooddata/sdk-pluggable-application-model": "11.41.0-alpha.5",
38
+ "@gooddata/sdk-ui": "11.41.0-alpha.5",
39
+ "@gooddata/sdk-ui-ext": "11.41.0-alpha.5",
40
+ "@gooddata/sdk-ui-application-header": "11.41.0-alpha.5",
41
+ "@gooddata/sdk-ui-gen-ai": "11.41.0-alpha.5",
42
+ "@gooddata/sdk-ui-kit": "11.41.0-alpha.5",
43
+ "@gooddata/sdk-ui-semantic-search": "11.41.0-alpha.5",
44
+ "@gooddata/sdk-ui-theme-provider": "11.41.0-alpha.5",
45
+ "@gooddata/util": "11.41.0-alpha.5"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@microsoft/api-documenter": "^7.17.0",
@@ -85,8 +85,8 @@
85
85
  "vite": "8.0.16",
86
86
  "vitest": "4.1.8",
87
87
  "vitest-dom": "0.1.1",
88
- "@gooddata/eslint-config": "11.41.0-alpha.3",
89
- "@gooddata/oxlint-config": "11.41.0-alpha.3"
88
+ "@gooddata/eslint-config": "11.41.0-alpha.5",
89
+ "@gooddata/oxlint-config": "11.41.0-alpha.5"
90
90
  },
91
91
  "peerDependencies": {
92
92
  "react": ">=18.3.1",