@gooddata/sdk-ui-pluggable-host 11.60.0-alpha.2 → 11.60.0-alpha.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"legacyRedirect.d.ts","sourceRoot":"","sources":["../../src/loader/legacyRedirect.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAClB;AAuCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAqD3E;AAYD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGtE"}
1
+ {"version":3,"file":"legacyRedirect.d.ts","sourceRoot":"","sources":["../../src/loader/legacyRedirect.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAClB;AA0FD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAiD3E;AAYD;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGtE"}
@@ -9,6 +9,50 @@ function toHashHostUrl(embedded, app, workspaceId, remainder, search) {
9
9
  const hash = remainder ? `#${remainder}` : "";
10
10
  return `${prefix}/workspace/${workspaceId}/${app}/${search}${hash}`;
11
11
  }
12
+ const AI_BUILDER_PARAM_PREFIX = "aibuilder=";
13
+ // Hosted AD links carry `aibuilder` in the query string, not in the hash query.
14
+ function liftAiBuilderToSearch(remainder, search) {
15
+ const queryStart = remainder.indexOf("?");
16
+ if (queryStart === -1) {
17
+ return { remainder, search };
18
+ }
19
+ const params = remainder.slice(queryStart + 1).split("&");
20
+ const lifted = params.filter((param) => param.startsWith(AI_BUILDER_PARAM_PREFIX));
21
+ if (lifted.length === 0) {
22
+ return { remainder, search };
23
+ }
24
+ const kept = params.filter((param) => !param.startsWith(AI_BUILDER_PARAM_PREFIX));
25
+ const hashRest = `${remainder.slice(0, queryStart)}${kept.length ? `?${kept.join("&")}` : ""}`;
26
+ return {
27
+ remainder: hashRest === "/" ? "" : hashRest,
28
+ search: `${search ? `${search}&` : "?"}${lifted.join("&")}`,
29
+ };
30
+ }
31
+ // The report and the literal edit action must follow <product>:<client>, so a `client` workspace
32
+ // with a colon in an insight id (#/client/<id>/edit[/reload]) does not match.
33
+ const CLIENT_HASH = /^#\/client\/[-\w]+:[-\w]+\/[^/?]+\/edit(?:\/reload)?(?:[?]|$)/;
34
+ // AD legacy hash: #/<ws>/<rest> — workspace is the bare first segment.
35
+ function mapLegacyAnalyzeUrl(pathname, hash, search) {
36
+ const embedded = isUnder(pathname, "/analyze/embedded");
37
+ // The standalone app sent users without BASE_UI_ACCESS here. The host root applies the same
38
+ // restriction and lands the user on an application they are permitted to use.
39
+ if (pathname === "/analyze/403.html") {
40
+ return "/";
41
+ }
42
+ // #/client/<product>:<client>/<report>/edit has no workspace id, and no backend the host
43
+ // supports can resolve a client to a workspace. Outside an embedding, fall back to the bare
44
+ // landing, which opens AD in the remembered or first workspace. Inside an embedding, leave the
45
+ // URL alone: a landing in some other workspace must not replace the embedded insight.
46
+ if (CLIENT_HASH.test(hash)) {
47
+ return embedded ? null : `/analyze${search}`;
48
+ }
49
+ const match = /^#\/([^/?]+)(.*)$/.exec(hash);
50
+ if (!match) {
51
+ return null;
52
+ }
53
+ const lifted = liftAiBuilderToSearch(match[2], search);
54
+ return toHashHostUrl(embedded, "analyze", match[1], lifted.remainder, lifted.search);
55
+ }
12
56
  // Where the standalone home-ui pages live inside the host: the gdc-home-ui module is mounted
13
57
  // on the organization scope under this route base, and keeps the legacy path shape below it.
14
58
  const HOME_UI_ROUTE_BASE = "/organization/settings";
@@ -42,12 +86,8 @@ export function mapLegacyUrlToHost(location) {
42
86
  ? toHashHostUrl(isUnder(pathname, "/dashboards/embedded"), "dashboards", match[1], match[2], search)
43
87
  : null;
44
88
  }
45
- // AD legacy hash: #/<ws>/<rest> — workspace is the bare first segment.
46
89
  if (isUnder(pathname, "/analyze")) {
47
- const match = /^#\/([^/?]+)(.*)$/.exec(hash);
48
- return match
49
- ? toHashHostUrl(isUnder(pathname, "/analyze/embedded"), "analyze", match[1], match[2], search)
50
- : null;
90
+ return mapLegacyAnalyzeUrl(pathname, hash, search);
51
91
  }
52
92
  // Metric editor (standalone only): hash #/<ws>[/rest] becomes the path /workspace/<ws>/metrics[/rest].
53
93
  if (isUnder(pathname, "/metrics")) {
@@ -1 +1 @@
1
- {"version":3,"file":"pluggableApplicationsRegistry.d.ts","sourceRoot":"","sources":["../../src/registry/pluggableApplicationsRegistry.tsx"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,gBAAgB,EAErB,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,mCAAmC,EAG3C,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;AAsMD,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;IACpC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,EAChC,SAAS,EACT,cAAc,EACd,GAAG,EACH,KAAK,EACL,wBAAgC,EAChC,YAAoB,GACvB,EAAE,2BAA2B,GAAG,gCAAgC,EAAE,CAiBlE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qCAAqC,CACjD,GAAG,EAAE,gBAAgB,GACtB,gCAAgC,EAAE,CASpC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,gCAAgC,EAAE,CAWlG"}
1
+ {"version":3,"file":"pluggableApplicationsRegistry.d.ts","sourceRoot":"","sources":["../../src/registry/pluggableApplicationsRegistry.tsx"],"names":[],"mappings":"AAIA,OAAO,EACH,KAAK,gBAAgB,EAErB,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACrC,KAAK,mCAAmC,EAG3C,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;AAqMD,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;IACpC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,CAAC,EAChC,SAAS,EACT,cAAc,EACd,GAAG,EACH,KAAK,EACL,wBAAgC,EAChC,YAAoB,GACvB,EAAE,2BAA2B,GAAG,gCAAgC,EAAE,CAiBlE;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qCAAqC,CACjD,GAAG,EAAE,gBAAgB,GACtB,gCAAgC,EAAE,CASpC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,gBAAgB,GAAG,gCAAgC,EAAE,CAWlG"}
@@ -96,7 +96,7 @@ function toPluggableApplicationOrganizationPermissions(permissions) {
96
96
  hasBaseUiAccess: permissions.hasBaseUiAccess ?? false,
97
97
  };
98
98
  }
99
- // Forces the two shell flags on. A flag source that cannot be reached resolves them false, which
99
+ // Forces the dashboards shell flag on. A flag source that cannot be reached resolves it false, which
100
100
  // leaves only the legacy external twin eligible; route matching skips external apps, so an embedded
101
101
  // or export URL would then match nothing.
102
102
  function settingsForRequirements(ctx) {
@@ -106,7 +106,6 @@ function settingsForRequirements(ctx) {
106
106
  return {
107
107
  ...ctx.settings,
108
108
  enableShellApplication_dashboards: true,
109
- enableShellApplication_analyticalDesigner: true,
110
109
  };
111
110
  }
112
111
  function appMeetsRequirements({ requiredSettings, requiredWorkspacePermissions, requiredOrganizationPermissions, requiredEntitlements, }, ctx, skipWorkspacePermissions, skipSettings) {
@@ -16,10 +16,9 @@ export interface ISemanticSearchProps {
16
16
  metadataTimeZone?: string;
17
17
  isTrial?: boolean;
18
18
  enableUseGenAIChat?: boolean;
19
- useHostedAnalyticalDesigner?: boolean;
20
19
  useHostedDashboards?: boolean;
21
20
  onAskAiAssistant?: (question: string) => void;
22
21
  onEvent?: (event: SemanticSearchEvent) => void;
23
22
  }
24
- export declare function SemanticSearch({ backend, workspaceId, metadataTimeZone, canManage, canAnalyze, canFullControl, isTrial, enableUseGenAIChat, useHostedAnalyticalDesigner, useHostedDashboards, onAskAiAssistant, onEvent, }: ISemanticSearchProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare function SemanticSearch({ backend, workspaceId, metadataTimeZone, canManage, canAnalyze, canFullControl, isTrial, enableUseGenAIChat, useHostedDashboards, onAskAiAssistant, onEvent, }: ISemanticSearchProps): import("react/jsx-runtime").JSX.Element;
25
24
  //# sourceMappingURL=SemanticSearch.d.ts.map
@@ -1 +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,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,2BAAmC,EACnC,mBAA2B,EAC3B,gBAAgB,EAChB,OAAO,GACV,EAAE,oBAAoB,2CAmFtB"}
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,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,mBAA2B,EAC3B,gBAAgB,EAChB,OAAO,GACV,EAAE,oBAAoB,2CAkFtB"}
@@ -4,7 +4,7 @@ import { useCallback, useEffect, useMemo } from "react";
4
4
  import { useIntl } from "react-intl";
5
5
  import { FooterButtonAiAssistant, SearchOverlay, useSearchMetrics, } from "@gooddata/sdk-ui-semantic-search/internal";
6
6
  const RESULTS_LIMIT = 10;
7
- export function SemanticSearch({ backend, workspaceId, metadataTimeZone, canManage = false, canAnalyze = false, canFullControl = false, isTrial = false, enableUseGenAIChat = false, useHostedAnalyticalDesigner = false, useHostedDashboards = false, onAskAiAssistant, onEvent, }) {
7
+ export function SemanticSearch({ backend, workspaceId, metadataTimeZone, canManage = false, canAnalyze = false, canFullControl = false, isTrial = false, enableUseGenAIChat = false, useHostedDashboards = false, onAskAiAssistant, onEvent, }) {
8
8
  const intl = useIntl();
9
9
  const objectTypes = useMemo(() => {
10
10
  const types = ["dashboard", "visualization"];
@@ -44,7 +44,6 @@ export function SemanticSearch({ backend, workspaceId, metadataTimeZone, canMana
44
44
  };
45
45
  return (_jsx(SearchOverlay, { limit: RESULTS_LIMIT, locale: intl.locale, onSelect: onSelect, onSearch: onSearchMetrics, deepSearch: false, objectTypes: objectTypes, workspace: workspaceId, backend: backend, canManage: canManage, canAnalyze: canAnalyze, canFullControl: canFullControl, metadataTimezone: metadataTimeZone, uiPathOptions: {
46
46
  useHostedMetricEditor: true,
47
- useHostedAnalyticalDesigner,
48
47
  useHostedLdmModeler: true,
49
48
  useHostedDashboards,
50
49
  }, renderFooter: renderFooter }));
@@ -1 +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,GACZ,EAAE,wBAAwB,GAAG,iBAAiB,CA6B9C"}
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,GACZ,EAAE,wBAAwB,GAAG,iBAAiB,CA0B9C"}
@@ -13,6 +13,6 @@ export function useHostChromeSearch({ features, isTrial, onAskAiAssistant, telem
13
13
  const handleSearchEvent = useCallback((event) => {
14
14
  telemetry?.trackEvent(event.name, event.payload);
15
15
  }, [telemetry]);
16
- const element = features.showSearch && features.workspaceId ? (_jsx(SemanticSearch, { backend: getBackend(), workspaceId: features.workspaceId, canManage: features.canManageProject, canAnalyze: features.canAnalyzeWorkspace, canFullControl: features.canFullControl, metadataTimeZone: features.settings.metadataTimeZone, isTrial: isTrial, enableUseGenAIChat: features.showChat, useHostedAnalyticalDesigner: Boolean(features.settings.enableShellApplication_analyticalDesigner), useHostedDashboards: Boolean(features.settings.enableShellApplication_dashboards), onAskAiAssistant: onAskAiAssistant, onEvent: handleSearchEvent })) : null;
16
+ const element = features.showSearch && features.workspaceId ? (_jsx(SemanticSearch, { backend: getBackend(), workspaceId: features.workspaceId, canManage: features.canManageProject, canAnalyze: features.canAnalyzeWorkspace, canFullControl: features.canFullControl, metadataTimeZone: features.settings.metadataTimeZone, isTrial: isTrial, enableUseGenAIChat: features.showChat, useHostedDashboards: Boolean(features.settings.enableShellApplication_dashboards), onAskAiAssistant: onAskAiAssistant, onEvent: handleSearchEvent })) : null;
17
17
  return { element };
18
18
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-pluggable-host",
3
- "version": "11.60.0-alpha.2",
3
+ "version": "11.60.0-alpha.3",
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.6.0",
31
31
  "lodash-es": "^4.17.23",
32
- "@gooddata/sdk-backend-base": "11.60.0-alpha.2",
33
- "@gooddata/sdk-backend-tiger": "11.60.0-alpha.2",
34
- "@gooddata/sdk-embedding": "11.60.0-alpha.2",
35
- "@gooddata/sdk-model": "11.60.0-alpha.2",
36
- "@gooddata/sdk-backend-spi": "11.60.0-alpha.2",
37
- "@gooddata/sdk-pluggable-application-model": "11.60.0-alpha.2",
38
- "@gooddata/sdk-ui-ext": "11.60.0-alpha.2",
39
- "@gooddata/sdk-ui-application-header": "11.60.0-alpha.2",
40
- "@gooddata/sdk-ui": "11.60.0-alpha.2",
41
- "@gooddata/sdk-ui-gen-ai": "11.60.0-alpha.2",
42
- "@gooddata/sdk-ui-kit": "11.60.0-alpha.2",
43
- "@gooddata/sdk-ui-semantic-search": "11.60.0-alpha.2",
44
- "@gooddata/sdk-ui-theme-provider": "11.60.0-alpha.2",
45
- "@gooddata/util": "11.60.0-alpha.2"
32
+ "@gooddata/sdk-backend-base": "11.60.0-alpha.3",
33
+ "@gooddata/sdk-backend-spi": "11.60.0-alpha.3",
34
+ "@gooddata/sdk-embedding": "11.60.0-alpha.3",
35
+ "@gooddata/sdk-model": "11.60.0-alpha.3",
36
+ "@gooddata/sdk-pluggable-application-model": "11.60.0-alpha.3",
37
+ "@gooddata/sdk-backend-tiger": "11.60.0-alpha.3",
38
+ "@gooddata/sdk-ui": "11.60.0-alpha.3",
39
+ "@gooddata/sdk-ui-application-header": "11.60.0-alpha.3",
40
+ "@gooddata/sdk-ui-gen-ai": "11.60.0-alpha.3",
41
+ "@gooddata/sdk-ui-kit": "11.60.0-alpha.3",
42
+ "@gooddata/sdk-ui-semantic-search": "11.60.0-alpha.3",
43
+ "@gooddata/sdk-ui-ext": "11.60.0-alpha.3",
44
+ "@gooddata/sdk-ui-theme-provider": "11.60.0-alpha.3",
45
+ "@gooddata/util": "11.60.0-alpha.3"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@microsoft/api-documenter": "7.30.16",
@@ -81,8 +81,8 @@
81
81
  "vite": "8.0.16",
82
82
  "vitest": "4.1.11",
83
83
  "vitest-dom": "0.1.1",
84
- "@gooddata/eslint-config": "11.60.0-alpha.2",
85
- "@gooddata/oxlint-config": "11.60.0-alpha.2"
84
+ "@gooddata/eslint-config": "11.60.0-alpha.3",
85
+ "@gooddata/oxlint-config": "11.60.0-alpha.3"
86
86
  },
87
87
  "peerDependencies": {
88
88
  "react": ">=18.3.1",