@genexus/genexus-ide-ui 1.1.23 → 1.1.25

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 (359) hide show
  1. package/dist/cjs/MERCURY_ASSETS-f14e91ff.js +9 -0
  2. package/dist/cjs/{MERCURY_ASSETS-15c5c1ac.js.map → MERCURY_ASSETS-f14e91ff.js.map} +1 -1
  3. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  4. package/dist/cjs/gx-ide-about.cjs.entry.js +1 -1
  5. package/dist/cjs/gx-ide-about.cjs.entry.js.map +1 -1
  6. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +1 -1
  7. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +1 -1
  8. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +1 -1
  9. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js.map +1 -1
  12. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +1 -1
  13. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js.map +1 -1
  14. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +5 -5
  15. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +2 -2
  17. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +2 -2
  19. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +1 -1
  21. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +1 -1
  22. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +1 -1
  23. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +1 -1
  24. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
  25. package/dist/cjs/gx-ide-design-import.cjs.entry.js +1 -1
  26. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +1 -1
  27. package/dist/cjs/gx-ide-file-item.cjs.entry.js +1 -1
  28. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +1 -1
  29. package/dist/cjs/gx-ide-json-import.cjs.entry.js +1 -1
  30. package/dist/cjs/gx-ide-json-import.cjs.entry.js.map +1 -1
  31. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +1 -1
  32. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +2 -2
  33. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  34. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +1 -1
  35. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +1 -1
  36. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +1 -1
  37. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +1 -1
  38. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +2 -2
  39. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js.map +1 -1
  40. package/dist/cjs/gx-ide-plugin-details.cjs.entry.js +2 -2
  41. package/dist/cjs/gx-ide-plugin-details.cjs.entry.js.map +1 -1
  42. package/dist/cjs/gx-ide-plugin-explorer.cjs.entry.js +1 -1
  43. package/dist/cjs/gx-ide-references.cjs.entry.js +2 -2
  44. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  45. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +144 -112
  46. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
  47. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +1 -1
  48. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +2 -2
  49. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  50. package/dist/cjs/gx-ide-splash.cjs.entry.js +1 -1
  51. package/dist/cjs/gx-ide-start-page.cjs.entry.js +1 -1
  52. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js +3 -3
  53. package/dist/cjs/gx-ide-team-dev-bring-changes.cjs.entry.js.map +1 -1
  54. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +2 -2
  55. package/dist/cjs/gx-ide-team-dev-history.cjs.entry.js +2 -2
  56. package/dist/cjs/gx-ide-test.cjs.entry.js +1 -1
  57. package/dist/cjs/gx-ide-test.cjs.entry.js.map +1 -1
  58. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +1 -1
  59. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +1 -1
  60. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +235 -211
  61. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
  62. package/dist/cjs/index.cjs.js +2 -5
  63. package/dist/cjs/index.cjs.js.map +1 -1
  64. package/dist/cjs/loader.cjs.js +1 -1
  65. package/dist/cjs/render-item.lit-3f18e009.js +329 -0
  66. package/dist/cjs/render-item.lit-3f18e009.js.map +1 -0
  67. package/dist/cjs/{utilities-6118dc24.js → utilities-0b308992.js} +2 -2
  68. package/dist/cjs/{utilities-6118dc24.js.map → utilities-0b308992.js.map} +1 -1
  69. package/dist/collection/components/_test/test.js +1 -1
  70. package/dist/collection/components/_test/test.js.map +1 -1
  71. package/dist/collection/components/about/about.css +1 -0
  72. package/dist/collection/components/bpm/import-files/bpm-import-files.js +1 -1
  73. package/dist/collection/components/bpm/import-files/bpm-import-files.js.map +1 -1
  74. package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.js +1 -1
  75. package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.js.map +1 -1
  76. package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.js +1 -1
  77. package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.js.map +1 -1
  78. package/dist/collection/components/bpm/task-documents/task-documents.js +4 -4
  79. package/dist/collection/components/bpm/task-documents/task-documents.js.map +1 -1
  80. package/dist/collection/components/chat/chat-container/chat-container.css +0 -5
  81. package/dist/collection/components/chat/lit-custom-render/actions.lit.js +27 -0
  82. package/dist/collection/components/chat/lit-custom-render/actions.lit.js.map +1 -0
  83. package/dist/collection/components/chat/lit-custom-render/code-block.lit.js +46 -0
  84. package/dist/collection/components/chat/lit-custom-render/code-block.lit.js.map +1 -0
  85. package/dist/collection/components/chat/lit-custom-render/dots-animation.js +61 -0
  86. package/dist/collection/components/chat/lit-custom-render/dots-animation.js.map +1 -0
  87. package/dist/collection/components/chat/lit-custom-render/render-item.lit.js +122 -0
  88. package/dist/collection/components/chat/lit-custom-render/render-item.lit.js.map +1 -0
  89. package/dist/collection/components/chat/lit-custom-render/spinner-animation.js +58 -0
  90. package/dist/collection/components/chat/lit-custom-render/spinner-animation.js.map +1 -0
  91. package/dist/collection/components/chat/lit-custom-render/types.js +2 -0
  92. package/dist/collection/components/chat/lit-custom-render/types.js.map +1 -0
  93. package/dist/collection/components/chat/lit-custom-render/utils.js +50 -0
  94. package/dist/collection/components/chat/lit-custom-render/utils.js.map +1 -0
  95. package/dist/collection/components/data-type-selector/data-type-selector.js.map +1 -1
  96. package/dist/collection/components/json-import/json-import.js.map +1 -1
  97. package/dist/collection/components/kb-manager-import/kb-manager-import.js +2 -2
  98. package/dist/collection/components/kb-manager-import/kb-manager-import.js.map +1 -1
  99. package/dist/collection/components/open-api-import/open-api-import.js +1 -1
  100. package/dist/collection/components/open-api-import/open-api-import.js.map +1 -1
  101. package/dist/collection/components/plugin-details/plugin-details.js +1 -1
  102. package/dist/collection/components/plugin-details/plugin-details.js.map +1 -1
  103. package/dist/collection/components/references/references.js +1 -1
  104. package/dist/collection/components/references/references.js.map +1 -1
  105. package/dist/collection/components/team-dev/bring-changes/bring-changes.js +1 -1
  106. package/dist/collection/components/team-dev/bring-changes/bring-changes.js.map +1 -1
  107. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +1 -1
  108. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
  109. package/dist/collection/components/team-dev/share-kb/share-kb.js +1 -1
  110. package/dist/collection/components/team-dev/share-kb/share-kb.js.map +1 -1
  111. package/dist/collection/components/team-dev/update/update.js +1 -1
  112. package/dist/collection/components/ww-files/gx-ide-assets/ww-files/langs/ww-files.lang.en.json +10 -1
  113. package/dist/collection/components/ww-files/gx-ide-assets/ww-files/langs/ww-files.lang.ja.json +9 -0
  114. package/dist/collection/components/ww-files/gx-ide-assets/ww-files/langs/ww-files.lang.zh.json +9 -0
  115. package/dist/collection/components/ww-files/helpers.js +12 -0
  116. package/dist/collection/components/ww-files/helpers.js.map +1 -1
  117. package/dist/collection/components/ww-files/ww-files.css +49 -63
  118. package/dist/collection/components/ww-files/ww-files.js +270 -421
  119. package/dist/collection/components/ww-files/ww-files.js.map +1 -1
  120. package/dist/collection/index.js +2 -1
  121. package/dist/collection/index.js.map +1 -1
  122. package/dist/collection/showcase/chat-container/callbacks.js +44 -187
  123. package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
  124. package/dist/collection/showcase/chat-container/chat.showcase.js +7 -6
  125. package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
  126. package/dist/collection/showcase/chat-container/models.js +321 -0
  127. package/dist/collection/showcase/chat-container/models.js.map +1 -0
  128. package/dist/components/MERCURY_ASSETS.js +1 -1
  129. package/dist/components/MERCURY_ASSETS.js.map +1 -1
  130. package/dist/components/bpm-objects-selector.js +1 -1
  131. package/dist/components/bpm-objects-selector.js.map +1 -1
  132. package/dist/components/chat-container.js +1 -1
  133. package/dist/components/chat-container.js.map +1 -1
  134. package/dist/components/gx-ide-about.js +1 -1
  135. package/dist/components/gx-ide-about.js.map +1 -1
  136. package/dist/components/gx-ide-bpm-import-files.js +1 -1
  137. package/dist/components/gx-ide-bpm-import-files.js.map +1 -1
  138. package/dist/components/gx-ide-bpm-import-gxpm.js +1 -1
  139. package/dist/components/gx-ide-bpm-import-gxpm.js.map +1 -1
  140. package/dist/components/gx-ide-bpm-task-documents.js +4 -4
  141. package/dist/components/gx-ide-bpm-task-documents.js.map +1 -1
  142. package/dist/components/gx-ide-create-kb-from-server.js +1 -1
  143. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  144. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  145. package/dist/components/gx-ide-json-import.js.map +1 -1
  146. package/dist/components/gx-ide-kb-manager-import.js +1 -1
  147. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  148. package/dist/components/gx-ide-open-api-import.js +1 -1
  149. package/dist/components/gx-ide-open-api-import.js.map +1 -1
  150. package/dist/components/gx-ide-plugin-details.js +1 -1
  151. package/dist/components/gx-ide-plugin-details.js.map +1 -1
  152. package/dist/components/gx-ide-references.js +1 -1
  153. package/dist/components/gx-ide-references.js.map +1 -1
  154. package/dist/components/gx-ide-sc-chat-container.js +145 -112
  155. package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
  156. package/dist/components/gx-ide-share-kb.js +1 -1
  157. package/dist/components/gx-ide-share-kb.js.map +1 -1
  158. package/dist/components/gx-ide-team-dev-bring-changes.js +1 -1
  159. package/dist/components/gx-ide-team-dev-bring-changes.js.map +1 -1
  160. package/dist/components/gx-ide-test.js +1 -1
  161. package/dist/components/gx-ide-test.js.map +1 -1
  162. package/dist/components/gx-ide-ww-files.js +258 -233
  163. package/dist/components/gx-ide-ww-files.js.map +1 -1
  164. package/dist/components/index.js +1 -1
  165. package/dist/components/index.js.map +1 -1
  166. package/dist/components/render-item.lit.js +327 -0
  167. package/dist/components/render-item.lit.js.map +1 -0
  168. package/dist/esm/MERCURY_ASSETS-ccf43ae3.js +7 -0
  169. package/dist/esm/{MERCURY_ASSETS-7c06e424.js.map → MERCURY_ASSETS-ccf43ae3.js.map} +1 -1
  170. package/dist/esm/genexus-ide-ui.js +1 -1
  171. package/dist/esm/gx-ide-about.entry.js +1 -1
  172. package/dist/esm/gx-ide-about.entry.js.map +1 -1
  173. package/dist/esm/gx-ide-ai-message.entry.js +1 -1
  174. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +1 -1
  175. package/dist/esm/gx-ide-bpm-import-files.entry.js +1 -1
  176. package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
  177. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +1 -1
  178. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js.map +1 -1
  179. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +1 -1
  180. package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -1
  181. package/dist/esm/gx-ide-bpm-task-documents.entry.js +5 -5
  182. package/dist/esm/gx-ide-bpm-task-documents.entry.js.map +1 -1
  183. package/dist/esm/gx-ide-chat-container_2.entry.js +2 -2
  184. package/dist/esm/gx-ide-chat-container_2.entry.js.map +1 -1
  185. package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -2
  186. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  187. package/dist/esm/gx-ide-current-user-info.entry.js +1 -1
  188. package/dist/esm/gx-ide-dashboard-home.entry.js +1 -1
  189. package/dist/esm/gx-ide-data-selector.entry.js +1 -1
  190. package/dist/esm/gx-ide-data-type-selector.entry.js +1 -1
  191. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  192. package/dist/esm/gx-ide-design-import.entry.js +1 -1
  193. package/dist/esm/gx-ide-entity-selector.entry.js +1 -1
  194. package/dist/esm/gx-ide-file-item.entry.js +1 -1
  195. package/dist/esm/gx-ide-file-uploader.entry.js +1 -1
  196. package/dist/esm/gx-ide-json-import.entry.js +1 -1
  197. package/dist/esm/gx-ide-json-import.entry.js.map +1 -1
  198. package/dist/esm/gx-ide-kb-manager-export.entry.js +1 -1
  199. package/dist/esm/gx-ide-kb-manager-import.entry.js +2 -2
  200. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  201. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +1 -1
  202. package/dist/esm/gx-ide-manage-module-references.entry.js +1 -1
  203. package/dist/esm/gx-ide-new-kb.entry.js +1 -1
  204. package/dist/esm/gx-ide-object-selector.entry.js +1 -1
  205. package/dist/esm/gx-ide-open-api-import.entry.js +2 -2
  206. package/dist/esm/gx-ide-open-api-import.entry.js.map +1 -1
  207. package/dist/esm/gx-ide-plugin-details.entry.js +2 -2
  208. package/dist/esm/gx-ide-plugin-details.entry.js.map +1 -1
  209. package/dist/esm/gx-ide-plugin-explorer.entry.js +1 -1
  210. package/dist/esm/gx-ide-references.entry.js +2 -2
  211. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  212. package/dist/esm/gx-ide-sc-chat-container.entry.js +145 -113
  213. package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
  214. package/dist/esm/gx-ide-select-kb-items.entry.js +1 -1
  215. package/dist/esm/gx-ide-share-kb.entry.js +2 -2
  216. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  217. package/dist/esm/gx-ide-splash.entry.js +1 -1
  218. package/dist/esm/gx-ide-start-page.entry.js +1 -1
  219. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js +3 -3
  220. package/dist/esm/gx-ide-team-dev-bring-changes.entry.js.map +1 -1
  221. package/dist/esm/gx-ide-team-dev-commit.entry.js +2 -2
  222. package/dist/esm/gx-ide-team-dev-history.entry.js +2 -2
  223. package/dist/esm/gx-ide-test.entry.js +1 -1
  224. package/dist/esm/gx-ide-test.entry.js.map +1 -1
  225. package/dist/esm/gx-ide-welcome-page.entry.js +1 -1
  226. package/dist/esm/gx-ide-ww-attributes.entry.js +1 -1
  227. package/dist/esm/gx-ide-ww-files.entry.js +236 -212
  228. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
  229. package/dist/esm/index.js +1 -3
  230. package/dist/esm/index.js.map +1 -1
  231. package/dist/esm/loader.js +1 -1
  232. package/dist/esm/render-item.lit-449f2946.js +327 -0
  233. package/dist/esm/render-item.lit-449f2946.js.map +1 -0
  234. package/dist/esm/{utilities-6fdb43e4.js → utilities-00ec1b22.js} +2 -2
  235. package/dist/esm/{utilities-6fdb43e4.js.map → utilities-00ec1b22.js.map} +1 -1
  236. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  237. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  238. package/dist/genexus-ide-ui/gx-ide-assets/ww-files/langs/ww-files.lang.en.json +10 -1
  239. package/dist/genexus-ide-ui/gx-ide-assets/ww-files/langs/ww-files.lang.ja.json +9 -0
  240. package/dist/genexus-ide-ui/gx-ide-assets/ww-files/langs/ww-files.lang.zh.json +9 -0
  241. package/dist/genexus-ide-ui/index.esm.js +1 -5
  242. package/dist/genexus-ide-ui/index.esm.js.map +1 -1
  243. package/dist/genexus-ide-ui/p-04c6bd23.entry.js.map +1 -1
  244. package/dist/genexus-ide-ui/{p-476b74a1.entry.js → p-05f1ff03.entry.js} +2 -2
  245. package/dist/genexus-ide-ui/p-05f1ff03.entry.js.map +1 -0
  246. package/dist/genexus-ide-ui/{p-863ef4de.entry.js → p-0937c905.entry.js} +2 -2
  247. package/dist/genexus-ide-ui/{p-0cd3ab87.entry.js → p-0a0ab008.entry.js} +3 -3
  248. package/dist/genexus-ide-ui/p-0a0ab008.entry.js.map +1 -0
  249. package/dist/genexus-ide-ui/p-163bfc6a.entry.js +611 -0
  250. package/dist/genexus-ide-ui/p-163bfc6a.entry.js.map +1 -0
  251. package/dist/genexus-ide-ui/{p-1292a6b9.entry.js → p-1664d366.entry.js} +2 -2
  252. package/dist/genexus-ide-ui/{p-1292a6b9.entry.js.map → p-1664d366.entry.js.map} +1 -1
  253. package/dist/genexus-ide-ui/{p-884e0ed9.entry.js → p-2ad98d24.entry.js} +3 -3
  254. package/dist/genexus-ide-ui/{p-884e0ed9.entry.js.map → p-2ad98d24.entry.js.map} +1 -1
  255. package/dist/genexus-ide-ui/{p-d4ef0c35.entry.js → p-2d04b927.entry.js} +3 -3
  256. package/dist/genexus-ide-ui/{p-8bb9242a.entry.js → p-36c7a87b.entry.js} +2 -2
  257. package/dist/genexus-ide-ui/p-36c7a87b.entry.js.map +1 -0
  258. package/dist/genexus-ide-ui/{p-ca706700.entry.js → p-3dbd3842.entry.js} +3 -3
  259. package/dist/genexus-ide-ui/{p-2987a259.js → p-401bfc97.js} +4430 -4318
  260. package/dist/genexus-ide-ui/p-401bfc97.js.map +1 -0
  261. package/dist/genexus-ide-ui/p-46ffec64.entry.js.map +1 -1
  262. package/dist/genexus-ide-ui/{p-45539ad0.entry.js → p-494b3955.entry.js} +2 -2
  263. package/dist/genexus-ide-ui/{p-45539ad0.entry.js.map → p-494b3955.entry.js.map} +1 -1
  264. package/dist/genexus-ide-ui/{p-d77582b8.entry.js → p-4ad7826c.entry.js} +2 -2
  265. package/dist/genexus-ide-ui/{p-72b5d3e4.entry.js → p-4bb2c398.entry.js} +2 -2
  266. package/dist/genexus-ide-ui/{p-810ad95f.entry.js → p-538594e2.entry.js} +2 -2
  267. package/dist/genexus-ide-ui/{p-641c79a9.entry.js → p-5e7f8ae6.entry.js} +2 -2
  268. package/dist/genexus-ide-ui/{p-c50b9883.entry.js → p-5ff6fe1d.entry.js} +2 -2
  269. package/dist/genexus-ide-ui/{p-c50b9883.entry.js.map → p-5ff6fe1d.entry.js.map} +1 -1
  270. package/dist/genexus-ide-ui/{p-7ae2a57f.entry.js → p-6e958b79.entry.js} +2 -2
  271. package/dist/genexus-ide-ui/{p-4e6425f3.entry.js → p-731b8947.entry.js} +183 -142
  272. package/dist/genexus-ide-ui/p-731b8947.entry.js.map +1 -0
  273. package/dist/genexus-ide-ui/{p-012cfb1d.entry.js → p-75d6c740.entry.js} +2 -2
  274. package/dist/genexus-ide-ui/{p-7d7cf30d.entry.js → p-8714eeb1.entry.js} +2 -2
  275. package/dist/genexus-ide-ui/{p-ca9978e1.entry.js → p-88581fe4.entry.js} +2 -2
  276. package/dist/genexus-ide-ui/{p-1be1db4e.entry.js → p-8e34e92b.entry.js} +2 -2
  277. package/dist/genexus-ide-ui/p-8e34e92b.entry.js.map +1 -0
  278. package/dist/genexus-ide-ui/{p-ea02e5cf.entry.js → p-960d9108.entry.js} +2 -2
  279. package/dist/genexus-ide-ui/{p-ea02e5cf.entry.js.map → p-960d9108.entry.js.map} +1 -1
  280. package/dist/genexus-ide-ui/{p-7053c38e.entry.js → p-9d985956.entry.js} +11 -11
  281. package/dist/genexus-ide-ui/{p-7f65f9e3.entry.js → p-a708a870.entry.js} +2 -2
  282. package/dist/genexus-ide-ui/{p-c92332af.entry.js → p-b0aa8cdb.entry.js} +2 -2
  283. package/dist/genexus-ide-ui/{p-93cdb6f8.entry.js → p-bfe3277f.entry.js} +2 -2
  284. package/dist/genexus-ide-ui/{p-760d8f2a.entry.js → p-c3abc0f5.entry.js} +2 -2
  285. package/dist/genexus-ide-ui/{p-760d8f2a.entry.js.map → p-c3abc0f5.entry.js.map} +1 -1
  286. package/dist/genexus-ide-ui/{p-52f37ec7.entry.js → p-caa5ee2f.entry.js} +8 -8
  287. package/dist/genexus-ide-ui/{p-a869ec48.entry.js → p-d4ca8530.entry.js} +2 -2
  288. package/dist/genexus-ide-ui/{p-0f8a8202.js → p-d7a91333.js} +2 -2
  289. package/dist/genexus-ide-ui/p-d8379699.entry.js.map +1 -1
  290. package/dist/genexus-ide-ui/{p-c9bca7c0.entry.js → p-dce532ea.entry.js} +2 -2
  291. package/dist/genexus-ide-ui/{p-bbb5b0fb.entry.js → p-e02e3694.entry.js} +2 -2
  292. package/dist/genexus-ide-ui/{p-75c1634c.entry.js → p-e162771e.entry.js} +2 -2
  293. package/dist/genexus-ide-ui/{p-75c1634c.entry.js.map → p-e162771e.entry.js.map} +1 -1
  294. package/dist/genexus-ide-ui/p-e24902a0.entry.js.map +1 -1
  295. package/dist/genexus-ide-ui/{p-7d107d2f.entry.js → p-f3f068f6.entry.js} +2 -2
  296. package/dist/genexus-ide-ui/{p-fd440291.entry.js → p-f4a60017.entry.js} +2 -2
  297. package/dist/genexus-ide-ui/{p-7cece7a8.entry.js → p-f52ea9d4.entry.js} +2 -2
  298. package/dist/genexus-ide-ui/{p-7cece7a8.entry.js.map → p-f52ea9d4.entry.js.map} +1 -1
  299. package/dist/genexus-ide-ui/{p-54fb1287.entry.js → p-f83ceb69.entry.js} +2 -2
  300. package/dist/genexus-ide-ui/p-fd4f9904.js +955 -0
  301. package/dist/genexus-ide-ui/p-fd4f9904.js.map +1 -0
  302. package/dist/types/components/chat/lit-custom-render/actions.lit.d.ts +2 -0
  303. package/dist/types/components/chat/lit-custom-render/code-block.lit.d.ts +2 -0
  304. package/dist/types/components/chat/lit-custom-render/dots-animation.d.ts +5 -0
  305. package/dist/types/components/chat/lit-custom-render/render-item.lit.d.ts +3 -0
  306. package/dist/types/components/chat/lit-custom-render/spinner-animation.d.ts +5 -0
  307. package/dist/types/components/chat/lit-custom-render/types.d.ts +4 -0
  308. package/dist/types/components/chat/lit-custom-render/utils.d.ts +23 -0
  309. package/dist/types/components/ww-files/helpers.d.ts +1 -0
  310. package/dist/types/components/ww-files/ww-files.d.ts +36 -76
  311. package/dist/types/components.d.ts +10 -89
  312. package/dist/types/index.d.ts +2 -1
  313. package/dist/types/showcase/chat-container/callbacks.d.ts +2 -5
  314. package/dist/types/showcase/chat-container/models.d.ts +15 -0
  315. package/package.json +8 -7
  316. package/dist/cjs/MERCURY_ASSETS-15c5c1ac.js +0 -9
  317. package/dist/cjs/code-render-2af31443.js +0 -86
  318. package/dist/cjs/code-render-2af31443.js.map +0 -1
  319. package/dist/collection/components/chat/code-render.js +0 -65
  320. package/dist/collection/components/chat/code-render.js.map +0 -1
  321. package/dist/components/code-render.js +0 -83
  322. package/dist/components/code-render.js.map +0 -1
  323. package/dist/esm/MERCURY_ASSETS-7c06e424.js +0 -7
  324. package/dist/esm/code-render-e6bf0562.js +0 -83
  325. package/dist/esm/code-render-e6bf0562.js.map +0 -1
  326. package/dist/genexus-ide-ui/p-0cd3ab87.entry.js.map +0 -1
  327. package/dist/genexus-ide-ui/p-1be1db4e.entry.js.map +0 -1
  328. package/dist/genexus-ide-ui/p-2987a259.js.map +0 -1
  329. package/dist/genexus-ide-ui/p-385c9544.entry.js +0 -564
  330. package/dist/genexus-ide-ui/p-385c9544.entry.js.map +0 -1
  331. package/dist/genexus-ide-ui/p-476b74a1.entry.js.map +0 -1
  332. package/dist/genexus-ide-ui/p-4e6425f3.entry.js.map +0 -1
  333. package/dist/genexus-ide-ui/p-60221a44.js +0 -109
  334. package/dist/genexus-ide-ui/p-60221a44.js.map +0 -1
  335. package/dist/genexus-ide-ui/p-8bb9242a.entry.js.map +0 -1
  336. package/dist/types/components/chat/code-render.d.ts +0 -4
  337. /package/dist/genexus-ide-ui/{p-863ef4de.entry.js.map → p-0937c905.entry.js.map} +0 -0
  338. /package/dist/genexus-ide-ui/{p-d4ef0c35.entry.js.map → p-2d04b927.entry.js.map} +0 -0
  339. /package/dist/genexus-ide-ui/{p-ca706700.entry.js.map → p-3dbd3842.entry.js.map} +0 -0
  340. /package/dist/genexus-ide-ui/{p-d77582b8.entry.js.map → p-4ad7826c.entry.js.map} +0 -0
  341. /package/dist/genexus-ide-ui/{p-72b5d3e4.entry.js.map → p-4bb2c398.entry.js.map} +0 -0
  342. /package/dist/genexus-ide-ui/{p-810ad95f.entry.js.map → p-538594e2.entry.js.map} +0 -0
  343. /package/dist/genexus-ide-ui/{p-641c79a9.entry.js.map → p-5e7f8ae6.entry.js.map} +0 -0
  344. /package/dist/genexus-ide-ui/{p-7ae2a57f.entry.js.map → p-6e958b79.entry.js.map} +0 -0
  345. /package/dist/genexus-ide-ui/{p-012cfb1d.entry.js.map → p-75d6c740.entry.js.map} +0 -0
  346. /package/dist/genexus-ide-ui/{p-7d7cf30d.entry.js.map → p-8714eeb1.entry.js.map} +0 -0
  347. /package/dist/genexus-ide-ui/{p-ca9978e1.entry.js.map → p-88581fe4.entry.js.map} +0 -0
  348. /package/dist/genexus-ide-ui/{p-7053c38e.entry.js.map → p-9d985956.entry.js.map} +0 -0
  349. /package/dist/genexus-ide-ui/{p-7f65f9e3.entry.js.map → p-a708a870.entry.js.map} +0 -0
  350. /package/dist/genexus-ide-ui/{p-c92332af.entry.js.map → p-b0aa8cdb.entry.js.map} +0 -0
  351. /package/dist/genexus-ide-ui/{p-93cdb6f8.entry.js.map → p-bfe3277f.entry.js.map} +0 -0
  352. /package/dist/genexus-ide-ui/{p-52f37ec7.entry.js.map → p-caa5ee2f.entry.js.map} +0 -0
  353. /package/dist/genexus-ide-ui/{p-a869ec48.entry.js.map → p-d4ca8530.entry.js.map} +0 -0
  354. /package/dist/genexus-ide-ui/{p-0f8a8202.js.map → p-d7a91333.js.map} +0 -0
  355. /package/dist/genexus-ide-ui/{p-c9bca7c0.entry.js.map → p-dce532ea.entry.js.map} +0 -0
  356. /package/dist/genexus-ide-ui/{p-bbb5b0fb.entry.js.map → p-e02e3694.entry.js.map} +0 -0
  357. /package/dist/genexus-ide-ui/{p-7d107d2f.entry.js.map → p-f3f068f6.entry.js.map} +0 -0
  358. /package/dist/genexus-ide-ui/{p-fd440291.entry.js.map → p-f4a60017.entry.js.map} +0 -0
  359. /package/dist/genexus-ide-ui/{p-54fb1287.entry.js.map → p-f83ceb69.entry.js.map} +0 -0
