@genexus/genexus-ide-ui 1.1.4 → 1.1.6

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 (398) hide show
  1. package/dist/cjs/MERCURY_ASSETS-972bf7f4.js +9 -0
  2. package/dist/cjs/MERCURY_ASSETS-972bf7f4.js.map +1 -0
  3. package/dist/cjs/code-render-55d37767.js +86 -0
  4. package/dist/cjs/code-render-55d37767.js.map +1 -0
  5. package/dist/cjs/{common-72f91a78.js → common-090e6d3a.js} +28 -12
  6. package/dist/cjs/common-090e6d3a.js.map +1 -0
  7. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  8. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +2 -3
  9. package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +5 -6
  11. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +4 -5
  13. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js.map +1 -1
  14. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +239 -0
  15. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js.map +1 -0
  16. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +3 -4
  17. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +2 -3
  19. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +2 -3
  21. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
  22. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +3 -4
  23. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  24. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +2 -3
  25. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gx-ide-design-import.cjs.entry.js +7 -8
  27. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  28. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +3 -4
  29. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
  30. package/dist/cjs/gx-ide-file-item.cjs.entry.js +5 -6
  31. package/dist/cjs/gx-ide-file-item.cjs.entry.js.map +1 -1
  32. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +2 -3
  33. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
  34. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +6 -7
  35. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  36. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +5 -6
  37. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  38. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +4 -5
  39. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +1 -1
  40. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +4 -5
  41. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  42. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +1 -1
  43. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +3 -4
  44. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  45. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +4 -5
  46. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  47. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +3 -4
  48. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js.map +1 -1
  49. package/dist/cjs/gx-ide-references.cjs.entry.js +3 -4
  50. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  51. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +202 -98
  52. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
  53. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +3 -4
  54. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  55. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +2 -3
  56. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  57. package/dist/cjs/gx-ide-splash.cjs.entry.js +3 -4
  58. package/dist/cjs/gx-ide-splash.cjs.entry.js.map +1 -1
  59. package/dist/cjs/gx-ide-start-page.cjs.entry.js +5 -6
  60. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  61. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +1 -1
  62. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  63. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +1 -1
  64. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  65. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +2 -3
  66. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
  67. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +3 -4
  68. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js.map +1 -1
  69. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +1 -1
  70. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
  71. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +2 -2
  72. package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
  73. package/dist/cjs/index.cjs.js +8 -2
  74. package/dist/cjs/index.cjs.js.map +1 -1
  75. package/dist/cjs/loader.cjs.js +1 -1
  76. package/dist/collection/collection-manifest.json +2 -1
  77. package/dist/collection/common/common.js +19 -6
  78. package/dist/collection/common/common.js.map +1 -1
  79. package/dist/collection/common/images/ai-avatar.svg +11 -0
  80. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +1 -0
  81. package/dist/collection/components/chat/chat-container/chat-container.css +118 -0
  82. package/dist/collection/components/chat/chat-container/chat-container.js +218 -0
  83. package/dist/collection/components/chat/chat-container/chat-container.js.map +1 -0
  84. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.en.json +9 -0
  85. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.ja.json +9 -0
  86. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.zh.json +9 -0
  87. package/dist/collection/components/chat/chat-welcome/chat-welcome.css +109 -0
  88. package/dist/collection/components/chat/chat-welcome/chat-welcome.js +228 -0
  89. package/dist/collection/components/chat/chat-welcome/chat-welcome.js.map +1 -0
  90. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.js +3 -0
  91. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.js.map +1 -0
  92. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.tsx +31 -0
  93. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg +21 -0
  94. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar.svg +11 -0
  95. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/header-illustration.svg +24 -0
  96. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.en.json +10 -0
  97. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.ja.json +10 -0
  98. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.zh.json +10 -0
  99. package/dist/collection/components/chat/code-render.js +65 -0
  100. package/dist/collection/components/chat/code-render.js.map +1 -0
  101. package/dist/collection/components/data-selector/data-selector.css +1 -0
  102. package/dist/collection/components/object-selector/object-selector.css +1 -0
  103. package/dist/collection/components/team-dev/commit/commit.css +1 -0
  104. package/dist/collection/components/team-dev/update/update.css +2 -0
  105. package/dist/collection/components/ww-attributes/ww-attributes.css +1 -0
  106. package/dist/collection/components/ww-files/ww-files.css +1 -0
  107. package/dist/collection/components/ww-images/ww-images.css +1 -0
  108. package/dist/collection/index.js +5 -1
  109. package/dist/collection/index.js.map +1 -1
  110. package/dist/collection/showcase/chat-container/callbacks.js +105 -90
  111. package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
  112. package/dist/collection/showcase/chat-container/chat.showcase.js +145 -10
  113. package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
  114. package/dist/collection/testing/locale.e2e.js +1 -0
  115. package/dist/collection/testing/locale.e2e.js.map +1 -1
  116. package/dist/components/MERCURY_ASSETS.js +5 -1
  117. package/dist/components/MERCURY_ASSETS.js.map +1 -1
  118. package/dist/components/ai-message.js +1 -2
  119. package/dist/components/ai-message.js.map +1 -1
  120. package/dist/components/chat-container.js +70 -7
  121. package/dist/components/chat-container.js.map +1 -1
  122. package/dist/components/chat-welcome.js +146 -0
  123. package/dist/components/chat-welcome.js.map +1 -0
  124. package/dist/components/code-render.js +68 -41
  125. package/dist/components/code-render.js.map +1 -1
  126. package/dist/components/common.js +27 -11
  127. package/dist/components/common.js.map +1 -1
  128. package/dist/components/entity-selector.js +1 -2
  129. package/dist/components/entity-selector.js.map +1 -1
  130. package/dist/components/file-item.js +1 -2
  131. package/dist/components/file-item.js.map +1 -1
  132. package/dist/components/gx-ide-bpm-app-declaration.js +2 -3
  133. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  134. package/dist/components/gx-ide-bpm-task-documents.js +1 -2
  135. package/dist/components/gx-ide-bpm-task-documents.js.map +1 -1
  136. package/dist/components/gx-ide-chat-welcome.d.ts +11 -0
  137. package/dist/components/gx-ide-chat-welcome.js +8 -0
  138. package/dist/components/gx-ide-chat-welcome.js.map +1 -0
  139. package/dist/components/gx-ide-create-kb-from-server.js +1 -2
  140. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  141. package/dist/components/gx-ide-current-user-info.js +1 -2
  142. package/dist/components/gx-ide-current-user-info.js.map +1 -1
  143. package/dist/components/gx-ide-dashboard-home.js +1 -2
  144. package/dist/components/gx-ide-dashboard-home.js.map +1 -1
  145. package/dist/components/gx-ide-data-selector.js +2 -3
  146. package/dist/components/gx-ide-data-selector.js.map +1 -1
  147. package/dist/components/gx-ide-data-type-selector.js +1 -2
  148. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  149. package/dist/components/gx-ide-design-import.js +1 -2
  150. package/dist/components/gx-ide-design-import.js.map +1 -1
  151. package/dist/components/gx-ide-file-uploader.js +1 -2
  152. package/dist/components/gx-ide-file-uploader.js.map +1 -1
  153. package/dist/components/gx-ide-kb-manager-export.js +1 -2
  154. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  155. package/dist/components/gx-ide-kb-manager-import.js +1 -2
  156. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  157. package/dist/components/gx-ide-manage-module-references-v2.js +1 -2
  158. package/dist/components/gx-ide-manage-module-references-v2.js.map +1 -1
  159. package/dist/components/gx-ide-manage-module-references.js +1 -2
  160. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  161. package/dist/components/gx-ide-new-kb.js +1 -2
  162. package/dist/components/gx-ide-new-kb.js.map +1 -1
  163. package/dist/components/gx-ide-object-selector.js +2 -3
  164. package/dist/components/gx-ide-object-selector.js.map +1 -1
  165. package/dist/components/gx-ide-open-api-import.js +1 -2
  166. package/dist/components/gx-ide-open-api-import.js.map +1 -1
  167. package/dist/components/gx-ide-references.js +1 -2
  168. package/dist/components/gx-ide-references.js.map +1 -1
  169. package/dist/components/gx-ide-sc-chat-container.js +215 -100
  170. package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
  171. package/dist/components/gx-ide-select-kb-items.js +1 -2
  172. package/dist/components/gx-ide-select-kb-items.js.map +1 -1
  173. package/dist/components/gx-ide-share-kb.js +1 -2
  174. package/dist/components/gx-ide-share-kb.js.map +1 -1
  175. package/dist/components/gx-ide-splash.js +1 -2
  176. package/dist/components/gx-ide-splash.js.map +1 -1
  177. package/dist/components/gx-ide-start-page.js +1 -2
  178. package/dist/components/gx-ide-start-page.js.map +1 -1
  179. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  180. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  181. package/dist/components/gx-ide-team-dev-update.js +1 -1
  182. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  183. package/dist/components/gx-ide-welcome-page.js +1 -2
  184. package/dist/components/gx-ide-welcome-page.js.map +1 -1
  185. package/dist/components/gx-ide-ww-attributes.js +2 -3
  186. package/dist/components/gx-ide-ww-attributes.js.map +1 -1
  187. package/dist/components/gx-ide-ww-files.js +1 -1
  188. package/dist/components/gx-ide-ww-files.js.map +1 -1
  189. package/dist/components/gx-ide-ww-images.js +1 -1
  190. package/dist/components/gx-ide-ww-images.js.map +1 -1
  191. package/dist/components/index.js +6 -0
  192. package/dist/components/index.js.map +1 -1
  193. package/dist/esm/MERCURY_ASSETS-039222dd.js +7 -0
  194. package/dist/esm/MERCURY_ASSETS-039222dd.js.map +1 -0
  195. package/dist/esm/code-render-53b3b0bd.js +83 -0
  196. package/dist/esm/code-render-53b3b0bd.js.map +1 -0
  197. package/dist/esm/{common-ccb4504a.js → common-719c4daf.js} +28 -12
  198. package/dist/esm/common-719c4daf.js.map +1 -0
  199. package/dist/esm/genexus-ide-ui.js +1 -1
  200. package/dist/esm/gx-ide-ai-message.entry.js +1 -2
  201. package/dist/esm/gx-ide-ai-message.entry.js.map +1 -1
  202. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +2 -3
  203. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  204. package/dist/esm/gx-ide-bpm-task-documents.entry.js +1 -2
  205. package/dist/esm/gx-ide-bpm-task-documents.entry.js.map +1 -1
  206. package/dist/esm/gx-ide-chat-container_2.entry.js +234 -0
  207. package/dist/esm/gx-ide-chat-container_2.entry.js.map +1 -0
  208. package/dist/esm/gx-ide-create-kb-from-server.entry.js +1 -2
  209. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  210. package/dist/esm/gx-ide-current-user-info.entry.js +1 -2
  211. package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
  212. package/dist/esm/gx-ide-dashboard-home.entry.js +1 -2
  213. package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
  214. package/dist/esm/gx-ide-data-selector.entry.js +2 -3
  215. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  216. package/dist/esm/gx-ide-data-type-selector.entry.js +1 -2
  217. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  218. package/dist/esm/gx-ide-design-import.entry.js +1 -2
  219. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  220. package/dist/esm/gx-ide-entity-selector.entry.js +1 -2
  221. package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
  222. package/dist/esm/gx-ide-file-item.entry.js +1 -2
  223. package/dist/esm/gx-ide-file-item.entry.js.map +1 -1
  224. package/dist/esm/gx-ide-file-uploader.entry.js +1 -2
  225. package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
  226. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -2
  227. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  228. package/dist/esm/gx-ide-kb-manager-import.entry.js +1 -2
  229. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  230. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +2 -3
  231. package/dist/esm/gx-ide-manage-module-references-v2.entry.js.map +1 -1
  232. package/dist/esm/gx-ide-manage-module-references.entry.js +2 -3
  233. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  234. package/dist/esm/gx-ide-new-environment.entry.js +1 -1
  235. package/dist/esm/gx-ide-new-kb.entry.js +2 -3
  236. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  237. package/dist/esm/gx-ide-object-selector.entry.js +2 -3
  238. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  239. package/dist/esm/gx-ide-open-api-import.entry.js +1 -2
  240. package/dist/esm/gx-ide-open-api-import.entry.js.map +1 -1
  241. package/dist/esm/gx-ide-references.entry.js +1 -2
  242. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  243. package/dist/esm/gx-ide-sc-chat-container.entry.js +203 -99
  244. package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
  245. package/dist/esm/gx-ide-select-kb-items.entry.js +1 -2
  246. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  247. package/dist/esm/gx-ide-share-kb.entry.js +1 -2
  248. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  249. package/dist/esm/gx-ide-splash.entry.js +2 -3
  250. package/dist/esm/gx-ide-splash.entry.js.map +1 -1
  251. package/dist/esm/gx-ide-start-page.entry.js +1 -2
  252. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  253. package/dist/esm/gx-ide-team-dev-commit.entry.js +1 -1
  254. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  255. package/dist/esm/gx-ide-team-dev-update.entry.js +1 -1
  256. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  257. package/dist/esm/gx-ide-welcome-page.entry.js +1 -2
  258. package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -1
  259. package/dist/esm/gx-ide-ww-attributes.entry.js +2 -3
  260. package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -1
  261. package/dist/esm/gx-ide-ww-files.entry.js +1 -1
  262. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
  263. package/dist/esm/gx-ide-ww-images.entry.js +2 -2
  264. package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
  265. package/dist/esm/index.js +8 -2
  266. package/dist/esm/index.js.map +1 -1
  267. package/dist/esm/loader.js +1 -1
  268. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  269. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  270. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.en.json +9 -0
  271. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.ja.json +9 -0
  272. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.zh.json +9 -0
  273. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/helpers.tsx +31 -0
  274. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg +21 -0
  275. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/ai-avatar.svg +11 -0
  276. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/header-illustration.svg +24 -0
  277. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.en.json +10 -0
  278. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.ja.json +10 -0
  279. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.zh.json +10 -0
  280. package/dist/genexus-ide-ui/index.esm.js +8 -2
  281. package/dist/genexus-ide-ui/index.esm.js.map +1 -1
  282. package/dist/genexus-ide-ui/{p-a1d73ca3.entry.js → p-01d96378.entry.js} +3 -5
  283. package/dist/genexus-ide-ui/{p-a1d73ca3.entry.js.map → p-01d96378.entry.js.map} +1 -1
  284. package/dist/genexus-ide-ui/{p-f51adb3d.entry.js → p-036d005d.entry.js} +2 -2
  285. package/dist/genexus-ide-ui/{p-f3f35e5c.entry.js → p-04205aa4.entry.js} +2 -4
  286. package/dist/genexus-ide-ui/{p-f3f35e5c.entry.js.map → p-04205aa4.entry.js.map} +1 -1
  287. package/dist/genexus-ide-ui/{p-961bb2cc.entry.js → p-0bdf34f2.entry.js} +3 -5
  288. package/dist/genexus-ide-ui/{p-961bb2cc.entry.js.map → p-0bdf34f2.entry.js.map} +1 -1
  289. package/dist/genexus-ide-ui/{p-fa18a70c.entry.js → p-1c7ea1cb.entry.js} +8 -10
  290. package/dist/genexus-ide-ui/{p-fa18a70c.entry.js.map → p-1c7ea1cb.entry.js.map} +1 -1
  291. package/dist/genexus-ide-ui/{p-530c32aa.entry.js → p-29c69938.entry.js} +8 -10
  292. package/dist/genexus-ide-ui/{p-530c32aa.entry.js.map → p-29c69938.entry.js.map} +1 -1
  293. package/dist/genexus-ide-ui/{p-67762237.entry.js → p-385c9544.entry.js} +2 -2
  294. package/dist/genexus-ide-ui/{p-4b79c3ab.entry.js → p-3da8db15.entry.js} +2 -4
  295. package/dist/genexus-ide-ui/{p-4b79c3ab.entry.js.map → p-3da8db15.entry.js.map} +1 -1
  296. package/dist/genexus-ide-ui/{p-ef5dfd35.entry.js → p-41a4364d.entry.js} +2 -4
  297. package/dist/genexus-ide-ui/{p-ef5dfd35.entry.js.map → p-41a4364d.entry.js.map} +1 -1
  298. package/dist/genexus-ide-ui/{p-56331289.entry.js → p-4538dea5.entry.js} +13 -15
  299. package/dist/genexus-ide-ui/{p-56331289.entry.js.map → p-4538dea5.entry.js.map} +1 -1
  300. package/dist/genexus-ide-ui/{p-4c717aa7.entry.js → p-48062d23.entry.js} +2 -4
  301. package/dist/genexus-ide-ui/{p-4c717aa7.entry.js.map → p-48062d23.entry.js.map} +1 -1
  302. package/dist/genexus-ide-ui/{p-9a609b51.js → p-48f5911b.js} +50 -33
  303. package/dist/genexus-ide-ui/p-48f5911b.js.map +1 -0
  304. package/dist/genexus-ide-ui/{p-6d2174ed.entry.js → p-4d0ba4f6.entry.js} +3 -5
  305. package/dist/genexus-ide-ui/{p-6d2174ed.entry.js.map → p-4d0ba4f6.entry.js.map} +1 -1
  306. package/dist/genexus-ide-ui/{p-76c3fc51.entry.js → p-4e943649.entry.js} +2 -4
  307. package/dist/genexus-ide-ui/{p-76c3fc51.entry.js.map → p-4e943649.entry.js.map} +1 -1
  308. package/dist/genexus-ide-ui/{p-29a026bb.entry.js → p-67e0b419.entry.js} +10 -12
  309. package/dist/genexus-ide-ui/{p-29a026bb.entry.js.map → p-67e0b419.entry.js.map} +1 -1
  310. package/dist/genexus-ide-ui/{p-bbf88f43.entry.js → p-690942cb.entry.js} +2 -4
  311. package/dist/genexus-ide-ui/{p-bbf88f43.entry.js.map → p-690942cb.entry.js.map} +1 -1
  312. package/dist/genexus-ide-ui/{p-84618917.entry.js → p-6f898249.entry.js} +3 -5
  313. package/dist/genexus-ide-ui/{p-84618917.entry.js.map → p-6f898249.entry.js.map} +1 -1
  314. package/dist/genexus-ide-ui/{p-fecc50e4.entry.js → p-704499e5.entry.js} +40 -42
  315. package/dist/genexus-ide-ui/{p-fecc50e4.entry.js.map → p-704499e5.entry.js.map} +1 -1
  316. package/dist/genexus-ide-ui/{p-fe490103.entry.js → p-7abe2214.entry.js} +8 -10
  317. package/dist/genexus-ide-ui/{p-fe490103.entry.js.map → p-7abe2214.entry.js.map} +1 -1
  318. package/dist/genexus-ide-ui/{p-c747afac.entry.js → p-7d8812b0.entry.js} +17 -19
  319. package/dist/genexus-ide-ui/{p-c747afac.entry.js.map → p-7d8812b0.entry.js.map} +1 -1
  320. package/dist/genexus-ide-ui/{p-edf889d2.entry.js → p-88c81f18.entry.js} +2 -4
  321. package/dist/genexus-ide-ui/{p-edf889d2.entry.js.map → p-88c81f18.entry.js.map} +1 -1
  322. package/dist/genexus-ide-ui/{p-1072bf33.entry.js → p-8cb937b7.entry.js} +2 -4
  323. package/dist/genexus-ide-ui/{p-1072bf33.entry.js.map → p-8cb937b7.entry.js.map} +1 -1
  324. package/dist/genexus-ide-ui/{p-fdf41406.entry.js → p-9fa1200f.entry.js} +12 -14
  325. package/dist/genexus-ide-ui/{p-fdf41406.entry.js.map → p-9fa1200f.entry.js.map} +1 -1
  326. package/dist/genexus-ide-ui/{p-fcecdafa.entry.js → p-a1415a9c.entry.js} +3 -3
  327. package/dist/genexus-ide-ui/{p-50f304fe.entry.js → p-aab809c4.entry.js} +11 -13
  328. package/dist/genexus-ide-ui/{p-50f304fe.entry.js.map → p-aab809c4.entry.js.map} +1 -1
  329. package/dist/genexus-ide-ui/{p-833c3585.entry.js → p-c38ce0bf.entry.js} +2 -4
  330. package/dist/genexus-ide-ui/{p-833c3585.entry.js.map → p-c38ce0bf.entry.js.map} +1 -1
  331. package/dist/genexus-ide-ui/p-c5178973.js +109 -0
  332. package/dist/genexus-ide-ui/p-c5178973.js.map +1 -0
  333. package/dist/genexus-ide-ui/{p-eea944d4.entry.js → p-c7badbf1.entry.js} +2 -4
  334. package/dist/genexus-ide-ui/{p-eea944d4.entry.js.map → p-c7badbf1.entry.js.map} +1 -1
  335. package/dist/genexus-ide-ui/{p-2b3938b4.entry.js → p-d2107cb2.entry.js} +2 -2
  336. package/dist/genexus-ide-ui/{p-ba7d1472.entry.js → p-d3767a7d.entry.js} +2 -2
  337. package/dist/genexus-ide-ui/p-da473001.entry.js +338 -0
  338. package/dist/genexus-ide-ui/p-da473001.entry.js.map +1 -0
  339. package/dist/genexus-ide-ui/{p-007173ef.entry.js → p-e28e6bc4.entry.js} +3 -5
  340. package/dist/genexus-ide-ui/{p-007173ef.entry.js.map → p-e28e6bc4.entry.js.map} +1 -1
  341. package/dist/genexus-ide-ui/{p-4cbc8a8b.entry.js → p-eb9e760d.entry.js} +10 -12
  342. package/dist/genexus-ide-ui/{p-4cbc8a8b.entry.js.map → p-eb9e760d.entry.js.map} +1 -1
  343. package/dist/genexus-ide-ui/p-ec0809a7.entry.js +317 -0
  344. package/dist/genexus-ide-ui/p-ec0809a7.entry.js.map +1 -0
  345. package/dist/genexus-ide-ui/{p-5687fdb7.entry.js → p-ecba870e.entry.js} +9 -11
  346. package/dist/genexus-ide-ui/{p-5687fdb7.entry.js.map → p-ecba870e.entry.js.map} +1 -1
  347. package/dist/genexus-ide-ui/{p-5ac47c69.js → p-ede7bd20.js} +6885 -6346
  348. package/dist/genexus-ide-ui/p-ede7bd20.js.map +1 -0
  349. package/dist/types/common/common.d.ts +1 -1
  350. package/dist/types/components/{_helpers → chat}/chat-container/chat-container.d.ts +13 -2
  351. package/dist/types/components/chat/chat-welcome/chat-welcome.d.ts +39 -0
  352. package/dist/types/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.d.ts +1 -0
  353. package/dist/types/components/{_helpers/chat-container → chat}/code-render.d.ts +1 -1
  354. package/dist/types/components.d.ts +73 -0
  355. package/dist/types/index.d.ts +5 -1
  356. package/dist/types/showcase/chat-container/callbacks.d.ts +1 -1
  357. package/dist/types/showcase/chat-container/chat.showcase.d.ts +15 -0
  358. package/package.json +5 -5
  359. package/dist/cjs/MERCURY_ASSETS-6bbcc011.js +0 -5
  360. package/dist/cjs/MERCURY_ASSETS-6bbcc011.js.map +0 -1
  361. package/dist/cjs/assets-manager-7227a74b.js +0 -7
  362. package/dist/cjs/assets-manager-7227a74b.js.map +0 -1
  363. package/dist/cjs/code-render-db7cb770.js +0 -59
  364. package/dist/cjs/code-render-db7cb770.js.map +0 -1
  365. package/dist/cjs/common-72f91a78.js.map +0 -1
  366. package/dist/cjs/gx-ide-chat-container.cjs.entry.js +0 -62
  367. package/dist/cjs/gx-ide-chat-container.cjs.entry.js.map +0 -1
  368. package/dist/collection/components/_helpers/chat-container/chat-container.css +0 -204
  369. package/dist/collection/components/_helpers/chat-container/chat-container.js +0 -137
  370. package/dist/collection/components/_helpers/chat-container/chat-container.js.map +0 -1
  371. package/dist/collection/components/_helpers/chat-container/code-render.js +0 -46
  372. package/dist/collection/components/_helpers/chat-container/code-render.js.map +0 -1
  373. package/dist/components/assets-manager.js +0 -5
  374. package/dist/components/assets-manager.js.map +0 -1
  375. package/dist/esm/MERCURY_ASSETS-bbdf7018.js +0 -3
  376. package/dist/esm/MERCURY_ASSETS-bbdf7018.js.map +0 -1
  377. package/dist/esm/assets-manager-0d129105.js +0 -5
  378. package/dist/esm/assets-manager-0d129105.js.map +0 -1
  379. package/dist/esm/code-render-6cbb0e63.js +0 -56
  380. package/dist/esm/code-render-6cbb0e63.js.map +0 -1
  381. package/dist/esm/common-ccb4504a.js.map +0 -1
  382. package/dist/esm/gx-ide-chat-container.entry.js +0 -58
  383. package/dist/esm/gx-ide-chat-container.entry.js.map +0 -1
  384. package/dist/genexus-ide-ui/p-1a74d49a.entry.js +0 -231
  385. package/dist/genexus-ide-ui/p-1a74d49a.entry.js.map +0 -1
  386. package/dist/genexus-ide-ui/p-5ac47c69.js.map +0 -1
  387. package/dist/genexus-ide-ui/p-6e4208d8.js +0 -9
  388. package/dist/genexus-ide-ui/p-6e4208d8.js.map +0 -1
  389. package/dist/genexus-ide-ui/p-9a609b51.js.map +0 -1
  390. package/dist/genexus-ide-ui/p-be8a59fd.js +0 -107
  391. package/dist/genexus-ide-ui/p-be8a59fd.js.map +0 -1
  392. package/dist/genexus-ide-ui/p-db9c3b37.entry.js +0 -85
  393. package/dist/genexus-ide-ui/p-db9c3b37.entry.js.map +0 -1
  394. /package/dist/genexus-ide-ui/{p-f51adb3d.entry.js.map → p-036d005d.entry.js.map} +0 -0
  395. /package/dist/genexus-ide-ui/{p-67762237.entry.js.map → p-385c9544.entry.js.map} +0 -0
  396. /package/dist/genexus-ide-ui/{p-fcecdafa.entry.js.map → p-a1415a9c.entry.js.map} +0 -0
  397. /package/dist/genexus-ide-ui/{p-2b3938b4.entry.js.map → p-d2107cb2.entry.js.map} +0 -0
  398. /package/dist/genexus-ide-ui/{p-ba7d1472.entry.js.map → p-d3767a7d.entry.js.map} +0 -0
