@gooddata/sdk-ui-gen-ai 11.57.0-alpha.0 → 11.57.0-alpha.2

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 (34) hide show
  1. package/NOTICE +18 -18
  2. package/esm/components/messages/contents/CustomHyperlink.d.ts.map +1 -1
  3. package/esm/components/messages/contents/CustomHyperlink.js +15 -6
  4. package/esm/components/messages/conversationContents/ConversationVisualisation.d.ts.map +1 -1
  5. package/esm/components/messages/conversationContents/ConversationVisualisation.js +20 -1
  6. package/esm/components/utils/markdownUtils.d.ts.map +1 -1
  7. package/esm/components/utils/markdownUtils.js +4 -2
  8. package/esm/context.js +1 -1
  9. package/esm/index.js +1 -1
  10. package/esm/internal.js +1 -1
  11. package/esm/localization/bundles/zh-HK.localization-bundle.js +18 -18
  12. package/esm/store/chatWindow/chatWindowSlice.d.ts.map +1 -1
  13. package/esm/store/chatWindow/chatWindowSlice.js +1 -0
  14. package/esm/store/localStorage.d.ts +2 -0
  15. package/esm/store/localStorage.d.ts.map +1 -1
  16. package/esm/store/localStorage.js +25 -0
  17. package/esm/store/sideEffects/conversationSession.d.ts +20 -0
  18. package/esm/store/sideEffects/conversationSession.d.ts.map +1 -0
  19. package/esm/store/sideEffects/conversationSession.js +40 -0
  20. package/esm/store/sideEffects/index.d.ts.map +1 -1
  21. package/esm/store/sideEffects/index.js +3 -1
  22. package/esm/store/sideEffects/onChatOpenSync.d.ts +3 -0
  23. package/esm/store/sideEffects/onChatOpenSync.d.ts.map +1 -1
  24. package/esm/store/sideEffects/onChatOpenSync.js +14 -5
  25. package/esm/store/sideEffects/onThreadLoad.d.ts.map +1 -1
  26. package/esm/store/sideEffects/onThreadLoad.js +11 -0
  27. package/package.json +23 -22
  28. package/styles/css/conversations.css +3 -3
  29. package/styles/css/main.css +15 -14
  30. package/styles/css/main.css.map +1 -1
  31. package/styles/css/messages.css +3 -3
  32. package/styles/css/window.css +1 -0
  33. package/styles/css/window.css.map +1 -1
  34. package/styles/scss/window.scss +1 -0
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-9-8
10
+ Date generated: 2026-9-13
11
11
 
12
- Revision ID: 1048ca52472a196fef1b2b02d6448cbf7df0a911
12
+ Revision ID: 6137e079cb078a0bcfbae6cca294b0e3b8efb320
13
13
 
14
14
  ================================================================================
15
15
  ================================================================================
@@ -38312,7 +38312,7 @@ MIT
38312
38312
 
38313
38313
  Authors: react-core@meta.com
38314
38314
  Package Manager: NPM
38315
- Project URL: https://github.com/facebook/react#readme
38315
+ Project URL: https://github.com/react/react#readme
38316
38316
  Package Download URL: https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz
38317
38317
  Dependency Path: @react-aria/interactions > react-aria > react-stately > use-sync-external-store > @react-aria/interactions > react-aria > use-sync-external-store > react-redux > use-sync-external-store
38318
38318
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -43212,7 +43212,7 @@ MIT
43212
43212
 
43213
43213
  Authors: richiebendall@gmail.com
43214
43214
  Package Manager: NPM
43215
- Project URL: https://www.npmjs.com/package/char-regex
43215
+ Project URL: https://github.com/Richienb/char-regex#readme
43216
43216
  Package Download URL: https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz
43217
43217
  Dependency Path: remark-emoji > node-emoji > char-regex
43218
43218
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -47906,7 +47906,7 @@ MIT
47906
47906
 
47907
47907
  Authors: tituswormer@gmail.com
47908
47908
  Package Manager: NPM
47909
- Project URL: https://www.npmjs.com/package/micromark
47909
+ Project URL: https://github.com/micromark/micromark/tree/main#readme
47910
47910
  Package Download URL: https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz
47911
47911
  Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdxjs-esm > mdast-util-from-markdown > micromark > react-markdown > remark-parse > mdast-util-from-markdown > micromark > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > remark-parse > mdast-util-from-markdown > micromark
47912
47912
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -48198,7 +48198,7 @@ MIT
48198
48198
 
48199
48199
  Authors: tituswormer@gmail.com
48200
48200
  Package Manager: NPM
48201
- Project URL: https://www.npmjs.com/package/micromark-extension-gfm-table
48201
+ Project URL: https://github.com/micromark/micromark-extension-gfm-table#readme
48202
48202
  Package Download URL: https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz
48203
48203
  Dependency Path: remark-gfm > micromark-extension-gfm > micromark-extension-gfm-table
48204
48204
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -48563,7 +48563,7 @@ MIT
48563
48563
 
48564
48564
  Authors: tituswormer@gmail.com
48565
48565
  Package Manager: NPM
48566
- Project URL: https://www.npmjs.com/package/micromark-util-types
48566
+ Project URL: https://github.com/micromark/micromark/tree/main#readme
48567
48567
  Package Download URL: https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz
48568
48568
  Dependency Path: remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-types > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-types > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-autolink-literal > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-strikethrough > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-table > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-tagfilter > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-task-list-item > micromark-util-types > remark-gfm > micromark-extension-gfm > micromark-util-types