@@ -1,54 +1,156 @@
1
- import { g as e, r as t, h as n, H as a } from "./p-25a9f1d7.js";
1
+ import { r as e, h as t, H as n } from "./p-25a9f1d7.js";
2
2
 
3
- import { m as s } from "./p-60221a44.js";
3
+ import { r as a } from "./p-fd4f9904.js";
4
4
 
5
- import "./p-0c0eb8ae.js";
5
+ const s = '\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}';
6
6
 
7
- const o = "{{ASSISTANT_NAME}}";
7
+ const i = "Nexa";
8
8
 
9
- let i;
9
+ // - - - - - - - - - - - - - -
10
+ // Other messages
11
+ // - - - - - - - - - - - - - -
12
+ const o = `\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\`\`\`\n{\n "firstName": "John",\n "lastName": "Smith",\n "age": 25\n}\n\`\`\`\n\nAnother 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}\nThis feature allows you to add color highlighting for whatever language your code was written in.\nTo 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\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport Markdown from 'react-markdown'\nimport rehypeHighlight from 'rehype-highlight'\n\nconst markdown = \`\n# Your markdown here\n\`\n\nReactDOM.render(\n <Markdown rehypePlugins={[rehypeHighlight]}>{markdown}</Markdown>,\n document.querySelector('#content')\n)\n\`\`\`\n\n###### Horizontal Rules {#horizontal-rules}\nTo create a horizontal rule, use three or more asterisks (\`***\`), dashes (\`---\`), or underscores (\`___\`) on a line by themselves.\n`;
10
13
 
