@gooddata/sdk-ui-gen-ai 11.45.0-alpha.0 → 11.45.0-alpha.1
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/esm/components/GenAIChatDialogConnected.d.ts +108 -0
- package/esm/components/GenAIChatDialogConnected.d.ts.map +1 -0
- package/esm/components/GenAIChatDialogConnected.js +118 -0
- package/esm/internal.d.ts +1 -0
- package/esm/internal.d.ts.map +1 -1
- package/esm/internal.js +1 -0
- package/package.json +20 -20
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { type RefObject } from "react";
|
|
2
|
+
import { type IAnalyticalBackend, type IUserWorkspaceSettings } from "@gooddata/sdk-backend-spi";
|
|
3
|
+
import type { GenAIObjectType, IColorPalette, IGenAIUserContext } from "@gooddata/sdk-model";
|
|
4
|
+
import { type ChatAssistantMessageEvent, type ChatClosedEvent, type ChatCopyToClipboardEvent, type ChatEvent, type ChatFeedbackErrorEvent, type ChatFeedbackEvent, type ChatOpenedEvent, type ChatResetEvent, type ChatSaveVisualizationErrorEvent, type ChatSaveVisualizationSuccessEvent, type ChatUserMessageEvent } from "../store/events.js";
|
|
5
|
+
import { type LinkHandlerEvent } from "./ConfigContext.js";
|
|
6
|
+
/**
|
|
7
|
+
* Discriminated union of GenAI chat events surfaced to a caller via {@link IGenAIChatDialogConnectedProps.onEvent}.
|
|
8
|
+
*
|
|
9
|
+
* @remarks
|
|
10
|
+
* Each consuming application maps these to its own telemetry sink and toast strings (the message ids differ
|
|
11
|
+
* per app — e.g. the host's `messages.genAi.*` vs KD's `gd.gen-ai.feedback.*`), so this connected wrapper
|
|
12
|
+
* deliberately does NOT render toasts itself; it only normalizes the raw chat events into this union.
|
|
13
|
+
*
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export type GenAIChatConnectedEvent = {
|
|
17
|
+
name: "opened";
|
|
18
|
+
payload: ChatOpenedEvent;
|
|
19
|
+
} | {
|
|
20
|
+
name: "closed";
|
|
21
|
+
payload: ChatClosedEvent;
|
|
22
|
+
} | {
|
|
23
|
+
name: "reset";
|
|
24
|
+
payload: ChatResetEvent;
|
|
25
|
+
} | {
|
|
26
|
+
name: "user-message";
|
|
27
|
+
payload: ChatUserMessageEvent;
|
|
28
|
+
} | {
|
|
29
|
+
name: "assistant-message";
|
|
30
|
+
payload: ChatAssistantMessageEvent;
|
|
31
|
+
} | {
|
|
32
|
+
name: "feedback";
|
|
33
|
+
payload: ChatFeedbackEvent;
|
|
34
|
+
} | {
|
|
35
|
+
name: "feedback-error";
|
|
36
|
+
payload: ChatFeedbackErrorEvent;
|
|
37
|
+
} | {
|
|
38
|
+
name: "save-visualization-success";
|
|
39
|
+
payload: ChatSaveVisualizationSuccessEvent;
|
|
40
|
+
} | {
|
|
41
|
+
name: "save-visualization-error";
|
|
42
|
+
payload: ChatSaveVisualizationErrorEvent;
|
|
43
|
+
} | {
|
|
44
|
+
name: "copy-to-clipboard";
|
|
45
|
+
payload: ChatCopyToClipboardEvent;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Props for {@link GenAIChatDialogConnected}.
|
|
49
|
+
*
|
|
50
|
+
* @internal
|
|
51
|
+
*/
|
|
52
|
+
export interface IGenAIChatDialogConnectedProps {
|
|
53
|
+
/** Backend; defaults to the ambient `BackendProvider` when omitted. */
|
|
54
|
+
backend?: IAnalyticalBackend;
|
|
55
|
+
/** Workspace; defaults to the ambient `WorkspaceProvider` when omitted. */
|
|
56
|
+
workspace?: string;
|
|
57
|
+
locale?: string;
|
|
58
|
+
canManage?: boolean;
|
|
59
|
+
canAnalyze?: boolean;
|
|
60
|
+
canFullControl?: boolean;
|
|
61
|
+
settings?: IUserWorkspaceSettings;
|
|
62
|
+
/** Open-state is fully controlled by the caller (props, not redux). */
|
|
63
|
+
isOpen: boolean;
|
|
64
|
+
onOpen: () => void;
|
|
65
|
+
onClose: () => void;
|
|
66
|
+
/** A question to seed into the chat when it opens. */
|
|
67
|
+
askedQuestion?: string | null;
|
|
68
|
+
/**
|
|
69
|
+
* Monotonic counter bumped on every ask. Keying the seeding effect on it re-seeds the chat
|
|
70
|
+
* (clear thread + send message) even when `askedQuestion` is identical to the previous ask.
|
|
71
|
+
*/
|
|
72
|
+
askSeq?: number;
|
|
73
|
+
/** Context of the user's location when the question was asked, sent alongside the seeded question. */
|
|
74
|
+
userContext?: IGenAIUserContext;
|
|
75
|
+
/** When true, the seeded question is appended to the existing thread instead of clearing it first. */
|
|
76
|
+
appendToChat?: boolean;
|
|
77
|
+
/** Object-search tag scope reflecting the caller's current view. */
|
|
78
|
+
includeTags?: string[];
|
|
79
|
+
excludeTags?: string[];
|
|
80
|
+
/** Override the derived object types (default: dashboard, visualization, + metric when `canManage`). */
|
|
81
|
+
objectTypes?: GenAIObjectType[];
|
|
82
|
+
/** Normalized chat events for telemetry/toasts; mapped per-consumer. */
|
|
83
|
+
onEvent?: (event: GenAIChatConnectedEvent) => void;
|
|
84
|
+
/** Escape hatch firing for every raw chat event (e.g. a catch-all telemetry sink). */
|
|
85
|
+
onAnyEvent?: (event: ChatEvent) => void;
|
|
86
|
+
dialogPosition?: "left" | "right";
|
|
87
|
+
className?: string;
|
|
88
|
+
colorPalette?: IColorPalette;
|
|
89
|
+
/** Defaults to `true`; embedded callers pass `false` to intercept link clicks. */
|
|
90
|
+
allowNativeLinks?: boolean;
|
|
91
|
+
/** Override the default open-in-tab / same-tab navigation link handling. */
|
|
92
|
+
onLinkClick?: (linkClickEvent: LinkHandlerEvent) => string | undefined;
|
|
93
|
+
/** Element (or id) focus returns to on close. */
|
|
94
|
+
returnFocusTo?: RefObject<HTMLElement | null> | string;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* A "connected" wrapper over {@link GenAIChatDialog} that centralizes the wiring every consumer otherwise
|
|
98
|
+
* duplicates: object-type derivation, the dispatcher-based seeding flow (clear thread / set user context /
|
|
99
|
+
* agentic-vs-classic message keyed on `enableAiAgenticConversations`), default link handling, and normalizing
|
|
100
|
+
* raw chat events into the {@link GenAIChatConnectedEvent} union.
|
|
101
|
+
*
|
|
102
|
+
* Consumers supply their own data sources (backend/workspace/permissions), open-state, telemetry sink and
|
|
103
|
+
* toast strings — keeping per-app i18n out of this shared component.
|
|
104
|
+
*
|
|
105
|
+
* @internal
|
|
106
|
+
*/
|
|
107
|
+
export declare function GenAIChatDialogConnected({ backend, workspace, locale, canManage, canAnalyze, canFullControl, settings, isOpen, onOpen, onClose, askedQuestion, askSeq, userContext, appendToChat, includeTags, excludeTags, objectTypes: objectTypesOverride, onEvent, onAnyEvent, dialogPosition, className, colorPalette, allowNativeLinks, onLinkClick, returnFocusTo }: IGenAIChatDialogConnectedProps): import("react/jsx-runtime").JSX.Element;
|
|
108
|
+
//# sourceMappingURL=GenAIChatDialogConnected.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenAIChatDialogConnected.d.ts","sourceRoot":"","sources":["../../src/components/GenAIChatDialogConnected.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
// (C) 2026 GoodData Corporation
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
4
|
+
import { makeTextContents, makeUserItem, makeUserMessage } from "../model.js";
|
|
5
|
+
import { setUserContextAction } from "../store/chatWindow/chatWindowSlice.js";
|
|
6
|
+
import { isChatAssistantMessageEvent, isChatClosedEvent, isChatCopyToClipboardEvent, isChatFeedbackErrorEvent, isChatFeedbackEvent, isChatOpenedEvent, isChatResetEvent, isChatSaveVisualizationErrorEvent, isChatSaveVisualizationSuccessEvent, isChatUserMessageEvent, } from "../store/events.js";
|
|
7
|
+
import { clearThreadAction, newMessageAction } from "../store/messages/messagesSlice.js";
|
|
8
|
+
import { GenAIChatDialog } from "./GenAIChatDialog.js";
|
|
9
|
+
/**
|
|
10
|
+
* A "connected" wrapper over {@link GenAIChatDialog} that centralizes the wiring every consumer otherwise
|
|
11
|
+
* duplicates: object-type derivation, the dispatcher-based seeding flow (clear thread / set user context /
|
|
12
|
+
* agentic-vs-classic message keyed on `enableAiAgenticConversations`), default link handling, and normalizing
|
|
13
|
+
* raw chat events into the {@link GenAIChatConnectedEvent} union.
|
|
14
|
+
*
|
|
15
|
+
* Consumers supply their own data sources (backend/workspace/permissions), open-state, telemetry sink and
|
|
16
|
+
* toast strings — keeping per-app i18n out of this shared component.
|
|
17
|
+
*
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export function GenAIChatDialogConnected({ backend, workspace, locale, canManage, canAnalyze, canFullControl, settings, isOpen, onOpen, onClose, askedQuestion, askSeq, userContext, appendToChat, includeTags, excludeTags, objectTypes: objectTypesOverride, onEvent, onAnyEvent, dialogPosition, className, colorPalette, allowNativeLinks = true, onLinkClick, returnFocusTo, }) {
|
|
21
|
+
const defaultLinkClick = useCallback(({ itemUrl, newTab, preventDefault }) => {
|
|
22
|
+
if (itemUrl) {
|
|
23
|
+
preventDefault();
|
|
24
|
+
if (newTab) {
|
|
25
|
+
window.open(itemUrl, "_blank");
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
window.location.assign(itemUrl);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return itemUrl;
|
|
32
|
+
}, []);
|
|
33
|
+
const eventHandlers = useMemo(() => [
|
|
34
|
+
{
|
|
35
|
+
// Single catch-all that both fans out to `onEvent` (named) and `onAnyEvent` (raw).
|
|
36
|
+
eval: (_e) => true,
|
|
37
|
+
handler: (event) => {
|
|
38
|
+
onAnyEvent?.(event);
|
|
39
|
+
if (!onEvent) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
if (isChatOpenedEvent(event)) {
|
|
43
|
+
onEvent({ name: "opened", payload: event });
|
|
44
|
+
}
|
|
45
|
+
else if (isChatClosedEvent(event)) {
|
|
46
|
+
onEvent({ name: "closed", payload: event });
|
|
47
|
+
}
|
|
48
|
+
else if (isChatResetEvent(event)) {
|
|
49
|
+
onEvent({ name: "reset", payload: event });
|
|
50
|
+
}
|
|
51
|
+
else if (isChatUserMessageEvent(event)) {
|
|
52
|
+
onEvent({ name: "user-message", payload: event });
|
|
53
|
+
}
|
|
54
|
+
else if (isChatAssistantMessageEvent(event)) {
|
|
55
|
+
onEvent({ name: "assistant-message", payload: event });
|
|
56
|
+
}
|
|
57
|
+
else if (isChatFeedbackEvent(event)) {
|
|
58
|
+
onEvent({ name: "feedback", payload: event });
|
|
59
|
+
}
|
|
60
|
+
else if (isChatFeedbackErrorEvent(event)) {
|
|
61
|
+
onEvent({ name: "feedback-error", payload: event });
|
|
62
|
+
}
|
|
63
|
+
else if (isChatSaveVisualizationSuccessEvent(event)) {
|
|
64
|
+
onEvent({ name: "save-visualization-success", payload: event });
|
|
65
|
+
}
|
|
66
|
+
else if (isChatSaveVisualizationErrorEvent(event)) {
|
|
67
|
+
onEvent({ name: "save-visualization-error", payload: event });
|
|
68
|
+
}
|
|
69
|
+
else if (isChatCopyToClipboardEvent(event)) {
|
|
70
|
+
onEvent({ name: "copy-to-clipboard", payload: event });
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
], [onEvent, onAnyEvent]);
|
|
75
|
+
const objectTypes = useMemo(() => {
|
|
76
|
+
if (objectTypesOverride) {
|
|
77
|
+
return objectTypesOverride;
|
|
78
|
+
}
|
|
79
|
+
const types = ["dashboard", "visualization"];
|
|
80
|
+
if (canManage) {
|
|
81
|
+
types.push("metric");
|
|
82
|
+
}
|
|
83
|
+
return types;
|
|
84
|
+
}, [objectTypesOverride, canManage]);
|
|
85
|
+
const [chatDispatcher, setDispatcher] = useState(null);
|
|
86
|
+
const onDispatcher = useCallback((dispatcher) => {
|
|
87
|
+
setDispatcher(() => dispatcher);
|
|
88
|
+
}, []);
|
|
89
|
+
// The token of the last seed we applied. Each ask is identified by `askSeq` (bumped on every ask,
|
|
90
|
+
// so even a repeated identical question re-seeds); we seed once per token. Without this guard the
|
|
91
|
+
// effect would replay the question whenever `settings`/`userContext` merely change object identity.
|
|
92
|
+
const lastSeedTokenRef = useRef(null);
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
// Only seed while the chat is open, and only once per ask (LX-2544).
|
|
95
|
+
if (!isOpen || !chatDispatcher || !askedQuestion || !settings) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const seedToken = askSeq ?? askedQuestion;
|
|
99
|
+
if (lastSeedTokenRef.current === seedToken) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
lastSeedTokenRef.current = seedToken;
|
|
103
|
+
if (!appendToChat) {
|
|
104
|
+
chatDispatcher(clearThreadAction());
|
|
105
|
+
}
|
|
106
|
+
// Always set (and thereby clear when undefined) so a follow-up ask without context does not
|
|
107
|
+
// inherit the previous ask's user context (LX-2544).
|
|
108
|
+
chatDispatcher(setUserContextAction({ userContext }));
|
|
109
|
+
if (settings.enableAiAgenticConversations) {
|
|
110
|
+
chatDispatcher(newMessageAction(makeUserItem({ type: "text", text: askedQuestion })));
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
chatDispatcher(newMessageAction(makeUserMessage([makeTextContents(askedQuestion, [])])));
|
|
114
|
+
}
|
|
115
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
116
|
+
}, [isOpen, chatDispatcher, askedQuestion, askSeq, userContext, appendToChat, settings]);
|
|
117
|
+
return (_jsx(GenAIChatDialog, { isOpen: isOpen, locale: locale, backend: backend, workspace: workspace, canManage: canManage, canAnalyze: canAnalyze, canFullControl: canFullControl, settings: settings, objectTypes: objectTypes, includeTags: includeTags, excludeTags: excludeTags, className: className, dialogPosition: dialogPosition, colorPalette: colorPalette, allowNativeLinks: allowNativeLinks, onLinkClick: onLinkClick ?? defaultLinkClick, onOpen: onOpen, onClose: onClose, eventHandlers: eventHandlers, onDispatcher: onDispatcher, returnFocusTo: returnFocusTo }));
|
|
118
|
+
}
|
package/esm/internal.d.ts
CHANGED
|
@@ -3,5 +3,6 @@ import { setUserContextAction } from "./store/chatWindow/chatWindowSlice.js";
|
|
|
3
3
|
import { clearThreadAction, newMessageAction } from "./store/messages/messagesSlice.js";
|
|
4
4
|
export { ChatSkeleton } from "./components/ChatSkeleton.js";
|
|
5
5
|
export { GenAIChatDialog, type GenAIChatDialogProps } from "./components/GenAIChatDialog.js";
|
|
6
|
+
export { GenAIChatDialogConnected, type IGenAIChatDialogConnectedProps, type GenAIChatConnectedEvent, } from "./components/GenAIChatDialogConnected.js";
|
|
6
7
|
export { clearThreadAction, newMessageAction, makeUserMessage, makeTextContents, setUserContextAction };
|
|
7
8
|
//# sourceMappingURL=internal.d.ts.map
|
package/esm/internal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC7F,OAAO,EACH,wBAAwB,EACxB,KAAK,8BAA8B,EACnC,KAAK,uBAAuB,GAC/B,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,CAAC"}
|
package/esm/internal.js
CHANGED
|
@@ -5,4 +5,5 @@ import { setUserContextAction } from "./store/chatWindow/chatWindowSlice.js";
|
|
|
5
5
|
import { clearThreadAction, newMessageAction } from "./store/messages/messagesSlice.js";
|
|
6
6
|
export { ChatSkeleton } from "./components/ChatSkeleton.js";
|
|
7
7
|
export { GenAIChatDialog } from "./components/GenAIChatDialog.js";
|
|
8
|
+
export { GenAIChatDialogConnected, } from "./components/GenAIChatDialogConnected.js";
|
|
8
9
|
export { clearThreadAction, newMessageAction, makeUserMessage, makeTextContents, setUserContextAction };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gooddata/sdk-ui-gen-ai",
|
|
3
|
-
"version": "11.45.0-alpha.
|
|
3
|
+
"version": "11.45.0-alpha.1",
|
|
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.1",
|
|
59
|
-
"@gooddata/api-client-tiger": "11.45.0-alpha.
|
|
60
|
-
"@gooddata/sdk-backend-spi": "11.45.0-alpha.
|
|
61
|
-
"@gooddata/sdk-
|
|
62
|
-
"@gooddata/sdk-
|
|
63
|
-
"@gooddata/sdk-ui-charts": "11.45.0-alpha.
|
|
64
|
-
"@gooddata/sdk-ui-dashboard": "11.45.0-alpha.
|
|
65
|
-
"@gooddata/sdk-ui-filters": "11.45.0-alpha.
|
|
66
|
-
"@gooddata/sdk-ui-kit": "11.45.0-alpha.
|
|
67
|
-
"@gooddata/sdk-ui-pivot": "11.45.0-alpha.
|
|
68
|
-
"@gooddata/sdk-ui-theme-provider": "11.45.0-alpha.
|
|
69
|
-
"@gooddata/sdk-ui-semantic-search": "11.45.0-alpha.
|
|
70
|
-
"@gooddata/util": "11.45.0-alpha.
|
|
59
|
+
"@gooddata/api-client-tiger": "11.45.0-alpha.1",
|
|
60
|
+
"@gooddata/sdk-backend-spi": "11.45.0-alpha.1",
|
|
61
|
+
"@gooddata/sdk-ui": "11.45.0-alpha.1",
|
|
62
|
+
"@gooddata/sdk-model": "11.45.0-alpha.1",
|
|
63
|
+
"@gooddata/sdk-ui-charts": "11.45.0-alpha.1",
|
|
64
|
+
"@gooddata/sdk-ui-dashboard": "11.45.0-alpha.1",
|
|
65
|
+
"@gooddata/sdk-ui-filters": "11.45.0-alpha.1",
|
|
66
|
+
"@gooddata/sdk-ui-kit": "11.45.0-alpha.1",
|
|
67
|
+
"@gooddata/sdk-ui-pivot": "11.45.0-alpha.1",
|
|
68
|
+
"@gooddata/sdk-ui-theme-provider": "11.45.0-alpha.1",
|
|
69
|
+
"@gooddata/sdk-ui-semantic-search": "11.45.0-alpha.1",
|
|
70
|
+
"@gooddata/util": "11.45.0-alpha.1"
|
|
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.8",
|
|
112
112
|
"vitest-dom": "0.1.1",
|
|
113
|
-
"@gooddata/eslint-config": "11.45.0-alpha.
|
|
114
|
-
"@gooddata/i18n-toolkit": "11.45.0-alpha.
|
|
115
|
-
"@gooddata/oxlint-config": "11.45.0-alpha.
|
|
116
|
-
"@gooddata/reference-workspace": "11.45.0-alpha.
|
|
117
|
-
"@gooddata/sdk-backend-mockingbird": "11.45.0-alpha.
|
|
118
|
-
"@gooddata/
|
|
119
|
-
"@gooddata/
|
|
113
|
+
"@gooddata/eslint-config": "11.45.0-alpha.1",
|
|
114
|
+
"@gooddata/i18n-toolkit": "11.45.0-alpha.1",
|
|
115
|
+
"@gooddata/oxlint-config": "11.45.0-alpha.1",
|
|
116
|
+
"@gooddata/reference-workspace": "11.45.0-alpha.1",
|
|
117
|
+
"@gooddata/sdk-backend-mockingbird": "11.45.0-alpha.1",
|
|
118
|
+
"@gooddata/stylelint-config": "11.45.0-alpha.1",
|
|
119
|
+
"@gooddata/sdk-ui-theme-provider": "11.45.0-alpha.1"
|
|
120
120
|
},
|
|
121
121
|
"peerDependencies": {
|
|
122
122
|
"react": "^18.0.0 || ^19.0.0",
|