@gooddata/sdk-ui-gen-ai 11.39.0-alpha.3 → 11.39.0

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.
package/NOTICE CHANGED
@@ -7,9 +7,9 @@
7
7
 
8
8
  The following 3rd-party software packages may be used by or distributed with gooddata-ui-sdk. Any information relevant to third-party vendors listed below are collected using common, reasonable means.
9
9
 
10
- Date generated: 2026-5-25
10
+ Date generated: 2026-5-27
11
11
 
12
- Revision ID: 071fd8600e18fa643f19bd192894b326ecedff0a
12
+ Revision ID: cca91b63bcb24d8939c88b56da17c29f0346e9e2
13
13
 
14
14
  ================================================================================
15
15
  ================================================================================
@@ -38189,4 +38189,4 @@ POSSIBILITY OF SUCH DAMAGE.
38189
38189
  --------------------------------------------------------------------------------
38190
38190
  --------------------------------------------------------------------------------
38191
38191
 
38192
- Report Generated by FOSSA on 2026-5-25
38192
+ Report Generated by FOSSA on 2026-5-27
@@ -1,6 +1,6 @@
1
1
  import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  // (C) 2026 GoodData Corporation
3
- import { useCallback, useMemo, useRef, useState, } from "react";
3
+ import { useCallback, useEffect, useMemo, useRef, useState, } from "react";
4
4
  import cx from "classnames";
5
5
  import { FormattedMessage, useIntl } from "react-intl";
6
6
  import { connect, useSelector } from "react-redux";
@@ -218,21 +218,29 @@ function GenAIChatConversationsComponent({ setHistory, deleteConversation, pinCo
218
218
  ] }), closeLabel: intl.formatMessage({ id: "gd.gen-ai.conversations.close-label" }), onClickClose: () => setHistory({ isHistory: false }), onClickOutside: () => setHistory({ isHistory: false }), children: _jsx("div", { className: cx("gd-gen-ai-chat__window__conversations", {
219
219
  "gd-gen-ai-chat__window__conversations--isFullscreen": isFullscreen,
220
220
  "gd-gen-ai-chat__window__conversations--isSmallScreen": isSmallScreen,
221
- }), children: _jsx(DrawerContent, { openedId: openedId, menuRef: menuRef, menuItems: menuItems, conversations: conversations ?? [], handleSelect: handleSelect, draggedConversation: draggedConversation, activeDropZone: activeDropZone, onDragStart: handleDragStart, onDragEnd: handleDragEnd, onDropZoneDragOver: handleDropZoneDragOver, onDropZoneDragLeave: handleDropZoneDragLeave, onDropZoneDrop: handleDropZoneDrop, onMenuUnhandledKeyDown: handleMenuUnhandledKeyDown }) }) }), conversationToDelete ? (_jsx(ConversationDeleteDialog, { conversation: conversationToDelete, onClose: handleDeleteCancel, onDelete: handleDeleteSubmit })) : null, conversationToRename ? (_jsx(ConversationRenameDialog, { conversation: conversationToRename, onClose: handleRenameCancel, onRename: handleRenameSubmit })) : null] }));
221
+ }), children: _jsx(DrawerContent, { isOpen: isHistory, openedId: openedId, selectedId: currentConversation?.localId, menuRef: menuRef, menuItems: menuItems, conversations: conversations ?? [], handleSelect: handleSelect, draggedConversation: draggedConversation, activeDropZone: activeDropZone, onDragStart: handleDragStart, onDragEnd: handleDragEnd, onDropZoneDragOver: handleDropZoneDragOver, onDropZoneDragLeave: handleDropZoneDragLeave, onDropZoneDrop: handleDropZoneDrop, onMenuUnhandledKeyDown: handleMenuUnhandledKeyDown }) }) }), conversationToDelete ? (_jsx(ConversationDeleteDialog, { conversation: conversationToDelete, onClose: handleDeleteCancel, onDelete: handleDeleteSubmit })) : null, conversationToRename ? (_jsx(ConversationRenameDialog, { conversation: conversationToRename, onClose: handleRenameCancel, onRename: handleRenameSubmit })) : null] }));
222
222
  }