11
- const r = `\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\`\`\`\n{\n "firstName": "John",\n "lastName": "Smith",\n "age": 25\n}\n\`\`\`\n\nAnother 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}\nThis feature allows you to add color highlighting for whatever language your code was written in.\nTo 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\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport Markdown from 'react-markdown'\nimport rehypeHighlight from 'rehype-highlight'\n\nconst markdown = \`\n# Your markdown here\n\`\n\nReactDOM.render(\n <Markdown rehypePlugins={[rehypeHighlight]}>{markdown}</Markdown>,\n document.querySelector('#content')\n)\n\`\`\`\n\n###### Horizontal Rules {#horizontal-rules}\nTo create a horizontal rule, use three or more asterisks (\`***\`), dashes (\`---\`), or underscores (\`___\`) on a line by themselves.\n`;
14
+ Array.from({
15
+ length: 40
16
+ }, ((e, t) => t % 2 === 0 ? {
17
+ id: `index: ${t}`,
18
+ role: "user",
19
+ content: `index: ${t}` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n`
20
+ } : {
21
+ id: `index: ${t}`,
22
+ role: "assistant",
23
+ content: s + `\nindex: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n`
24
+ }));
25
+
26
+ const r = [ {
27
+ id: "1",
28
+ role: "user",
29
+ content: "Please give me an example about...",
30
+ metadata: "14:55"
31
+ }, {
32
+ id: "2",
33
+ role: "assistant",
34
+ status: "complete",
35
+ content: "Action required example. Action required example. Action required example.",
36
+ metadata: {
37
+ assistantName: i,
38
+ time: "14:25"
39
+ }
40
+ }, {
41
+ id: "3",
42
+ role: "assistant",
43
+ status: "complete",
44
+ content: "Some fields contain missing or invalid data, which may prevent the process from completing correctly. Review your input carefully and make any necessary corrections before continuing.",
45
+ metadata: {
46
+ assistantName: i,
47
+ time: "14:25"
48
+ },
49
+ parts: "warning"
50
+ }, {
51
+ id: "4",
52
+ role: "error",
53
+ content: "An unexpected error occurred while processing your request, and the operation couldn’t be completed.Please check your internet connection or try again later. If the problem persists, contact support.",
54
+ metadata: {
55
+ assistantName: i,
56
+ time: "14:25"
57
+ }
58
+ }, {
59
+ id: "5",
60
+ role: "assistant",
61
+ status: "complete",
62
+ content: "Your information has been saved successfully, and all changes are now reflected in your account. You can continue with the next steps or return to the dashboard at any time.",
63
+ metadata: {
64
+ assistantName: i,
65
+ time: "14:25"
66
+ },
67
+ parts: "success"
68
+ }, {
69
+ id: "6",
70
+ role: "user",
71
+ 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",
72
+ metadata: "15:00"
73
+ }, {
74
+ id: "7",
75
+ role: "assistant",
76
+ status: "complete",
77
+ 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.",
78
+ metadata: {
79
+ assistantName: i,
80
+ time: "14:25"
81
+ }
82
+ }, {
83
+ id: "8",
84
+ role: "assistant",
85
+ status: "waiting",
86
+ content: "You can provide further details or updates",
87
+ metadata: {
88
+ assistantName: i,
89
+ time: "14:25"
90
+ }
91
+ }, {
92
+ id: "9",
93
+ role: "assistant",
94
+ status: "complete",
95
+ content: s,
96
+ metadata: {
97
+ assistantName: i,
98
+ time: "14:25"
99
+ }
100
+ } ];
12
101
 
13
- const c = `\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`;
102
+ const c = "{{ASSISTANT_NAME}}";
14
103
 
15
- const sendChatToLLM = e => () => {
104
+ const sendChatMessages = e => () => {
16
105
  e.generatingResponse = true;
17
106
  e.addNewMessage({
18
107
  id: `${(new Date).getTime()}`,
19
108
  role: "assistant",
20
109
  content: "Analyzing",
21
- status: "waiting"
110
+ status: "waiting",
111
+ metadata: {
112
+ assistantName: i,
113
+ time: "14:25"
114
+ }
22
115
  });
23
- i = setTimeout((() => {
116
+ setTimeout((() => {
24
117
  e.updateLastMessage({
25
118
  role: "assistant",
26
119
  content: "Processing with Chat with LLMs",
27
- status: "waiting"
120
+ status: "waiting",
121
+ metadata: {
122
+ assistantName: i,
123
+ time: "14:25"
124
+ }
28
125
  }, "replace");
29
- i = setTimeout((() => {
30
- dummyStreaming(e, 20, r, "replace");
31
- }), 1e4);
32
- }), 2e4);
126
+ setTimeout((() => {
127
+ dummyStreaming(e, 20, o, "replace");
128
+ }), 2e3);
129
+ }), 2e3);
130
+ };
131
+
132
+ const stopGeneratingAnswer = () => {
133
+ console.log("stop generating answer");
134
+ return new Promise((e => {
135
+ // Lógica asincrónica aquí si es necesario
136
+ e();
137
+ }));
33
138
  };
34
139
 
35
140
  const chatCallbacksWithChatRef = e => ({
36
- clear: () => new Promise((e => e())),
37
- sendChatToLLM: sendChatToLLM(e),
38
- uploadImage: () => new Promise((e => e(""))),
39
- stopGeneratingAnswer: () => {
40
- clearTimeout(i);
41
- e.updateLastMessage({
42
- role: "assistant",
43
- content: "",
44
- status: "complete"
45
- }, "concat");
46
- return new Promise((e => setTimeout((() => e), 10)));
47
- }
141
+ sendChatMessages: sendChatMessages(e),
142
+ uploadFile: e => new Promise((() => {
143
+ console.log("file", e);
144
+ return Promise.resolve({
145
+ url: "Error",
146
+ mimeType: "application/javascript"
147
+ });
148
+ })),
149
+ stopGeneratingAnswer
48
150
  });
49
151
 
50
152
  function dummyStreaming(e, t, n, a) {
51
- i = setTimeout((() => {
153
+ setTimeout((() => {
52
154
  const s = t >= n.length;
53
155
  e.updateLastMessage({
54
156
  role: "assistant",
@@ -68,7 +170,11 @@ function dummyStreaming(e, t, n, a) {
68
170
  // ]
69
171
  // : undefined
70
172
  // },
71
- status: s ? "complete" : "streaming"
173
+ status: s ? "complete" : "streaming",
174
+ metadata: {
175
+ assistantName: i,
176
+ time: "14:25"
177
+ }
72
178
  }, a);
73
179
  if (!s) {
74
180
  dummyStreaming(e, t + 20, n, "concat");
@@ -81,10 +187,8 @@ function dummyStreaming(e, t, n, a) {
81
187
  const d = {
82
188
  accessibleName: {
83
189
  clearChat: "Clear chat",
84
- copyResponseButton: "Copy assistant response",
190
+ copyMessageContent: "Copy message",
85
191
  downloadCodeButton: "Download code",
86
- imagePicker: "Select images",
87
- removeUploadedImage: "Remove uploaded image",
88
192
  sendButton: "Send",
89
193
  sendInput: "Message",
90
194
  stopGeneratingAnswerButton: "Stop generating answer"
@@ -94,79 +198,17 @@ const d = {
94
198
  },
95
199
  text: {
96
200
  copyCodeButton: "Copy code",
97
- processing: `Processing with ${o}`,
98
- sourceFiles: "Source files:"
201
+ copyMessageContent: "Copy message content",
202
+ downloadCodeButton: "Download code",
203
+ processing: `Processing with ${c}`,
204
+ sourceFiles: "Source files:",
205
+ stopGeneratingAnswerButton: "Stop generating answer"
99
206
  }
100
207
  };
101
208
 
102
- Array.from({
103
- length: 40
104
- }, ((e, t) => t % 2 === 0 ? {
105
- id: `index: ${t}`,
106
- role: "user",
107
- content: `index: ${t}` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n`
108
- } : {
109
- id: `index: ${t}`,
110
- role: "assistant",
111
- content: c + `\nindex: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n` + `index: ${t}\n`
112
- }));
113
-
114
- const l = [ {
115
- id: "1",
116
- role: "user",
117
- content: "Please give me an example about...",
118
- metadata: "14:55"
119
- }, {
120
- id: "2",
121
- role: "assistant",
122
- status: "complete",
123
- content: "Action required example. Action required example. Action required example.",
124
- metadata: "14:56"
125
- }, {
126
- id: "3",
127
- role: "assistant",
128
- status: "complete",
129
- content: "Some fields contain missing or invalid data, which may prevent the process from completing correctly. Review your input carefully and make any necessary corrections before continuing.",
130
- metadata: "14:57",
131
- parts: "warning"
132
- }, {
133
- id: "4",
134
- role: "error",
135
- content: "An unexpected error occurred while processing your request, and the operation couldn’t be completed.Please check your internet connection or try again later. If the problem persists, contact support.",
136
- metadata: "14:58"
137
- }, {
138
- id: "5",
139
- role: "assistant",
140
- status: "complete",
141
- content: "Your information has been saved successfully, and all changes are now reflected in your account. You can continue with the next steps or return to the dashboard at any time.",
142
- metadata: "14:59",
143
- parts: "success"
144
- }, {
145
- id: "6",
146
- role: "user",
147
- 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",
148
- metadata: "15:00"
149
- }, {
150
- id: "7",
151
- role: "assistant",
152
- status: "complete",
153
- 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.",
154
- metadata: "15:01"
155
- }, {
156
- id: "8",
157
- role: "assistant",
158
- status: "waiting",
159
- content: "You can provide further details or updates"
160
- }, {
161
- id: "9",
162
- role: "assistant",
163
- status: "complete",
164
- content: c
165
- } ];
166
-
167
- const h = ":host{block-size:100%;display:grid}";
209
+ const l = ":host{block-size:100%;display:grid}";
168
210
 
