@gooddata/sdk-ui-gen-ai 11.53.0-alpha.6 → 11.53.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.
@@ -1 +1 @@
1
- {"version":3,"file":"useInputAutofocus.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useInputAutofocus.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,EAC5B,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,2EAiC5B"}
1
+ {"version":3,"file":"useInputAutofocus.d.ts","sourceRoot":"","sources":["../../../src/components/hooks/useInputAutofocus.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAOnD,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,UAAU,GAAG,IAAI,EAC5B,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,2EA2C5B"}
@@ -1,9 +1,13 @@
1
1
  // (C) 2026 GoodData Corporation
2
2
  import { createRef, useEffect, useMemo, useRef } from "react";
3
+ import { useSelector } from "react-redux";
3
4
  import { useUiAutofocusConnectors } from "@gooddata/sdk-ui-kit";
5
+ import { conversationSelector } from "../../store/messages/messagesSelectors.js";
4
6
  export function useInputAutofocus(editorApi, autofocus, opts) {
5
7
  // Force focus when autofocus is enables on the first mount, right after the initial state is loaded
6
8
  const forceFocusOnce = useRef(autofocus);
9
+ const conversationLocalId = useSelector(conversationSelector)?.localId;
10
+ const focusedConversationLocalId = useRef(conversationLocalId);
7
11
  const initialFocus = useMemo(() => {
8
12
  const ref = createRef();
9
13
  ref.current = editorApi?.contentDOM;
@@ -11,14 +15,21 @@ export function useInputAutofocus(editorApi, autofocus, opts) {
11
15
  }, [editorApi]);
12
16
  const ref = useUiAutofocusConnectors({
13
17
  initialFocus,
14
- active: autofocus && !opts.isBusy && (forceFocusOnce.current || document.activeElement === document.body),
15
- refocusKey: opts.isBusy,
18
+ active: autofocus &&
19
+ !opts.isBusy &&
20
+ (forceFocusOnce.current ||
21
+ document.activeElement === document.body ||
22
+ focusedConversationLocalId.current !== conversationLocalId),
23
+ refocusKey: `${opts.isBusy}-${conversationLocalId ?? ""}`,
16
24
  });
17
25
  useEffect(() => {
18
26
  if (document.activeElement === editorApi?.contentDOM) {
19
27
  forceFocusOnce.current = false;
20
28
  }
21
29
  }, [editorApi]);
30
+ useEffect(() => {
31
+ focusedConversationLocalId.current = conversationLocalId;
32
+ }, [conversationLocalId]);
22
33
  useEffect(() => () => {
23
34
  // When unmount occurred, reset the autofocus
24
35
  forceFocusOnce.current = true;
@@ -10,6 +10,7 @@ export interface IIntelligenceTimelineProps {
10
10
  * The single timeline track shared by the list view and every category's detail view: one tile
11
11
  * per interaction step, with a hover tooltip listing that step's activities and its own
12
12
  * duration/tokens. Never navigable — highlighting is driven entirely by `highlightedStepIndexes`.
13
+ * Self-gated on the `enableGenAiInteractionIntelligence_timeline` sub-flag.
13
14
  */
14
- export declare function IntelligenceTimeline({ steps, totalDurationMs, categories, highlightedStepIndexes }: IIntelligenceTimelineProps): import("react/jsx-runtime").JSX.Element;
15
+ export declare function IntelligenceTimeline({ steps, totalDurationMs, categories, highlightedStepIndexes }: IIntelligenceTimelineProps): import("react/jsx-runtime").JSX.Element | null;
15
16
  //# sourceMappingURL=IntelligenceTimeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IntelligenceTimeline.d.ts","sourceRoot":"","sources":["../../../../src/components/intelligence/panel/IntelligenceTimeline.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAMnF,MAAM,WAAW,0BAA0B;IACvC,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,8FAA4F;IAC5F,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EACjC,KAAK,EACL,eAAe,EACf,UAAU,EACV,sBAAsB,EACzB,EAAE,0BAA0B,2CAc5B"}
1
+ {"version":3,"file":"IntelligenceTimeline.d.ts","sourceRoot":"","sources":["../../../../src/components/intelligence/panel/IntelligenceTimeline.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAMnF,MAAM,WAAW,0BAA0B;IACvC,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,8FAA4F;IAC5F,sBAAsB,CAAC,EAAE,MAAM,EAAE,CAAC;CACrC;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,EACjC,KAAK,EACL,eAAe,EACf,UAAU,EACV,sBAAsB,EACzB,EAAE,0BAA0B,kDAmB5B"}
@@ -1,6 +1,8 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  // (C) 2026 GoodData Corporation
3
3
  import { useMemo } from "react";
4
+ import { useSelector } from "react-redux";
5
+ import { interactionIntelligenceTimelineEnabledSelector } from "../../../store/chatWindow/chatWindowSelectors.js";
4
6
  import { computeSegments } from "../data/timeline.js";
5
7
  import { e } from "../intelligenceBem.js";
6
8
  import { IntelligenceStepTooltip } from "./IntelligenceStepTooltip.js";
@@ -9,8 +11,13 @@ import { TimelineBar } from "./TimelineBar.js";
9
11
  * The single timeline track shared by the list view and every category's detail view: one tile
10
12
  * per interaction step, with a hover tooltip listing that step's activities and its own
11
13
  * duration/tokens. Never navigable — highlighting is driven entirely by `highlightedStepIndexes`.
14
+ * Self-gated on the `enableGenAiInteractionIntelligence_timeline` sub-flag.
12
15
  */
13
16
  export function IntelligenceTimeline({ steps, totalDurationMs, categories, highlightedStepIndexes, }) {
17
+ const timelineEnabled = useSelector(interactionIntelligenceTimelineEnabledSelector);
14
18
  const segments = useMemo(() => computeSegments(steps, totalDurationMs), [steps, totalDurationMs]);
19
+ if (!timelineEnabled) {
20
+ return null;
21
+ }
15
22
  return (_jsx("div", { className: e("timeline-wrapper"), children: _jsx(TimelineBar, { segments: segments, highlightedStepIndexes: highlightedStepIndexes, renderTooltip: (segment) => (_jsx(IntelligenceStepTooltip, { step: steps[segment.stepIndex], categories: categories })) }) }));
16
23
  }
@@ -15,6 +15,7 @@ export declare const reasoningEffortEnabledSelector: (state: RootState) => boole
15
15
  export declare const agentSwitchingActiveSelector: (state: RootState) => boolean;
16
16
  export declare const allowInteractionIntelligenceSelector: (state: RootState) => boolean;
17
17
  export declare const interactionIntelligenceEnabledSelector: (state: RootState) => boolean;
18
+ export declare const interactionIntelligenceTimelineEnabledSelector: (state: RootState) => boolean;
18
19
  export declare const objectTypesSelector: (state: RootState) => GenAIObjectType[] | undefined;
19
20
  export declare const allowedRelationshipTypesSelector: (state: RootState) => IAllowedRelationshipType[] | undefined;
20
21
  export declare const tagsSelector: (state: RootState) => {
@@ -1 +1 @@
1
- {"version":3,"file":"chatWindowSelectors.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSelectors.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEzB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,eAAO,MAAM,cAAc,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGlD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGxD,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGrD,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,aAAa,GAAG,SAGxE,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,sBAAsB,GAAG,SAG7E,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGrD,CAAC;AAEF,eAAO,MAAM,6BAA6B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGjE,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAG/D,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGlE,CAAC;AAKF,eAAO,MAAM,4BAA4B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAIhE,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAGxE,CAAC;AAKF,eAAO,MAAM,sCAAsC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAK1E,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,eAAe,EAAE,GAAG,SAG3E,CAAC;AAEF,eAAO,MAAM,gCAAgC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,wBAAwB,EAAE,GAAG,SACZ,CAAC;AAEvF,eAAO,MAAM,YAAY,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK;IAC7C,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAClC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;CAMpC,CAAC;AAEH,eAAO,MAAM,oBAAoB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,WAAW,EAKnE,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,mBAG1D,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,MAGhE,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,cAAc,GAAG,SAG9E,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAAO,GAAG,SAGhF,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,iBAAiB,GAAG,SAG3E,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,iBAAiB,GAAG,SAG9E,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,OAe5D,CAAC"}
1
+ {"version":3,"file":"chatWindowSelectors.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSelectors.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,8 @@ export const allowInteractionIntelligenceSelector = createSelector(chatWindowSli
21
21
  // Requires both the plug-in instance to allow it (agent builder passes `allowInteractionIntelligence`)
22
22
  // and the workspace-level feature flag to be on.
23
23
  export const interactionIntelligenceEnabledSelector = createSelector(allowInteractionIntelligenceSelector, settingsSelector, (allowInteractionIntelligence, settings) => allowInteractionIntelligence && settings?.["enableGenAiInteractionIntelligence"] === true);
24
+ // Whether the timeline bar is shown inside the (already gated) Interaction Intelligence panel.
25
+ export const interactionIntelligenceTimelineEnabledSelector = createSelector(settingsSelector, (settings) => settings?.["enableGenAiInteractionIntelligence_timeline"] === true);
24
26
  export const objectTypesSelector = createSelector(chatWindowSliceSelector, (state) => state.objectTypes);
25
27
  export const allowedRelationshipTypesSelector = createSelector(chatWindowSliceSelector, (state) => state.allowedRelationshipTypes);
26
28
  export const tagsSelector = createSelector(chatWindowSliceSelector, (state) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-gen-ai",
3
- "version": "11.53.0-alpha.6",
3
+ "version": "11.53.0",
4
4
  "description": "GoodData GenAI SDK",
5
5
  "license": "MIT",
6
6
  "author": "GoodData Corporation",
@@ -57,18 +57,18 @@
57
57
  "reselect": "5.1.1",
58
58
  "tslib": "2.8.1",
59
59
  "uuid": "11.1.1",
60
- "@gooddata/api-client-tiger": "11.53.0-alpha.6",
61
- "@gooddata/sdk-backend-spi": "11.53.0-alpha.6",
62
- "@gooddata/sdk-model": "11.53.0-alpha.6",
63
- "@gooddata/sdk-ui-charts": "11.53.0-alpha.6",
64
- "@gooddata/sdk-ui": "11.53.0-alpha.6",
65
- "@gooddata/sdk-ui-dashboard": "11.53.0-alpha.6",
66
- "@gooddata/sdk-ui-filters": "11.53.0-alpha.6",
67
- "@gooddata/sdk-ui-kit": "11.53.0-alpha.6",
68
- "@gooddata/sdk-ui-semantic-search": "11.53.0-alpha.6",
69
- "@gooddata/sdk-ui-pivot": "11.53.0-alpha.6",
70
- "@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.6",
71
- "@gooddata/util": "11.53.0-alpha.6"
60
+ "@gooddata/api-client-tiger": "11.53.0",
61
+ "@gooddata/sdk-backend-spi": "11.53.0",
62
+ "@gooddata/sdk-model": "11.53.0",
63
+ "@gooddata/sdk-ui-charts": "11.53.0",
64
+ "@gooddata/sdk-ui": "11.53.0",
65
+ "@gooddata/sdk-ui-dashboard": "11.53.0",
66
+ "@gooddata/sdk-ui-filters": "11.53.0",
67
+ "@gooddata/sdk-ui-kit": "11.53.0",
68
+ "@gooddata/sdk-ui-pivot": "11.53.0",
69
+ "@gooddata/sdk-ui-semantic-search": "11.53.0",
70
+ "@gooddata/sdk-ui-theme-provider": "11.53.0",
71
+ "@gooddata/util": "11.53.0"
72
72
  },
73
73
  "devDependencies": {
74
74
  "@microsoft/api-documenter": "^7.17.0",
@@ -111,13 +111,13 @@
111
111
  "typescript": "5.9.3",
112
112
  "vitest": "4.1.8",
113
113
  "vitest-dom": "0.1.1",
114
- "@gooddata/eslint-config": "11.53.0-alpha.6",
115
- "@gooddata/i18n-toolkit": "11.53.0-alpha.6",
116
- "@gooddata/oxlint-config": "11.53.0-alpha.6",
117
- "@gooddata/reference-workspace": "11.53.0-alpha.6",
118
- "@gooddata/sdk-backend-mockingbird": "11.53.0-alpha.6",
119
- "@gooddata/sdk-ui-theme-provider": "11.53.0-alpha.6",
120
- "@gooddata/stylelint-config": "11.53.0-alpha.6"
114
+ "@gooddata/eslint-config": "11.53.0",
115
+ "@gooddata/i18n-toolkit": "11.53.0",
116
+ "@gooddata/oxlint-config": "11.53.0",
117
+ "@gooddata/reference-workspace": "11.53.0",
118
+ "@gooddata/sdk-backend-mockingbird": "11.53.0",
119
+ "@gooddata/sdk-ui-theme-provider": "11.53.0",
120
+ "@gooddata/stylelint-config": "11.53.0"
121
121
  },
122
122
  "peerDependencies": {
123
123
  "react": "^18.0.0 || ^19.0.0",