@@ -1,5 +0,0 @@
1
- const g="/";const MERCURY_ALIAS="mer",getIconPath=(e,t=MERCURY_ALIAS)=>{const r=e.colorType?`${g}${e.colorType}`:"";return `${t}${g}${e.category}${g}${e.name}${r}`};
2
-
3
- export { getIconPath as g };
4
-
5
- //# sourceMappingURL=assets-manager-0d129105.js.map
@@ -1 +0,0 @@
1
- {"file":"assets-manager-0d129105.js","mappings":"AAAkB,MAAW,CAAC,CAAC,GAAG,CAAmB,MAAC,aAAa,CAAC,KAAK,CAAiN,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,OAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;;;;","names":[],"sources":["node_modules/@genexus/mercury/dist/assets-manager.js"],"sourcesContent":["\"use strict\";const a={},d={},g=\"/\",u=\":\";export const MERCURY_ALIAS=\"mer\",registerAssets=(e,t,r)=>{a[e]||d[t]||(a[e]=r,d[t]=e)},getAsset=(e,t)=>{const r=d[e]??e,n=a[r];if(!n)return;const o=n.icons[t.category];if(!o)return;const c=o[t.name];if(c)return t.colorType?c[t.colorType]:c},getIconPath=(e,t=MERCURY_ALIAS)=>{const r=e.colorType?`${g}${e.colorType}`:\"\";return`${t}${g}${e.category}${g}${e.name}${r}`},getIconPathExpanded=(e,t,r=MERCURY_ALIAS)=>`${getIconPath(e,r)}${u}${getIconPath(t,r)}`;const l=(e,t,r)=>{const n=t===MERCURY_ALIAS?\"\":`-${t}`;return r?`var(--icon${n}__${e}--${r})`:`var(--icon${n}__${e})`},f=e=>{const t=e.split(g),r=t[0],n=d[r]??r;if(!a[n]){const i=t[0],S=t[1],p=t[2];return{vendor:MERCURY_ALIAS,category:i,name:S,colorType:p}}const c=t[1],s=t[2],m=t[3];return{vendor:r,category:c,name:s,colorType:m}};export const getImagePathCallback=e=>{const{vendor:t,category:r,name:n,colorType:o}=f(e),c=getAsset(t,o?{category:r,name:n,colorType:o}:{category:r,name:n});if(!c)return;const s={base:l(c.enabled.name,t)};return c.hover&&(s.hover=l(c.hover.name,t)),c.active&&(s.active=l(c.active.name,t)),c.disabled&&(s.disabled=l(c.disabled.name,t)),s},getActionMenuImagePathCallback=(e,t)=>{if(!e.startImgSrc&&t===\"start\"||!e.endImgSrc&&t===\"end\")return;const r=t===\"start\"?e.startImgSrc:e.endImgSrc;return getImagePathCallback(r)},getActionListImagePathCallback=e=>e.imgSrc?getImagePathCallback(e.imgSrc):void 0,getNavigationListImagePathCallback=e=>e.startImgSrc?getImagePathCallback(e.startImgSrc):void 0,getTreeViewImagePathCallback=(e,t)=>{if(!e.startImgSrc&&t===\"start\"||!e.endImgSrc&&t===\"end\")return;const n=(t===\"start\"?e.startImgSrc:e.endImgSrc).split(u),o=getImagePathCallback(n[0]);if(o)return n[1]?{default:o,expanded:getImagePathCallback(n[1])}:{default:o}},getComboBoxImagePathCallback=(e,t)=>{if(!e.startImgSrc&&t===\"start\"||!e.endImgSrc&&t===\"end\")return;const r=t===\"start\"?e.startImgSrc:e.endImgSrc;return getImagePathCallback(r)},getImagePathCallbackDefinitions={\"ch-accordion-render\":getImagePathCallback,\"ch-action-menu-render\":getActionMenuImagePathCallback,\"ch-action-list-render\":getActionListImagePathCallback,\"ch-combo-box-render\":getComboBoxImagePathCallback,\"ch-checkbox\":getImagePathCallback,\"ch-edit\":getImagePathCallback,\"ch-image\":getImagePathCallback,\"ch-navigation-list-render\":getNavigationListImagePathCallback,\"ch-tab-render\":getImagePathCallback,\"ch-tree-view-render\":getTreeViewImagePathCallback};\n"],"version":3}
@@ -1,56 +0,0 @@
1
- import { h } from './index-10af18cf.js';
2
- import './MERCURY_ASSETS-bbdf7018.js';
3
-
4
- const MESSAGE_COPIED_PART_SELECTOR = "message__copied-feedback";
5
- const MESSAGE_COPIED_VISIBLE_PART_SELECTOR = "message__copied-feedback-visible";
6
- const ANIMATION_DOTS = (h("svg", { width: "36", height: "8", fill: "transparent" },
7
- h("circle", { cx: "4", cy: "4", r: "4", opacity: "0", fill: "var(--mer-color__primary--200)" },
8
- h("animate", { attributeName: "opacity", values: "0;1;0", dur: "1s", repeatCount: "indefinite" })),
9
- h("circle", { cx: "18", cy: "4", r: "4", opacity: "0", fill: "var(--mer-color__primary--200)" },
10
- h("animate", { attributeName: "opacity", values: "0;1;0", dur: "1s", begin: "0.15s", repeatCount: "indefinite" })),
11
- h("circle", { cx: "32", cy: "4", r: "4", opacity: "0", fill: "var(--mer-color__primary--200)" },
12
- h("animate", { attributeName: "opacity", values: "0;1;0", dur: "1s", begin: "0.30s", repeatCount: "indefinite" }))));
13
- const copy = (text) => (event) => {
14
- event.stopPropagation();
15
- // 1. Copy message
16
- navigator.clipboard.writeText(text);
17
- // 2. Display "copied" message (expects to be the next sibling!)
18
- const copiedFeedbackRef = event.target
19
- .nextSibling;
20
- const copiedFeedbackPart = copiedFeedbackRef.getAttribute("part");
21
- if (copiedFeedbackPart === MESSAGE_COPIED_PART_SELECTOR) {
22
- copiedFeedbackRef.setAttribute("part", `${MESSAGE_COPIED_PART_SELECTOR} ${MESSAGE_COPIED_VISIBLE_PART_SELECTOR}`);
23
- setTimeout(() => {
24
- copiedFeedbackRef.setAttribute("part", `${MESSAGE_COPIED_PART_SELECTOR}`);
25
- }, 1000);
26
- }
27
- };
28
- const copyButton = (textToCopy, accessibleName, additionalPart) => {
29
- return (h("button", { "aria-label": accessibleName, title: accessibleName, class: "button-copy-code", type: "button", onClick: copy(textToCopy), part: `message__copy-button ${additionalPart}` }));
30
- };
31
- const mercuryCodeRender = (copyButtonAccessibleName) => (options) => (h("div", { class: "code-block-container" },
32
- h("div", { class: "code-block-header" }, copyButton(options.plainText, copyButtonAccessibleName, "code-render")),
33
- h("ch-code", { language: options.language, lastNestedChildClass: options.lastNestedChildClass, value: options.plainText })));
34
- const mercuryChatMessageRender = (theme, userName = "You", assistantName = "AI Assistant") => (messageModel) => messageModel.role === "assistant" && messageModel.status === "waiting"
35
- ? [
36
- h("span", { part: "message__processing" }, messageModel.content),
37
- ANIMATION_DOTS
38
- ]
39
- : [
40
- // "copy button" before "role" and "time" to hide both on button:focus
41
- copyButton(messageModel.content, "Copy code", "common-message"),
42
- h("p", {
43
- // TODO: make this string translatable
44
- part: MESSAGE_COPIED_PART_SELECTOR }, "message copied to clipboard"),
45
- h("span", { part: `message__role ${messageModel.role}` }, messageModel.role === "user" ? userName : assistantName),
46
- h("time", { dateTime: messageModel.metadata, part: "message__time" }, messageModel.metadata),
47
- messageModel.role === "user" ? (h("span", { part: "message__content user" }, messageModel.content)) : (h("ch-markdown-viewer", { part: messageModel.role === "assistant" &&
48
- (messageModel.status === "complete" || !messageModel.status) &&
49
- !messageModel.parts
50
- ? `message__content no-error`
51
- : "message__content", theme: theme, showIndicator: false, renderCode: mercuryCodeRender("Copy code"), value: messageModel.content }))
52
- ];
53
-
54
- export { mercuryCodeRender as a, mercuryChatMessageRender as m };
55
-
56
- //# sourceMappingURL=code-render-6cbb0e63.js.map
@@ -1 +0,0 @@
1
- {"file":"code-render-6cbb0e63.js","mappings":";;;AASA,MAAM,4BAA4B,GAAG,0BAA0B,CAAC;AAChE,MAAM,oCAAoC,GAAG,kCAAkC,CAAC;AAEhF,MAAM,cAAc,IAClB,WAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,GAAG,EAAC,IAAI,EAAC,aAAa;IAC3C,cACE,EAAE,EAAC,GAAG,EACN,EAAE,EAAC,GAAG,EACN,CAAC,EAAC,GAAG,EACL,OAAO,EAAC,GAAG,EACX,IAAI,EAAC,gCAAgC;QAErC,eACE,aAAa,EAAC,SAAS,EACvB,MAAM,EAAC,OAAO,EACd,GAAG,EAAC,IAAI,EACR,WAAW,EAAC,YAAY,GACxB,CACK;IACT,cACE,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,GAAG,EACN,CAAC,EAAC,GAAG,EACL,OAAO,EAAC,GAAG,EACX,IAAI,EAAC,gCAAgC;QAErC,eACE,aAAa,EAAC,SAAS,EACvB,MAAM,EAAC,OAAO,EACd,GAAG,EAAC,IAAI,EACR,KAAK,EAAC,OAAO,EACb,WAAW,EAAC,YAAY,GACxB,CACK;IACT,cACE,EAAE,EAAC,IAAI,EACP,EAAE,EAAC,GAAG,EACN,CAAC,EAAC,GAAG,EACL,OAAO,EAAC,GAAG,EACX,IAAI,EAAC,gCAAgC;QAErC,eACE,aAAa,EAAC,SAAS,EACvB,MAAM,EAAC,OAAO,EACd,GAAG,EAAC,IAAI,EACR,KAAK,EAAC,OAAO,EACb,WAAW,EAAC,YAAY,GACxB,CACK,CACL,CACP,CAAC;AAEF,MAAM,IAAI,GAAG,CAAC,IAAY,KAAK,CAAC,KAAY;IAC1C,KAAK,CAAC,eAAe,EAAE,CAAC;;IAGxB,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;IAGpC,MAAM,iBAAiB,GAAI,KAAK,CAAC,MAAsB;SACpD,WAA0B,CAAC;IAC9B,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAClE,IAAI,kBAAkB,KAAK,4BAA4B,EAAE;QACvD,iBAAiB,CAAC,YAAY,CAC5B,MAAM,EACN,GAAG,4BAA4B,IAAI,oCAAoC,EAAE,CAC1E,CAAC;QAEF,UAAU,CAAC;YACT,iBAAiB,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,4BAA4B,EAAE,CAAC,CAAC;SAC3E,EAAE,IAAI,CAAC,CAAC;KACV;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CACjB,UAAkB,EAClB,cAAsB,EACtB,cAAsB;IAEtB,QACE,4BACc,cAAc,EAC1B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAC,kBAAkB,EACxB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,EACzB,IAAI,EAAE,wBAAwB,cAAc,EAAE,GACtC,EACV;AACJ,CAAC,CAAC;MAEW,iBAAiB,GAC5B,CAAC,wBAAgC,KACjC,CAAC,OAAwC,MAErC,WAAK,KAAK,EAAC,sBAAsB;IAC/B,WAAK,KAAK,EAAC,mBAAmB,IAC3B,UAAU,CACT,OAAO,CAAC,SAAS,EACjB,wBAAwB,EACxB,aAAa,CACd,CACG;IACN,eACE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAC1B,oBAAoB,EAAE,OAAO,CAAC,oBAAoB,EAClD,KAAK,EAAE,OAAO,CAAC,SAAS,GACf,CACP,EACN;MAEO,wBAAwB,GACnC,CACE,KAAa,EACb,WAAmB,KAAK,EACxB,gBAAwB,cAAc,KAExC,CAAC,YAA+D,KAC9D,YAAY,CAAC,IAAI,KAAK,WAAW,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS;MAClE;QACE,YAAM,IAAI,EAAC,qBAAqB,IAAE,YAAY,CAAC,OAAO,CAAQ;QAC9D,cAAc;KACf;MACD;;QAEE,UAAU,CACR,YAAY,CAAC,OAAiB,EAC9B,WAAW,EACX,gBAAgB,CACjB;QACD;;YAEE,IAAI,EAAE,4BAA4B,kCAGhC;QACJ,YAAM,IAAI,EAAE,iBAAiB,YAAY,CAAC,IAAI,EAAE,IAC7C,YAAY,CAAC,IAAI,KAAK,MAAM,GAAG,QAAQ,GAAG,aAAa,CACnD;QACP,YAAM,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,IAAI,EAAC,eAAe,IACxD,YAAY,CAAC,QAAQ,CACjB;QAEP,YAAY,CAAC,IAAI,KAAK,MAAM,IAC1B,YAAM,IAAI,EAAC,uBAAuB,IAAE,YAAY,CAAC,OAAO,CAAQ,KAEhE,0BACE,IAAI,EACF,YAAY,CAAC,IAAI,KAAK,WAAW;iBAChC,YAAY,CAAC,MAAM,KAAK,UAAU,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;gBAC5D,CAAC,YAAY,CAAC,KAAK;kBACf,2BAA2B;kBAC3B,kBAAkB,EAExB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,KAAK,EACpB,UAAU,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAC1C,KAAK,EAAE,YAAY,CAAC,OAAiB,GACjB,CACvB;;;;;","names":[],"sources":["src/components/_helpers/chat-container/code-render.tsx"],"sourcesContent":["import { h } from \"@stencil/core\";\nimport {\n MarkdownViewerCodeRender,\n ChatMessageByRole\n} from \"@genexus/chameleon-controls-library\";\nimport { MarkdownViewerCodeRenderOptions } from \"@genexus/chameleon-controls-library/dist/types/components/markdown-viewer/parsers/types\";\nimport { getIconPath } from \"@genexus/mercury\";\ngetIconPath;\n\nconst MESSAGE_COPIED_PART_SELECTOR = \"message__copied-feedback\";\nconst MESSAGE_COPIED_VISIBLE_PART_SELECTOR = \"message__copied-feedback-visible\";\n\nconst ANIMATION_DOTS = (\n <svg width=\"36\" height=\"8\" fill=\"transparent\">\n <circle\n cx=\"4\"\n cy=\"4\"\n r=\"4\"\n opacity=\"0\"\n fill=\"var(--mer-color__primary--200)\"\n >\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle\n cx=\"18\"\n cy=\"4\"\n r=\"4\"\n opacity=\"0\"\n fill=\"var(--mer-color__primary--200)\"\n >\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur=\"1s\"\n begin=\"0.15s\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle\n cx=\"32\"\n cy=\"4\"\n r=\"4\"\n opacity=\"0\"\n fill=\"var(--mer-color__primary--200)\"\n >\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur=\"1s\"\n begin=\"0.30s\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </svg>\n);\n\nconst copy = (text: string) => (event: Event) => {\n event.stopPropagation();\n\n // 1. Copy message\n navigator.clipboard.writeText(text);\n\n // 2. Display \"copied\" message (expects to be the next sibling!)\n const copiedFeedbackRef = (event.target as HTMLElement)\n .nextSibling as HTMLElement;\n const copiedFeedbackPart = copiedFeedbackRef.getAttribute(\"part\");\n if (copiedFeedbackPart === MESSAGE_COPIED_PART_SELECTOR) {\n copiedFeedbackRef.setAttribute(\n \"part\",\n `${MESSAGE_COPIED_PART_SELECTOR} ${MESSAGE_COPIED_VISIBLE_PART_SELECTOR}`\n );\n\n setTimeout(() => {\n copiedFeedbackRef.setAttribute(\"part\", `${MESSAGE_COPIED_PART_SELECTOR}`);\n }, 1000);\n }\n};\n\nconst copyButton = (\n textToCopy: string,\n accessibleName: string,\n additionalPart: string\n) => {\n return (\n <button\n aria-label={accessibleName}\n title={accessibleName}\n class=\"button-copy-code\"\n type=\"button\"\n onClick={copy(textToCopy)}\n part={`message__copy-button ${additionalPart}`}\n ></button>\n );\n};\n\nexport const mercuryCodeRender =\n (copyButtonAccessibleName: string) =>\n (options: MarkdownViewerCodeRenderOptions): MarkdownViewerCodeRender =>\n (\n <div class=\"code-block-container\">\n <div class=\"code-block-header\">\n {copyButton(\n options.plainText,\n copyButtonAccessibleName,\n \"code-render\"\n )}\n </div>\n <ch-code\n language={options.language}\n lastNestedChildClass={options.lastNestedChildClass}\n value={options.plainText}\n ></ch-code>\n </div>\n );\n\nexport const mercuryChatMessageRender =\n (\n theme: string,\n userName: string = \"You\",\n assistantName: string = \"AI Assistant\"\n ) =>\n (messageModel: ChatMessageByRole<\"assistant\" | \"error\" | \"user\">) =>\n messageModel.role === \"assistant\" && messageModel.status === \"waiting\"\n ? [\n <span part=\"message__processing\">{messageModel.content}</span>,\n ANIMATION_DOTS\n ]\n : [\n // \"copy button\" before \"role\" and \"time\" to hide both on button:focus\n copyButton(\n messageModel.content as string,\n \"Copy code\",\n \"common-message\"\n ),\n <p\n // TODO: make this string translatable\n part={MESSAGE_COPIED_PART_SELECTOR}\n >\n message copied to clipboard\n </p>,\n <span part={`message__role ${messageModel.role}`}>\n {messageModel.role === \"user\" ? userName : assistantName}\n </span>,\n <time dateTime={messageModel.metadata} part=\"message__time\">\n {messageModel.metadata}\n </time>,\n\n messageModel.role === \"user\" ? (\n <span part=\"message__content user\">{messageModel.content}</span>\n ) : (\n <ch-markdown-viewer\n part={\n messageModel.role === \"assistant\" &&\n (messageModel.status === \"complete\" || !messageModel.status) &&\n !messageModel.parts\n ? `message__content no-error`\n : \"message__content\"\n }\n theme={theme}\n showIndicator={false}\n renderCode={mercuryCodeRender(\"Copy code\")}\n value={messageModel.content as string}\n ></ch-markdown-viewer>\n )\n ];\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"common-ccb4504a.js","mappings":"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","names":[],"sources":["src/common/common.tsx"],"sourcesContent":["/* STENCIL IMPORTS */\nimport { h } from \"@stencil/core\";\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { GxgFormItemsArray, GxOption } from \"./types\";\nimport { ModulePropertyData } from \"../components/modules/types\";\nexport const renderFormItems = (\n componentType:\n | \"gxg-combo-box-item\"\n | \"gxg-form-checkbox\"\n | \"gxg-form-radio\" = \"gxg-combo-box-item\",\n options: Array<GxOption>,\n group = \"undefined-group\",\n callback?: any\n): GxgFormItemsArray => {\n if (options.length) {\n const items: GxgFormItemsArray = [];\n options.forEach(option => {\n let item;\n switch (componentType) {\n case \"gxg-form-checkbox\":\n item = (\n <gxg-form-checkbox\n checkboxId={option.id}\n checked={option.checked}\n disabled={option.disabled}\n label={option.label}\n value={option.value}\n onChange={callback ? callback : null}\n iconName={option.iconName}\n part={`${group}-${option.id}`}\n ></gxg-form-checkbox>\n );\n items.push(item);\n break;\n case \"gxg-combo-box-item\":\n item = (\n <gxg-combo-box-item\n value={option.id}\n icon={option.iconName}\n part={`${group}-${option.id}`}\n >\n {option.label}\n </gxg-combo-box-item>\n );\n items.push(item);\n break;\n case \"gxg-form-radio\":\n item = (\n <gxg-form-radio\n radioId={option.id}\n checked={option.checked}\n disabled={option.disabled}\n label={option.label}\n value={option.value}\n name={group}\n part={`${group}-${option.id}`}\n ></gxg-form-radio>\n );\n items.push(item);\n break;\n default:\n break;\n }\n });\n return items;\n }\n return null;\n};\n\nexport const renderModuleDataProperties = (\n options: Array<ModulePropertyData>\n): ModulePropertyData[] => {\n if (options.length) {\n const items: ModulePropertyData[] = [];\n\n options.forEach(option => {\n if (Array.isArray(option.value)) {\n const item = (\n <div class=\"md-property__list\">\n <p class=\"md-property__key\">{option.name} :</p>\n <ul>\n {option.value.map(subItem => {\n return <li>{subItem}</li>;\n })}\n </ul>\n </div>\n );\n items.push(item);\n } else {\n const item = (\n <div\n class={\n option.inline\n ? \"md-property md-property--inline\"\n : \"md-property--block\"\n }\n >\n <p class=\"md-property__key\">{option.name} :</p>\n <p class=\"md-property__value\">{option.value}</p>\n </div>\n );\n items.push(item);\n }\n });\n\n return items;\n }\n return null;\n};\n\n/**\n * @param gxOptions An array of GxOptions's\n * @returns The first option in the array that is 'selected'. If no one found it returns null.\n */\nexport const getSelectedGxOption = (\n gxOptions: GxOption[],\n onlyId = true\n): GxOption | string | void => {\n if (gxOptions?.length > 0) {\n let found = null;\n for (let i = 0; i < gxOptions.length; i++) {\n if (gxOptions[i].selected) {\n found = gxOptions[i];\n break;\n }\n }\n if (found && onlyId) {\n return found.id;\n } else if (!found && onlyId) {\n return gxOptions[0].id;\n }\n return found;\n }\n};\n\n/**\n * @param gxOptions An array of GxOptions's\n * @returns The value of the selected item, or the first item, if no one is selected.\n */\nexport const getSelectedItem = (gxOptions: GxOption[]): string => {\n let found = undefined;\n for (let i = 0; i < gxOptions.length; i++) {\n if (gxOptions[i].selected) {\n found = gxOptions[i];\n break;\n }\n }\n if (found) {\n return found.id;\n } else {\n return gxOptions[0].id;\n }\n};\n\nexport const getSelectedItem2 = (\n gxOptions: GxOption[] | undefined\n): string | undefined =>\n gxOptions\n ? (gxOptions.find(item => item.selected) ?? gxOptions[0]).id\n : undefined;\n\n// Dots animation used in ch-chat code-render (or other components)\nexport const ANIMATION_DOTS = (\n size: \"regular\" | \"tiny\" = \"regular\",\n color: \"primary\" | \"on-surface\" = \"primary\"\n): SVGElement => {\n const n = size === \"regular\" ? 1 : 4;\n const colorVar =\n color === \"primary\"\n ? \"var(--mer-color__primary--200)\"\n : \"var(--mer-text__on-surface)\";\n\n return (\n <svg width={36 / n} height={8 / n} fill=\"transparent\">\n <circle cx={4 / n} cy={4 / n} r={4 / n} opacity=\"0\" fill={colorVar}>\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur=\"1s\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx={18 / n} cy={4 / n} r={4 / n} opacity=\"0\" fill={colorVar}>\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur=\"1s\"\n begin=\"0.15s\"\n repeatCount=\"indefinite\"\n />\n </circle>\n <circle cx={32 / n} cy={4 / n} r={4 / n} opacity=\"0\" fill={colorVar}>\n <animate\n attributeName=\"opacity\"\n values=\"0;1;0\"\n dur=\"1s\"\n begin=\"0.30s\"\n repeatCount=\"indefinite\"\n />\n </circle>\n </svg>\n );\n};\n"],"version":3}
@@ -1,58 +0,0 @@
1
- import { r as registerInstance, h, H as Host } from './index-10af18cf.js';
2
- import { g as getIconPath } from './assets-manager-0d129105.js';
3
- import './MERCURY_ASSETS-bbdf7018.js';
4
-
5
- const chatContainerCss = ".chat-container{display:grid;block-size:100%;overflow:auto;grid-template-rows:max-content 1fr max-content;gap:6px;position:relative;--chat-common-border-radius:var(--mer-spacing--2xs);background-color:transparent !important}.section{display:contents}.chat-container__header{padding:var(--mer-spacing--2xs) var(--mer-spacing--2xs) var(--mer-spacing--2xs) var(--mer-spacing--sm);display:flex;align-items:center;gap:var(--mer-spacing--sm);justify-content:space-between}.chat-container__ch-chat{overflow:auto;position:relative;display:grid;padding:0 var(--mer-spacing--xs) var(--mer-spacing--xs) var(--mer-spacing--xs)}.chat-container__header,.chat-container__footer{padding:var(--mer-spacing--2xs) var(--mer-spacing--2xs) var(--mer-spacing--2xs) var(--mer-spacing--sm)}.chat-container__conversation-copied{position:absolute;z-index:1;inline-size:100%;block-size:100%;background:rgba(22, 22, 23, 0.75);backdrop-filter:saturate(180%) blur(20px);display:grid;align-items:center;justify-content:center;text-align:center;padding:32px;--mer-icon__box--md:18px;pointer-events:none;overflow:hidden;animation:fadeIn 100ms ease-in-out forwards;opacity:0}.chat-container__conversation-copied-wrapper{display:flex;align-items:center;gap:var(--mer-spacing--sm)}.chat-container__conversation-copied-wrapper{animation:liftUp var(--mer-timing--fast) ease-in-out forwards;inset-block-start:4px;opacity:0;animation-delay:var(--mer-timing--fast);position:relative}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes liftUp{from{opacity:0;inset-block-start:4px}to{opacity:1;inset-block-start:0}}.chat::part(message){position:relative;--copy-button-opacity:0;--copied-to-clipboard-opacity:0;--date-opacity:1}.chat::part(message__content){font-size:13px !important;line-height:1.3 !important}.chat::part(message__time),.chat::part(message__copy-button){transition:opacity var(--mer-timing--super-fast) ease-in-out}.chat::part(message__time){opacity:var(--date-opacity)}.chat::part(message):hover{position:relative;--copy-button-opacity:1;--date-opacity:0}.chat::part(message__copy-button){position:absolute;z-index:1;inset-inline-end:0;padding:var(--mer-spacing--sm);transition:opacity var(--mer-timing--fast) ease-in-out;opacity:var(--copy-button-opacity)}.chat::part(message__copy-button)::after{content:\"\";inline-size:var(--mer-icon__box--md);block-size:var(--mer-icon__box--md);background:no-repeat center/var(--mer-icon__size--md) var(--icon-path);--icon-path:var(--icon__system_copy_primary--enabled)}.chat::part(message__copy-button):hover::after{--icon-path:var(--icon__system_copy_primary--hover)}.chat::part(message__copy-button):active::after{--icon-path:var(--icon__system_copy_primary--active)}.chat::part(message__copied-feedback){transition:opacity 150ms ease-in-out;position:absolute;inline-size:100%;block-size:100%;display:flex;align-items:center;justify-content:center;z-index:2;background:rgba(22, 22, 23, 0.8);backdrop-filter:saturate(180%) blur(20px);opacity:var(--copied-to-clipboard-opacity);pointer-events:none}.chat::part(message__copied-feedback-visible){--copied-to-clipboard-opacity:1;pointer-events:visible}.chat::part(send-container){gap:var(--mer-spacing--xs)}.chat::part(send-input){--control__padding-block:7px !important}.chat::part(send-button){border-width:var(--control__border-width);border-style:var(--control__border-style);border-color:var(--control__border-color);border-radius:var(--control__border-radius);inline-size:32px;block-size:32px;background:no-repeat center/var(--mer-icon__box--md) var(--icon-path);--icon-path:var(--icon__system_send_primary--enabled)}.chat::part(send-button):hover{--icon-path:var(--icon__system_send_primary--hover);--control__border-color:var(--mer-text__primary--hover)}.chat::part(send-button):active{--icon-path:var(--icon__system_send_primary--active);--control__border-color:var(--mer-border-color__primary--active)}.chat::part(message assistant){background-color:var(--elevation-background-color, var(--mer-surface__elevation--01)) !important}.chat::part(message assistant waiting){align-items:center;gap:var(--mer-spacing--md) !important}.button-copy-chat,.button-delete-chat{--control__border-color:transparent !important}.button-delete-chat:hover{filter:brightness(1.3)}.button-delete-chat:active{filter:brightness(0.8)}";
6
-
7
- const CSS_BUNDLES = [
8
- "resets/box-sizing",
9
- "utils/typography",
10
- "chameleon/scrollbar",
11
- "components/button",
12
- "components/icon",
13
- "utils/elevation"
14
- ];
15
- const COPY_ICON = getIconPath({
16
- category: "system",
17
- name: "copy",
18
- colorType: "neutral"
19
- });
20
- const DELETE_ICON = getIconPath({
21
- category: "system",
22
- name: "delete-outlined",
23
- colorType: "error"
24
- });
25
- const CONVERSATION_ICON = getIconPath({
26
- category: "objects",
27
- name: "conversational-flows"
28
- });
29
- const GxIdeChatContainer = class {
30
- constructor(hostRef) {
31
- registerInstance(this, hostRef);
32
- this.chatTitle = undefined;
33
- this.copyConversationCallback = undefined;
34
- this.deleteConversationCallback = undefined;
35
- this.displayConversationCopiedMessage = false;
36
- }
37
- /**
38
- * It will display a feedback message that the conversation has been copied
39
- */
40
- async showCopyConversationMessage() {
41
- this.displayConversationCopiedMessage = true;
42
- setTimeout(() => {
43
- this.displayConversationCopiedMessage = false;
44
- }, 2000);
45
- }
46
- render() {
47
- const renderHeader = this.chatTitle ||
48
- this.copyConversationCallback ||
49
- this.deleteConversationCallback;
50
- const renderButtonsGroup = this.copyConversationCallback || this.deleteConversationCallback;
51
- return (h(Host, { class: "chat-container" }, h("ch-theme", { model: CSS_BUNDLES }), h("section", { class: "section" }, renderHeader && (h("header", { class: "chat-container__header elevation-1 body-italic-m" }, this.chatTitle && this.chatTitle, renderButtonsGroup && (h("div", null, this.deleteConversationCallback && (h("button", { class: "button-secondary button-icon-only button-delete-chat", onClick: this.deleteConversationCallback }, h("ch-image", { class: "icon-md", src: DELETE_ICON }))), this.copyConversationCallback && (h("button", { class: "button-secondary button-icon-only button-copy-chat", onClick: this.copyConversationCallback }, h("ch-image", { class: "icon-md", src: COPY_ICON }))))))), h("section", { class: "chat-container__ch-chat" }, h("slot", null), this.displayConversationCopiedMessage && (h("div", { class: "chat-container__conversation-copied" }, h("div", { class: "chat-container__conversation-copied-wrapper" }, h("ch-image", { class: "icon-md", src: CONVERSATION_ICON }), h("p", { class: "body-regular-l" }, "conversation copied"))))))));
52
- }
53
- };
54
- GxIdeChatContainer.style = chatContainerCss;
55
-
56
- export { GxIdeChatContainer as gx_ide_chat_container };
57
-
58
- //# sourceMappingURL=gx-ide-chat-container.entry.js.map
@@ -1 +0,0 @@
1
- {"file":"gx-ide-chat-container.entry.js","mappings":";;;;AAAA,MAAM,gBAAgB,GAAG,ksIAAksI;;ACG3tI,MAAM,WAAW,GAAmB;IAClC,mBAAmB;IACnB,kBAAkB;IAClB,qBAAqB;IACrB,mBAAmB;IACnB,iBAAiB;IACjB,iBAAiB;CAClB,CAAC;AAEF,MAAM,SAAS,GAAG,WAAW,CAAC;IAC5B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,SAAS;CACrB,CAAC,CAAC;AACH,MAAM,WAAW,GAAG,WAAW,CAAC;IAC9B,QAAQ,EAAE,QAAQ;IAClB,IAAI,EAAE,iBAAiB;IACvB,SAAS,EAAE,OAAO;CACnB,CAAC,CAAC;AACH,MAAM,iBAAiB,GAAG,WAAW,CAAC;IACpC,QAAQ,EAAE,SAAS;IACnB,IAAI,EAAE,sBAAsB;CAC7B,CAAC,CAAC;MAOU,kBAAkB;;;;;;gDAmBwB,KAAK;;;;;IAM1D,MAAM,2BAA2B;QAC/B,IAAI,CAAC,gCAAgC,GAAG,IAAI,CAAC;QAC7C,UAAU,CAAC;YACT,IAAI,CAAC,gCAAgC,GAAG,KAAK,CAAC;SAC/C,EAAE,IAAI,CAAC,CAAC;KACV;IAED,MAAM;QACJ,MAAM,YAAY,GAChB,IAAI,CAAC,SAAS;YACd,IAAI,CAAC,wBAAwB;YAC7B,IAAI,CAAC,0BAA0B,CAAC;QAElC,MAAM,kBAAkB,GACtB,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,0BAA0B,CAAC;QACnE,QACE,EAAC,IAAI,IAAC,KAAK,EAAC,gBAAgB,IAC1B,gBAAU,KAAK,EAAE,WAAW,GAAa,EACzC,eAAS,KAAK,EAAC,SAAS,IACrB,YAAY,KACX,cAAQ,KAAK,EAAC,kDAAkD,IAC7D,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAEhC,kBAAkB,KACjB,eACG,IAAI,CAAC,0BAA0B,KAC9B,cACE,KAAK,EAAC,sDAAsD,EAC5D,OAAO,EAAE,IAAI,CAAC,0BAA0B,IAExC,gBAAU,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,WAAW,GAAa,CAChD,CACV,EAEA,IAAI,CAAC,wBAAwB,KAC5B,cACE,KAAK,EAAC,oDAAoD,EAC1D,OAAO,EAAE,IAAI,CAAC,wBAAwB,IAEtC,gBAAU,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,SAAS,GAAa,CAC9C,CACV,CACG,CACP,CACM,CACV,EACD,eAAS,KAAK,EAAC,yBAAyB,IACtC,eAAa,EACZ,IAAI,CAAC,gCAAgC,KACpC,WAAK,KAAK,EAAC,qCAAqC,IAC9C,WAAK,KAAK,EAAC,6CAA6C,IACtD,gBAAU,KAAK,EAAC,SAAS,EAAC,GAAG,EAAE,iBAAiB,GAAa,EAC7D,SAAG,KAAK,EAAC,gBAAgB,0BAAwB,CAC7C,CACF,CACP,CACO,CAEF,CACL,EACP;KACH;;;;;;","names":[],"sources":["src/components/_helpers/chat-container/chat-container.scss?tag=gx-ide-chat-container","src/components/_helpers/chat-container/chat-container.tsx"],"sourcesContent":[".chat-container {\n display: grid;\n block-size: 100%;\n overflow: auto;\n grid-template-rows: max-content 1fr max-content;\n gap: 6px;\n position: relative;\n --chat-common-border-radius: var(--mer-spacing--2xs);\n\n // force elevation-* class not applying on the host\n background-color: transparent !important;\n}\n.section {\n display: contents;\n}\n\n// header\n.chat-container__header {\n padding: var(--mer-spacing--2xs) var(--mer-spacing--2xs)\n var(--mer-spacing--2xs) var(--mer-spacing--sm);\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n justify-content: space-between;\n}\n\n// ch-chat container\n.chat-container__ch-chat {\n overflow: auto;\n position: relative;\n display: grid;\n padding: 0 var(--mer-spacing--xs) var(--mer-spacing--xs)\n var(--mer-spacing--xs);\n}\n\n// footer\n\n// header & footer (common styles)\n.chat-container__header,\n.chat-container__footer {\n padding: var(--mer-spacing--2xs) var(--mer-spacing--2xs)\n var(--mer-spacing--2xs) var(--mer-spacing--sm);\n}\n\n.chat-container__conversation-copied {\n position: absolute;\n z-index: 1;\n inline-size: 100%;\n block-size: 100%;\n background: rgba(22, 22, 23, 0.75);\n backdrop-filter: saturate(180%) blur(20px);\n display: grid;\n align-items: center;\n justify-content: center;\n text-align: center;\n padding: 32px;\n --mer-icon__box--md: 18px;\n pointer-events: none;\n overflow: hidden;\n animation: fadeIn 100ms ease-in-out forwards;\n opacity: 0;\n}\n.chat-container__conversation-copied-wrapper {\n display: flex;\n align-items: center;\n gap: var(--mer-spacing--sm);\n}\n.chat-container__conversation-copied-wrapper {\n animation: liftUp var(--mer-timing--fast) ease-in-out forwards;\n inset-block-start: 4px;\n opacity: 0;\n animation-delay: var(--mer-timing--fast);\n position: relative;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n@keyframes liftUp {\n from {\n opacity: 0;\n inset-block-start: 4px;\n }\n to {\n opacity: 1;\n inset-block-start: 0;\n }\n}\n\n// - - - - - - - - - - - - - - - - - - - - - - - - - -\n// ch-chat overrides TODO: move this styles to Mercury\n// - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n.chat::part(message) {\n position: relative;\n --copy-button-opacity: 0;\n --copied-to-clipboard-opacity: 0;\n --date-opacity: 1;\n}\n\n.chat::part(message__content) {\n font-size: 13px !important;\n line-height: 1.3 !important;\n}\n\n.chat::part(message__time),\n.chat::part(message__copy-button) {\n transition: opacity var(--mer-timing--super-fast) ease-in-out;\n}\n.chat::part(message__time) {\n opacity: var(--date-opacity);\n}\n.chat::part(message):hover {\n position: relative;\n --copy-button-opacity: 1;\n --date-opacity: 0;\n}\n.chat::part(message__copy-button) {\n position: absolute;\n z-index: 1;\n inset-inline-end: 0;\n padding: var(--mer-spacing--sm); // same as part::(message)\n transition: opacity var(--mer-timing--fast) ease-in-out;\n opacity: var(--copy-button-opacity);\n\n &::after {\n content: \"\";\n inline-size: var(--mer-icon__box--md);\n block-size: var(--mer-icon__box--md);\n background: no-repeat center / var(--mer-icon__size--md) var(--icon-path);\n --icon-path: var(--icon__system_copy_primary--enabled);\n }\n &:hover::after {\n --icon-path: var(--icon__system_copy_primary--hover);\n }\n &:active::after {\n --icon-path: var(--icon__system_copy_primary--active);\n }\n}\n\n// copy button effect\n.chat::part(message__copied-feedback) {\n transition: opacity 150ms ease-in-out;\n position: absolute;\n inline-size: 100%;\n block-size: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 2;\n background: rgba(22, 22, 23, 0.8);\n backdrop-filter: saturate(180%) blur(20px);\n opacity: var(--copied-to-clipboard-opacity);\n pointer-events: none;\n}\n\n.chat::part(message__copied-feedback-visible) {\n --copied-to-clipboard-opacity: 1;\n pointer-events: visible;\n}\n\n// send button\n.chat::part(send-container) {\n gap: var(--mer-spacing--xs);\n}\n.chat::part(send-input) {\n --control__padding-block: 7px !important;\n}\n\n.chat::part(send-button) {\n border-width: var(--control__border-width);\n border-style: var(--control__border-style);\n border-color: var(--control__border-color);\n border-radius: var(--control__border-radius);\n inline-size: 32px;\n block-size: 32px;\n background: no-repeat center / var(--mer-icon__box--md) var(--icon-path);\n --icon-path: var(--icon__system_send_primary--enabled);\n}\n.chat::part(send-button):hover {\n --icon-path: var(--icon__system_send_primary--hover);\n --control__border-color: var(--mer-text__primary--hover);\n}\n.chat::part(send-button):active {\n --icon-path: var(--icon__system_send_primary--active);\n --control__border-color: var(--mer-border-color__primary--active);\n}\n\n// assistant\n\n.chat::part(message assistant) {\n background-color: var(\n --elevation-background-color,\n var(--mer-surface__elevation--01)\n ) !important;\n}\n\n.chat::part(message assistant waiting) {\n align-items: center;\n gap: var(--mer-spacing--md) !important;\n}\n\n.button-copy-chat,\n.button-delete-chat {\n --control__border-color: transparent !important;\n}\n.button-delete-chat {\n &:hover {\n filter: brightness(1.3);\n }\n &:active {\n filter: brightness(0.8);\n }\n}\n","import { Component, Host, h, Prop, Method, State } from \"@stencil/core\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"chameleon/scrollbar\",\n \"components/button\",\n \"components/icon\",\n \"utils/elevation\"\n];\n\nconst COPY_ICON = getIconPath({\n category: \"system\",\n name: \"copy\",\n colorType: \"neutral\"\n});\nconst DELETE_ICON = getIconPath({\n category: \"system\",\n name: \"delete-outlined\",\n colorType: \"error\"\n});\nconst CONVERSATION_ICON = getIconPath({\n category: \"objects\",\n name: \"conversational-flows\"\n});\n\n@Component({\n tag: \"gx-ide-chat-container\",\n styleUrl: \"chat-container.scss\",\n shadow: false\n})\nexport class GxIdeChatContainer {\n /**\n * The chat title\n */\n @Prop() readonly chatTitle?: string;\n\n /**\n * If true a button for copying the conversation will be render on the header\n */\n @Prop() readonly copyConversationCallback: () => void;\n\n /**\n * If true a button for deleting the conversation will be render on the header\n */\n @Prop() readonly deleteConversationCallback: () => void;\n\n /**\n * Coneration Copied\n */\n @State() displayConversationCopiedMessage: boolean = false;\n\n /**\n * It will display a feedback message that the conversation has been copied\n */\n @Method()\n async showCopyConversationMessage() {\n this.displayConversationCopiedMessage = true;\n setTimeout(() => {\n this.displayConversationCopiedMessage = false;\n }, 2000);\n }\n\n render() {\n const renderHeader =\n this.chatTitle ||\n this.copyConversationCallback ||\n this.deleteConversationCallback;\n\n const renderButtonsGroup =\n this.copyConversationCallback || this.deleteConversationCallback;\n return (\n <Host class=\"chat-container\">\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <section class=\"section\">\n {renderHeader && (\n <header class=\"chat-container__header elevation-1 body-italic-m\">\n {this.chatTitle && this.chatTitle}\n\n {renderButtonsGroup && (\n <div>\n {this.deleteConversationCallback && (\n <button\n class=\"button-secondary button-icon-only button-delete-chat\"\n onClick={this.deleteConversationCallback}\n >\n <ch-image class=\"icon-md\" src={DELETE_ICON}></ch-image>\n </button>\n )}\n\n {this.copyConversationCallback && (\n <button\n class=\"button-secondary button-icon-only button-copy-chat\"\n onClick={this.copyConversationCallback}\n >\n <ch-image class=\"icon-md\" src={COPY_ICON}></ch-image>\n </button>\n )}\n </div>\n )}\n </header>\n )}\n <section class=\"chat-container__ch-chat\">\n <slot></slot>\n {this.displayConversationCopiedMessage && (\n <div class=\"chat-container__conversation-copied\">\n <div class=\"chat-container__conversation-copied-wrapper\">\n <ch-image class=\"icon-md\" src={CONVERSATION_ICON}></ch-image>\n <p class=\"body-regular-l\">conversation copied</p>\n </div>\n </div>\n )}\n </section>\n {/* <footer class=\"chat-container__footer elevation-1\">footer</footer> */}\n </section>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -1,231 +0,0 @@
1
- import { r as e, h as t, H as n } from "./p-25a9f1d7.js";
2
-
3
- import { m as a } from "./p-be8a59fd.js";
4
-
5
- import "./p-5ac47c69.js";
6
-
7
- const o = "{{ASSISTANT_NAME}}";
8
-
9
- let s;
10
-
11
- const r = `\n ### Code block {#code-block}\n To create code blocks, you’ll use three backticks (\` \`\`\` \`) or three tildes (\`~~~\`) on the lines before and after the code block.\n \n \`\`\`\n {\n "firstName": "John",\n "lastName": "Smith",\n "age": 25\n }\n \`\`\`\n \n Another way to create code blocks is to indent every line of the block by at least four spaces or one tab.\n \n <html>\n <head>\n </head>\n </html>\n \n \n #### Syntax Highlighting {#syntax-highlighting}\n This feature allows you to add color highlighting for whatever language your code was written in.\n To add syntax highlighting, specify a language next to the backticks before the fenced code block.\n \n \`\`\`json\n {\n "firstName": "John",\n "lastName": "Smith",\n "age": 25\n }\n \`\`\`\n \n \`\`\`javascript\n import React from 'react'\n import ReactDOM from 'react-dom'\n import Markdown from 'react-markdown'\n import rehypeHighlight from 'rehype-highlight'\n \n const markdown = \`\n # Your markdown here\n \`\n \n ReactDOM.render(\n <Markdown rehypePlugins={[rehypeHighlight]}>{markdown}</Markdown>,\n document.querySelector('#content')\n )\n \`\`\`\n \n ### Horizontal Rules {#horizontal-rules}\n To create a horizontal rule, use three or more asterisks (\`***\`), dashes (\`---\`), or underscores (\`___\`) on a line by themselves.\n `;
12
-
13
- const i = '\n### Code block {#code-block}\nTo create code blocks, you’ll use three backticks (` ``` `) or three tildes (`~~~`) on the lines before and after the code block.\n\n```json\n{\n "firstName": "John",\n "lastName": "Smith",\n "age": 25\n}\n```\n\nindex: 5\nindex: 5\nindex: 5\nindex: 5\nindex: 5\nindex: 5\nindex: 5\n';
14
-
15
- const sendChatToLLM = () => {
16
- // This is a WA to get the chat reference
17
- const e = document.querySelector("ch-chat");
18
- e.addNewMessage({
19
- id: `${(new Date).getTime()}`,
20
- role: "assistant",
21
- content: "Analyzing",
22
- status: "waiting"
23
- });
24
- s = setTimeout((() => {
25
- e.updateLastMessage({
26
- role: "assistant",
27
- content: "Processing with Chat with LLMs",
28
- status: "waiting"
29
- }, "replace");
30
- s = setTimeout((() => {
31
- dummyStreaming(e, 20, r, "replace");
32
- }), 200);
33
- }), 200);
34
- };
35
-
36
- function dummyStreaming(e, t, n, a) {
37
- s = setTimeout((() => {
38
- const o = t >= n.length;
39
- e.updateLastMessage({
40
- role: "assistant",
41
- content: {
42
- message: n.substring(t - 20, t),
43
- files: o ? [ {
44
- url: "https://next.genexus.ai",
45
- caption: "Mars Exploration Contract"
46
- }, {
47
- url: "https://gx-chameleon.netlify.app",
48
- caption: "Venus Exploration Contract"
49
- } ] : undefined
50
- },
51
- status: o ? "complete" : "streaming"
52
- }, a);
53
- if (!o) {
54
- dummyStreaming(e, t + 20, n, "concat");
55
- }
56
- }), t % 200 === 0 ? 50 : 40);
57
- }
58
-
59
- const c = {
60
- clear: () => new Promise((e => e())),
61
- sendChatToLLM,
62
- uploadImage: () => new Promise((e => e(""))),
63
- stopGeneratingAnswer: () => {
64
- clearTimeout(s);
65
- // This is a WA to get the chat reference
66
- const e = document.querySelector("ch-chat");
67
- e.updateLastMessage({
68
- role: "assistant",
69
- content: "",
70
- status: "complete"
71
- }, "concat");
72
- return new Promise((e => setTimeout((() => e), 10)));
73
- }
74
- };
75
-
76
- const d = {
77
- accessibleName: {
78
- clearChat: "Clear chat",
79
- copyResponseButton: "Copy assistant response",
80
- downloadCodeButton: "Download code",
81
- imagePicker: "Select images",
82
- removeUploadedImage: "Remove uploaded image",
83
- sendButton: "Send",
84
- sendInput: "Message",
85
- stopGeneratingAnswerButton: "Stop generating answer"
86
- },
87
- placeholder: {
88
- sendInput: "Ask me a question..."
89
- },
90
- text: {
91
- copyCodeButton: "Copy code",
92
- processing: `Processing with ${o}`,
93
- sourceFiles: "Source files:"
94
- }
95
- };
96
-
97
- Array.from({
98
- length: 40
99
- }, ((e, t) => t % 2 === 0 ? {
100
- id: `index: ${t}`,
101
- role: "user",
102
- content: `index: ${t}` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n`
103
- } : {
104
- id: `index: ${t}`,
105
- role: "assistant",
106
- content: i + `\nindex: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n`
107
- }));
108
-
109
- const l = [ {
110
- id: "1",
111
- role: "user",
112
- content: "Please give me an example about...",
113
- metadata: "14:55"
114
- }, {
115
- id: "2",
116
- role: "assistant",
117
- status: "complete",
118
- content: "Action required example. Action required example. Action required example.",
119
- metadata: "14:56"
120
- }, {
121
- id: "3",
122
- role: "assistant",
123
- status: "complete",
124
- content: "Warning in request",
125
- metadata: "14:57",
126
- parts: "warning"
127
- }, {
128
- id: "4",
129
- role: "error",
130
- content: "Error in Request",
131
- metadata: "14:58"
132
- }, {
133
- id: "5",
134
- role: "assistant",
135
- status: "complete",
136
- content: "Warning in request",
137
- metadata: "14:59",
138
- parts: "success"
139
- }, {
140
- id: "6",
141
- role: "user",
142
- content: "Implement the function calculate_average_grade in grades.py that takes a list of grades as input and returns the average grade as a floating-point number",
143
- metadata: "15:00"
144
- }, {
145
- id: "7",
146
- role: "assistant",
147
- status: "complete",
148
- content: "You can provide further details or updates regarding your support ticket and its associated code. Your input here helps us better understand and address your issue effectively.",
149
- metadata: "15:01"
150
- }, {
151
- id: "8",
152
- role: "assistant",
153
- status: "waiting",
154
- content: "You can provide further details or updates"
155
- }, {
156
- id: "9",
157
- role: "assistant",
158
- status: "complete",
159
- content: i
160
- } ];
161
-
162
- const h = ":host{block-size:100%;display:grid}";
163
-
164
- var m = undefined && undefined.__classPrivateFieldGet || function(e, t, n, a) {
165
- if (n === "a" && !a) throw new TypeError("Private accessor was defined without a getter");
166
- if (typeof t === "function" ? e !== t || !a : !t.has(e)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
167
- return n === "m" ? a : n === "a" ? a.call(e) : a ? a.value : t.get(e);
168
- };
169
-
170
- var u = undefined && undefined.__classPrivateFieldSet || function(e, t, n, a, o) {
171
- if (a === "m") throw new TypeError("Private method is not writable");
172
- if (a === "a" && !o) throw new TypeError("Private accessor was defined without a setter");
173
- if (typeof t === "function" ? e !== t || !o : !t.has(e)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
174
- return a === "a" ? o.call(e, n) : o ? o.value = n : t.set(e, n), n;
175
- };
176
-
177
- var p, g, f;
178
-
179
- const w = [ "resets/box-sizing", "components/chat" ];
180
-
181
- const x = class {
182
- constructor(t) {
183
- e(this, t);
184
- p.set(this, void 0);
185
- g.set(this, (() => {
186
- m(this, p, "f").showCopyConversationMessage();
187
- }));
188
- f.set(this, (() => {
189
- console.log("delete messages");
190
- }));
191
- this.showAdditionalContent = false;
192
- this.conversationCopied = false;
193
- this.assistantStatus = "Getting Data";
194
- }
195
- componentDidLoad() {
196
- setTimeout((() => {
197
- this.assistantStatus = "Creating Data Base..";
198
- }), 1e3);
199
- }
200
- render() {
201
- return t(n, null, t("ch-theme", {
202
- model: w
203
- }), t("gx-ide-chat-container", {
204
- chatTitle: "GeneXus Assistant",
205
- copyConversationCallback: m(this, g, "f"),
206
- deleteConversationCallback: m(this, f, "f"),
207
- ref: e => u(this, p, e, "f"),
208
- class: "elevation-2"
209
- }, t("ch-chat", {
210
- callbacks: c,
211
- class: "chat",
212
- generatingResponse: false,
213
- loadingState: "all-records-loaded",
214
- markdownTheme: "mercury/markdown-viewer",
215
- renderItem: a("mercury/markdown-viewer", "Bruno", "Gx Assistant"),
216
- isMobile: false,
217
- items: l,
218
- showAdditionalContent: this.showAdditionalContent,
219
- translations: d
220
- }, t("div", {
221
- slot: "additional-content"
222
- }, "Custom content that is rendered when the chat renders content"))));
223
- }
224
- };
225
-
226
- p = new WeakMap, g = new WeakMap, f = new WeakMap;
227
-
228
- x.style = h;
229
-
230
- export { x as gx_ide_sc_chat_container };
231
- //# sourceMappingURL=p-1a74d49a.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["PROCESSING_PLACEHOLDER","timeOut","ASSISTANT_RESPONSE_MARKDOWN","ASSISTANT_RESPONSE_SHORT_MARKDOWN","sendChatToLLM","chatRef","document","querySelector","addNewMessage","id","Date","getTime","role","content","status","setTimeout","updateLastMessage","dummyStreaming","counter","stringToDisplay","mode","streamingCompleted","length","message","substring","files","url","caption","undefined","chatCallbacks","clear","Promise","resolve","uploadImage","stopGeneratingAnswer","clearTimeout","chatTranslations","accessibleName","clearChat","copyResponseButton","downloadCodeButton","imagePicker","removeUploadedImage","sendButton","sendInput","stopGeneratingAnswerButton","placeholder","text","copyCodeButton","processing","sourceFiles","Array","from","_","index","codeFixerRecord","metadata","parts","chatShowcaseCss","CSS_BUNDLES","GxIdeScChatContainer","_GxIdeScChatContainer_chatContainerRef","set","this","_GxIdeScChatContainer_copyConversationCallbackHandler","__classPrivateFieldGet","showCopyConversationMessage","_GxIdeScChatContainer_deleteConversationCallbackHandler","console","log","componentDidLoad","assistantStatus","render","h","Host","model","chatTitle","copyConversationCallback","deleteConversationCallback","ref","el","__classPrivateFieldSet","class","callbacks","generatingResponse","loadingState","markdownTheme","renderItem","mercuryChatMessageRender","isMobile","items","showAdditionalContent","translations","slot"],"sources":["src/showcase/chat-container/callbacks.ts","src/showcase/chat-container/chat-showcase.scss?tag=gx-ide-sc-chat-container&encapsulation=shadow","src/showcase/chat-container/chat.showcase.tsx"],"sourcesContent":["import {\n ChatInternalCallbacks,\n ChatMessage,\n ChatTranslations\n} from \"@genexus/chameleon-controls-library\";\n\nconst PROCESSING_PLACEHOLDER = \"{{ASSISTANT_NAME}}\";\n\nlet timeOut: NodeJS.Timeout;\n\nconst ASSISTANT_RESPONSE_MARKDOWN = `\n ### Code block {#code-block}\n To create code blocks, you’ll use three backticks (\\` \\`\\`\\` \\`) or three tildes (\\`~~~\\`) on the lines before and after the code block.\n \n \\`\\`\\`\n {\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"age\": 25\n }\n \\`\\`\\`\n \n Another way to create code blocks is to indent every line of the block by at least four spaces or one tab.\n \n <html>\n <head>\n </head>\n </html>\n \n \n #### Syntax Highlighting {#syntax-highlighting}\n This feature allows you to add color highlighting for whatever language your code was written in.\n To add syntax highlighting, specify a language next to the backticks before the fenced code block.\n \n \\`\\`\\`json\n {\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"age\": 25\n }\n \\`\\`\\`\n \n \\`\\`\\`javascript\n import React from 'react'\n import ReactDOM from 'react-dom'\n import Markdown from 'react-markdown'\n import rehypeHighlight from 'rehype-highlight'\n \n const markdown = \\`\n # Your markdown here\n \\`\n \n ReactDOM.render(\n <Markdown rehypePlugins={[rehypeHighlight]}>{markdown}</Markdown>,\n document.querySelector('#content')\n )\n \\`\\`\\`\n \n ### Horizontal Rules {#horizontal-rules}\n To create a horizontal rule, use three or more asterisks (\\`***\\`), dashes (\\`---\\`), or underscores (\\`___\\`) on a line by themselves.\n `;\n\nconst ASSISTANT_RESPONSE_SHORT_MARKDOWN =\n '\\n### Code block {#code-block}\\nTo create code blocks, you’ll use three backticks (` ``` `) or three tildes (`~~~`) on the lines before and after the code block.\\n\\n```json\\n{\\n \"firstName\": \"John\",\\n \"lastName\": \"Smith\",\\n \"age\": 25\\n}\\n```\\n\\nindex: 5\\nindex: 5\\nindex: 5\\nindex: 5\\nindex: 5\\nindex: 5\\nindex: 5\\n';\n\nconst sendChatToLLM = () => {\n // This is a WA to get the chat reference\n const chatRef = document.querySelector(\"ch-chat\") as HTMLChChatElement;\n\n chatRef.addNewMessage({\n id: `${new Date().getTime()}`,\n role: \"assistant\",\n content: \"Analyzing\",\n status: \"waiting\"\n });\n\n timeOut = setTimeout(() => {\n chatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: \"Processing with Chat with LLMs\",\n status: \"waiting\"\n },\n \"replace\"\n );\n\n timeOut = setTimeout(() => {\n dummyStreaming(chatRef, 20, ASSISTANT_RESPONSE_MARKDOWN, \"replace\");\n }, 200);\n }, 200);\n};\n\nfunction dummyStreaming(\n chatRef: HTMLChChatElement,\n counter: number,\n stringToDisplay: string,\n mode: \"concat\" | \"replace\"\n) {\n timeOut = setTimeout(\n () => {\n const streamingCompleted = counter >= stringToDisplay.length;\n\n chatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: {\n message: stringToDisplay.substring(counter - 20, counter),\n files: streamingCompleted\n ? [\n {\n url: \"https://next.genexus.ai\",\n caption: \"Mars Exploration Contract\"\n },\n {\n url: \"https://gx-chameleon.netlify.app\",\n caption: \"Venus Exploration Contract\"\n }\n ]\n : undefined\n },\n status: streamingCompleted ? \"complete\" : \"streaming\"\n },\n mode\n );\n\n if (!streamingCompleted) {\n dummyStreaming(chatRef, counter + 20, stringToDisplay, \"concat\");\n }\n },\n counter % 200 === 0 ? 50 : 40\n );\n}\n\nexport const chatCallbacks: ChatInternalCallbacks = {\n clear: () => new Promise(resolve => resolve()),\n sendChatToLLM: sendChatToLLM,\n uploadImage: () => new Promise(resolve => resolve(\"\")),\n stopGeneratingAnswer: () => {\n clearTimeout(timeOut);\n\n // This is a WA to get the chat reference\n const chatRef = document.querySelector(\"ch-chat\") as HTMLChChatElement;\n\n chatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: \"\",\n status: \"complete\"\n },\n \"concat\"\n );\n\n return new Promise(resolve => setTimeout(() => resolve, 10));\n }\n};\n\nexport const chatTranslations: ChatTranslations = {\n accessibleName: {\n clearChat: \"Clear chat\",\n copyResponseButton: \"Copy assistant response\",\n downloadCodeButton: \"Download code\",\n imagePicker: \"Select images\",\n removeUploadedImage: \"Remove uploaded image\",\n sendButton: \"Send\",\n sendInput: \"Message\",\n stopGeneratingAnswerButton: \"Stop generating answer\"\n },\n placeholder: {\n sendInput: \"Ask me a question...\"\n },\n text: {\n copyCodeButton: \"Copy code\",\n processing: `Processing with ${PROCESSING_PLACEHOLDER}`,\n sourceFiles: \"Source files:\"\n }\n};\n\nexport const chatRecord: ChatMessage[] = [\n { id: \"1\", role: \"user\", content: \"Hello world\" },\n { id: \"2\", role: \"assistant\", content: ASSISTANT_RESPONSE_MARKDOWN },\n { id: \"3\", role: \"user\", content: \"Hello world 1\" },\n { id: \"4\", role: \"assistant\", content: ASSISTANT_RESPONSE_SHORT_MARKDOWN },\n { id: \"5\", role: \"user\", content: \"Hello world 2\" },\n { id: \"6\", role: \"assistant\", content: ASSISTANT_RESPONSE_SHORT_MARKDOWN },\n { id: \"7\", role: \"user\", content: \"Hello world 3\" },\n { id: \"8\", role: \"assistant\", content: ASSISTANT_RESPONSE_SHORT_MARKDOWN },\n { id: \"9\", role: \"user\", content: \"Hello world 4\" },\n { id: \"10\", role: \"assistant\", content: ASSISTANT_RESPONSE_SHORT_MARKDOWN }\n];\n\nexport const longChatRecord: ChatMessage[] = Array.from(\n { length: 40 },\n (_, index) =>\n index % 2 === 0\n ? {\n id: `index: ${index}`,\n role: \"user\",\n content:\n `index: ${index}` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n`\n }\n : {\n id: `index: ${index}`,\n role: \"assistant\",\n content:\n ASSISTANT_RESPONSE_SHORT_MARKDOWN +\n `\\nindex: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n` +\n `index: ${index}\\n`\n }\n);\n\nexport const codeFixerRecord: ChatMessage[] = [\n {\n id: \"1\",\n role: \"user\",\n content: \"Please give me an example about...\",\n metadata: \"14:55\"\n },\n {\n id: \"2\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"Action required example. Action required example. Action required example.\",\n metadata: \"14:56\"\n },\n {\n id: \"3\",\n role: \"assistant\",\n status: \"complete\",\n content: \"Warning in request\",\n metadata: \"14:57\",\n parts: \"warning\"\n },\n {\n id: \"4\",\n role: \"error\",\n content: \"Error in Request\",\n metadata: \"14:58\"\n },\n {\n id: \"5\",\n role: \"assistant\",\n status: \"complete\",\n content: \"Warning in request\",\n metadata: \"14:59\",\n parts: \"success\"\n },\n {\n id: \"6\",\n role: \"user\",\n content:\n \"Implement the function calculate_average_grade in grades.py that takes a list of grades as input and returns the average grade as a floating-point number\",\n metadata: \"15:00\"\n },\n {\n id: \"7\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"You can provide further details or updates regarding your support ticket and its associated code. Your input here helps us better understand and address your issue effectively.\",\n metadata: \"15:01\"\n },\n {\n id: \"8\",\n role: \"assistant\",\n status: \"waiting\",\n content: \"You can provide further details or updates\"\n },\n {\n id: \"9\",\n role: \"assistant\",\n status: \"complete\",\n content: ASSISTANT_RESPONSE_SHORT_MARKDOWN\n }\n];\n",":host {\n block-size: 100%;\n display: grid;\n}\n","import { Component, Host, h, State } from \"@stencil/core\";\nimport { mercuryChatMessageRender } from \"../../components/_helpers/chat-container/code-render\";\nimport { MercuryBundles } from \"@genexus/mercury\";\n\nconst CSS_BUNDLES: MercuryBundles = [\"resets/box-sizing\", \"components/chat\"];\n\nimport { chatCallbacks, chatTranslations, codeFixerRecord } from \"./callbacks\";\n\n@Component({\n tag: \"gx-ide-sc-chat-container\",\n styleUrl: \"chat-showcase.scss\",\n shadow: true\n})\nexport class GxIdeScChatContainer {\n #chatContainerRef!: HTMLGxIdeChatContainerElement;\n\n @State() showAdditionalContent: boolean = false;\n @State() conversationCopied: boolean = false;\n @State() assistantStatus: string = \"Getting Data\";\n\n #copyConversationCallbackHandler = () => {\n this.#chatContainerRef.showCopyConversationMessage();\n };\n\n #deleteConversationCallbackHandler = () => {\n console.log(\"delete messages\");\n };\n\n componentDidLoad() {\n setTimeout(() => {\n this.assistantStatus = \"Creating Data Base..\";\n }, 1000);\n }\n\n render() {\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <gx-ide-chat-container\n chatTitle=\"GeneXus Assistant\"\n copyConversationCallback={this.#copyConversationCallbackHandler}\n deleteConversationCallback={this.#deleteConversationCallbackHandler}\n ref={el =>\n (this.#chatContainerRef = el as HTMLGxIdeChatContainerElement)\n }\n class=\"elevation-2\"\n >\n <ch-chat\n callbacks={chatCallbacks}\n class=\"chat\"\n generatingResponse={false}\n loadingState=\"all-records-loaded\"\n markdownTheme=\"mercury/markdown-viewer\"\n renderItem={mercuryChatMessageRender(\n \"mercury/markdown-viewer\",\n \"Bruno\",\n \"Gx Assistant\"\n )}\n isMobile={false}\n items={codeFixerRecord}\n showAdditionalContent={this.showAdditionalContent}\n translations={chatTranslations}\n >\n <div slot=\"additional-content\">\n Custom content that is rendered when the chat renders content\n </div>\n </ch-chat>\n </gx-ide-chat-container>\n </Host>\n );\n }\n}\n"],"mappings":";;;;;;AAMA,MAAMA,IAAyB;;AAE/B,IAAIC;;AAEJ,MAAMC,IAA8B;;AAoDpC,MAAMC,IACJ;;AAEF,MAAMC,gBAAgB;;EAEpB,MAAMC,IAAUC,SAASC,cAAc;EAEvCF,EAAQG,cAAc;IACpBC,IAAI,IAAG,IAAIC,MAAOC;IAClBC,MAAM;IACNC,SAAS;IACTC,QAAQ;;EAGVb,IAAUc,YAAW;IACnBV,EAAQW,kBACN;MACEJ,MAAM;MACNC,SAAS;MACTC,QAAQ;OAEV;IAGFb,IAAUc,YAAW;MACnBE,eAAeZ,GAAS,IAAIH,GAA6B;AAAU,QAClE;AAAI,MACN;AAAI;;AAGT,SAASe,eACPZ,GACAa,GACAC,GACAC;EAEAnB,IAAUc,YACR;IACE,MAAMM,IAAqBH,KAAWC,EAAgBG;IAEtDjB,EAAQW,kBACN;MACEJ,MAAM;MACNC,SAAS;QACPU,SAASJ,EAAgBK,UAAUN,IAAU,IAAIA;QACjDO,OAAOJ,IACH,EACE;UACEK,KAAK;UACLC,SAAS;WAEX;UACED,KAAK;UACLC,SAAS;cAGbC;;MAENd,QAAQO,IAAqB,aAAa;OAE5CD;IAGF,KAAKC,GAAoB;MACvBJ,eAAeZ,GAASa,IAAU,IAAIC,GAAiB;;MAG3DD,IAAU,QAAQ,IAAI,KAAK;AAE/B;;AAEO,MAAMW,IAAuC;EAClDC,OAAO,MAAM,IAAIC,SAAQC,KAAWA;EACpC5B;EACA6B,aAAa,MAAM,IAAIF,SAAQC,KAAWA,EAAQ;EAClDE,sBAAsB;IACpBC,aAAalC;;QAGb,MAAMI,IAAUC,SAASC,cAAc;IAEvCF,EAAQW,kBACN;MACEJ,MAAM;MACNC,SAAS;MACTC,QAAQ;OAEV;IAGF,OAAO,IAAIiB,SAAQC,KAAWjB,YAAW,MAAMiB,IAAS;AAAI;;;AAIzD,MAAMI,IAAqC;EAChDC,gBAAgB;IACdC,WAAW;IACXC,oBAAoB;IACpBC,oBAAoB;IACpBC,aAAa;IACbC,qBAAqB;IACrBC,YAAY;IACZC,WAAW;IACXC,4BAA4B;;EAE9BC,aAAa;IACXF,WAAW;;EAEbG,MAAM;IACJC,gBAAgB;IAChBC,YAAY,mBAAmBjD;IAC/BkD,aAAa;;;;AAiB4BC,MAAMC,KACjD;EAAE9B,QAAQ;IACV,CAAC+B,GAAGC,MACFA,IAAQ,MAAM,IACV;EACE7C,IAAI,UAAU6C;EACd1C,MAAM;EACNC,SACE,UAAUyC,MACV,UAAUA,QACV,UAAUA,QACV,UAAUA,QACV,UAAUA,QACV,UAAUA,QACV,UAAUA;IAEd;EACE7C,IAAI,UAAU6C;EACd1C,MAAM;EACNC,SACEV,IACA,YAAYmD,QACZ,UAAUA,QACV,UAAUA,QACV,UAAUA,QACV,UAAUA,QACV,UAAUA,QACV,UAAUA;;;AAIf,MAAMC,IAAiC,EAC5C;EACE9C,IAAI;EACJG,MAAM;EACNC,SAAS;EACT2C,UAAU;GAEZ;EACE/C,IAAI;EACJG,MAAM;EACNE,QAAQ;EACRD,SACE;EACF2C,UAAU;GAEZ;EACE/C,IAAI;EACJG,MAAM;EACNE,QAAQ;EACRD,SAAS;EACT2C,UAAU;EACVC,OAAO;GAET;EACEhD,IAAI;EACJG,MAAM;EACNC,SAAS;EACT2C,UAAU;GAEZ;EACE/C,IAAI;EACJG,MAAM;EACNE,QAAQ;EACRD,SAAS;EACT2C,UAAU;EACVC,OAAO;GAET;EACEhD,IAAI;EACJG,MAAM;EACNC,SACE;EACF2C,UAAU;GAEZ;EACE/C,IAAI;EACJG,MAAM;EACNE,QAAQ;EACRD,SACE;EACF2C,UAAU;GAEZ;EACE/C,IAAI;EACJG,MAAM;EACNE,QAAQ;EACRD,SAAS;GAEX;EACEJ,IAAI;EACJG,MAAM;EACNE,QAAQ;EACRD,SAASV;;;AC3Rb,MAAMuD,IAAkB;;;;;;;;;;;;;;;;;ACIxB,MAAMC,IAA8B,EAAC,qBAAqB;;MAS7CC,IAAoB;;;IAC/BC,EAAAC,IAAAC,WAAA;IAMAC,EAAAF,IAAAC,OAAmC;MACjCE,EAAAF,MAAIF,GAAA,KAAmBK;AAA6B;IAGtDC,EAAAL,IAAAC,OAAqC;MACnCK,QAAQC,IAAI;AAAkB;iCATU;8BACH;2BACJ;;EAUnC,gBAAAC;IACEvD,YAAW;MACTgD,KAAKQ,kBAAkB;AAAsB,QAC5C;;EAGL,MAAAC;IACE,OACEC,EAACC,GAAI,MACHD,EAAA;MAAUE,OAAOhB;QACjBc,EAAA;MACEG,WAAU;MACVC,0BAA0BZ,EAAAF,MAAIC,GAAA;MAC9Bc,4BAA4Bb,EAAAF,MAAII,GAAA;MAChCY,KAAKC,KACFC,EAAAlB,MAAIF,GAAqBmB,GAAmC;MAE/DE,OAAM;OAENT,EAAA;MACEU,WAAWtD;MACXqD,OAAM;MACNE,oBAAoB;MACpBC,cAAa;MACbC,eAAc;MACdC,YAAYC,EACV,2BACA,SACA;MAEFC,UAAU;MACVC,OAAOnC;MACPoC,uBAAuB5B,KAAK4B;MAC5BC,cAAcxD;OAEdqC,EAAA;MAAKoB,MAAK;OAAoB"}