48569
48569
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -58083,7 +58083,7 @@ MIT
58083
58083
 
58084
58084
  Authors: tituswormer@gmail.com
58085
58085
  Package Manager: NPM
58086
- Project URL: https://www.npmjs.com/package/micromark-factory-space
58086
+ Project URL: https://github.com/micromark/micromark/tree/main#readme
58087
58087
  Package Download URL: https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz
58088
58088
  Dependency Path: remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-space > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > micromark-factory-space > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-whitespace > micromark-factory-space > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-factory-space > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-whitespace > micromark-factory-space > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-whitespace > micromark-factory-space > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-factory-whitespace > micromark-factory-space > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-factory-space > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-table > micromark-factory-space > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-task-list-item > micromark-factory-space
58089
58089
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -58229,7 +58229,7 @@ MIT
58229
58229
 
58230
58230
  Authors: tituswormer@gmail.com
58231
58231
  Package Manager: NPM
58232
- Project URL: https://www.npmjs.com/package/micromark-util-chunked
58232
+ Project URL: https://github.com/micromark/micromark/tree/main#readme
58233
58233
  Package Download URL: https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz
58234
58234
  Dependency Path: remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-combine-extensions > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-subtokenize > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > micromark-util-chunked > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > micromark-util-chunked > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-util-subtokenize > micromark-util-chunked > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-strikethrough > micromark-util-chunked
58235
58235
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -58302,7 +58302,7 @@ MIT
58302
58302
 
58303
58303
  Authors: tituswormer@gmail.com
58304
58304
  Package Manager: NPM
58305
- Project URL: https://www.npmjs.com/package/micromark-util-classify-character
58305
+ Project URL: https://github.com/micromark/micromark/tree/main#readme
58306
58306
  Package Download URL: https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz
58307
58307
  Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > mdast-util-gfm > mdast-util-to-markdown > micromark-util-classify-character > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-util-classify-character > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-strikethrough > micromark-util-classify-character
58308
58308
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -58375,7 +58375,7 @@ MIT
58375
58375
 
58376
58376
  Authors: tituswormer@gmail.com
58377
58377
  Package Manager: NPM
58378
- Project URL: https://www.npmjs.com/package/micromark-util-decode-numeric-character-reference
58378
+ Project URL: https://github.com/micromark/micromark/tree/main#readme
58379
58379
  Package Download URL: https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz
58380
58380
  Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference > remark-gfm > mdast-util-gfm > mdast-util-to-markdown > micromark-util-decode-string > micromark-util-decode-numeric-character-reference
58381
58381
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -58448,7 +58448,7 @@ MIT
58448
58448
 
58449
58449
  Authors: tituswormer@gmail.com
58450
58450
  Package Manager: NPM
58451
- Project URL: https://www.npmjs.com/package/micromark-util-decode-string
58451
+ Project URL: https://github.com/micromark/micromark/tree/main#readme
58452
58452
  Package Download URL: https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz
58453
58453
  Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-to-markdown > micromark-util-decode-string > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-to-markdown > micromark-util-decode-string > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdxjs-esm > mdast-util-to-markdown > micromark-util-decode-string > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark-util-decode-string > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-to-markdown > micromark-util-decode-string > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-to-markdown > micromark-util-decode-string > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-to-markdown > micromark-util-decode-string > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-to-markdown > micromark-util-decode-string > remark-gfm > mdast-util-gfm > mdast-util-to-markdown > micromark-util-decode-string > remark-gfm > remark-stringify > mdast-util-to-markdown > micromark-util-decode-string
58454
58454
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -58667,7 +58667,7 @@ MIT
58667
58667
 
58668
58668
  Authors: tituswormer@gmail.com
58669
58669
  Package Manager: NPM
58670
- Project URL: https://www.npmjs.com/package/micromark-util-resolve-all
58670
+ Project URL: https://github.com/micromark/micromark/tree/main#readme
58671
58671
  Package Download URL: https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz
58672
58672
  Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-resolve-all > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-util-resolve-all > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-strikethrough > micromark-util-resolve-all
58673
58673
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -61836,7 +61836,7 @@ MIT
61836
61836
 
61837
61837
  Authors: tituswormer@gmail.com
61838
61838
  Package Manager: NPM
61839
- Project URL: https://www.npmjs.com/package/micromark-factory-destination
61839
+ Project URL: https://github.com/micromark/micromark/tree/main#readme
61840
61840
  Package Download URL: https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz
61841
61841
  Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdxjs-esm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-factory-destination > remark-parse > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-destination
61842
61842
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -61909,7 +61909,7 @@ MIT
61909
61909
 
61910
61910
  Authors: tituswormer@gmail.com
61911
61911
  Package Manager: NPM
61912
- Project URL: https://www.npmjs.com/package/micromark-factory-label
61912
+ Project URL: https://github.com/micromark/micromark/tree/main#readme
61913
61913
  Package Download URL: https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz
61914
61914
  Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdxjs-esm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-factory-label > remark-parse > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-label
61915
61915
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -61982,7 +61982,7 @@ MIT
61982
61982
 
61983
61983
  Authors: tituswormer@gmail.com
61984
61984
  Package Manager: NPM
61985
- Project URL: https://www.npmjs.com/package/micromark-factory-title
61985
+ Project URL: https://github.com/micromark/micromark/tree/main#readme
61986
61986
  Package Download URL: https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz
61987
61987
  Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdxjs-esm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-factory-title > remark-parse > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-factory-title
61988
61988
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -62201,7 +62201,7 @@ MIT
62201
62201
 
62202
62202
  Authors: tituswormer@gmail.com
62203
62203
  Package Manager: NPM
62204
- Project URL: https://www.npmjs.com/package/micromark-util-subtokenize
62204
+ Project URL: https://github.com/micromark/micromark/tree/main#readme
62205
62205
  Package Download URL: https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz
62206
62206
  Dependency Path: react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-expression > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdx-jsx > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > react-markdown > hast-util-to-jsx-runtime > mdast-util-mdxjs-esm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > remark-gfm > mdast-util-gfm > mdast-util-from-markdown > micromark > micromark-util-subtokenize > remark-gfm > mdast-util-gfm > mdast-util-gfm-footnote > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > remark-gfm > mdast-util-gfm > mdast-util-gfm-strikethrough > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > remark-gfm > mdast-util-gfm > mdast-util-gfm-table > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > remark-gfm > mdast-util-gfm > mdast-util-gfm-task-list-item > mdast-util-from-markdown > micromark > micromark-core-commonmark > micromark-util-subtokenize > remark-gfm > micromark-extension-gfm > micromark-extension-gfm-footnote > micromark-core-commonmark > micromark-util-subtokenize
62207
62207
  File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
@@ -64353,4 +64353,4 @@ File Path(s): common/config/subspaces/sdk/pnpm-lock.yaml
64353
64353
  --------------------------------------------------------------------------------
64354
64354
  --------------------------------------------------------------------------------
64355
64355
 
64356
- Report Generated by FOSSA on 2026-9-8
64356
+ Report Generated by FOSSA on 2026-9-13
@@ -1 +1 @@
1
- {"version":3,"file":"CustomHyperlink.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/CustomHyperlink.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAKxE,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,oBAAoB,GAAG,uBAAuB,GAAG;IAClD,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,oBAAoB,oDA4FtF;AAyBD,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,2CAItE"}
1
+ {"version":3,"file":"CustomHyperlink.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/contents/CustomHyperlink.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAMxE,MAAM,MAAM,uBAAuB,GAAG;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,oBAAoB,GAAG,uBAAuB,GAAG;IAClD,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACrC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,oBAAoB,oDAmGtF;AAyBD,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,uBAAuB,2CAItE"}
@@ -4,6 +4,7 @@ import { useMemo } from "react";
4
4
  import { useSelector } from "react-redux";
5
5
  import { settingsSelector } from "../../../store/chatWindow/chatWindowSelectors.js";
6
6
  import { useConfig } from "../../ConfigContext.js";
