@gooddata/sdk-ui-gen-ai 10.13.0-alpha.9 → 10.13.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.
Files changed (206) hide show
  1. package/NOTICE +1953 -3
  2. package/esm/components/EmptyState.d.ts +3 -3
  3. package/esm/components/EmptyState.d.ts.map +1 -1
  4. package/esm/components/EmptyState.js +10 -8
  5. package/esm/components/EmptyState.js.map +1 -1
  6. package/esm/components/ErrorBoundary.d.ts +11 -3
  7. package/esm/components/ErrorBoundary.d.ts.map +1 -1
  8. package/esm/components/ErrorBoundary.js +26 -7
  9. package/esm/components/ErrorBoundary.js.map +1 -1
  10. package/esm/components/GenAIChatOverlay.d.ts +3 -3
  11. package/esm/components/GenAIChatOverlay.d.ts.map +1 -1
  12. package/esm/components/GenAIChatOverlay.js +4 -4
  13. package/esm/components/GenAIChatOverlay.js.map +1 -1
  14. package/esm/components/GenAIChatWrapper.d.ts +7 -5
  15. package/esm/components/GenAIChatWrapper.d.ts.map +1 -1
  16. package/esm/components/GenAIChatWrapper.js +14 -1
  17. package/esm/components/GenAIChatWrapper.js.map +1 -1
  18. package/esm/components/GlobalError.d.ts +6 -15
  19. package/esm/components/GlobalError.d.ts.map +1 -1
  20. package/esm/components/GlobalError.js +12 -18
  21. package/esm/components/GlobalError.js.map +1 -1
  22. package/esm/components/Input.d.ts +2 -1
  23. package/esm/components/Input.d.ts.map +1 -1
  24. package/esm/components/Input.js +15 -13
  25. package/esm/components/Input.js.map +1 -1
  26. package/esm/components/Messages.d.ts +3 -3
  27. package/esm/components/Messages.d.ts.map +1 -1
  28. package/esm/components/Messages.js +21 -33
  29. package/esm/components/Messages.js.map +1 -1
  30. package/esm/components/messages/AgentIcon.d.ts.map +1 -1
  31. package/esm/components/messages/AgentIcon.js +10 -4
  32. package/esm/components/messages/AgentIcon.js.map +1 -1
  33. package/esm/components/messages/AssistantMessage.d.ts +8 -0
  34. package/esm/components/messages/AssistantMessage.d.ts.map +1 -0
  35. package/esm/components/messages/AssistantMessage.js +14 -0
  36. package/esm/components/messages/AssistantMessage.js.map +1 -0
  37. package/esm/components/messages/MessageContents.d.ts +11 -0
  38. package/esm/components/messages/MessageContents.d.ts.map +1 -0
  39. package/esm/components/messages/MessageContents.js +37 -0
  40. package/esm/components/messages/MessageContents.js.map +1 -0
  41. package/esm/components/messages/UserMessage.d.ts +8 -0
  42. package/esm/components/messages/UserMessage.d.ts.map +1 -0
  43. package/esm/components/messages/UserMessage.js +10 -0
  44. package/esm/components/messages/UserMessage.js.map +1 -0
  45. package/esm/components/messages/contents/ErrorContents.d.ts +8 -0
  46. package/esm/components/messages/contents/ErrorContents.d.ts.map +1 -0
  47. package/esm/components/messages/contents/ErrorContents.js +10 -0
  48. package/esm/components/messages/contents/ErrorContents.js.map +1 -0
  49. package/esm/components/messages/contents/Markdown.d.ts +8 -0
  50. package/esm/components/messages/contents/Markdown.d.ts.map +1 -0
  51. package/esm/components/messages/contents/Markdown.js +18 -0
  52. package/esm/components/messages/contents/Markdown.js.map +1 -0
  53. package/esm/components/messages/contents/RoutingContents.d.ts +8 -0
  54. package/esm/components/messages/contents/RoutingContents.d.ts.map +1 -0
  55. package/esm/components/messages/contents/RoutingContents.js +10 -0
  56. package/esm/components/messages/contents/RoutingContents.js.map +1 -0
  57. package/esm/components/messages/contents/SearchContents.d.ts +8 -0
  58. package/esm/components/messages/contents/SearchContents.d.ts.map +1 -0
  59. package/esm/components/messages/contents/SearchContents.js +14 -0
  60. package/esm/components/messages/contents/SearchContents.js.map +1 -0
  61. package/esm/components/messages/contents/TextContents.d.ts +8 -0
  62. package/esm/components/messages/contents/TextContents.d.ts.map +1 -0
  63. package/esm/components/messages/contents/TextContents.js +10 -0
  64. package/esm/components/messages/contents/TextContents.js.map +1 -0
  65. package/esm/components/messages/contents/VisualizationContents.d.ts +8 -0
  66. package/esm/components/messages/contents/VisualizationContents.d.ts.map +1 -0
  67. package/esm/components/messages/contents/VisualizationContents.js +53 -0
  68. package/esm/components/messages/contents/VisualizationContents.js.map +1 -0
  69. package/esm/components/messages/contents/VisualizationErrorBoundary.d.ts +10 -0
  70. package/esm/components/messages/contents/VisualizationErrorBoundary.d.ts.map +1 -0
  71. package/esm/components/messages/contents/VisualizationErrorBoundary.js +22 -0
  72. package/esm/components/messages/contents/VisualizationErrorBoundary.js.map +1 -0
  73. package/esm/components/messages/contents/replaceLinks.d.ts +3 -0
  74. package/esm/components/messages/contents/replaceLinks.d.ts.map +1 -0
  75. package/esm/components/messages/contents/replaceLinks.js +30 -0
  76. package/esm/components/messages/contents/replaceLinks.js.map +1 -0
  77. package/esm/components/messages/contents/useExecution.d.ts +6 -0
  78. package/esm/components/messages/contents/useExecution.d.ts.map +1 -0
  79. package/esm/components/messages/{useExecution.js → contents/useExecution.js} +9 -4
  80. package/esm/components/messages/contents/useExecution.js.map +1 -0
  81. package/esm/components/messages/index.d.ts +2 -4
  82. package/esm/components/messages/index.d.ts.map +1 -1
  83. package/esm/components/messages/index.js +2 -4
  84. package/esm/components/messages/index.js.map +1 -1
  85. package/esm/hooks/useGenAIStore.d.ts +8 -10
  86. package/esm/hooks/useGenAIStore.d.ts.map +1 -1
  87. package/esm/index.d.ts +1 -1
  88. package/esm/index.d.ts.map +1 -1
  89. package/esm/localization/bundles/en-US.json +11 -11
  90. package/esm/model.d.ts +70 -53
  91. package/esm/model.d.ts.map +1 -1
  92. package/esm/model.js +46 -43
  93. package/esm/model.js.map +1 -1
  94. package/esm/sdk-ui-gen-ai.d.ts +59 -46
  95. package/esm/store/index.d.ts +2 -4
  96. package/esm/store/index.d.ts.map +1 -1
  97. package/esm/store/index.js +2 -4
  98. package/esm/store/index.js.map +1 -1
  99. package/esm/store/messages/messagesSelectors.d.ts +6 -3
  100. package/esm/store/messages/messagesSelectors.d.ts.map +1 -1
  101. package/esm/store/messages/messagesSelectors.js +6 -12
  102. package/esm/store/messages/messagesSelectors.js.map +1 -1
  103. package/esm/store/messages/messagesSlice.d.ts +48 -4
  104. package/esm/store/messages/messagesSlice.d.ts.map +1 -1
  105. package/esm/store/messages/messagesSlice.js +85 -23
  106. package/esm/store/messages/messagesSlice.js.map +1 -1
  107. package/esm/store/sideEffects/converters/interactionsToMessages.d.ts +9 -0
  108. package/esm/store/sideEffects/converters/interactionsToMessages.d.ts.map +1 -0
  109. package/esm/store/sideEffects/converters/interactionsToMessages.js +36 -0
  110. package/esm/store/sideEffects/converters/interactionsToMessages.js.map +1 -0
  111. package/esm/store/sideEffects/index.d.ts.map +1 -1
  112. package/esm/store/sideEffects/index.js +10 -5
  113. package/esm/store/sideEffects/index.js.map +1 -1
  114. package/esm/store/sideEffects/onThreadClear.d.ts +18 -0
  115. package/esm/store/sideEffects/onThreadClear.d.ts.map +1 -0
  116. package/esm/store/sideEffects/onThreadClear.js +31 -0
  117. package/esm/store/sideEffects/onThreadClear.js.map +1 -0
  118. package/esm/store/sideEffects/onThreadLoad.d.ts +20 -0
  119. package/esm/store/sideEffects/onThreadLoad.d.ts.map +1 -0
  120. package/esm/store/sideEffects/onThreadLoad.js +41 -0
  121. package/esm/store/sideEffects/onThreadLoad.js.map +1 -0
  122. package/esm/store/sideEffects/onUserMessage.d.ts +20 -0
  123. package/esm/store/sideEffects/onUserMessage.d.ts.map +1 -0
  124. package/esm/store/sideEffects/onUserMessage.js +52 -0
  125. package/esm/store/sideEffects/onUserMessage.js.map +1 -0
  126. package/esm/store/sideEffects/threadPolling.d.ts +16 -0
  127. package/esm/store/sideEffects/threadPolling.d.ts.map +1 -0
  128. package/esm/store/sideEffects/threadPolling.js +86 -0
  129. package/esm/store/sideEffects/threadPolling.js.map +1 -0
  130. package/esm/store/store.d.ts +8 -10
  131. package/esm/store/store.d.ts.map +1 -1
  132. package/esm/store/store.js +2 -4
  133. package/esm/store/store.js.map +1 -1
  134. package/esm/store/types.d.ts +0 -2
  135. package/esm/store/types.d.ts.map +1 -1
  136. package/esm/store/types.js +0 -1
  137. package/esm/store/types.js.map +1 -1
  138. package/package.json +15 -12
  139. package/styles/css/main.css +112 -43
  140. package/styles/css/main.css.map +1 -1
  141. package/styles/css/messages.css +55 -26
  142. package/styles/css/messages.css.map +1 -1
  143. package/styles/scss/main.scss +25 -6
  144. package/styles/scss/messages.scss +126 -97
  145. package/esm/components/messages/AgentState.d.ts +0 -3
  146. package/esm/components/messages/AgentState.d.ts.map +0 -1
  147. package/esm/components/messages/AgentState.js +0 -12
  148. package/esm/components/messages/AgentState.js.map +0 -1
  149. package/esm/components/messages/AssistantCancelledMessage.d.ts +0 -8
  150. package/esm/components/messages/AssistantCancelledMessage.d.ts.map +0 -1
  151. package/esm/components/messages/AssistantCancelledMessage.js +0 -12
  152. package/esm/components/messages/AssistantCancelledMessage.js.map +0 -1
  153. package/esm/components/messages/AssistantErrorMessage.d.ts +0 -11
  154. package/esm/components/messages/AssistantErrorMessage.d.ts.map +0 -1
  155. package/esm/components/messages/AssistantErrorMessage.js +0 -14
  156. package/esm/components/messages/AssistantErrorMessage.js.map +0 -1
  157. package/esm/components/messages/AssistantSearchCreateMessage.d.ts +0 -8
  158. package/esm/components/messages/AssistantSearchCreateMessage.d.ts.map +0 -1
  159. package/esm/components/messages/AssistantSearchCreateMessage.js +0 -16
  160. package/esm/components/messages/AssistantSearchCreateMessage.js.map +0 -1
  161. package/esm/components/messages/AssistantTextMessage.d.ts +0 -8
  162. package/esm/components/messages/AssistantTextMessage.d.ts.map +0 -1
  163. package/esm/components/messages/AssistantTextMessage.js +0 -10
  164. package/esm/components/messages/AssistantTextMessage.js.map +0 -1
  165. package/esm/components/messages/FoundObjects.d.ts +0 -8
  166. package/esm/components/messages/FoundObjects.d.ts.map +0 -1
  167. package/esm/components/messages/FoundObjects.js +0 -28
  168. package/esm/components/messages/FoundObjects.js.map +0 -1
  169. package/esm/components/messages/SystemMessage.d.ts +0 -8
  170. package/esm/components/messages/SystemMessage.d.ts.map +0 -1
  171. package/esm/components/messages/SystemMessage.js +0 -7
  172. package/esm/components/messages/SystemMessage.js.map +0 -1
  173. package/esm/components/messages/UserTextMessage.d.ts +0 -8
  174. package/esm/components/messages/UserTextMessage.d.ts.map +0 -1
  175. package/esm/components/messages/UserTextMessage.js +0 -10
  176. package/esm/components/messages/UserTextMessage.js.map +0 -1
  177. package/esm/components/messages/Visualization.d.ts +0 -8
  178. package/esm/components/messages/Visualization.d.ts.map +0 -1
  179. package/esm/components/messages/Visualization.js +0 -39
  180. package/esm/components/messages/Visualization.js.map +0 -1
  181. package/esm/components/messages/useExecution.d.ts +0 -6
  182. package/esm/components/messages/useExecution.d.ts.map +0 -1
  183. package/esm/components/messages/useExecution.js.map +0 -1
  184. package/esm/store/agent/agentSelectors.d.ts +0 -3
  185. package/esm/store/agent/agentSelectors.d.ts.map +0 -1
  186. package/esm/store/agent/agentSelectors.js +0 -6
  187. package/esm/store/agent/agentSelectors.js.map +0 -1
  188. package/esm/store/agent/agentSlice.d.ts +0 -8
  189. package/esm/store/agent/agentSlice.d.ts.map +0 -1
  190. package/esm/store/agent/agentSlice.js +0 -21
  191. package/esm/store/agent/agentSlice.js.map +0 -1
  192. package/esm/store/sideEffects/converters/evalToMessage.d.ts +0 -7
  193. package/esm/store/sideEffects/converters/evalToMessage.d.ts.map +0 -1
  194. package/esm/store/sideEffects/converters/evalToMessage.js +0 -14
  195. package/esm/store/sideEffects/converters/evalToMessage.js.map +0 -1
  196. package/esm/store/sideEffects/converters/messagesToHistory.d.ts +0 -4
  197. package/esm/store/sideEffects/converters/messagesToHistory.d.ts.map +0 -1
  198. package/esm/store/sideEffects/converters/messagesToHistory.js +0 -83
  199. package/esm/store/sideEffects/converters/messagesToHistory.js.map +0 -1
  200. package/esm/store/sideEffects/onNewMessage.d.ts +0 -13
  201. package/esm/store/sideEffects/onNewMessage.d.ts.map +0 -1
  202. package/esm/store/sideEffects/onNewMessage.js +0 -81
  203. package/esm/store/sideEffects/onNewMessage.js.map +0 -1
  204. package/styles/css/agentState.css +0 -29
  205. package/styles/css/agentState.css.map +0 -1
  206. package/styles/scss/agentState.scss +0 -31
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onUserMessage.js","sourceRoot":"","sources":["../../../src/store/sideEffects/onUserMessage.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAGhC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAW,MAAM,gBAAgB,CAAC;AAE9F;;;GAGG;AACH,MAAM,SAAS,CAAC,CAAC,aAAa,CAAC,EAAE,OAAO,EAA0B;IAC9D,MAAM,mBAAmB,GAAG,oBAAoB,CAAC,EAAE,CAAC,CAAC;IAErD,IAAI,CAAC;QACD,mEAAmE;QACnE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC;QAEhE,IAAI,CAAC,YAAY,EAAE,CAAC;YAChB,OAAO;QACX,CAAC;QAED,gCAAgC;QAChC,MAAM,OAAO,GAAuB,MAAM,UAAU,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,SAAS,GAAW,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;QAExD,kDAAkD;QAClD,MAAM,GAAG,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC;QAEnE,2CAA2C;QAC3C,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAEjG,MAAM,IAAI,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,GAAG,CACL,0BAA0B,CAAC;YACvB,kBAAkB,EAAE,mBAAmB,CAAC,OAAO;YAC/C,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC;SACzB,CAAC,CACL,CAAC;IACN,CAAC;AACL,CAAC;AAED,QAAQ,CAAC,CAAC,mBAAmB,CAAC,kBAAoC;IAC9D,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,IAAI,CAAC;QACD,MAAM,OAAO,GAAyB,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;YAChG,MAAM,EAAE,UAAU,CAAC,MAAM;SAC5B,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACnB,CAAC;YAAS,CAAC;QACP,MAAM,YAAY,GAAY,MAAM,SAAS,EAAE,CAAC;QAEhD,IAAI,YAAY,EAAE,CAAC;YACf,UAAU,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACL,CAAC;AACL,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { PayloadAction } from "@reduxjs/toolkit";
2
+ import { AssistantMessage } from "../../model.js";
3
+ /**
4
+ * Load thread history and put it to the store.
5
+ * @internal
6
+ */
7
+ export declare function threadPolling({ payload: { message } }: PayloadAction<{
8
+ message: AssistantMessage;
9
+ }>): Generator<import("redux-saga/effects").SelectEffect | import("redux-saga/effects").GetContextEffect | import("redux-saga/effects").PutEffect<{
10
+ payload: {
11
+ error: string;
12
+ assistantMessageId: string;
13
+ };
14
+ type: "messages/evaluateMessageErrorAction";
15
+ }> | import("redux-saga/effects").RaceEffect<import("redux-saga/effects").TakeEffect | import("redux-saga/effects").CallEffect<boolean>>, void, never>;
16
+ //# sourceMappingURL=threadPolling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threadPolling.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/threadPolling.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD;;;GAGG;AACH,wBAAiB,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,aAAa,CAAC;IAAE,OAAO,EAAE,gBAAgB,CAAA;CAAE,CAAC;;;;;;uJA4BpG"}
@@ -0,0 +1,86 @@
1
+ // (C) 2024 GoodData Corporation
2
+ import { call, cancelled, getContext, race, take, delay, put, select } from "redux-saga/effects";
3
+ import { cancelAsyncAction, evaluateMessageErrorAction, evaluateMessagePollingAction, newMessageAction, } from "../messages/messagesSlice.js";
4
+ import { processContents } from "./converters/interactionsToMessages.js";
5
+ import { lastMessageIdSelector } from "../messages/messagesSelectors.js";
6
+ /**
7
+ * Load thread history and put it to the store.
8
+ * @internal
9
+ */
10
+ export function* threadPolling({ payload: { message } }) {
11
+ // Get the last known thread id
12
+ const lastInteractionId = yield select(lastMessageIdSelector);
13
+ // Retrieve backend from context and prepare the chat thread service
14
+ const backend = yield getContext("backend");
15
+ const workspace = yield getContext("workspace");
16
+ const chatThread = backend.workspace(workspace).genAI().getChatThread();
17
+ const [pollingComplete] = yield race([
18
+ call(fetchChatHistoryPolling, message, chatThread, lastInteractionId),
19
+ // Any of the following actions will cancel the polling
20
+ delay(30000),
21
+ take(cancelAsyncAction.type),
22
+ take(evaluateMessageErrorAction.type),
23
+ take(newMessageAction.type),
24
+ ]);
25
+ // This will be implemented differently in production
26
+ // So, it's OK to have this error not in l18n
27
+ if (!pollingComplete) {
28
+ yield put(evaluateMessageErrorAction({
29
+ assistantMessageId: message.localId,
30
+ error: "Timeout: It took too long to get the response from the server.",
31
+ }));
32
+ }
33
+ }
34
+ function* fetchChatHistoryPolling(message, preparedChatThread, lastInteractionId) {
35
+ // The internal loop, each iteration is a single poll
36
+ while (true) {
37
+ try {
38
+ // Delay to avoid overwhelming the server
39
+ yield delay(1000);
40
+ // Make the server request
41
+ const results = yield call(doTheCall, preparedChatThread, lastInteractionId);
42
+ if ((results?.interactions?.length ?? 0) > 1) {
43
+ // Server feeds do not have stable IDs at the moment, it's hard to
44
+ // merge the results. We have to make an assumption that a single
45
+ // evaluation is running at a time.
46
+ console.warn("Unexpected interactions", results);
47
+ return true;
48
+ }
49
+ const interaction = results?.interactions?.[0];
50
+ if (interaction) {
51
+ // Update the store with new content
52
+ yield put(evaluateMessagePollingAction({
53
+ contents: processContents(interaction),
54
+ interactionId: interaction.chatHistoryInteractionId,
55
+ complete: interaction.interactionFinished,
56
+ localId: message.localId,
57
+ }));
58
+ if (interaction.interactionFinished) {
59
+ // Polling is done, exit the loop
60
+ return true;
61
+ }
62
+ }
63
+ }
64
+ catch (e) {
65
+ const isCancelled = yield cancelled();
66
+ if (isCancelled) {
67
+ // Polling is done, exit the loop
68
+ return true;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ function* doTheCall(preparedChatThread, nextInteraction) {
74
+ const controller = new AbortController();
75
+ try {
76
+ const results = yield call(preparedChatThread.loadHistory.bind(preparedChatThread), nextInteraction, { signal: controller.signal });
77
+ return results;
78
+ }
79
+ finally {
80
+ const isCancelled = yield cancelled();
81
+ if (isCancelled) {
82
+ controller.abort();
83
+ }
84
+ }
85
+ }
86
+ //# sourceMappingURL=threadPolling.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threadPolling.js","sourceRoot":"","sources":["../../../src/store/sideEffects/threadPolling.ts"],"names":[],"mappings":"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"}
@@ -3,24 +3,22 @@ import { IAnalyticalBackend } from "@gooddata/sdk-backend-spi";
3
3
  import { Message } from "../model.js";
4
4
  export declare const getStore: (backend: IAnalyticalBackend, workspace: string, initialHistory?: Message[]) => import("@reduxjs/toolkit/dist/configureStore.js").ToolkitStore<{
5
5
  messages: {
6
- messageOrder: string[];
7
- messages: Record<string, Message>;
8
6
  verbose: boolean;
9
- };
10
- agent: {
11
- busy: boolean;
7
+ messages: Record<string, Message>;
8
+ messageOrder: string[];
9
+ globalError?: string | undefined;
10
+ asyncProcess?: "loading" | "clearing" | "evaluating" | undefined;
12
11
  };
13
12
  }, import("@reduxjs/toolkit").AnyAction, import("@reduxjs/toolkit").MiddlewareArray<[defaultReduxSaga.SagaMiddleware<{
14
13
  backend: IAnalyticalBackend;
15
14
  workspace: string;
16
15
  }>, import("@reduxjs/toolkit").ThunkMiddleware<{
17
16
  messages: {
18
- messageOrder: string[];
19
- messages: Record<string, Message>;
20
17
  verbose: boolean;
21
- };
22
- agent: {
23
- busy: boolean;
18
+ messages: Record<string, Message>;
19
+ messageOrder: string[];
20
+ globalError?: string | undefined;
21
+ asyncProcess?: "loading" | "clearing" | "evaluating" | undefined;
24
22
  };
25
23
  }, import("@reduxjs/toolkit").AnyAction>]>>;
26
24
  //# sourceMappingURL=store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAEA,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAI/D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtC,eAAO,MAAM,QAAQ,YAAa,kBAAkB,aAAa,MAAM,mBAAmB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;2CA0BlG,CAAC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAEA,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAOtC,eAAO,MAAM,QAAQ,YAAa,kBAAkB,aAAa,MAAM,mBAAmB,OAAO,EAAE;;;;;;;;;;;;;;;;;;;2CAyBlG,CAAC"}
@@ -2,8 +2,7 @@
2
2
  import { configureStore } from "@reduxjs/toolkit";
3
3
  import defaultReduxSaga from "redux-saga";
4
4
  import { defaultImport } from "default-import";
5
- import { messagesSliceName, messagesSliceReducer, setMessages } from "./messages/messagesSlice.js";
6
- import { agentSliceName, agentSliceReducer } from "./agent/agentSlice.js";
5
+ import { messagesSliceName, messagesSliceReducer, setMessagesAction } from "./messages/messagesSlice.js";
7
6
  import { rootSaga } from "./sideEffects/index.js";
8
7
  // There are known compatibility issues between CommonJS (CJS) and ECMAScript modules (ESM).
9
8
  // In ESM, default exports of CJS modules are wrapped in default properties instead of being exposed directly.
@@ -19,7 +18,6 @@ export const getStore = (backend, workspace, initialHistory) => {
19
18
  const store = configureStore({
20
19
  reducer: {
21
20
  [messagesSliceName]: messagesSliceReducer,
22
- [agentSliceName]: agentSliceReducer,
23
21
  },
24
22
  middleware: (getDefaultMiddleware) => getDefaultMiddleware().prepend(sagaMiddleware),
25
23
  devTools: {
@@ -29,7 +27,7 @@ export const getStore = (backend, workspace, initialHistory) => {
29
27
  sagaMiddleware.run(rootSaga);
30
28
  if (initialHistory?.length) {
31
29
  // Set the initial history in store
32
- store.dispatch(setMessages(initialHistory));
30
+ store.dispatch(setMessagesAction({ messages: initialHistory }));
33
31
  }
34
32
  return store;
35
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACnG,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGlD,4FAA4F;AAC5F,8GAA8G;AAC9G,+EAA+E;AAC/E,MAAM,oBAAoB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAA2B,EAAE,SAAiB,EAAE,cAA0B,EAAE,EAAE;IACnG,MAAM,cAAc,GAAG,oBAAoB,CAAC;QACxC,OAAO,EAAE;YACL,OAAO;YACP,SAAS;SACZ;KACJ,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,cAAc,CAAC;QACzB,OAAO,EAAE;YACL,CAAC,iBAAiB,CAAC,EAAE,oBAAoB;YACzC,CAAC,cAAc,CAAC,EAAE,iBAAiB;SACtC;QACD,UAAU,EAAE,CAAC,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;QACpF,QAAQ,EAAE;YACN,IAAI,EAAE,OAAO;SAChB;KACJ,CAAC,CAAC;IAEH,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE7B,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,mCAAmC;QACnC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/store/store.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,gBAAgB,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACzG,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAGlD,4FAA4F;AAC5F,8GAA8G;AAC9G,+EAA+E;AAC/E,MAAM,oBAAoB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAE7D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,OAA2B,EAAE,SAAiB,EAAE,cAA0B,EAAE,EAAE;IACnG,MAAM,cAAc,GAAG,oBAAoB,CAAC;QACxC,OAAO,EAAE;YACL,OAAO;YACP,SAAS;SACZ;KACJ,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,cAAc,CAAC;QACzB,OAAO,EAAE;YACL,CAAC,iBAAiB,CAAC,EAAE,oBAAoB;SAC5C;QACD,UAAU,EAAE,CAAC,oBAAoB,EAAE,EAAE,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC;QACpF,QAAQ,EAAE;YACN,IAAI,EAAE,OAAO;SAChB;KACJ,CAAC,CAAC;IAEH,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE7B,IAAI,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,mCAAmC;QACnC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC,CAAC"}
@@ -1,7 +1,5 @@
1
1
  import { messagesSliceName, messagesSliceReducer } from "./messages/messagesSlice.js";
2
- import { agentSliceName, agentSliceReducer } from "./agent/agentSlice.js";
3
2
  export type RootState = {
4
3
  [messagesSliceName]: ReturnType<typeof messagesSliceReducer>;
5
- [agentSliceName]: ReturnType<typeof agentSliceReducer>;
6
4
  };
7
5
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,MAAM,SAAS,GAAG;IACpB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;IAC7D,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;CAC1D,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEtF,MAAM,MAAM,SAAS,GAAG;IACpB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC;CAChE,CAAC"}
@@ -1,4 +1,3 @@
1
1
  // (C) 2024 GoodData Corporation
2
2
  import { messagesSliceName } from "./messages/messagesSlice.js";
3
- import { agentSliceName } from "./agent/agentSlice.js";
4
3
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,iBAAiB,EAAwB,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,cAAc,EAAqB,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/store/types.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,OAAO,EAAE,iBAAiB,EAAwB,MAAM,6BAA6B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gooddata/sdk-ui-gen-ai",
3
- "version": "10.13.0-alpha.9",
3
+ "version": "10.13.0",
4
4
  "description": "GoodData GenAI SDK",
5
5
  "repository": {
6
6
  "type": "git",
@@ -43,14 +43,16 @@
43
43
  "classnames": "^2.3.1",
44
44
  "react-textarea-autosize": "8.4.0",
45
45
  "uuid": "^8.3.2",
46
- "@gooddata/api-client-tiger": "10.13.0-alpha.9",
47
- "@gooddata/sdk-model": "10.13.0-alpha.9",
48
- "@gooddata/sdk-ui": "10.13.0-alpha.9",
49
- "@gooddata/sdk-ui-charts": "10.13.0-alpha.9",
50
- "@gooddata/sdk-backend-spi": "10.13.0-alpha.9",
51
- "@gooddata/sdk-ui-pivot": "10.13.0-alpha.9",
52
- "@gooddata/util": "10.13.0-alpha.9",
53
- "@gooddata/sdk-ui-kit": "10.13.0-alpha.9"
46
+ "react-loading-skeleton": "^3.4.0",
47
+ "react-markdown": "^9.0.1",
48
+ "@gooddata/api-client-tiger": "10.13.0",
49
+ "@gooddata/sdk-model": "10.13.0",
50
+ "@gooddata/sdk-ui-charts": "10.13.0",
51
+ "@gooddata/util": "10.13.0",
52
+ "@gooddata/sdk-ui-pivot": "10.13.0",
53
+ "@gooddata/sdk-backend-spi": "10.13.0",
54
+ "@gooddata/sdk-ui": "10.13.0",
55
+ "@gooddata/sdk-ui-kit": "10.13.0"
54
56
  },
55
57
  "peerDependencies": {
56
58
  "react": "^16.10.0 || ^17.0.0 || ^18.0.0",
@@ -63,6 +65,7 @@
63
65
  "@testing-library/dom": "~9.2.0",
64
66
  "@testing-library/react": "^14.0.0",
65
67
  "@testing-library/user-event": "^14.4.2",
68
+ "@types/node": "^18.17.6",
66
69
  "@types/raf": "^3.4.0",
67
70
  "@types/react": "^18.2.0",
68
71
  "@types/react-dom": "^18.2.1",
@@ -98,9 +101,9 @@
98
101
  "vitest-dom": "0.1.1",
99
102
  "@types/react-native-listener": "~1.1.3",
100
103
  "@types/uuid": "^8.3.4",
101
- "@gooddata/i18n-toolkit": "10.13.0-alpha.9",
102
- "@gooddata/reference-workspace": "10.13.0-alpha.9",
103
- "@gooddata/sdk-backend-mockingbird": "10.13.0-alpha.9"
104
+ "@gooddata/reference-workspace": "10.13.0",
105
+ "@gooddata/sdk-backend-mockingbird": "10.13.0",
106
+ "@gooddata/i18n-toolkit": "10.13.0"
104
107
  },
105
108
  "scripts": {
106
109
  "clean": "rm -rf ci dist esm coverage *.log styles/css tsconfig.tsbuildinfo",
@@ -1,3 +1,47 @@
1
+ @keyframes react-loading-skeleton {
2
+ 100% {
3
+ transform: translateX(100%);
4
+ }
5
+ }
6
+ .react-loading-skeleton {
7
+ --base-color: #ebebeb;
8
+ --highlight-color: #f5f5f5;
9
+ --animation-duration: 1.5s;
10
+ --animation-direction: normal;
11
+ --pseudo-element-display: block; /* Enable animation */
12
+ background-color: var(--base-color);
13
+ width: 100%;
14
+ border-radius: 0.25rem;
15
+ display: inline-flex;
16
+ line-height: 1;
17
+ position: relative;
18
+ user-select: none;
19
+ overflow: hidden;
20
+ }
21
+
22
+ .react-loading-skeleton::after {
23
+ content: " ";
24
+ display: var(--pseudo-element-display);
25
+ position: absolute;
26
+ top: 0;
27
+ left: 0;
28
+ right: 0;
29
+ height: 100%;
30
+ background-repeat: no-repeat;
31
+ background-image: linear-gradient(90deg, var(--base-color), var(--highlight-color), var(--base-color));
32
+ transform: translateX(-100%);
33
+ animation-name: react-loading-skeleton;
34
+ animation-direction: var(--animation-direction);
35
+ animation-duration: var(--animation-duration);
36
+ animation-timing-function: ease-in-out;
37
+ animation-iteration-count: infinite;
38
+ }
39
+
40
+ @media (prefers-reduced-motion) {
41
+ .react-loading-skeleton {
42
+ --pseudo-element-display: none; /* Disable animation */
43
+ }
44
+ }
1
45
  /* allow vendor prefixes and disable max length */
2
46
  /* allow vendor prefixes and disable max length */
3
47
  /* ==========================================================================
@@ -160,25 +204,28 @@
160
204
  margin: 10px 0 0 15px;
161
205
  padding-right: 15px;
162
206
  }
207
+
163
208
  .gd-gen-ai-chat__messages__scroll {
164
209
  display: flex;
165
210
  flex-direction: column;
166
211
  gap: 15px;
167
212
  }
213
+
168
214
  .gd-gen-ai-chat__messages__message {
169
215
  display: flex;
170
216
  }
171
- .gd-gen-ai-chat__messages__message--user {
217
+
218
+ .gd-gen-ai-chat__messages__message--user .gd-gen-ai-chat__messages__content--text {
172
219
  max-width: 80%;
173
220
  background-color: var(--gd-palette-primary-base, #14b2e2);
174
221
  border-radius: 3px 3px 0 3px;
175
222
  padding: 4.5px 12px;
176
223
  position: relative;
177
224
  align-self: flex-end;
178
- margin-bottom: 29px;
225
+ margin-bottom: 15px;
179
226
  animation: gd-gen-ai-message-in 0.3s ease-out;
180
227
  }
181
- .gd-gen-ai-chat__messages__message--user::after {
228
+ .gd-gen-ai-chat__messages__message--user .gd-gen-ai-chat__messages__content--text::after {
182
229
  content: "";
183
230
  position: absolute;
184
231
  bottom: -7px;
@@ -189,15 +236,17 @@
189
236
  width: 0;
190
237
  height: 0;
191
238
  }
192
- .gd-gen-ai-chat__messages__message--user .gd-gen-ai-chat__messages__contents {
239
+ .gd-gen-ai-chat__messages__message--user .gd-gen-ai-chat__messages__content--text p {
193
240
  color: var(--gd-palette-complementary-0, #fff);
194
241
  }
195
- .gd-gen-ai-chat__messages__message--user--cancelled {
242
+ .gd-gen-ai-chat__messages__message--user.gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content--text {
243
+ color: var(--gd-palette-complementary-0, #fff);
196
244
  background-color: var(--gd-palette-primary-base-t80, rgba(20, 178, 226, 0.2));
197
245
  }
198
- .gd-gen-ai-chat__messages__message--user--cancelled::after {
246
+ .gd-gen-ai-chat__messages__message--user.gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content--text::after {
199
247
  border-top-color: var(--gd-palette-primary-base-t80, rgba(20, 178, 226, 0.2));
200
248
  }
249
+
201
250
  .gd-gen-ai-chat__messages__message--assistant {
202
251
  display: flex;
203
252
  flex-direction: row;
@@ -205,23 +254,45 @@
205
254
  align-items: flex-start;
206
255
  margin-bottom: 39px;
207
256
  }
208
- .gd-gen-ai-chat__messages__message--assistant--cancelled .gd-gen-ai-chat__messages__contents {
209
- color: var(--gd-palette-complementary-5, #b0beca);
257
+
258
+ .gd-gen-ai-chat__messages__contents {
259
+ flex: 1;
260
+ padding: 4.5px 0;
261
+ display: flex;
262
+ flex-direction: column;
263
+ gap: 15px;
210
264
  }
211
- .gd-gen-ai-chat__messages__message--error .gd-gen-ai-chat__messages__contents {
265
+
266
+ .gd-gen-ai-chat__messages__content--error {
212
267
  flex: unset;
213
268
  padding: 4.5px 12px;
214
269
  border-radius: 3px;
215
270
  background: var(--gd-palette-error-dimmed, #fcedec);
216
271
  color: var(--gd-palette-error-base, #e54d42);
217
272
  }
218
- .gd-gen-ai-chat__messages__message__found_objects ul {
219
- margin: 0;
273
+
274
+ .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content p, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content a, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content a:hover, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content a:active, .gd-gen-ai-chat__messages__message--cancelled .gd-gen-ai-chat__messages__content a:visited {
275
+ color: var(--gd-palette-complementary-5, #b0beca);
220
276
  }
221
- .gd-gen-ai-chat__messages__contents {
222
- flex: 1;
223
- padding: 4.5px 0;
277
+
278
+ .gd-gen-ai-chat__loading {
279
+ animation: gd-gen-ai-message-loading 3s infinite linear;
224
280
  }
281
+
282
+ .gd-gen-ai-chat__visualization {
283
+ margin: 10px 0;
284
+ padding: 10px;
285
+ border: 1px solid var(--gd-palette-complementary-2, #ebeff4);
286
+ background: var(--gd-palette-complementary-0, #fff);
287
+ border-radius: 8px;
288
+ }
289
+ .gd-gen-ai-chat__visualization__wrapper {
290
+ height: 250px;
291
+ }
292
+ .gd-gen-ai-chat__visualization__title {
293
+ text-align: center;
294
+ }
295
+
225
296
  .gd-gen-ai-chat__messages__empty {
226
297
  display: flex;
227
298
  flex-direction: column;
@@ -243,18 +314,9 @@
243
314
  line-height: 20px;
244
315
  gap: 10px;
245
316
  }
246
- .gd-gen-ai-chat__messages__visualization {
247
- margin: 10px 0;
248
- padding: 10px;
249
- border: 1px solid var(--gd-palette-complementary-2, #ebeff4);
250
- background: var(--gd-palette-complementary-0, #fff);
251
- border-radius: 8px;
252
- }
253
- .gd-gen-ai-chat__messages__visualization__wrapper {
254
- height: 250px;
255
- }
256
- .gd-gen-ai-chat__messages__visualization__title {
257
- text-align: center;
317
+
318
+ .gd-gen-ai-chat__messages__content .gd-hyperlink {
319
+ display: inline;
258
320
  }
259
321
 
260
322
  @keyframes gd-gen-ai-message-in {
@@ -267,18 +329,7 @@
267
329
  transform: translateY(0);
268
330
  }
269
331
  }
270
- .gd-gen-ai-chat__agent_state {
271
- display: flex;
272
- flex-direction: row;
273
- gap: 10px;
274
- align-items: center;
275
- margin-bottom: 39px;
276
- }
277
- .gd-gen-ai-chat__agent_state__status {
278
- animation: gd-gen-ai-agent-state 3s infinite linear;
279
- }
280
-
281
- @keyframes gd-gen-ai-agent-state {
332
+ @keyframes gd-gen-ai-message-loading {
282
333
  0% {
283
334
  opacity: 1;
284
335
  }
@@ -496,16 +547,34 @@
496
547
  margin: 0 15px 10px;
497
548
  }
498
549
  .gd-gen-ai-chat__global_error {
499
- padding: 4.5px 12px;
500
- border-radius: 3px;
501
- background: var(--gd-palette-error-dimmed, #fcedec);
502
550
  margin: 10px 15px;
551
+ display: flex;
552
+ flex-direction: column;
553
+ gap: 15px;
503
554
  }
504
- .gd-gen-ai-chat__global_error p {
505
- color: var(--gd-palette-error-base, #e54d42);
555
+ .gd-gen-ai-chat__global_error__buttons {
556
+ display: flex;
557
+ flex-direction: row;
558
+ justify-content: center;
559
+ gap: 15px;
506
560
  }
507
561
  .gd-gen-ai-chat__global_error__details {
508
562
  padding: 6px;
563
+ border: 1px solid var(--gd-palette-complementary-3, #dde4eb);
564
+ border-radius: 3px;
565
+ background: var(--gd-palette-complementary-0, #fcfcfd);
566
+ }
567
+ .gd-gen-ai-chat__global_error__details pre {
568
+ margin: 0;
569
+ color: var(--gd-palette-complementary-7, #6d7680);
570
+ font-size: 12px;
571
+ font-weight: 400;
572
+ line-height: 18px;
573
+ padding: 0;
574
+ resize: none;
575
+ tab-size: 2;
576
+ text-align: left;
577
+ white-space: pre-wrap;
509
578
  }
510
579
 
511
580
  /*# sourceMappingURL=main.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../node_modules/@gooddata/sdk-ui-kit/styles/scss/mixins.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/Form/_mixins.scss","../scss/input.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../scss/messages.scss","../scss/variables.scss","../scss/agentState.scss","../scss/agentIcon.scss","../scss/window.scss","../scss/main.scss"],"names":[],"mappings":"AA0HA;AA4DA;AClLA;AAAA;AAAA;ACIA;EACI;EACA;;AAEA;EDWA;EACA;EACA;EACA;EACA;EACA;EACA,OECY;EFAZ,YEba;EFcb;EACA,aE8Dc;EF7Dd;EDkCA,0BChC2B;EDiC3B,6BCjC2B;EDkC3B,qBClC2B;EDsC3B,0BCtCgC;EDuChC,6BCvCgC;EDwChC,qBCxCgC;ED4ChC,iCC5CuC;ED6CvC,oCC7CuC;ED8CvC,4BC9CuC;EDrBvC;EAQI;EEMA;EACA;EACA;EACA;EACA;EACA;;AFmHJ;EEhIQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AF+HrD;EEpIQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AFmIrD;EExIQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AFuIrD;EE5IQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AAUjD;EAKI,cCmGiB;;AHSzB;EE/GY,OCXA;;AH8HZ;EEnHY,OCXA;;AHkIZ;EEvHY,OCXA;;AHsIZ;EE3HY,OCXA;;ADiBR;EFrBA;EE0BI;EACA,cCRc;;ADad;EFhCJ;EEoCQ,OCrCI;EDsCJ,cC+EO;ED9EP,kBCzCC;;AD8Cb;EFEA,0BEDmC;EFEnC,6BEFmC;EFGnC,qBEHmC;EFOnC,0BEPwC;EFQxC,6BERwC;EFSxC,qBETwC;EFaxC,iCEb+C;EFc/C,oCEd+C;EFe/C,4BEf+C;EAE3C;EACA;EACA;EACA;EACA;;AAEA;EAEI,MClDI;;ADqDR;EAEI,MCxCc;;AD2ClB;EAEI;;AAEA;AAAA;AAAA;EAEI,MCrEI;;AD2EZ;AAAA;EAEI,MCzDc;;AD4DlB;EAEI;;AAEA;AAAA;AAAA;EAEI,MCtFI;;;ACbpB;EACI;EACA;EAGA;EACA,eCZQ;;ADcR;EACI;EACA;EACA;;AAGJ;EACI;;AAEA;EAII;EACA,kBDWc;ECVd;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,mBAlBS;EAmBT;EACA;;AAGJ;EACI,ODlCC;;ACqCL;EACI,kBDPc;;ACUlB;EACI,kBDXc;;ACetB;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI,ODlDI;;ACsDZ;EACI;EACA;EACA;EACA,YDnBc;ECoBd,ODtBY;;ACyBhB;EACI;;AAIR;EACI;EACA;;AAGJ;EACI;EACA;EACA;;AAEA;EACI,OD1Dc;;AC6DlB;EACI;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;AAIR;EACI;EACA;EACA;EACA,YD1GS;EC2GT;;AAEA;EACI;;AAGJ;EACI;;;AAKZ;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AEvIR;EACI;EACA;EACA;EACA;EACA;;AAEA;EACI;;;AAIR;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;;ACbR;EACI;EACA;EACA;;AAEA;EACI,MJuBoB;;AIpBxB;EACI;EACA;EACA;;AAGJ;EACI,MJUkB;;AINlB;EACI;;AAGJ;EAGI;;AAEA;EACI;;AAMR;EACI;;AAKJ;EACI;EACA;EACA;EACA;;AAKJ;EACI,MJhDK;;AImDT;EACI,MJlDQ;;AIuDZ;EACI,YJpCc;;AIsClB;EACI,YAvEuB;;AAyE3B;EACI,YJnCkB;;;AIwC9B;EACI;IACI;;EAEJ;IACI;;;AAIR;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;;AAIR;EACI;IACI,MJnEoB;;EIqExB;IACI,MJzEkB;;EI2EtB;IACI,MJzEoB;;;AI6E5B;EACI;IACI;;EAEJ;IACI,MJlEkB;;EIoEtB;IACI;;;ACzHR;EACI;EACA;EACA,kBLQa;EKPb;EACA;EAEA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA,kBLRU;;AKWd;EACI;EACA;;AAEA;EACI;EACA,ML9BI;;AKiCR;EACI;;AAEA;EACI,ML1CI;;AK8CZ;EACI;EACA;;AAIA;EACI,MLhBQ;;AKsBZ;EACI,MLxCU;;AK4ClB;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA,YL/EI;EKgFJ;EACA,OL9FK;EK+FL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EAEI;;;AClHZ;EACI;EACA;EACA;EACA,KJXQ;EIYR;EACA;EACA;EACA,kBNCa;;AMCb;EACI;EACA,ONCe;EMAf;EACA;;AAGJ;EACI;EACA;EACA,YN8BkB;EM7BlB;;AAEA;EACI,ONwBY;;AMrBhB;EACI","file":"main.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../node_modules/react-loading-skeleton/dist/skeleton.css","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/mixins.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/Form/_mixins.scss","../scss/input.scss","../../node_modules/@gooddata/sdk-ui-kit/styles/scss/variables.scss","../scss/messages.scss","../scss/variables.scss","../scss/agentIcon.scss","../scss/window.scss","../scss/main.scss"],"names":[],"mappings":"AAAA;EACE;IACE;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EAEA;EAEA;EACA;EACA;EACA;EAEA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAMA;EAEA;EACA;EACA;EACA;EACA;;;AAGF;EACE;IACE;;;ACuEJ;AA4DA;AClLA;AAAA;AAAA;ACIA;EACI;EACA;;AAEA;EDWA;EACA;EACA;EACA;EACA;EACA;EACA,OECY;EFAZ,YEba;EFcb;EACA,aE8Dc;EF7Dd;EDkCA,0BChC2B;EDiC3B,6BCjC2B;EDkC3B,qBClC2B;EDsC3B,0BCtCgC;EDuChC,6BCvCgC;EDwChC,qBCxCgC;ED4ChC,iCC5CuC;ED6CvC,oCC7CuC;ED8CvC,4BC9CuC;EDrBvC;EAQI;EEMA;EACA;EACA;EACA;EACA;EACA;;AFmHJ;EEhIQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AF+HrD;EEpIQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AFmIrD;EExIQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AFuIrD;EE5IQ;EF+CR,0BE1CuC;EF2CvC,6BE3CuC;EF4CvC,qBE5CuC;EFgDvC,0BEhD8C;EFiD9C,6BEjD8C;EFkD9C,qBElD8C;EFsD9C,iCEtDqD;EFuDrD,oCEvDqD;EFwDrD,4BExDqD;;AAUjD;EAKI,cCmGiB;;AHSzB;EE/GY,OCXA;;AH8HZ;EEnHY,OCXA;;AHkIZ;EEvHY,OCXA;;AHsIZ;EE3HY,OCXA;;ADiBR;EFrBA;EE0BI;EACA,cCRc;;ADad;EFhCJ;EEoCQ,OCrCI;EDsCJ,cC+EO;ED9EP,kBCzCC;;AD8Cb;EFEA,0BEDmC;EFEnC,6BEFmC;EFGnC,qBEHmC;EFOnC,0BEPwC;EFQxC,6BERwC;EFSxC,qBETwC;EFaxC,iCEb+C;EFc/C,oCEd+C;EFe/C,4BEf+C;EAE3C;EACA;EACA;EACA;EACA;;AAEA;EAEI,MClDI;;ADqDR;EAEI,MCxCc;;AD2ClB;EAEI;;AAEA;AAAA;AAAA;EAEI,MCrEI;;AD2EZ;AAAA;EAEI,MCzDc;;AD4DlB;EAEI;;AAEA;AAAA;AAAA;EAEI,MCtFI;;;ACbpB;EACI;EACA;EAGA;EACA,eCZQ;;;ADeZ;EACI;EACA;EACA;;;AAGJ;EACI;;;AAIA;EAII;EACA,kBDQkB;ECPlB;EACA;EACA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;EACA;EACA;EACA,mBAlBS;EAmBT;EACA;;AAGJ;EACI,ODrCK;;ACyCb;EACI,OD1CS;EC2CT,kBDZsB;;ACe1B;EACI,kBDhBsB;;;ACoB9B;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA;EACA;;;AAGJ;EACI;EACA;EACA;EACA,YD5BsB;EC6BtB,OD/BoB;;;ACmCpB;EAMI,OD9EY;;;ACkFpB;EACI;;;AAGJ;EACI;EACA;EACA;EACA,YD9Fa;EC+Fb;;AAEA;EACI;;AAGJ;EACI;;;AAIR;EACI;EACA;EACA;;AAEA;EACI,ODxFkB;;AC2FtB;EACI;;AAEA;EACI;EACA;;AAIR;EACI;EACA;EACA;EACA;;;AAIR;EACI;;;AAGJ;EACI;IACI;IACA;;EAEJ;IACI;IACA;;;AAIR;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;;AE7JR;EACI;EACA;EACA;;AAEA;EACI,MHuBoB;;AGpBxB;EACI;EACA;EACA;;AAGJ;EACI,MHUkB;;AGNlB;EACI;;AAGJ;EAGI;;AAEA;EACI;;AAMR;EACI;;AAKJ;EACI;EACA;EACA;EACA;;AAKJ;EACI,MHhDK;;AGmDT;EACI,MHlDQ;;AGuDZ;EACI,YHpCc;;AGsClB;EACI,YAvEuB;;AAyE3B;EACI,YHnCkB;;;AGwC9B;EACI;IACI;;EAEJ;IACI;;;AAIR;EACI;IACI;;EAEJ;IACI;;EAEJ;IACI;;;AAIR;EACI;IACI,MHnEoB;;EGqExB;IACI,MHzEkB;;EG2EtB;IACI,MHzEoB;;;AG6E5B;EACI;IACI;;EAEJ;IACI,MHlEkB;;EGoEtB;IACI;;;ACzHR;EACI;EACA;EACA,kBJQa;EIPb;EACA;EAEA;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;;AAEA;EACI;;AAIR;EACI;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EACI;;AAGJ;EACI;EACA;EACA,kBJRU;;AIWd;EACI;EACA;;AAEA;EACI;EACA,MJ9BI;;AIiCR;EACI;;AAEA;EACI,MJ1CI;;AI8CZ;EACI;EACA;;AAIA;EACI,MJhBQ;;AIsBZ;EACI,MJxCU;;AI4ClB;EACI;;AAGJ;EACI;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEJ;EACI;EACA;EACA;EACA;EACA;EACA,YJ/EI;EIgFJ;EACA,OJ9FK;EI+FL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGJ;EAEI;;;AClHZ;EACI;EACA;EACA;EACA,KHXQ;EGYR;EACA;EACA;EACA,kBLCa;;AKCb;EACI;EACA,OLCe;EKAf;EACA;;AAGJ;EACI;EACA;EACA;EACA;;AAEA;EACI;EACA;EACA;EACA;;AAGJ;EACI;EACA;EACA;EACA,YLzBK;;AK4BT;EACI;EACA,OLvBI;EKwBJ;EACA;EACA;EACA;EACA;EACA;EACA;EACA","file":"main.css"}