223
- function DrawerContent({ openedId, menuRef, conversations, menuItems, handleSelect, draggedConversation, activeDropZone, onDragStart, onDragEnd, onDropZoneDragOver, onDropZoneDragLeave, onDropZoneDrop, onMenuUnhandledKeyDown, }) {
223
+ function DrawerContent({ isOpen, openedId, selectedId, menuRef, conversations, menuItems, handleSelect, draggedConversation, activeDropZone, onDragStart, onDragEnd, onDropZoneDragOver, onDropZoneDragLeave, onDropZoneDrop, onMenuUnhandledKeyDown, }) {
224
224
  const intl = useIntl();
225
+ const conversationsListRef = useRef(null);
225
226
  const pinnedItems = useMemo(() => {
226
227
  return menuItems.filter((item) => item.id === ConversationDateGroup.PINNED);
227
228
  }, [menuItems]);
228
229
  const restItems = useMemo(() => {
229
230
  return menuItems.filter((item) => item.id !== ConversationDateGroup.PINNED);
230
231
  }, [menuItems]);
232
+ useEffect(() => {
233
+ if (!isOpen || !selectedId) {
234
+ return;
235
+ }
236
+ const selectedItem = conversationsListRef.current?.querySelector(`[data-conversation-id="${selectedId}"]`);
237
+ selectedItem?.scrollIntoView({ block: "nearest" });
238
+ }, [isOpen, selectedId, menuItems]);
231
239
  return (_jsx(_Fragment, { children: (conversations ?? []).length === 0 ? (_jsxs("div", { className: "gd-gen-ai-chat__window__conversations__empty", children: [
232
240
  _jsx(UiIcon, { type: "history2", size: 20, color: "complementary-6" }), _jsx("div", { className: "gd-gen-ai-chat__window__conversations__empty__text", children: _jsx(FormattedMessage, { id: "gd.gen-ai.conversations.empty", values: {
233
241
  br: _jsx("br", {}),
234
242
  } }) })
235
- ] })) : (_jsxs("div", { className: "gd-gen-ai-chat__window__conversations__list", children: [
243
+ ] })) : (_jsxs("div", { className: "gd-gen-ai-chat__window__conversations__list", ref: conversationsListRef, children: [
236
244
  _jsxs("div", { className: "gd-gen-ai-chat__window__conversations__drop-group", onDragLeave: onDropZoneDragLeave, onDragOver: (event) => onDropZoneDragOver("pin", event), onDrop: (event) => onDropZoneDrop("pin", event), children: [
237
245
  _jsx("div", { className: cx("gd-gen-ai-chat__window__conversations__drop-placeholder", {
238
246
  isDragging: activeDropZone === "body" && !draggedConversation?.pinned,
@@ -2,8 +2,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  // (C) 2025-2026 GoodData Corporation
3
3
  import { useCallback, useId } from "react";
4
4
  import { useIntl } from "react-intl";
5
+ import { useSelector } from "react-redux";
5
6
  import { isSemanticSearchRelationship, isSemanticSearchResultItem } from "@gooddata/sdk-model";
6
7
  import { LeveledSearchTreeView, SemanticSearchIntlProvider, buildSemanticSearchTreeViewItems, } from "@gooddata/sdk-ui-semantic-search/internal";
8
+ import { settingsSelector } from "../../../store/chatWindow/chatWindowSelectors.js";
7
9
  import { useConfig } from "../../ConfigContext.js";
8
10
  export function SemanticSearchTreeView(props) {
9
11
  const intl = useIntl();
@@ -12,7 +14,9 @@ export function SemanticSearchTreeView(props) {
12
14
  export function SemanticSearchTreeViewImpl({ workspace, content, maxHeight }) {
13
15
  const intl = useIntl();
14
16
  const { canFullControl, canManage, canAnalyze, linkHandler } = useConfig();
17
+ const settings = useSelector(settingsSelector);
15
18
  const canEdit = canFullControl || canManage || canAnalyze;
19
+ const useHostMetricEditor = Boolean(settings?.enableShellApplication_metricEditor);
16
20
  const items = buildSemanticSearchTreeViewItems({
17
21
  intl,
18
22
  workspace,
@@ -20,6 +24,7 @@ export function SemanticSearchTreeViewImpl({ workspace, content, maxHeight }) {
20
24
  relationships: content.relationships,
21
25
  threshold: 0, // Keep all items for now
22
26
  canEdit,
27
+ uiPathOptions: { useHostedMetricEditor: useHostMetricEditor },
23
28
  });
24
29
  const id = useId();
25
30
  const treeViewId = `gen-ai-chat-${id}-treeview`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-gen-ai",
3
- "version": "11.39.0-alpha.3",
3
+ "version": "11.39.0",
4
4
  "description": "GoodData GenAI SDK",
5
5
  "license": "MIT",
6
6
  "author": "GoodData Corporation",
@@ -56,18 +56,18 @@
56
56
  "reselect": "5.1.1",
57
57
  "tslib": "2.8.1",
58
58
  "uuid": "11.1.0",
59
- "@gooddata/api-client-tiger": "11.39.0-alpha.3",
60
- "@gooddata/sdk-backend-spi": "11.39.0-alpha.3",
61
- "@gooddata/sdk-ui": "11.39.0-alpha.3",
62
- "@gooddata/sdk-model": "11.39.0-alpha.3",
63
- "@gooddata/sdk-ui-charts": "11.39.0-alpha.3",
64
- "@gooddata/sdk-ui-dashboard": "11.39.0-alpha.3",
65
- "@gooddata/sdk-ui-filters": "11.39.0-alpha.3",
66
- "@gooddata/sdk-ui-semantic-search": "11.39.0-alpha.3",
67
- "@gooddata/sdk-ui-kit": "11.39.0-alpha.3",
68
- "@gooddata/sdk-ui-theme-provider": "11.39.0-alpha.3",
69
- "@gooddata/sdk-ui-pivot": "11.39.0-alpha.3",
70
- "@gooddata/util": "11.39.0-alpha.3"
59
+ "@gooddata/api-client-tiger": "11.39.0",
60
+ "@gooddata/sdk-backend-spi": "11.39.0",
61
+ "@gooddata/sdk-model": "11.39.0",
62
+ "@gooddata/sdk-ui-charts": "11.39.0",
63
+ "@gooddata/sdk-ui": "11.39.0",
64
+ "@gooddata/sdk-ui-dashboard": "11.39.0",
65
+ "@gooddata/sdk-ui-filters": "11.39.0",
66
+ "@gooddata/sdk-ui-kit": "11.39.0",
67
+ "@gooddata/sdk-ui-pivot": "11.39.0",
68
+ "@gooddata/sdk-ui-semantic-search": "11.39.0",
69
+ "@gooddata/sdk-ui-theme-provider": "11.39.0",
70
+ "@gooddata/util": "11.39.0"
71
71
  },
72
72
  "devDependencies": {
73
73
  "@microsoft/api-documenter": "^7.17.0",
@@ -110,13 +110,13 @@
110
110
  "typescript": "5.9.3",
111
111
  "vitest": "4.1.0",
112
112
  "vitest-dom": "0.1.1",
113
- "@gooddata/eslint-config": "11.39.0-alpha.3",
114
- "@gooddata/oxlint-config": "11.39.0-alpha.3",
115
- "@gooddata/i18n-toolkit": "11.39.0-alpha.3",
116
- "@gooddata/reference-workspace": "11.39.0-alpha.3",
117
- "@gooddata/sdk-backend-mockingbird": "11.39.0-alpha.3",
118
- "@gooddata/sdk-ui-theme-provider": "11.39.0-alpha.3",
119
- "@gooddata/stylelint-config": "11.39.0-alpha.3"
113
+ "@gooddata/eslint-config": "11.39.0",
114
+ "@gooddata/oxlint-config": "11.39.0",
115
+ "@gooddata/i18n-toolkit": "11.39.0",
116
+ "@gooddata/reference-workspace": "11.39.0",
117
+ "@gooddata/sdk-backend-mockingbird": "11.39.0",
118
+ "@gooddata/sdk-ui-theme-provider": "11.39.0",
119
+ "@gooddata/stylelint-config": "11.39.0"
120
120
  },
121
121
  "peerDependencies": {
122
122
  "react": "^18.0.0 || ^19.0.0",