7
+ import { removeMarkdown } from "../../utils/markdownUtils.js";
7
8
  /**
8
9
  * Similar to SDK Hyperlink, but can handle customer schemas
9
10
  * used for links management
@@ -14,11 +15,19 @@ export function CustomHyperlinkComponent({ href, text, settings }) {
14
15
  const enableShellApplication_dashboards = Boolean(settings?.enableShellApplication_dashboards);
15
16
  const canManageMetrics = canManage || canAnalyze;
16
17
  const canManageVisualisations = canManage || canAnalyze;
18
+ const plainText = removeMarkdown(text);
17
19
  const parsedRef = useMemo(() => {
18
20
  if (!href) {
19
21
  return null;
20
22
  }
21
- const url = new URL(href);
23
+ let url;
24
+ try {
25
+ const decodedHref = decodeURIComponent(href);
26
+ url = new URL(decodedHref);
27
+ }
28
+ catch {
29
+ return null;
30
+ }
22
31
  if (url.protocol !== "gooddata:") {
23
32
  return null;
24
33
  }
@@ -40,7 +49,7 @@ export function CustomHyperlinkComponent({ href, text, settings }) {
40
49
  };
41
50
  }, [href, enableShellApplication_analyticalDesigner, enableShellApplication_dashboards]);
42
51
  if (!parsedRef) {
43
- return text;
52
+ return plainText;
44
53
  }
45
54
  const handleLinkClick = (e) => {
46
55
  if (!linkHandler) {
@@ -59,17 +68,17 @@ export function CustomHyperlinkComponent({ href, text, settings }) {
59
68
  // If the link is for a metric and the user cannot manage metrics,
60
69
  // we do not render the link
61
70
  if (parsedRef.type === "metric" && !canManageMetrics) {
62
- return text;
71
+ return plainText;
63
72
  }
64
73
  // If the link is for a visualization and the user cannot manage visualizations,
65
74
  // we do not render the link
66
75
  if (parsedRef.type === "visualization" && !canManageVisualisations) {
67
- return text;
76
+ return plainText;
68
77
  }
69
78
  if (allowNativeLinks) {
70
- return (_jsx("a", { className: "gd-hyperlink", href: parsedRef.itemUrl, onClick: handleLinkClick, children: _jsx("span", { className: "gd-hyperlink-text", children: text }) }));
79
+ return (_jsx("a", { className: "gd-hyperlink", href: parsedRef.itemUrl, onClick: handleLinkClick, children: _jsx("span", { className: "gd-hyperlink-text", children: plainText }) }));
71
80
  }
72
- return (_jsx("span", { className: "gd-hyperlink", onClick: handleLinkClick, children: _jsx("span", { className: "gd-hyperlink-text", children: text }) }));
81
+ return (_jsx("span", { className: "gd-hyperlink", onClick: handleLinkClick, children: _jsx("span", { className: "gd-hyperlink-text", children: plainText }) }));
73
82
  }
74
83
  const getItemUrl = (workspaceId, id, objectType, enableShellApplication_analyticalDesigner, enableShellApplication_dashboards) => {
75
84
  switch (objectType) {
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationVisualisation.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationVisualisation.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAEH,KAAK,aAAa,EAElB,KAAK,gBAAgB,EAGrB,KAAK,WAAW,EAKnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAInB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACH,KAAK,kCAAkC,EAE1C,MAAM,4BAA4B,CAAC;AAiBpC,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAyBpE,MAAM,MAAM,8BAA8B,GAAG;IACzC,OAAO,EAAE,0BAA0B,CAAC;IACpC,aAAa,EAAE,WAAW,CAAC,qCAAqC,CAAC,eAAe,CAAC,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,CACX,IAAI,EAAE;QACF,aAAa,EAAE,kCAAkC,EAAE,CAAC;QACpD,KAAK,EAAE,WAAW,CAAC;KACtB,GAAG,IAAI,KACP,IAAI,CAAC;IACV,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACtC,OAAO,EACP,YAAY,EACZ,UAAU,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,cAAqB,EACrB,oBAA4B,EAC5B,yBAAiC,EACjC,mBAA0B,EAC1B,4BAAoC,GACvC,EAAE,8BAA8B,2CA+PhC"}
1
+ {"version":3,"file":"ConversationVisualisation.d.ts","sourceRoot":"","sources":["../../../../src/components/messages/conversationContents/ConversationVisualisation.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,qCAAqC,EAAE,MAAM,2BAA2B,CAAC;AACvF,OAAO,EAEH,KAAK,aAAa,EAElB,KAAK,gBAAgB,EAGrB,KAAK,WAAW,EAKnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAEH,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAInB,MAAM,kBAAkB,CAAC;AAW1B,OAAO,EACH,KAAK,kCAAkC,EAE1C,MAAM,4BAA4B,CAAC;AAiBpC,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAyBpE,MAAM,MAAM,8BAA8B,GAAG;IACzC,OAAO,EAAE,0BAA0B,CAAC;IACpC,aAAa,EAAE,WAAW,CAAC,qCAAqC,CAAC,eAAe,CAAC,CAAC,CAAC;IACnF,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACzD,YAAY,CAAC,EAAE,CACX,IAAI,EAAE;QACF,aAAa,EAAE,kCAAkC,EAAE,CAAC;QACpD,KAAK,EAAE,WAAW,CAAC;KACtB,GAAG,IAAI,KACP,IAAI,CAAC;IACV,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,4BAA4B,CAAC,EAAE,OAAO,CAAC;CAC1C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,EACtC,OAAO,EACP,YAAY,EACZ,UAAU,EACV,aAAa,EACb,UAAU,EACV,WAAW,EACX,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,cAAqB,EACrB,oBAA4B,EAC5B,yBAAiC,EACjC,mBAA0B,EAC1B,4BAAoC,GACvC,EAAE,8BAA8B,2CAiRhC"}
@@ -4,7 +4,7 @@ import { useCallback, useMemo } from "react";
4
4
  import { useIntl } from "react-intl";
5
5
  import { useDispatch } from "react-redux";
6
6
  import { isAttribute, isMeasure, } from "@gooddata/sdk-model";
7
- import { BarChart, ColumnChart, Headline, LineChart, PieChart, ScatterPlot } from "@gooddata/sdk-ui-charts";
7
+ import { BarChart, ColumnChart, Headline, LineChart, PieChart, ScatterPlot, WaterfallChart, } from "@gooddata/sdk-ui-charts";
8
8
  import { getKdaKeyDriverCombinations, } from "@gooddata/sdk-ui-dashboard";
9
9
  import { PivotTable } from "@gooddata/sdk-ui-pivot";
10
10
  import { PivotTableNext, useAgGridToken } from "@gooddata/sdk-ui-pivot/next";
@@ -162,6 +162,13 @@ export function ConversationVisualisation({ message, colorPalette, separators, v
162
162
  execConfig,
163
163
  separators,
164
164
  });
165
+ case "local:waterfall":
166
+ return renderWaterfallChart(intl.locale, visualization, bucketsData, filters, sorts, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
167
+ drillableItems,
168
+ enableAccessibleChartTooltip,
169
+ execConfig,
170
+ separators,
171
+ });
165
172
  case "local:headline":
166
173
  return renderHeadline(intl.locale, kpiTheme, bucketsData, filters, colorPalette, handleSdkError, handleSuccess, handlerDrill, {
167
174
  drillableItems,
@@ -248,6 +255,18 @@ const renderScatterPlot = (locale, visualization, buckets, filters, sortBy, colo
248
255
  ...(clusteringConfig && clustering ? { clustering } : {}),
249
256
  }, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }));
250
257
  };
258
+ const renderWaterfallChart = (locale, visualization, buckets, filters, sortBy, colorPalette, onError, onSuccess, onDrill, props) => {
259
+ const { metrics, view } = buckets;
260
+ const total = visualization.insight.properties["controls"]?.["total"];
261
+ return (_jsx(WaterfallChart, { locale: locale, height: VIS_HEIGHT, measures: metrics, viewBy: view[0], filters: filters, sortBy: sortBy, config: {
262
+ ...visualizationTooltipOptions,
263
+ ...legendTooltipOptions,
264
+ colorPalette,
265
+ separators: props.separators,
266
+ enableAccessibleTooltip: props.enableAccessibleChartTooltip,
267
+ ...(total ? { total } : {}),
268
+ }, drillableItems: props.drillableItems, onDrill: onDrill, onError: onError, onExportReady: onSuccess, execConfig: props.execConfig }));
269
+ };
251
270
  const renderTable = (locale, buckets, filters, sortBy, onError, onSuccess, onDrill, props) => {
252
271
  const TableComponent = props.enableNewPivotTable ? PivotTableNext : PivotTable;
253
272
  const { metrics, attribute, trend, view, stack, segment, columns } = buckets;
@@ -1 +1 @@
1
- {"version":3,"file":"markdownUtils.d.ts","sourceRoot":"","sources":["../../../src/components/utils/markdownUtils.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAanD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,iBAa1C"}
1
+ {"version":3,"file":"markdownUtils.d.ts","sourceRoot":"","sources":["../../../src/components/utils/markdownUtils.ts"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAcnD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,iBAa1C"}
@@ -1,5 +1,6 @@
1
1
  // (C) 2025-2026 GoodData Corporation
2
2
  const MARKDOWN_ESCAPE_PATTERN = /(\{[^{}]*\})|[\\`*_{}[\]()#+\-.!]/g;
3
+ const MARKDOWN_UNESCAPE_PATTERN = /\\([\\`*_{}[\]()#+\-.!])/g;
3
4
  export function escapeMarkdown(text) {
4
5
  return text.replace(MARKDOWN_ESCAPE_PATTERN, (match, inBraces) => inBraces || `\\${match}`);
5
6
  }
@@ -8,14 +9,15 @@ export function escapeMarkdown(text) {
8
9
  */