169
- var u = undefined && undefined.__classPrivateFieldGet || function(e, t, n, a) {
211
+ var h = undefined && undefined.__classPrivateFieldGet || function(e, t, n, a) {
170
212
  if (n === "a" && !a) throw new TypeError("Private accessor was defined without a getter");
171
213
  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");
172
214
  return n === "m" ? a : n === "a" ? a.call(e) : a ? a.value : t.get(e);
@@ -179,24 +221,22 @@ var m = undefined && undefined.__classPrivateFieldSet || function(e, t, n, a, s)
179
221
  return a === "a" ? s.call(e, n) : s ? s.value = n : t.set(e, n), n;
180
222
  };
181
223
 
182
- var p, g, f, w, y, b, k;
183
-
184
- const v = e(`./gx-ide-assets/chat-welcome/images/ai-avatar.svg`);
224
+ var u, p, g, f, w, y, b;
185
225
 
186
- const x = [ "resets/box-sizing", "utils/elevation", "components/chat" ];
226
+ const k = [ "resets/box-sizing", "utils/elevation", "components/chat-lit", "components/markdown-viewer" ];
187
227
 
188
- const T = class {
189
- constructor(e) {
190
- t(this, e);
228
+ const v = class {
229
+ constructor(t) {
230
+ e(this, t);
231
+ u.set(this, void 0);
191
232
  p.set(this, void 0);
192
233
  g.set(this, void 0);
193
234
  f.set(this, void 0);
194
- w.set(this, void 0);
195
- y.set(this, (() => {
196
- u(this, p, "f").showCopyConversationMessage();
235
+ w.set(this, (() => {
236
+ h(this, u, "f").showCopyConversationMessage();
197
237
  }));
198
- b.set(this, (() => {}));
199
- k.set(this, (async e => {
238
+ y.set(this, (() => {}));
239
+ b.set(this, (async e => {
200
240
  let t;
201
241
  if (e.toLowerCase().includes("transaction")) {
202
242
  t = 'To create a transaction in GeneXus, start by opening your KB (Knowledge Base) and selecting "Transaction" from the "New Object" options. Give it a name and define its attributes, starting with a primary key followed by the related data fields. GeneXus will automatically infer the data structure and relationships based on how you define the attributes and their nesting. Once saved, it generates the necessary database tables and forms for inserting, updating, and deleting records. You can then run the application to test the transaction directly in your browser.';
@@ -210,27 +250,27 @@ const T = class {
210
250
  role: "user",
211
251
  content: e
212
252
  };
213
- u(this, f, "f").addNewMessage(n);
253
+ h(this, g, "f").addNewMessage(n);
214
254
  setTimeout((() => {
215
- u(this, f, "f").addNewMessage({
255
+ h(this, g, "f").addNewMessage({
216
256
  id: `${(new Date).getTime()}`,
217
257
  role: "assistant",
218
258
  content: "Analyzing",
219
259
  status: "waiting"
220
260
  });
221
261
  setTimeout((() => {
222
- u(this, f, "f").updateLastMessage({
262
+ h(this, g, "f").updateLastMessage({
223
263
  role: "assistant",
224
264
  content: "Processing with Chat with LLMs",
225
265
  status: "waiting"
226
266
  }, "replace");
227
267
  setTimeout((() => {
228
- u(this, f, "f").updateLastMessage({
268
+ h(this, g, "f").updateLastMessage({
229
269
  role: "assistant",
230
270
  content: "Getting information",
231
271
  status: "waiting"
232
272
  }, "replace");
233
- u(this, f, "f").updateLastMessage({
273
+ h(this, g, "f").updateLastMessage({
234
274
  role: "assistant",
235
275
  content: t,
236
276
  status: "complete"
@@ -251,7 +291,7 @@ const T = class {
251
291
  * It will exit the wellcome screen and remove it from the dom.
252
292
  */ async exitWelcome() {
253
293
  // hand exitWelcome to gx-ide-chat-welcome
254
- u(this, g, "f").exitWelcome();
294
+ h(this, p, "f").exitWelcome();
255
295
  }
256
296
  componentDidLoad() {
257
297
  setTimeout((() => {
@@ -259,13 +299,13 @@ const T = class {
259
299
  }), 1e3);
260
300
  }
261
301
  componentDidRender() {
262
- if (!u(this, w, "f") && u(this, f, "f")) {
263
- m(this, w, chatCallbacksWithChatRef(u(this, f, "f")), "f");
302
+ if (!h(this, f, "f") && h(this, g, "f")) {
303
+ m(this, f, chatCallbacksWithChatRef(h(this, g, "f")), "f");
264
304
  }
265
305
  }
266
306
  async componentWillLoad() {
267
307
  if (this.mode === "messages-sample") {
268
- this.chatItems = l;
308
+ this.chatItems = r;
269
309
  } else if (this.mode === "welcome") {
270
310
  this.chatItems = [];
271
311
  } else if (this.mode === "empty") {
@@ -279,39 +319,40 @@ const T = class {
279
319
  }
280
320
  }
281
321
  render() {
282
- return n(a, null, n("ch-theme", {
283
- model: x
284
- }), n("gx-ide-chat-container", {
322
+ return t(n, null, t("ch-theme", {
323
+ model: k
324
+ }), t("gx-ide-chat-container", {
285
325
  chatTitle: "GeneXus Assistant",
286
- copyConversationCallback: u(this, y, "f"),
287
- deleteConversationCallback: u(this, b, "f"),
288
- ref: e => m(this, p, e, "f"),
326
+ copyConversationCallback: h(this, w, "f"),
327
+ deleteConversationCallback: h(this, y, "f"),
328
+ ref: e => m(this, u, e, "f"),
289
329
  class: "elevation-1"
290
- }, n("ch-chat", {
291
- callbacks: u(this, w, "f"),
292
- class: "chat",
330
+ }, t("ch-chat", {
331
+ callbacks: h(this, f, "f"),
332
+ class: "chat-lit",
293
333
  generatingResponse: this.generatingResponse,
294
334
  loadingState: this.loadingState,
295
- renderItem: s("components/markdown-viewer", v, "Nexa"),
296
- items: this.chatItems,
335
+ renderItem: a,
336
+ items: r,
297
337
  showAdditionalContent: this.showAdditionalContent,
298
338
  translations: d,
299
- ref: e => m(this, f, e, "f")
300
- }, n("gx-ide-chat-welcome", {
301
339
  ref: e => m(this, g, e, "f"),
340
+ markdownTheme: "components/markdown-viewer"
341
+ }, t("gx-ide-chat-welcome", {
342
+ ref: e => m(this, p, e, "f"),
302
343
  slot: "empty-chat",
303
- suggestedPrompRequestedCallback: u(this, k, "f"),
344
+ suggestedPrompRequestedCallback: h(this, b, "f"),
304
345
  suggestedPrompts: [ "I need to represente a product entity", "I want to create a Customer Tracking application. Can you help me with the architecture?", "I need to create a REST API for my application" ]
305
- }), n("div", {
346
+ }), t("div", {
306
347
  slot: "additional-content"
307
348
  }, "Custom content that is rendered when the chat renders content"))));
308
349
  }
309
350
  };
310
351
 
311
- p = new WeakMap, g = new WeakMap, f = new WeakMap, w = new WeakMap, y = new WeakMap,
312
- b = new WeakMap, k = new WeakMap;
352
+ u = new WeakMap, p = new WeakMap, g = new WeakMap, f = new WeakMap, w = new WeakMap,
353
+ y = new WeakMap, b = new WeakMap;
313
354
 
314
- T.style = h;
355
+ v.style = l;
315
356
 
316
- export { T as gx_ide_sc_chat_container };
317
- //# sourceMappingURL=p-4e6425f3.entry.js.map
357
+ export { v as gx_ide_sc_chat_container };
358
+ //# sourceMappingURL=p-731b8947.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ASSISTANT_RESPONSE_SHORT_MARKDOWN","ASSISTANT_NAME","ASSISTANT_RESPONSE_MARKDOWN","Array","from","length","_","index","id","role","content","codeFixerRecord","metadata","status","assistantName","time","parts","PROCESSING_PLACEHOLDER","sendChatMessages","chatRef","generatingResponse","addNewMessage","Date","getTime","setTimeout","updateLastMessage","dummyStreaming","stopGeneratingAnswer","console","log","Promise","resolve","chatCallbacksWithChatRef","chChatRef","uploadFile","file","url","mimeType","counter","stringToDisplay","mode","streamingCompleted","substring","chatTranslations","accessibleName","clearChat","copyMessageContent","downloadCodeButton","sendButton","sendInput","stopGeneratingAnswerButton","placeholder","text","copyCodeButton","processing","sourceFiles","chatShowcaseCss","CSS_BUNDLES","GxIdeScChatContainer","_GxIdeScChatContainer_chatContainerRef","set","this","_GxIdeScChatContainer_chatWelcomeRef","_GxIdeScChatContainer_chChatRef","_GxIdeScChatContainer_chatCallbacks","_GxIdeScChatContainer_copyConversationCallbackHandler","__classPrivateFieldGet","showCopyConversationMessage","_GxIdeScChatContainer_deleteConversationCallbackHandler","_GxIdeScChatContainer_suggestedPrompRequestedCallbackHandler","async","prompt","assistantFinalResponse","toLowerCase","includes","userPrompt","exitWelcome","componentDidLoad","assistantStatus","componentDidRender","__classPrivateFieldSet","componentWillLoad","chatItems","render","h","Host","model","chatTitle","copyConversationCallback","deleteConversationCallback","ref","el","class","callbacks","loadingState","renderItem","renderItemMercury","items","showAdditionalContent","translations","markdownTheme","slot","suggestedPrompRequestedCallback","suggestedPrompts"],"sources":["src/showcase/chat-container/models.ts","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 type {\n ChatMessage,\n ChatTranslations\n} from \"@genexus/chameleon-controls-library\";\n\nimport { MercuryChatMessageMetadata } from \"../../components/chat/lit-custom-render/types\";\n\nexport const 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\nexport const ASSISTANT_NAME = \"Nexa\";\n\n// - - - - - - - - - - - - - -\n// Types of messages\n// - - - - - - - - - - - - - -\n\nexport const userMessageChatModel: ChatMessage[] = [\n {\n id: \"1\",\n role: \"user\",\n content:\n \"Generate a web form for customer registration with fields for name, email, phone, and address. Include validation, save the data to the database, and show a confirmation message after submission.\",\n metadata: null\n }\n];\n\nexport const assistantMessageChatModel: ChatMessage[] = [\n {\n id: \"1\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"I’ve created the basic structure for the registration form, but I need a bit more info: Should the address include city, state, and ZIP? Do you want a separate confirmation page or just a message on the same screen? Any specific format or validation for the phone number?\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n }\n];\n\nexport const assistantMessageWarningChatModel: ChatMessage[] = [\n {\n id: \"1\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"The CustomerRegistration panel was created with warnings: The “Phone” field uses a generic character format—consider a phone mask. No address validation rules applied.The data is still saved correctly, and the panel works as expected.\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata,\n parts: \"warning\"\n }\n];\n\nexport const assistantMessageSuccessChatModel: ChatMessage[] = [\n {\n id: \"1\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"The CustomerRegistration web panel was created successfully. Fields: Name, Email, Phone, Address. Validations applied (required, email format). Data saved to “Customer” transaction. Confirmation message shown after submit. Let me know if you'd like to add styles or link it to another object.\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata,\n parts: \"success\"\n }\n];\n\nexport const errorMessageChatModel: ChatMessage[] = [\n {\n id: \"1\",\n role: \"error\",\n content:\n \"Sorry, I couldn't generate the requested form. Reason: The “Customer” transaction does not exist in the current Knowledge Base. Please create the “Customer” object or check if it’s named differently.\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n }\n];\n\nexport const assistantWaitingChatModel: ChatMessage[] = [\n {\n id: \"1\",\n role: \"assistant\",\n status: \"waiting\",\n content: \"Creating CustomerRegistration panel\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n }\n];\n\nexport const chatTranslations: ChatTranslations = {\n accessibleName: {\n clearChat: \"Clear chat\",\n copyMessageContent: \"Copy assistant content\",\n downloadCodeButton: \"Download code\",\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 copyMessageContent: \"Copy\",\n downloadCodeButton: \"Download\",\n processing: `Processing...`,\n sourceFiles: \"Source files:\",\n stopGeneratingAnswerButton: \"Stop generating answer\"\n }\n};\n\n// All messages\n\nexport const allMessagesModel: ChatMessage[] = [\n {\n id: \"1\",\n role: \"user\",\n content:\n \"Generate a web form for customer registration with fields for name, email, phone, and address. Include validation, save the data to the database, and show a confirmation message after submission.\",\n metadata: null\n },\n {\n id: \"1\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"I’ve created the basic structure for the registration form, but I need a bit more info: Should the address include city, state, and ZIP? Do you want a separate confirmation page or just a message on the same screen? Any specific format or validation for the phone number?\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n },\n {\n id: \"1\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"The CustomerRegistration panel was created with warnings: The “Phone” field uses a generic character format—consider a phone mask. No address validation rules applied.The data is still saved correctly, and the panel works as expected.\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata,\n parts: \"warning\"\n },\n {\n id: \"1\",\n role: \"error\",\n content:\n \"Sorry, I couldn't generate the requested form. Reason: The “Customer” transaction does not exist in the current Knowledge Base. Please create the “Customer” object or check if it’s named differently.\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n },\n {\n id: \"5\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"Your information has been saved successfully, and all changes are now reflected in your account. You can continue with the next steps or return to the dashboard at any time.\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"15:00\"\n } satisfies MercuryChatMessageMetadata,\n parts: \"success\"\n }\n];\n\n// - - - - - - - - - - - - - -\n// Other messages\n// - - - - - - - - - - - - - -\n\nexport const ASSISTANT_RESPONSE_MARKDOWN = `\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\\`\\`\\`\n{\n \"firstName\": \"John\",\n \"lastName\": \"Smith\",\n \"age\": 25\n}\n\\`\\`\\`\n\nAnother 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}\nThis feature allows you to add color highlighting for whatever language your code was written in.\nTo 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\nimport React from 'react'\nimport ReactDOM from 'react-dom'\nimport Markdown from 'react-markdown'\nimport rehypeHighlight from 'rehype-highlight'\n\nconst markdown = \\`\n# Your markdown here\n\\`\n\nReactDOM.render(\n <Markdown rehypePlugins={[rehypeHighlight]}>{markdown}</Markdown>,\n document.querySelector('#content')\n)\n\\`\\`\\`\n\n###### Horizontal Rules {#horizontal-rules}\nTo create a horizontal rule, use three or more asterisks (\\`***\\`), dashes (\\`---\\`), or underscores (\\`___\\`) on a line by themselves.\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: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n },\n {\n id: \"3\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"Some fields contain missing or invalid data, which may prevent the process from completing correctly. Review your input carefully and make any necessary corrections before continuing.\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata,\n parts: \"warning\"\n },\n {\n id: \"4\",\n role: \"error\",\n content:\n \"An unexpected error occurred while processing your request, and the operation couldn’t be completed.Please check your internet connection or try again later. If the problem persists, contact support.\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n },\n {\n id: \"5\",\n role: \"assistant\",\n status: \"complete\",\n content:\n \"Your information has been saved successfully, and all changes are now reflected in your account. You can continue with the next steps or return to the dashboard at any time.\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata,\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: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n },\n {\n id: \"8\",\n role: \"assistant\",\n status: \"waiting\",\n content: \"You can provide further details or updates\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n },\n {\n id: \"9\",\n role: \"assistant\",\n status: \"complete\",\n content: ASSISTANT_RESPONSE_SHORT_MARKDOWN,\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n }\n];\n","import {\n ChatCallbacks,\n ChatTranslations\n} from \"@genexus/chameleon-controls-library\";\nimport { ChatMessageFile } from \"@genexus/chameleon-controls-library/dist/types/components/chat/types\";\n\nimport { ASSISTANT_RESPONSE_MARKDOWN } from \"./models\";\n\nimport { ASSISTANT_NAME } from \"./models\";\nimport { MercuryChatMessageMetadata } from \"../../components/chat/lit-custom-render/types\";\n\nconst PROCESSING_PLACEHOLDER = \"{{ASSISTANT_NAME}}\";\n\nconst sendChatMessages = (chatRef: HTMLChChatElement) => () => {\n chatRef.generatingResponse = true;\n\n chatRef.addNewMessage({\n id: `${new Date().getTime()}`,\n role: \"assistant\",\n content: \"Analyzing\",\n status: \"waiting\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n });\n\n setTimeout(() => {\n chatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: \"Processing with Chat with LLMs\",\n status: \"waiting\",\n metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n },\n \"replace\"\n );\n\n setTimeout(() => {\n dummyStreaming(chatRef, 20, ASSISTANT_RESPONSE_MARKDOWN, \"replace\");\n }, 2000);\n }, 2000);\n};\n\nconst stopGeneratingAnswer = (): Promise<void> => {\n console.log(\"stop generating answer\");\n return new Promise<void>(resolve => {\n // Lógica asincrónica aquí si es necesario\n resolve();\n });\n};\n\nexport const chatCallbacksWithChatRef = (\n chChatRef: HTMLChChatElement\n): ChatCallbacks => {\n return {\n sendChatMessages: sendChatMessages(chChatRef),\n uploadFile: (file: File) =>\n new Promise<ChatMessageFile>(() => {\n console.log(\"file\", file);\n\n return Promise.resolve({\n url: \"Error\",\n mimeType: \"application/javascript\"\n } satisfies ChatMessageFile);\n }),\n stopGeneratingAnswer: stopGeneratingAnswer\n };\n};\n\nfunction dummyStreaming(\n chatRef: HTMLChChatElement,\n counter: number,\n stringToDisplay: string,\n mode: \"concat\" | \"replace\"\n) {\n setTimeout(\n () => {\n const streamingCompleted = counter >= stringToDisplay.length;\n\n chatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: stringToDisplay.substring(counter - 20, counter),\n\n // {\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 metadata: {\n assistantName: ASSISTANT_NAME,\n time: \"14:25\"\n } satisfies MercuryChatMessageMetadata\n },\n mode\n );\n\n if (!streamingCompleted) {\n dummyStreaming(chatRef, counter + 20, stringToDisplay, \"concat\");\n } else {\n chatRef.generatingResponse = false;\n }\n },\n counter % 200 === 0 ? 50 : 40\n );\n}\n\nexport const chatTranslations: ChatTranslations = {\n accessibleName: {\n clearChat: \"Clear chat\",\n copyMessageContent: \"Copy message\",\n downloadCodeButton: \"Download code\",\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 copyMessageContent: \"Copy message content\",\n downloadCodeButton: \"Download code\",\n processing: `Processing with ${PROCESSING_PLACEHOLDER}`,\n sourceFiles: \"Source files:\",\n stopGeneratingAnswerButton: \"Stop generating answer\"\n }\n};\n",":host {\n block-size: 100%;\n display: grid;\n}\n","import { Component, Host, h, State, Prop, Method } from \"@stencil/core\";\nimport { MercuryBundles } from \"@genexus/mercury\";\nimport { renderItemMercury } from \"../../components/chat/lit-custom-render/render-item.lit\";\nimport { codeFixerRecord } from \"./models\";\n\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/elevation\",\n \"components/chat-lit\",\n \"components/markdown-viewer\"\n];\n\nimport { chatCallbacksWithChatRef, chatTranslations } from \"./callbacks\";\nimport {\n ChatMessage,\n ChatCallbacks\n} from \"@genexus/chameleon-controls-library\";\nimport { ChatMessageUser } from \"@genexus/chameleon-controls-library/dist/types/components/chat/types\";\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 #chatWelcomeRef!: HTMLGxIdeChatWelcomeElement;\n #chChatRef!: HTMLChChatElement;\n #chatCallbacks: ChatCallbacks;\n\n /**\n * If true, the chat items length will be 0, since this is a requirement for dipslaying the ch-chat\n * \"empty-chat\" slot that welcome screen uses to display.\n */\n @Prop() readonly mode: \"welcome\" | \"messages-sample\" | \"empty\" =\n \"messages-sample\";\n\n @State() generatingResponse: boolean = false;\n @State() loadingState:\n | \"all-records-loaded\"\n | \"initial\"\n | \"loading\"\n | \"more-data-to-fetch\" = \"all-records-loaded\";\n @State() showAdditionalContent: boolean = false;\n @State() conversationCopied: boolean = false;\n @State() assistantStatus: string = \"Getting Data\";\n @State() chatItems: ChatMessage[] = [];\n\n /**\n * It will exit the wellcome screen and remove it from the dom.\n */\n @Method()\n async exitWelcome() {\n // hand exitWelcome to gx-ide-chat-welcome\n this.#chatWelcomeRef.exitWelcome();\n }\n\n #copyConversationCallbackHandler = () => {\n this.#chatContainerRef.showCopyConversationMessage();\n };\n\n #deleteConversationCallbackHandler = () => {};\n\n componentDidLoad() {\n setTimeout(() => {\n this.assistantStatus = \"Creating Data Base..\";\n }, 1000);\n }\n\n componentDidRender() {\n if (!this.#chatCallbacks && this.#chChatRef) {\n this.#chatCallbacks = chatCallbacksWithChatRef(this.#chChatRef);\n }\n }\n\n async componentWillLoad() {\n if (this.mode === \"messages-sample\") {\n this.chatItems = codeFixerRecord;\n } else if (this.mode === \"welcome\") {\n this.chatItems = [];\n } else if (this.mode === \"empty\") {\n this.chatItems = [\n {\n id: \"1\",\n role: \"assistant\",\n status: \"complete\",\n content: \"Hello! I am your assistant.\",\n metadata: \"14:56\"\n }\n ];\n }\n }\n #suggestedPrompRequestedCallbackHandler = async (\n prompt: string\n ): Promise<void> => {\n let assistantFinalResponse: string;\n if (prompt.toLowerCase().includes(\"transaction\")) {\n assistantFinalResponse =\n 'To create a transaction in GeneXus, start by opening your KB (Knowledge Base) and selecting \"Transaction\" from the \"New Object\" options. Give it a name and define its attributes, starting with a primary key followed by the related data fields. GeneXus will automatically infer the data structure and relationships based on how you define the attributes and their nesting. Once saved, it generates the necessary database tables and forms for inserting, updating, and deleting records. You can then run the application to test the transaction directly in your browser.';\n } else if (prompt.toLowerCase().includes(\"entity\")) {\n assistantFinalResponse =\n 'In GeneXus, creating an entity usually means defining a Transaction object that represents a real-world concept like \"Customer\" or \"Product.\" To do this, create a new Transaction, name it after the entity, and define its attributes—starting with a unique identifier (like CustomerId) and then adding other fields (like CustomerName, CustomerEmail). GeneXus treats this Transaction as an entity and uses it to generate the corresponding table and interface automatically.';\n } else {\n assistantFinalResponse =\n \"Sorry, I didn’t catch that—mind rephrasing it? 😅\";\n }\n\n const userPrompt: ChatMessageUser = {\n id: \"1\",\n role: \"user\",\n content: prompt\n };\n this.#chChatRef.addNewMessage(userPrompt);\n setTimeout(() => {\n this.#chChatRef.addNewMessage({\n id: `${new Date().getTime()}`,\n role: \"assistant\",\n content: \"Analyzing\",\n status: \"waiting\"\n });\n setTimeout(() => {\n this.#chChatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: \"Processing with Chat with LLMs\",\n status: \"waiting\"\n },\n \"replace\"\n );\n setTimeout(() => {\n this.#chChatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: \"Getting information\",\n status: \"waiting\"\n },\n \"replace\"\n );\n this.#chChatRef.updateLastMessage(\n {\n role: \"assistant\",\n content: assistantFinalResponse,\n status: \"complete\"\n },\n \"replace\"\n );\n }, 1500);\n }, 1500);\n }, 100);\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-1\"\n >\n <ch-chat\n callbacks={this.#chatCallbacks}\n class=\"chat-lit\"\n generatingResponse={this.generatingResponse}\n loadingState={this.loadingState} // \"all-records-loaded\" to display the welcome screen\n renderItem={renderItemMercury}\n items={codeFixerRecord} // length 0 to display the welcome screen\n showAdditionalContent={this.showAdditionalContent}\n translations={chatTranslations}\n ref={(el: HTMLChChatElement) =>\n (this.#chChatRef = el as HTMLChChatElement)\n }\n markdownTheme=\"components/markdown-viewer\"\n >\n <gx-ide-chat-welcome\n ref={el =>\n (this.#chatWelcomeRef = el as HTMLGxIdeChatWelcomeElement)\n }\n slot=\"empty-chat\"\n suggestedPrompRequestedCallback={\n this.#suggestedPrompRequestedCallbackHandler\n }\n suggestedPrompts={[\n \"I need to represente a product entity\",\n \"I want to create a Customer Tracking application. Can you help me with the architecture?\",\n \"I need to create a REST API for my application\"\n ]}\n ></gx-ide-chat-welcome>\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":"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"}
@@ -1,6 +1,6 @@
1
1
  import { r as t, g as i, h as e, H as s, a } from "./p-25a9f1d7.js";
2
2
 
3
- import { g as o } from "./p-2987a259.js";
3
+ import { g as o } from "./p-401bfc97.js";
4
4
 
5
5
  import { c as n } from "./p-13738332.js";
6
6
 
@@ -731,4 +731,4 @@ et = new WeakMap;
731
731
  dt.style = p;
732
732
 
733
733
  export { dt as gx_ide_new_kb };
734
- //# sourceMappingURL=p-012cfb1d.entry.js.map
734
+ //# sourceMappingURL=p-75d6c740.entry.js.map
@@ -1,6 +1,6 @@
1
1
  import { r as e, h as i, H as t, a } from "./p-25a9f1d7.js";
2
2
 
3
- import { g as r } from "./p-2987a259.js";
3
+ import { g as r } from "./p-401bfc97.js";
4
4
 
5
5
  import { L as o } from "./p-311eedf3.js";
6
6
 
@@ -454,4 +454,4 @@ d = new WeakSet, b = function _FileUploader_isValidFile(e) {
454
454
  C.style = s;
455
455
 
456
456
  export { C as gx_ide_file_uploader };
457
- //# sourceMappingURL=p-7d7cf30d.entry.js.map
457
+ //# sourceMappingURL=p-8714eeb1.entry.js.map
@@ -4,7 +4,7 @@ import { L as n } from "./p-311eedf3.js";
4
4
 
5
5
  import { c as r } from "./p-13738332.js";
6
6
 
7
- import { g as o } from "./p-2987a259.js";
7
+ import { g as o } from "./p-401bfc97.js";
8
8
 
9
9
  const l = ":host{display:grid;grid-template-rows:max-content 1fr max-content;overflow:auto;block-size:100%}.section{display:contents}.header__field-group{display:grid;grid-template-columns:1fr 1fr}.tabular-grid{contain:size}.data ch-tabular-grid-cell:is(:nth-child(2),:nth-child(3),:nth-child(4)){padding-block:var(--grid-cell__padding-block);padding-inline:var(--grid-cell__padding-inline);align-items:start;justify-content:start;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-inline-size:0}ch-tabular-grid.empty-result::part(main){overflow:hidden}ch-tabular-grid-rowset-empty{position:relative}";
10
10
 
@@ -341,4 +341,4 @@ D = new WeakMap;
341
341
  F.style = l;
342
342
 
343
343
  export { F as gx_ide_data_selector };
344
- //# sourceMappingURL=p-ca9978e1.entry.js.map
344
+ //# sourceMappingURL=p-88581fe4.entry.js.map
@@ -2,7 +2,7 @@ import { r as e, c as t, g as s, h as i, H as a, a as l } from "./p-25a9f1d7.js"
2
2
 
3
3
  import { L as c } from "./p-311eedf3.js";
4
4
 
5
- import { g as o } from "./p-2987a259.js";
5
+ import { g as o } from "./p-401bfc97.js";
6
6
 
7
7
  const taskDocumentsToActionListItemModel = (e, t) => {
8
8
  const s = [];
@@ -414,4 +414,4 @@ W = function _GxIdeBpmTaskDocuments_getAllCheckboxes(e) {
414
414
  F.style = n;
415
415
 
416
416
  export { F as gx_ide_bpm_task_documents };
417
- //# sourceMappingURL=p-1be1db4e.entry.js.map
417
+ //# sourceMappingURL=p-8e34e92b.entry.js.map