9
10
  export function removeMarkdown(text) {
10
11
  return text
11
- .replace(/(\*\*|__)(.*?)\1/g, "$2") // bold
12
- .replace(/(\*|_)(.*?)\1/g, "$2") // italic
12
+ .replace(/(?<!\\)(\*\*|__)(.*?)(?<!\\)\1/g, "$2") // bold
13
+ .replace(/(?<!\\)(\*|_)(.*?)(?<!\\)\1/g, "$2") // italic
13
14
  .replace(/\[([^\]]+)\]\(([^)]+)\)/g, "$1") // links
14
15
  .replace(/`([^`]+)`/g, "$1") // code
15
16
  .replace(/#{1,6}\s+(.*)/gm, "$1") // headers
16
17
  .replace(/>\s+(.*)/gm, "$1") // blockquotes
17
18
  .replace(/^\s*[-*+]\s+(.*)/gm, "$1") // unordered lists
18
19
  .replace(/^\s*\d+\.\s+(.*)/gm, "$1") // ordered lists
20
+ .replace(MARKDOWN_UNESCAPE_PATTERN, "$1") // unescape markdown escaped characters
19
21
  .replace(/(\r\n|\n|\r)/gm, " ") // replace newlines with space
20
22
  .replace(/ {2,}/g, " ") // remove double spaces
21
23
  .trim();
package/esm/context.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // (C) 2026 GoodData Corporation
2
- /* oxlint-disable no-barrel-files/no-barrel-files */
2
+ // oxlint-disable no-barrel-files/no-barrel-files
3
3
  import { mergeContexts } from "./context/build.js";
4
4
  import { buildDashboardContext, buildFiltersContext, buildWidgetContext, buildWidgetsContext, } from "./context/dashboard.js";
5
5
  import { buildReferenceContext, buildReferencedContext } from "./context/referencedObjects.js";
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // (C) 2024-2026 GoodData Corporation
2
- /* oxlint-disable no-barrel-files/no-barrel-files */
2
+ // oxlint-disable no-barrel-files/no-barrel-files
3
3
  /**
4
4
  * This package provides React components for GoodData's GenAI features.
5
5
  * @packageDocumentation
package/esm/internal.js CHANGED
@@ -1,5 +1,5 @@
1
1
  // (C) 2024-2026 GoodData Corporation
2
- /* oxlint-disable no-barrel-files/no-barrel-files */
2
+ // oxlint-disable no-barrel-files/no-barrel-files
3
3
  import { makeTextContents, makeUserMessage } from "./model.js";
4
4
  import { clearThreadAction, newMessageAction, setSelectedAgentAction, } from "./store/messages/messagesSlice.js";
5
5
  export { ChatSkeleton } from "./components/ChatSkeleton.js";
@@ -27,8 +27,8 @@ export const zh_HK = {
27
27
  "gd.gen-ai.visualization.error.data_too_large": "<b>資料過大。</b> 請套用篩選器以減少資料。",
28
28
  "gd.gen-ai.visualization.unavailable": "無法顯示可視化。",
29
29
  "gd.gen-ai.permission-error": "權限不足",
30
- "gd.gen-ai.permission-error.description": "你無權訪問聊天機械人。 請與您的管理員聯繫以請求訪問權限。",
31
- "gd.gen-ai.input-placeholder": "喺呢度提問…",
30
+ "gd.gen-ai.permission-error.description": "您無權訪問聊天機械人。 請與您的管理員聯繫以請求訪問權限。",
31
+ "gd.gen-ai.input-placeholder": "在此提問…",
32
32
  "gd.gen-ai.input-label.mac": "提出您的問題。 使用control+space或cmd+I獲取建議。",
33
33
  "gd.gen-ai.input-label.win": "提出您的問題。 使用control+space或control+I獲取建議。",
34
34
  "gd.gen-ai.context.add_context": "新增上下文",
@@ -69,18 +69,18 @@ export const zh_HK = {
69
69
  "gd.gen-ai.reasoning.thinking.description": "為複雜分析問題提供較慢但更詳盡的解答。",
70
70
  "gd.gen-ai.feedback.like": "將此消息標記為有用",
71
71
  "gd.gen-ai.feedback.dislike": "將此消息標記為無用",
72
- "gd.gen-ai.feedback.popup.title": "我哋收到你哋嘅意見",
73
- "gd.gen-ai.feedback.popup.reasons-label": "你話我哋知乜嘢出咗問題",
74
- "gd.gen-ai.feedback.popup.description-label": "唔該你講下發生咗乜嘢事",
72
+ "gd.gen-ai.feedback.popup.title": "我們已收到您的意見",
73
+ "gd.gen-ai.feedback.popup.reasons-label": "告訴我們出了什麼問題",
74
+ "gd.gen-ai.feedback.popup.description-label": "請描述發生了什麼事",
75
75
  "gd.gen-ai.feedback.popup.cancel": "取消",
76
76
  "gd.gen-ai.feedback.popup.send": "發送",
77
77
  "gd.gen-ai.feedback.popup.close": "關閉反饋對話框",
78
- "gd.gen-ai.feedback.reason.forgot-context": "唔記得之前嘅上下文",
78
+ "gd.gen-ai.feedback.reason.forgot-context": "忘記了先前的上下文",
79
79
  "gd.gen-ai.feedback.reason.ignored-instructions": "無視或拒絕指示",
80
80
  "gd.gen-ai.feedback.reason.factually-incorrect": "事實錯誤",
81
81
  "gd.gen-ai.feedback.reason.answer-too-long": "答案需時過長",
82
82
  "gd.gen-ai.feedback.reason.other": "其他",
83
- "gd.gen-ai.disclaimer": "AI助手可能會犯錯誤。 在依賴呢啲答案之前檢查。",
83
+ "gd.gen-ai.disclaimer": "AI助手可能會犯錯。 在依賴這些答案之前請先檢查。",
84
84
  "gd.gen-ai.dialog.label": "AI助手對話",
85
85
  "gd.gen-ai.header.reset-tooltip": "重置",
86
86
  "gd.gen-ai.header.conversations-tooltip": "最近對話",
@@ -88,14 +88,14 @@ export const zh_HK = {
88
88
  "gd.gen-ai.header.contract-tooltip": "收縮",
89
89
  "gd.gen-ai.header.expand-tooltip": "擴大",
90
90
  "gd.gen-ai.header.close-tooltip": "關閉助手",
91
- "gd.gen-ai.welcome.line-1": "嘿,你好",
92
- "gd.gen-ai.welcome.line-2": "我該點樣幫助你法?",
91
+ "gd.gen-ai.welcome.line-1": "嘿,您好",
92
+ "gd.gen-ai.welcome.line-2": "我該怎樣幫助您?",
93
93
  "gd.gen-ai.welcome.option-1.title": "搜索儀表板或可視化",
94
- "gd.gen-ai.welcome.option-1.answer": "當然,你希望睇到点样嘅儀錶板或可視化效果?",
94
+ "gd.gen-ai.welcome.option-1.answer": "當然,您想看到什麼樣的儀表板或可視化?",
95
95
  "gd.gen-ai.welcome.option-2.title": "創建新的可視化",
96
96
  "gd.gen-ai.welcome.option-2.answer": "當然,您想創建点样的可視化效果?",
97
97
  "gd.gen-ai.welcome.option-3.title": "答業務問題",
98
- "gd.gen-ai.welcome.option-3.answer": "當然,您想答乜嘢商業問題?",
98
+ "gd.gen-ai.welcome.option-3.answer": "當然,您想回答什麼商業問題?",
99
99
  "gd.gen-ai.semantic-search.title": "搜尋",
100
100
  "gd.gen-ai.alert-proposal.title": "通知",
101
101
  "gd.gen-ai.alert-proposal.summary.title": "名字",
@@ -179,12 +179,12 @@ export const zh_HK = {
179
179
  "gd.gen-ai.save-dialog.label": "名字",
180
180
  "gd.gen-ai.save-dialog.title": "為可視化效果命名",
181
181
  "gd.gen-ai.save-dialog.description": "為新的可視化效果指定一個新的描述性名稱,方便日後容易找到。",
182
- "gd.gen-ai.save-dialog.description.explore": "要打開此可視化,需要保存它先。 你可以喺下面為其命名。",
182
+ "gd.gen-ai.save-dialog.description.explore": "若要開啟此可視化,必須先儲存。 您可以在下方為其命名。",
183
183
  "gd.gen-ai.autocomplete.type": "類型",
184
184
  "gd.gen-ai.autocomplete.dataset": "數據",
185
185
  "gd.gen-ai.autocomplete.id": "ID",
186
186
  "gd.gen-ai.autocomplete.attribute": "屬性",
187
- "gd.gen-ai.autocomplete.metric": "計量",
187
+ "gd.gen-ai.autocomplete.metric": "指標",
188
188
  "gd.gen-ai.autocomplete.fact": "事實",
189
189
  "gd.gen-ai.autocomplete.date": "數據",
190
190
  "gd.gen-ai.autocomplete.insight": "可視化",
@@ -198,7 +198,7 @@ export const zh_HK = {
198
198
  "gd.gen-ai.visualisation.menu.button.save_as_visualisation": "保存可視化效果",
199
199
  "gd.gen-ai.visualisation.menu.button.save_as_new_visualisation": "另存為新...",
200
200
  "gd.gen-ai.visualisation.menu.button.open_in_analyze": "在Analyze中打開",
201
- "gd.gen-ai.visualisation.menu.button.open_in_analyze.description": "這會要求你先儲存視覺化,然後才能打開它。",
201
+ "gd.gen-ai.visualisation.menu.button.open_in_analyze.description": "這會要求您先儲存視覺化,然後才能打開它。",
202
202
  "gd.gen-ai.visualisation.menu.button.copy_visualisation_link": "複製可視化效果link",
203
203
  "gd.gen-ai.messages.label": "聊天消息",
204
204
  "gd.gen-ai.message.label.user": "用戶:",
@@ -208,8 +208,8 @@ export const zh_HK = {
208
208
  "gd.gen-ai.message.reasoning.tool-result": "<b>正在從工具收集資料</b>",
209
209
  "gd.gen-ai.message.reasoned.tool-result": "<b>已從工具收集資料</b>",
210
210
  "gd.gen-ai.skip-messages-history": "跳到AI助手輸入",
211
- "gd.gen-ai.skip-navigation": "跳过導航",
212
- "gd.gen-ai.changeAnalysis.default_message": "呢度係 <metric>{title}</metric> <b>{range}</b> 之間嘅關鍵驅動因素分析。",
211
+ "gd.gen-ai.skip-navigation": "跳過導航",
212
+ "gd.gen-ai.changeAnalysis.default_message": "以下是 <metric>{title}</metric> <b>{range}</b> 之間的關鍵驅動因素分析。",
213
213
  "gd.gen-ai.kda.default_message": "以下是 **{title}** 在 **{range}** 期間的關鍵驅動因素分析。",
214
214
  "gd.gen-ai.changeAnalysis.splitter": "和",
215
215
  "gd.gen-ai.changeAnalysis.explain_the_change": "開分析",
@@ -254,7 +254,7 @@ export const zh_HK = {
254
254
  "gd.gen-ai.interactionIntelligence.detail.searched": "已搜尋",
255
255
  "gd.gen-ai.interactionIntelligence.detail.found": "找到",
256
256
  "gd.gen-ai.interactionIntelligence.detail.used": "已使用",
257
- "gd.gen-ai.interactionIntelligence.detail.metrics": "計量",
257
+ "gd.gen-ai.interactionIntelligence.detail.metrics": "指標",
258
258
  "gd.gen-ai.interactionIntelligence.detail.groupedBy": "分組依據",
259
259
  "gd.gen-ai.interactionIntelligence.detail.filteredBy": "篩選依據",
260
260
  "gd.gen-ai.interactionIntelligence.detail.visualization": "可視化",
@@ -275,7 +275,7 @@ export const zh_HK = {
275
275
  "gd.gen-ai.interactionIntelligence.detail.output.searchResults": "搜尋結果",
276
276
  "gd.gen-ai.interactionIntelligence.detail.output.alertProposal": "警示建議",
277
277
  "drill.kda.from": "從",
278
- "drill.kda.in": "",
278
+ "drill.kda.in": "",
279
279
  "drill.kda.drop": "下降 {where} {title}",
280
280
  "drill.kda.increase": "增加 {where} {title}",
281
281
  "drill.kda.no_change": "無變化 {where} {title}",
@@ -1 +1 @@
1
- {"version":3,"file":"chatWindowSlice.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSlice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatWindowSlice.d.ts","sourceRoot":"","sources":["../../../src/store/chatWindow/chatWindowSlice.ts"],"names":[],"mappings":"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"}
@@ -170,6 +170,7 @@ const chatWindowSlice = createSlice({
170
170
  extraReducers: (builder) => {
171
171
  const resetContextToAmbient = (state) => {
172
172
  state.context.active = mergeContexts(state.context.ambient);
173
+ state.context = selectContextReferences(state.context, state.context.ambientSelected);
173
174
  };
174
175
  builder
175
176
  .addCase(startNewConversationAction, resetContextToAmbient)
@@ -4,4 +4,6 @@ export declare function setIsOpened(isOpened: boolean): void;
4
4
  export declare function saveMessages(workspaceId: string, messages: Message[]): void;
5
5
  export declare function loadMessages(workspaceId: string): Message[] | undefined;
6
6
  export declare function clearCachedMessages(workspaceId: string): void;
7
+ export declare function getLastActiveAt(workspaceId: string): number | undefined;
8
+ export declare function setLastActiveAt(workspaceId: string, timestamp: number): void;
7
9
  //# sourceMappingURL=localStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"localStorage.d.ts","sourceRoot":"","sources":["../../src/store/localStorage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAK3C,wBAAgB,WAAW,wBAU1B;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,QAY5C;AAMD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAS3E;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,CAavE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAS7D"}
1
+ {"version":3,"file":"localStorage.d.ts","sourceRoot":"","sources":["../../src/store/localStorage.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAM3C,wBAAgB,WAAW,wBAU1B;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,QAY5C;AAMD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAS3E;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,EAAE,GAAG,SAAS,CAavE;AAED,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAS7D;AAMD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWvE;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAM5E"}
@@ -1,6 +1,7 @@
1
1
  // (C) 2026 GoodData Corporation
2
2
  const OPENED_KEY = "gd-gen-ai-is-opened";
3
3
  const MESSAGES_KEY_PREFIX = "gd-gen-ai-messages";
4
+ const LAST_ACTIVE_KEY_PREFIX = "gd-gen-ai-last-active";
4
5
  export function getIsOpened() {
5
6
  if (typeof localStorage !== "undefined") {
6
7
  try {
@@ -68,3 +69,27 @@ export function clearCachedMessages(workspaceId) {
68
69
  // Fail silently
69
70
  }
70
71
  }
72
+ function getLastActiveKey(workspaceId) {
73
+ return `${LAST_ACTIVE_KEY_PREFIX}-${workspaceId}`;
74
+ }
75
+ export function getLastActiveAt(workspaceId) {
76
+ try {
77
+ const raw = globalThis.localStorage?.getItem(getLastActiveKey(workspaceId));
78
+ if (!raw) {
79
+ return undefined;
80
+ }
81
+ const parsed = Number(raw);
82
+ return Number.isFinite(parsed) ? parsed : undefined;
83
+ }
84
+ catch {
85
+ return undefined;
86
+ }
87
+ }
88
+ export function setLastActiveAt(workspaceId, timestamp) {
89
+ try {
90
+ globalThis.localStorage?.setItem(getLastActiveKey(workspaceId), String(timestamp));
91
+ }
92
+ catch {
93
+ // Fail silently
94
+ }
95
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * How long the assistant may sit unused before the next open counts as a new session.
3
+ * @internal
4
+ */
5
+ export declare const CONVERSATION_SESSION_TIMEOUT_MS: number;
6
+ /**
7
+ * Whether the next open should start a fresh conversation instead of resuming the last one.
8
+ * A missing timestamp keeps the previous resume behaviour.
9
+ * @internal
10
+ */
11
+ export declare function isConversationSessionStale(workspaceId: string, now?: number): boolean;
12
+ /**
13
+ * @internal
14
+ */
15
+ export declare function touchConversationSession(workspaceId: string, now?: number): void;
16
+ /** Refresh the session timer on assistant interaction (not on open). @internal */
17
+ export declare function onConversationActivity(): Generator<import("redux-saga/effects").GetContextEffect, void, string>;
18
+ /** Read staleness and refresh the timer on open. Only one open path calls this per opening. @internal */
19
+ export declare function consumeStaleConversationSession(): Generator<any, boolean, any>;
20
+ //# sourceMappingURL=conversationSession.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversationSession.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/conversationSession.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,eAAO,MAAM,+BAA+B,QAAqB,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAIjG;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,IAAI,CAE5F;AAED,kFAAkF;AAClF,wBAAiB,sBAAsB,2EAItC;AAED,yGAAyG;AACzG,wBAAiB,+BAA+B,IAAI,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,CAW/E"}
@@ -0,0 +1,40 @@
1
+ // (C) 2026 GoodData Corporation
2
+ import { getContext, select } from "redux-saga/effects";
3
+ import { settingsSelector } from "../chatWindow/chatWindowSelectors.js";
4
+ import { getLastActiveAt, setLastActiveAt } from "../localStorage.js";
5
+ /**
6
+ * How long the assistant may sit unused before the next open counts as a new session.
7
+ * @internal
8
+ */
9
+ export const CONVERSATION_SESSION_TIMEOUT_MS = 8 * 60 * 60 * 1000;
10
+ /**
11
+ * Whether the next open should start a fresh conversation instead of resuming the last one.
12
+ * A missing timestamp keeps the previous resume behaviour.
13
+ * @internal
14
+ */
15
+ export function isConversationSessionStale(workspaceId, now = Date.now()) {
16
+ const lastActiveAt = getLastActiveAt(workspaceId);
17
+ return lastActiveAt !== undefined && now - lastActiveAt > CONVERSATION_SESSION_TIMEOUT_MS;
18
+ }
19
+ /**
20
+ * @internal
21
+ */
22
+ export function touchConversationSession(workspaceId, now = Date.now()) {
23
+ setLastActiveAt(workspaceId, now);
24
+ }
25
+ /** Refresh the session timer on assistant interaction (not on open). @internal */
26
+ export function* onConversationActivity() {
27
+ const workspace = yield getContext("workspace");
28
+ touchConversationSession(workspace);
29
+ }
30
+ /** Read staleness and refresh the timer on open. Only one open path calls this per opening. @internal */
31
+ export function* consumeStaleConversationSession() {
32
+ const settings = yield select(settingsSelector);
33
+ if (!settings?.enableAiAgenticConversations || !settings?.enableAiAgenticMultiConversations) {
34
+ return false;
35
+ }
36
+ const workspace = yield getContext("workspace");
37
+ const stale = isConversationSessionStale(workspace);
38
+ touchConversationSession(workspace);
39
+ return stale;
40
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/index.ts"],"names":[],"mappings":"AAiDA;;;GAGG;AACH,wBAAiB,QAAQ,4HA4BxB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/store/sideEffects/index.ts"],"names":[],"mappings":"AAoDA;;;GAGG;AACH,wBAAiB,QAAQ,4HAgCxB"}