@genexus/genexus-ide-ui 1.1.3 → 1.1.5

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 (850) 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-0e9837c4.js +86 -0
  4. package/dist/cjs/code-render-0e9837c4.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/{form-validation-178cf461.js → form-validation-ffe2b957.js} +7 -3
  8. package/dist/cjs/form-validation-ffe2b957.js.map +1 -0
  9. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  10. package/dist/cjs/gx-ide-about.cjs.entry.js +1 -1
  11. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js +10 -16
  12. package/dist/cjs/gx-ide-ai-assistant.cjs.entry.js.map +1 -1
  13. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +4 -5
  14. package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +1 -1
  15. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js +180 -168
  16. package/dist/cjs/gx-ide-bpm-app-declaration.cjs.entry.js.map +1 -1
  17. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js +2 -2
  18. package/dist/cjs/gx-ide-bpm-assign-roles.cjs.entry.js.map +1 -1
  19. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js +4 -6
  20. package/dist/cjs/gx-ide-bpm-export-xpdl.cjs.entry.js.map +1 -1
  21. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js +3 -4
  22. package/dist/cjs/gx-ide-bpm-import-files.cjs.entry.js.map +1 -1
  23. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js +2 -2
  24. package/dist/cjs/gx-ide-bpm-import-gxpm.cjs.entry.js.map +1 -1
  25. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js +2 -2
  26. package/dist/cjs/gx-ide-bpm-objects-selector.cjs.entry.js.map +1 -1
  27. package/dist/cjs/gx-ide-bpm-sync-gam-roles.cjs.entry.js +2 -3
  28. package/dist/cjs/gx-ide-bpm-sync-gam-roles.cjs.entry.js.map +1 -1
  29. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js +13 -16
  30. package/dist/cjs/gx-ide-bpm-task-documents.cjs.entry.js.map +1 -1
  31. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js +3 -4
  32. package/dist/cjs/gx-ide-bpm-timer-duration.cjs.entry.js.map +1 -1
  33. package/dist/cjs/gx-ide-card.cjs.entry.js +2 -2
  34. package/dist/cjs/gx-ide-card.cjs.entry.js.map +1 -1
  35. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js +239 -0
  36. package/dist/cjs/gx-ide-chat-container_2.cjs.entry.js.map +1 -0
  37. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js +18 -23
  38. package/dist/cjs/gx-ide-connect-gx-server.cjs.entry.js.map +1 -1
  39. package/dist/cjs/gx-ide-container_2.cjs.entry.js +1 -2
  40. package/dist/cjs/gx-ide-container_2.cjs.entry.js.map +1 -1
  41. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +9 -14
  42. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  43. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +5 -7
  44. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
  45. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +7 -9
  46. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
  47. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +6 -8
  48. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  49. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +6 -8
  50. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
  51. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js +17 -21
  52. package/dist/cjs/gx-ide-deployment-tool.cjs.entry.js.map +1 -1
  53. package/dist/cjs/gx-ide-design-import.cjs.entry.js +27 -36
  54. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  55. package/dist/cjs/gx-ide-directory-selector.cjs.entry.js +1 -2
  56. package/dist/cjs/gx-ide-directory-selector.cjs.entry.js.map +1 -1
  57. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js +3 -4
  58. package/dist/cjs/gx-ide-edit-module-server.cjs.entry.js.map +1 -1
  59. package/dist/cjs/gx-ide-empty-state.cjs.entry.js +1 -1
  60. package/dist/cjs/gx-ide-empty-state.cjs.entry.js.map +1 -1
  61. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +6 -9
  62. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
  63. package/dist/cjs/gx-ide-file-item.cjs.entry.js +5 -6
  64. package/dist/cjs/gx-ide-file-item.cjs.entry.js.map +1 -1
  65. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js +63 -49
  66. package/dist/cjs/gx-ide-file-uploader.cjs.entry.js.map +1 -1
  67. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js +3 -4
  68. package/dist/cjs/gx-ide-gam-installation-settings.cjs.entry.js.map +1 -1
  69. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +7 -8
  70. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  71. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +10 -14
  72. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  73. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js +2 -2
  74. package/dist/cjs/gx-ide-list-selector_2.cjs.entry.js.map +1 -1
  75. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +19 -11
  76. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +1 -1
  77. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +8 -9
  78. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  79. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js +4 -7
  80. package/dist/cjs/gx-ide-navigation-report.cjs.entry.js.map +1 -1
  81. package/dist/cjs/gx-ide-new-environment.cjs.entry.js +14 -19
  82. package/dist/cjs/gx-ide-new-environment.cjs.entry.js.map +1 -1
  83. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +34 -39
  84. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  85. package/dist/cjs/gx-ide-new-object.cjs.entry.js +6 -9
  86. package/dist/cjs/gx-ide-new-object.cjs.entry.js.map +1 -1
  87. package/dist/cjs/gx-ide-new-version.cjs.entry.js +3 -3
  88. package/dist/cjs/gx-ide-new-version.cjs.entry.js.map +1 -1
  89. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +10 -12
  90. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  91. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js +8 -13
  92. package/dist/cjs/gx-ide-open-api-import.cjs.entry.js.map +1 -1
  93. package/dist/cjs/gx-ide-references.cjs.entry.js +22 -28
  94. package/dist/cjs/gx-ide-references.cjs.entry.js.map +1 -1
  95. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +202 -98
  96. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -1
  97. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js +10 -17
  98. package/dist/cjs/gx-ide-select-kb-items.cjs.entry.js.map +1 -1
  99. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js +3 -4
  100. package/dist/cjs/gx-ide-select-user-team.cjs.entry.js.map +1 -1
  101. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +6 -10
  102. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  103. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js +2 -3
  104. package/dist/cjs/gx-ide-sign-in-team.cjs.entry.js.map +1 -1
  105. package/dist/cjs/gx-ide-sign-in.cjs.entry.js +1 -1
  106. package/dist/cjs/gx-ide-splash.cjs.entry.js +6 -8
  107. package/dist/cjs/gx-ide-splash.cjs.entry.js.map +1 -1
  108. package/dist/cjs/gx-ide-start-page.cjs.entry.js +9 -13
  109. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  110. package/dist/cjs/gx-ide-status-buttons.cjs.entry.js +1 -1
  111. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js +3 -3
  112. package/dist/cjs/gx-ide-team-dev-commit.cjs.entry.js.map +1 -1
  113. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js +2 -2
  114. package/dist/cjs/gx-ide-team-dev-select-recent-comment.cjs.entry.js.map +1 -1
  115. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js +3 -3
  116. package/dist/cjs/gx-ide-team-dev-update-partial-selection.cjs.entry.js.map +1 -1
  117. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js +2 -2
  118. package/dist/cjs/gx-ide-team-dev-update-to-revision.cjs.entry.js.map +1 -1
  119. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js +4 -5
  120. package/dist/cjs/gx-ide-team-dev-update.cjs.entry.js.map +1 -1
  121. package/dist/cjs/gx-ide-template.cjs.entry.js +2 -2
  122. package/dist/cjs/gx-ide-template.cjs.entry.js.map +1 -1
  123. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +8 -11
  124. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
  125. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js +2 -2
  126. package/dist/cjs/gx-ide-wf-settings.cjs.entry.js.map +1 -1
  127. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +11 -18
  128. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js.map +1 -1
  129. package/dist/cjs/gx-ide-ww-files.cjs.entry.js +19 -22
  130. package/dist/cjs/gx-ide-ww-files.cjs.entry.js.map +1 -1
  131. package/dist/cjs/gx-ide-ww-images.cjs.entry.js +20 -9
  132. package/dist/cjs/gx-ide-ww-images.cjs.entry.js.map +1 -1
  133. package/dist/cjs/{helpers-30f109a4.js → helpers-e5a13fa5.js} +6 -6
  134. package/dist/cjs/helpers-e5a13fa5.js.map +1 -0
  135. package/dist/cjs/index.cjs.js +2 -2
  136. package/dist/cjs/index.cjs.js.map +1 -1
  137. package/dist/cjs/loader.cjs.js +1 -1
  138. package/dist/cjs/{locale-ff30a5f3.js → locale-36b93b1b.js} +4 -4
  139. package/dist/cjs/locale-36b93b1b.js.map +1 -0
  140. package/dist/collection/collection-manifest.json +2 -1
  141. package/dist/collection/common/common.js +23 -13
  142. package/dist/collection/common/common.js.map +1 -1
  143. package/dist/collection/common/form-validation.js +7 -4
  144. package/dist/collection/common/form-validation.js.map +1 -1
  145. package/dist/collection/common/helpers.js +9 -10
  146. package/dist/collection/common/helpers.js.map +1 -1
  147. package/dist/collection/common/locale.js +3 -3
  148. package/dist/collection/common/locale.js.map +1 -1
  149. package/dist/collection/common/render-suggest.js +1 -1
  150. package/dist/collection/common/render-suggest.js.map +1 -1
  151. package/dist/collection/components/_helpers/card/card.css +9 -0
  152. package/dist/collection/components/_helpers/container/container.js +1 -2
  153. package/dist/collection/components/_helpers/container/container.js.map +1 -1
  154. package/dist/collection/components/_helpers/directory-selector/directory-selector.js +1 -2
  155. package/dist/collection/components/_helpers/directory-selector/directory-selector.js.map +1 -1
  156. package/dist/collection/components/_helpers/empty-state/gx-ide-empty-state.css +9 -0
  157. package/dist/collection/components/_helpers/entity-selector/entity-selector.js +2 -4
  158. package/dist/collection/components/_helpers/entity-selector/entity-selector.js.map +1 -1
  159. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js +1 -1
  160. package/dist/collection/components/_helpers/list-selector/list-selector-item/list-selector-item.js.map +1 -1
  161. package/dist/collection/components/_helpers/list-selector/list-selector.css +9 -0
  162. package/dist/collection/components/_starting-template/template.css +9 -0
  163. package/dist/collection/components/ai-assistant/ai-assistant.css +9 -0
  164. package/dist/collection/components/ai-assistant/ai-assistant.js +8 -14
  165. package/dist/collection/components/ai-assistant/ai-assistant.js.map +1 -1
  166. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.css +37 -27
  167. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.js +217 -182
  168. package/dist/collection/components/bpm/application-declaration/bpm-app-declaration.js.map +1 -1
  169. package/dist/collection/components/bpm/application-declaration/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.en.json +14 -2
  170. package/dist/collection/components/bpm/application-declaration/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.ja.json +15 -3
  171. package/dist/collection/components/bpm/application-declaration/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.zh.json +14 -2
  172. package/dist/collection/components/bpm/assign-roles/bpm-assign-roles.css +9 -0
  173. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.css +9 -0
  174. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.js +2 -4
  175. package/dist/collection/components/bpm/export-xpdl/bpm-export-xpdl.js.map +1 -1
  176. package/dist/collection/components/bpm/import-files/bpm-import-files.css +9 -0
  177. package/dist/collection/components/bpm/import-files/bpm-import-files.js +1 -2
  178. package/dist/collection/components/bpm/import-files/bpm-import-files.js.map +1 -1
  179. package/dist/collection/components/bpm/import-gxpm/bpm-import-gxpm.css +9 -0
  180. package/dist/collection/components/bpm/objects-selector/bpm-objects-selector.css +9 -0
  181. package/dist/collection/components/bpm/sync-gam-roles/bpm-sync-gam-roles.js +1 -2
  182. package/dist/collection/components/bpm/sync-gam-roles/bpm-sync-gam-roles.js.map +1 -1
  183. package/dist/collection/components/bpm/task-documents/helpers.js +1 -1
  184. package/dist/collection/components/bpm/task-documents/helpers.js.map +1 -1
  185. package/dist/collection/components/bpm/task-documents/task-documents.js +7 -9
  186. package/dist/collection/components/bpm/task-documents/task-documents.js.map +1 -1
  187. package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.css +9 -0
  188. package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.js +1 -2
  189. package/dist/collection/components/bpm/timer-duration/bpm-timer-duration.js.map +1 -1
  190. package/dist/collection/components/chat/chat-container/chat-container.css +118 -0
  191. package/dist/collection/components/chat/chat-container/chat-container.js +218 -0
  192. package/dist/collection/components/chat/chat-container/chat-container.js.map +1 -0
  193. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.en.json +9 -0
  194. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.ja.json +9 -0
  195. package/dist/collection/components/chat/chat-container/gx-ide-assets/chat-container/langs/chat-container.lang.zh.json +9 -0
  196. package/dist/collection/components/chat/chat-welcome/chat-welcome.css +109 -0
  197. package/dist/collection/components/chat/chat-welcome/chat-welcome.js +228 -0
  198. package/dist/collection/components/chat/chat-welcome/chat-welcome.js.map +1 -0
  199. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.js +3 -0
  200. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.js.map +1 -0
  201. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.tsx +31 -0
  202. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg +21 -0
  203. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/ai-avatar.svg +11 -0
  204. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/images/header-illustration.svg +24 -0
  205. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.en.json +10 -0
  206. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.ja.json +10 -0
  207. package/dist/collection/components/chat/chat-welcome/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.zh.json +10 -0
  208. package/dist/collection/components/chat/code-render.js +65 -0
  209. package/dist/collection/components/chat/code-render.js.map +1 -0
  210. package/dist/collection/components/current-user-info/current-user-info.js +2 -3
  211. package/dist/collection/components/current-user-info/current-user-info.js.map +1 -1
  212. package/dist/collection/components/dashboard-home/dashboard-home.css +9 -0
  213. package/dist/collection/components/dashboard-home/dashboard-home.js +2 -3
  214. package/dist/collection/components/dashboard-home/dashboard-home.js.map +1 -1
  215. package/dist/collection/components/data-selector/data-selector.css +1 -0
  216. package/dist/collection/components/data-selector/data-selector.js +2 -3
  217. package/dist/collection/components/data-selector/data-selector.js.map +1 -1
  218. package/dist/collection/components/data-type-selector/data-type-selector.js +3 -4
  219. package/dist/collection/components/data-type-selector/data-type-selector.js.map +1 -1
  220. package/dist/collection/components/deployment-tool/deployment-tool.css +9 -0
  221. package/dist/collection/components/deployment-tool/deployment-tool.js +11 -18
  222. package/dist/collection/components/deployment-tool/deployment-tool.js.map +1 -1
  223. package/dist/collection/components/deployment-tool/helpers.js +4 -1
  224. package/dist/collection/components/deployment-tool/helpers.js.map +1 -1
  225. package/dist/collection/components/design-import/design-import.js +18 -26
  226. package/dist/collection/components/design-import/design-import.js.map +1 -1
  227. package/dist/collection/components/design-import/helpers.js +1 -1
  228. package/dist/collection/components/design-import/helpers.js.map +1 -1
  229. package/dist/collection/components/file-uploader/file-uploader.css +9 -0
  230. package/dist/collection/components/file-uploader/file-uploader.js +59 -44
  231. package/dist/collection/components/file-uploader/file-uploader.js.map +1 -1
  232. package/dist/collection/components/gam-installation-settings/gam-installation-settings.css +9 -0
  233. package/dist/collection/components/gam-installation-settings/gam-installation-settings.js +1 -2
  234. package/dist/collection/components/gam-installation-settings/gam-installation-settings.js.map +1 -1
  235. package/dist/collection/components/kb-manager-import/kb-manager-import.js +4 -7
  236. package/dist/collection/components/kb-manager-import/kb-manager-import.js.map +1 -1
  237. package/dist/collection/components/modules/edit-module-server/edit-module-server.css +9 -0
  238. package/dist/collection/components/modules/edit-module-server/edit-module-server.js +1 -2
  239. package/dist/collection/components/modules/edit-module-server/edit-module-server.js.map +1 -1
  240. package/dist/collection/components/modules/manage-module-references/manage-module-references.css +9 -0
  241. package/dist/collection/components/modules/manage-module-references/manage-module-references.js +2 -2
  242. package/dist/collection/components/modules/manage-module-references/manage-module-references.js.map +1 -1
  243. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js +13 -4
  244. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references-v2.js.map +1 -1
  245. package/dist/collection/components/modules/manage-module-references-v2/manage-module-references.css +9 -0
  246. package/dist/collection/components/navigation-report/navigation-report.js +3 -6
  247. package/dist/collection/components/navigation-report/navigation-report.js.map +1 -1
  248. package/dist/collection/components/new-environment/new-environment.js +10 -15
  249. package/dist/collection/components/new-environment/new-environment.js.map +1 -1
  250. package/dist/collection/components/new-kb/new-kb.js +28 -32
  251. package/dist/collection/components/new-kb/new-kb.js.map +1 -1
  252. package/dist/collection/components/new-object/new-object.js +5 -8
  253. package/dist/collection/components/new-object/new-object.js.map +1 -1
  254. package/dist/collection/components/new-version/new-version.js +2 -2
  255. package/dist/collection/components/new-version/new-version.js.map +1 -1
  256. package/dist/collection/components/object-selector/object-selector.css +1 -0
  257. package/dist/collection/components/object-selector/object-selector.js +4 -5
  258. package/dist/collection/components/object-selector/object-selector.js.map +1 -1
  259. package/dist/collection/components/open-api-import/open-api-import.js +4 -8
  260. package/dist/collection/components/open-api-import/open-api-import.js.map +1 -1
  261. package/dist/collection/components/references/helpers.js +9 -13
  262. package/dist/collection/components/references/helpers.js.map +1 -1
  263. package/dist/collection/components/references/references.css +9 -0
  264. package/dist/collection/components/references/references.js +9 -11
  265. package/dist/collection/components/references/references.js.map +1 -1
  266. package/dist/collection/components/select-kb-items/helpers.js +5 -10
  267. package/dist/collection/components/select-kb-items/helpers.js.map +1 -1
  268. package/dist/collection/components/select-kb-items/select-kb-items.js +1 -2
  269. package/dist/collection/components/select-kb-items/select-kb-items.js.map +1 -1
  270. package/dist/collection/components/select-user-team/helpers.js +1 -1
  271. package/dist/collection/components/select-user-team/helpers.js.map +1 -1
  272. package/dist/collection/components/select-user-team/select-user-team.js +1 -2
  273. package/dist/collection/components/select-user-team/select-user-team.js.map +1 -1
  274. package/dist/collection/components/sign-in-team/sign-in-team.js +1 -2
  275. package/dist/collection/components/sign-in-team/sign-in-team.js.map +1 -1
  276. package/dist/collection/components/splash/splash.js +2 -3
  277. package/dist/collection/components/splash/splash.js.map +1 -1
  278. package/dist/collection/components/start-page/start-page.js +3 -6
  279. package/dist/collection/components/start-page/start-page.js.map +1 -1
  280. package/dist/collection/components/team-dev/commit/commit.css +10 -0
  281. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js +16 -21
  282. package/dist/collection/components/team-dev/connect-gx-server/connect-gx-server.js.map +1 -1
  283. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js +4 -8
  284. package/dist/collection/components/team-dev/create-kb-from-server/create-kb-from-server.js.map +1 -1
  285. package/dist/collection/components/team-dev/select-recent-comment/select-recent-comment.css +9 -0
  286. package/dist/collection/components/team-dev/share-kb/share-kb.js +2 -5
  287. package/dist/collection/components/team-dev/share-kb/share-kb.js.map +1 -1
  288. package/dist/collection/components/team-dev/update/update.css +11 -0
  289. package/dist/collection/components/team-dev/update/update.js +1 -2
  290. package/dist/collection/components/team-dev/update/update.js.map +1 -1
  291. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.css +9 -0
  292. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js +1 -1
  293. package/dist/collection/components/team-dev/update-partial-selection/update-partial-selection.js.map +1 -1
  294. package/dist/collection/components/team-dev/update-to-revision/update-to-revision.css +9 -0
  295. package/dist/collection/components/welcome-page/welcome-page.js +5 -7
  296. package/dist/collection/components/welcome-page/welcome-page.js.map +1 -1
  297. package/dist/collection/components/wf-settings/wf-settings.css +9 -0
  298. package/dist/collection/components/ww-attributes/helpers.js +1 -2
  299. package/dist/collection/components/ww-attributes/helpers.js.map +1 -1
  300. package/dist/collection/components/ww-attributes/ww-attributes.css +1 -0
  301. package/dist/collection/components/ww-attributes/ww-attributes.js +6 -11
  302. package/dist/collection/components/ww-attributes/ww-attributes.js.map +1 -1
  303. package/dist/collection/components/ww-files/helpers.js +1 -2
  304. package/dist/collection/components/ww-files/helpers.js.map +1 -1
  305. package/dist/collection/components/ww-files/ww-files.css +1 -0
  306. package/dist/collection/components/ww-files/ww-files.js +16 -18
  307. package/dist/collection/components/ww-files/ww-files.js.map +1 -1
  308. package/dist/collection/components/ww-images/ww-images.css +10 -0
  309. package/dist/collection/components/ww-images/ww-images.js +16 -5
  310. package/dist/collection/components/ww-images/ww-images.js.map +1 -1
  311. package/dist/collection/index.js +1 -1
  312. package/dist/collection/index.js.map +1 -1
  313. package/dist/collection/showcase/chat-container/callbacks.js +105 -90
  314. package/dist/collection/showcase/chat-container/callbacks.js.map +1 -1
  315. package/dist/collection/showcase/chat-container/chat.showcase.js +145 -10
  316. package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -1
  317. package/dist/collection/testing/locale.e2e.js +4 -3
  318. package/dist/collection/testing/locale.e2e.js.map +1 -1
  319. package/dist/components/MERCURY_ASSETS.js +5 -1
  320. package/dist/components/MERCURY_ASSETS.js.map +1 -1
  321. package/dist/components/ai-message.js +1 -2
  322. package/dist/components/ai-message.js.map +1 -1
  323. package/dist/components/bpm-objects-selector.js +1 -1
  324. package/dist/components/bpm-objects-selector.js.map +1 -1
  325. package/dist/components/chat-container.js +70 -7
  326. package/dist/components/chat-container.js.map +1 -1
  327. package/dist/components/chat-welcome.js +146 -0
  328. package/dist/components/chat-welcome.js.map +1 -0
  329. package/dist/components/code-render.js +68 -41
  330. package/dist/components/code-render.js.map +1 -1
  331. package/dist/components/common.js +27 -11
  332. package/dist/components/common.js.map +1 -1
  333. package/dist/components/container.js +1 -2
  334. package/dist/components/container.js.map +1 -1
  335. package/dist/components/entity-selector.js +3 -6
  336. package/dist/components/entity-selector.js.map +1 -1
  337. package/dist/components/file-item.js +1 -2
  338. package/dist/components/file-item.js.map +1 -1
  339. package/dist/components/form-validation.js +6 -2
  340. package/dist/components/form-validation.js.map +1 -1
  341. package/dist/components/gx-ide-ai-assistant.js +9 -15
  342. package/dist/components/gx-ide-ai-assistant.js.map +1 -1
  343. package/dist/components/gx-ide-bpm-app-declaration.js +188 -185
  344. package/dist/components/gx-ide-bpm-app-declaration.js.map +1 -1
  345. package/dist/components/gx-ide-bpm-assign-roles.js +1 -1
  346. package/dist/components/gx-ide-bpm-assign-roles.js.map +1 -1
  347. package/dist/components/gx-ide-bpm-export-xpdl.js +3 -5
  348. package/dist/components/gx-ide-bpm-export-xpdl.js.map +1 -1
  349. package/dist/components/gx-ide-bpm-import-files.js +2 -3
  350. package/dist/components/gx-ide-bpm-import-files.js.map +1 -1
  351. package/dist/components/gx-ide-bpm-import-gxpm.js +1 -1
  352. package/dist/components/gx-ide-bpm-import-gxpm.js.map +1 -1
  353. package/dist/components/gx-ide-bpm-sync-gam-roles.js +1 -2
  354. package/dist/components/gx-ide-bpm-sync-gam-roles.js.map +1 -1
  355. package/dist/components/gx-ide-bpm-task-documents.js +9 -12
  356. package/dist/components/gx-ide-bpm-task-documents.js.map +1 -1
  357. package/dist/components/gx-ide-bpm-timer-duration.js +2 -3
  358. package/dist/components/gx-ide-bpm-timer-duration.js.map +1 -1
  359. package/dist/components/gx-ide-card.js +1 -1
  360. package/dist/components/gx-ide-card.js.map +1 -1
  361. package/dist/components/gx-ide-chat-welcome.d.ts +11 -0
  362. package/dist/components/gx-ide-chat-welcome.js +8 -0
  363. package/dist/components/gx-ide-chat-welcome.js.map +1 -0
  364. package/dist/components/gx-ide-connect-gx-server.js +16 -21
  365. package/dist/components/gx-ide-connect-gx-server.js.map +1 -1
  366. package/dist/components/gx-ide-create-kb-from-server.js +5 -10
  367. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  368. package/dist/components/gx-ide-current-user-info.js +3 -5
  369. package/dist/components/gx-ide-current-user-info.js.map +1 -1
  370. package/dist/components/gx-ide-dashboard-home.js +4 -6
  371. package/dist/components/gx-ide-dashboard-home.js.map +1 -1
  372. package/dist/components/gx-ide-data-selector.js +4 -6
  373. package/dist/components/gx-ide-data-selector.js.map +1 -1
  374. package/dist/components/gx-ide-data-type-selector.js +4 -6
  375. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  376. package/dist/components/gx-ide-deployment-tool.js +16 -20
  377. package/dist/components/gx-ide-deployment-tool.js.map +1 -1
  378. package/dist/components/gx-ide-design-import.js +20 -29
  379. package/dist/components/gx-ide-design-import.js.map +1 -1
  380. package/dist/components/gx-ide-directory-selector.js +1 -2
  381. package/dist/components/gx-ide-directory-selector.js.map +1 -1
  382. package/dist/components/gx-ide-edit-module-server.js +2 -3
  383. package/dist/components/gx-ide-edit-module-server.js.map +1 -1
  384. package/dist/components/gx-ide-empty-state2.js +1 -1
  385. package/dist/components/gx-ide-empty-state2.js.map +1 -1
  386. package/dist/components/gx-ide-file-uploader.js +61 -47
  387. package/dist/components/gx-ide-file-uploader.js.map +1 -1
  388. package/dist/components/gx-ide-gam-installation-settings.js +2 -3
  389. package/dist/components/gx-ide-gam-installation-settings.js.map +1 -1
  390. package/dist/components/gx-ide-kb-manager-export.js +1 -2
  391. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  392. package/dist/components/gx-ide-kb-manager-import.js +5 -9
  393. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  394. package/dist/components/gx-ide-manage-module-references-v2.js +15 -7
  395. package/dist/components/gx-ide-manage-module-references-v2.js.map +1 -1
  396. package/dist/components/gx-ide-manage-module-references.js +4 -5
  397. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  398. package/dist/components/gx-ide-navigation-report.js +3 -6
  399. package/dist/components/gx-ide-navigation-report.js.map +1 -1
  400. package/dist/components/gx-ide-new-environment.js +10 -15
  401. package/dist/components/gx-ide-new-environment.js.map +1 -1
  402. package/dist/components/gx-ide-new-kb.js +29 -34
  403. package/dist/components/gx-ide-new-kb.js.map +1 -1
  404. package/dist/components/gx-ide-new-object.js +5 -8
  405. package/dist/components/gx-ide-new-object.js.map +1 -1
  406. package/dist/components/gx-ide-new-version.js +2 -2
  407. package/dist/components/gx-ide-new-version.js.map +1 -1
  408. package/dist/components/gx-ide-object-selector.js +6 -8
  409. package/dist/components/gx-ide-object-selector.js.map +1 -1
  410. package/dist/components/gx-ide-open-api-import.js +5 -10
  411. package/dist/components/gx-ide-open-api-import.js.map +1 -1
  412. package/dist/components/gx-ide-references.js +19 -25
  413. package/dist/components/gx-ide-references.js.map +1 -1
  414. package/dist/components/gx-ide-sc-chat-container.js +215 -100
  415. package/dist/components/gx-ide-sc-chat-container.js.map +1 -1
  416. package/dist/components/gx-ide-select-kb-items.js +7 -14
  417. package/dist/components/gx-ide-select-kb-items.js.map +1 -1
  418. package/dist/components/gx-ide-select-user-team.js +2 -3
  419. package/dist/components/gx-ide-select-user-team.js.map +1 -1
  420. package/dist/components/gx-ide-share-kb.js +3 -7
  421. package/dist/components/gx-ide-share-kb.js.map +1 -1
  422. package/dist/components/gx-ide-sign-in-team.js +1 -2
  423. package/dist/components/gx-ide-sign-in-team.js.map +1 -1
  424. package/dist/components/gx-ide-splash.js +3 -5
  425. package/dist/components/gx-ide-splash.js.map +1 -1
  426. package/dist/components/gx-ide-start-page.js +4 -8
  427. package/dist/components/gx-ide-start-page.js.map +1 -1
  428. package/dist/components/gx-ide-team-dev-commit.js +1 -1
  429. package/dist/components/gx-ide-team-dev-commit.js.map +1 -1
  430. package/dist/components/gx-ide-team-dev-select-recent-comment.js +1 -1
  431. package/dist/components/gx-ide-team-dev-select-recent-comment.js.map +1 -1
  432. package/dist/components/gx-ide-team-dev-update-partial-selection.js +2 -2
  433. package/dist/components/gx-ide-team-dev-update-partial-selection.js.map +1 -1
  434. package/dist/components/gx-ide-team-dev-update-to-revision.js +1 -1
  435. package/dist/components/gx-ide-team-dev-update-to-revision.js.map +1 -1
  436. package/dist/components/gx-ide-team-dev-update.js +2 -3
  437. package/dist/components/gx-ide-team-dev-update.js.map +1 -1
  438. package/dist/components/gx-ide-template.js +1 -1
  439. package/dist/components/gx-ide-template.js.map +1 -1
  440. package/dist/components/gx-ide-welcome-page.js +6 -9
  441. package/dist/components/gx-ide-welcome-page.js.map +1 -1
  442. package/dist/components/gx-ide-wf-settings.js +1 -1
  443. package/dist/components/gx-ide-wf-settings.js.map +1 -1
  444. package/dist/components/gx-ide-ww-attributes.js +9 -16
  445. package/dist/components/gx-ide-ww-attributes.js.map +1 -1
  446. package/dist/components/gx-ide-ww-files.js +18 -21
  447. package/dist/components/gx-ide-ww-files.js.map +1 -1
  448. package/dist/components/gx-ide-ww-images.js +17 -6
  449. package/dist/components/gx-ide-ww-images.js.map +1 -1
  450. package/dist/components/helpers.js +5 -5
  451. package/dist/components/helpers.js.map +1 -1
  452. package/dist/components/index.js.map +1 -1
  453. package/dist/components/list-selector-item.js +1 -1
  454. package/dist/components/list-selector-item.js.map +1 -1
  455. package/dist/components/list-selector.js +1 -1
  456. package/dist/components/list-selector.js.map +1 -1
  457. package/dist/components/locale.js +3 -3
  458. package/dist/components/locale.js.map +1 -1
  459. package/dist/esm/MERCURY_ASSETS-039222dd.js +7 -0
  460. package/dist/esm/MERCURY_ASSETS-039222dd.js.map +1 -0
  461. package/dist/esm/code-render-f3afd300.js +83 -0
  462. package/dist/esm/code-render-f3afd300.js.map +1 -0
  463. package/dist/esm/{common-ccb4504a.js → common-719c4daf.js} +28 -12
  464. package/dist/esm/common-719c4daf.js.map +1 -0
  465. package/dist/esm/{form-validation-cd0215c6.js → form-validation-71dca8c6.js} +7 -3
  466. package/dist/esm/form-validation-71dca8c6.js.map +1 -0
  467. package/dist/esm/genexus-ide-ui.js +1 -1
  468. package/dist/esm/gx-ide-about.entry.js +1 -1
  469. package/dist/esm/gx-ide-ai-assistant.entry.js +10 -16
  470. package/dist/esm/gx-ide-ai-assistant.entry.js.map +1 -1
  471. package/dist/esm/gx-ide-ai-message.entry.js +3 -4
  472. package/dist/esm/gx-ide-ai-message.entry.js.map +1 -1
  473. package/dist/esm/gx-ide-bpm-app-declaration.entry.js +181 -169
  474. package/dist/esm/gx-ide-bpm-app-declaration.entry.js.map +1 -1
  475. package/dist/esm/gx-ide-bpm-assign-roles.entry.js +2 -2
  476. package/dist/esm/gx-ide-bpm-assign-roles.entry.js.map +1 -1
  477. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js +4 -6
  478. package/dist/esm/gx-ide-bpm-export-xpdl.entry.js.map +1 -1
  479. package/dist/esm/gx-ide-bpm-import-files.entry.js +3 -4
  480. package/dist/esm/gx-ide-bpm-import-files.entry.js.map +1 -1
  481. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js +2 -2
  482. package/dist/esm/gx-ide-bpm-import-gxpm.entry.js.map +1 -1
  483. package/dist/esm/gx-ide-bpm-objects-selector.entry.js +2 -2
  484. package/dist/esm/gx-ide-bpm-objects-selector.entry.js.map +1 -1
  485. package/dist/esm/gx-ide-bpm-sync-gam-roles.entry.js +2 -3
  486. package/dist/esm/gx-ide-bpm-sync-gam-roles.entry.js.map +1 -1
  487. package/dist/esm/gx-ide-bpm-task-documents.entry.js +10 -13
  488. package/dist/esm/gx-ide-bpm-task-documents.entry.js.map +1 -1
  489. package/dist/esm/gx-ide-bpm-timer-duration.entry.js +3 -4
  490. package/dist/esm/gx-ide-bpm-timer-duration.entry.js.map +1 -1
  491. package/dist/esm/gx-ide-card.entry.js +2 -2
  492. package/dist/esm/gx-ide-card.entry.js.map +1 -1
  493. package/dist/esm/gx-ide-chat-container_2.entry.js +234 -0
  494. package/dist/esm/gx-ide-chat-container_2.entry.js.map +1 -0
  495. package/dist/esm/gx-ide-connect-gx-server.entry.js +18 -23
  496. package/dist/esm/gx-ide-connect-gx-server.entry.js.map +1 -1
  497. package/dist/esm/gx-ide-container_2.entry.js +1 -2
  498. package/dist/esm/gx-ide-container_2.entry.js.map +1 -1
  499. package/dist/esm/gx-ide-create-kb-from-server.entry.js +7 -12
  500. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  501. package/dist/esm/gx-ide-current-user-info.entry.js +4 -6
  502. package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
  503. package/dist/esm/gx-ide-dashboard-home.entry.js +6 -8
  504. package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
  505. package/dist/esm/gx-ide-data-selector.entry.js +5 -7
  506. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  507. package/dist/esm/gx-ide-data-type-selector.entry.js +5 -7
  508. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  509. package/dist/esm/gx-ide-deployment-tool.entry.js +17 -21
  510. package/dist/esm/gx-ide-deployment-tool.entry.js.map +1 -1
  511. package/dist/esm/gx-ide-design-import.entry.js +21 -30
  512. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  513. package/dist/esm/gx-ide-directory-selector.entry.js +1 -2
  514. package/dist/esm/gx-ide-directory-selector.entry.js.map +1 -1
  515. package/dist/esm/gx-ide-edit-module-server.entry.js +3 -4
  516. package/dist/esm/gx-ide-edit-module-server.entry.js.map +1 -1
  517. package/dist/esm/gx-ide-empty-state.entry.js +1 -1
  518. package/dist/esm/gx-ide-empty-state.entry.js.map +1 -1
  519. package/dist/esm/gx-ide-entity-selector.entry.js +4 -7
  520. package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
  521. package/dist/esm/gx-ide-file-item.entry.js +1 -2
  522. package/dist/esm/gx-ide-file-item.entry.js.map +1 -1
  523. package/dist/esm/gx-ide-file-uploader.entry.js +62 -48
  524. package/dist/esm/gx-ide-file-uploader.entry.js.map +1 -1
  525. package/dist/esm/gx-ide-gam-installation-settings.entry.js +3 -4
  526. package/dist/esm/gx-ide-gam-installation-settings.entry.js.map +1 -1
  527. package/dist/esm/gx-ide-kb-manager-export.entry.js +2 -3
  528. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  529. package/dist/esm/gx-ide-kb-manager-import.entry.js +6 -10
  530. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  531. package/dist/esm/gx-ide-list-selector_2.entry.js +2 -2
  532. package/dist/esm/gx-ide-list-selector_2.entry.js.map +1 -1
  533. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +17 -9
  534. package/dist/esm/gx-ide-manage-module-references-v2.entry.js.map +1 -1
  535. package/dist/esm/gx-ide-manage-module-references.entry.js +6 -7
  536. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  537. package/dist/esm/gx-ide-navigation-report.entry.js +4 -7
  538. package/dist/esm/gx-ide-navigation-report.entry.js.map +1 -1
  539. package/dist/esm/gx-ide-new-environment.entry.js +14 -19
  540. package/dist/esm/gx-ide-new-environment.entry.js.map +1 -1
  541. package/dist/esm/gx-ide-new-kb.entry.js +33 -38
  542. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  543. package/dist/esm/gx-ide-new-object.entry.js +6 -9
  544. package/dist/esm/gx-ide-new-object.entry.js.map +1 -1
  545. package/dist/esm/gx-ide-new-version.entry.js +3 -3
  546. package/dist/esm/gx-ide-new-version.entry.js.map +1 -1
  547. package/dist/esm/gx-ide-object-selector.entry.js +8 -10
  548. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  549. package/dist/esm/gx-ide-open-api-import.entry.js +6 -11
  550. package/dist/esm/gx-ide-open-api-import.entry.js.map +1 -1
  551. package/dist/esm/gx-ide-references.entry.js +20 -26
  552. package/dist/esm/gx-ide-references.entry.js.map +1 -1
  553. package/dist/esm/gx-ide-sc-chat-container.entry.js +203 -99
  554. package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -1
  555. package/dist/esm/gx-ide-select-kb-items.entry.js +8 -15
  556. package/dist/esm/gx-ide-select-kb-items.entry.js.map +1 -1
  557. package/dist/esm/gx-ide-select-user-team.entry.js +3 -4
  558. package/dist/esm/gx-ide-select-user-team.entry.js.map +1 -1
  559. package/dist/esm/gx-ide-share-kb.entry.js +5 -9
  560. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  561. package/dist/esm/gx-ide-sign-in-team.entry.js +2 -3
  562. package/dist/esm/gx-ide-sign-in-team.entry.js.map +1 -1
  563. package/dist/esm/gx-ide-sign-in.entry.js +1 -1
  564. package/dist/esm/gx-ide-splash.entry.js +5 -7
  565. package/dist/esm/gx-ide-splash.entry.js.map +1 -1
  566. package/dist/esm/gx-ide-start-page.entry.js +5 -9
  567. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  568. package/dist/esm/gx-ide-status-buttons.entry.js +1 -1
  569. package/dist/esm/gx-ide-team-dev-commit.entry.js +3 -3
  570. package/dist/esm/gx-ide-team-dev-commit.entry.js.map +1 -1
  571. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js +2 -2
  572. package/dist/esm/gx-ide-team-dev-select-recent-comment.entry.js.map +1 -1
  573. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js +3 -3
  574. package/dist/esm/gx-ide-team-dev-update-partial-selection.entry.js.map +1 -1
  575. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js +2 -2
  576. package/dist/esm/gx-ide-team-dev-update-to-revision.entry.js.map +1 -1
  577. package/dist/esm/gx-ide-team-dev-update.entry.js +4 -5
  578. package/dist/esm/gx-ide-team-dev-update.entry.js.map +1 -1
  579. package/dist/esm/gx-ide-template.entry.js +2 -2
  580. package/dist/esm/gx-ide-template.entry.js.map +1 -1
  581. package/dist/esm/gx-ide-welcome-page.entry.js +7 -10
  582. package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -1
  583. package/dist/esm/gx-ide-wf-settings.entry.js +2 -2
  584. package/dist/esm/gx-ide-wf-settings.entry.js.map +1 -1
  585. package/dist/esm/gx-ide-ww-attributes.entry.js +10 -17
  586. package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -1
  587. package/dist/esm/gx-ide-ww-files.entry.js +19 -22
  588. package/dist/esm/gx-ide-ww-files.entry.js.map +1 -1
  589. package/dist/esm/gx-ide-ww-images.entry.js +20 -9
  590. package/dist/esm/gx-ide-ww-images.entry.js.map +1 -1
  591. package/dist/esm/{helpers-10479d69.js → helpers-5f1c9a32.js} +6 -6
  592. package/dist/esm/helpers-5f1c9a32.js.map +1 -0
  593. package/dist/esm/index.js +2 -2
  594. package/dist/esm/index.js.map +1 -1
  595. package/dist/esm/loader.js +1 -1
  596. package/dist/esm/{locale-e5107fad.js → locale-643afe17.js} +4 -4
  597. package/dist/esm/locale-643afe17.js.map +1 -0
  598. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  599. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  600. package/dist/genexus-ide-ui/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.en.json +14 -2
  601. package/dist/genexus-ide-ui/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.ja.json +15 -3
  602. package/dist/genexus-ide-ui/gx-ide-assets/bpm-app-declaration/langs/bpm-app-declaration.lang.zh.json +14 -2
  603. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.en.json +9 -0
  604. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.ja.json +9 -0
  605. package/dist/genexus-ide-ui/gx-ide-assets/chat-container/langs/chat-container.lang.zh.json +9 -0
  606. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/helpers.tsx +31 -0
  607. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/ai-avatar-welcome.svg +21 -0
  608. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/ai-avatar.svg +11 -0
  609. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/images/header-illustration.svg +24 -0
  610. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.en.json +10 -0
  611. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.ja.json +10 -0
  612. package/dist/genexus-ide-ui/gx-ide-assets/chat-welcome/langs/chat-welcome.lang.zh.json +10 -0
  613. package/dist/genexus-ide-ui/index.esm.js +2 -2
  614. package/dist/genexus-ide-ui/index.esm.js.map +1 -1
  615. package/dist/genexus-ide-ui/{p-59ed3f39.entry.js → p-02fc47cd.entry.js} +3 -3
  616. package/dist/genexus-ide-ui/{p-530c32aa.entry.js → p-032b4a81.entry.js} +25 -30
  617. package/dist/genexus-ide-ui/p-032b4a81.entry.js.map +1 -0
  618. package/dist/genexus-ide-ui/{p-eea944d4.entry.js → p-0d83a34d.entry.js} +63 -69
  619. package/dist/genexus-ide-ui/p-0d83a34d.entry.js.map +1 -0
  620. package/dist/genexus-ide-ui/{p-22b8bdb1.entry.js → p-0e53f1ef.entry.js} +161 -163
  621. package/dist/genexus-ide-ui/p-0e53f1ef.entry.js.map +1 -0
  622. package/dist/genexus-ide-ui/p-11dccb8f.entry.js +309 -0
  623. package/dist/genexus-ide-ui/p-11dccb8f.entry.js.map +1 -0
  624. package/dist/genexus-ide-ui/{p-fecc50e4.entry.js → p-29575656.entry.js} +85 -96
  625. package/dist/genexus-ide-ui/p-29575656.entry.js.map +1 -0
  626. package/dist/genexus-ide-ui/{p-683cb15e.entry.js → p-2be58a7a.entry.js} +3 -3
  627. package/dist/genexus-ide-ui/{p-fdf41406.entry.js → p-2dbf722d.entry.js} +77 -85
  628. package/dist/genexus-ide-ui/p-2dbf722d.entry.js.map +1 -0
  629. package/dist/genexus-ide-ui/{p-31beae9e.entry.js → p-2e90a13a.entry.js} +2 -3
  630. package/dist/genexus-ide-ui/p-2e90a13a.entry.js.map +1 -0
  631. package/dist/genexus-ide-ui/{p-ba7d1472.entry.js → p-353810b8.entry.js} +99 -104
  632. package/dist/genexus-ide-ui/p-353810b8.entry.js.map +1 -0
  633. package/dist/genexus-ide-ui/{p-3b8db39e.entry.js → p-39c527ff.entry.js} +3 -3
  634. package/dist/genexus-ide-ui/p-3edbf07d.js +109 -0
  635. package/dist/genexus-ide-ui/p-3edbf07d.js.map +1 -0
  636. package/dist/genexus-ide-ui/{p-ef5dfd35.entry.js → p-41a4364d.entry.js} +2 -4
  637. package/dist/genexus-ide-ui/{p-ef5dfd35.entry.js.map → p-41a4364d.entry.js.map} +1 -1
  638. package/dist/genexus-ide-ui/{p-68969051.entry.js → p-45d2fa91.entry.js} +11 -12
  639. package/dist/genexus-ide-ui/p-45d2fa91.entry.js.map +1 -0
  640. package/dist/genexus-ide-ui/{p-5687fdb7.entry.js → p-460db3ff.entry.js} +11 -13
  641. package/dist/genexus-ide-ui/{p-5687fdb7.entry.js.map → p-460db3ff.entry.js.map} +1 -1
  642. package/dist/genexus-ide-ui/{p-9a609b51.js → p-48f5911b.js} +50 -33
  643. package/dist/genexus-ide-ui/p-48f5911b.js.map +1 -0
  644. package/dist/genexus-ide-ui/{p-50b22f23.entry.js → p-4d929210.entry.js} +3 -3
  645. package/dist/genexus-ide-ui/{p-de7f0c1f.entry.js → p-501c7b1f.entry.js} +19 -22
  646. package/dist/genexus-ide-ui/p-501c7b1f.entry.js.map +1 -0
  647. package/dist/genexus-ide-ui/{p-c747afac.entry.js → p-50eaa96d.entry.js} +99 -111
  648. package/dist/genexus-ide-ui/p-50eaa96d.entry.js.map +1 -0
  649. package/dist/genexus-ide-ui/p-51601b85.js +145 -0
  650. package/dist/genexus-ide-ui/p-51601b85.js.map +1 -0
  651. package/dist/genexus-ide-ui/{p-289c3290.js → p-549b8f0c.js} +16 -15
  652. package/dist/{esm/form-validation-cd0215c6.js.map → genexus-ide-ui/p-549b8f0c.js.map} +1 -1
  653. package/dist/genexus-ide-ui/{p-007173ef.entry.js → p-5a42428d.entry.js} +16 -19
  654. package/dist/genexus-ide-ui/p-5a42428d.entry.js.map +1 -0
  655. package/dist/genexus-ide-ui/{p-ded7444c.entry.js → p-5da3e999.entry.js} +16 -17
  656. package/dist/genexus-ide-ui/p-5da3e999.entry.js.map +1 -0
  657. package/dist/genexus-ide-ui/{p-3ecdb582.entry.js → p-5e05f830.entry.js} +33 -39
  658. package/dist/genexus-ide-ui/p-5e05f830.entry.js.map +1 -0
  659. package/dist/genexus-ide-ui/{p-fe490103.entry.js → p-6168d48c.entry.js} +165 -174
  660. package/dist/genexus-ide-ui/p-6168d48c.entry.js.map +1 -0
  661. package/dist/genexus-ide-ui/{p-76c3fc51.entry.js → p-66d9269a.entry.js} +17 -22
  662. package/dist/genexus-ide-ui/p-66d9269a.entry.js.map +1 -0
  663. package/dist/genexus-ide-ui/{p-038c3f9b.entry.js → p-6dc05a27.entry.js} +4 -5
  664. package/dist/genexus-ide-ui/p-6dc05a27.entry.js.map +1 -0
  665. package/dist/genexus-ide-ui/{p-cd397078.entry.js → p-75e1aa31.entry.js} +5 -6
  666. package/dist/genexus-ide-ui/p-75e1aa31.entry.js.map +1 -0
  667. package/dist/genexus-ide-ui/{p-e502c2fd.entry.js → p-7782e1b8.entry.js} +56 -61
  668. package/dist/genexus-ide-ui/p-7782e1b8.entry.js.map +1 -0
  669. package/dist/genexus-ide-ui/{p-1bc2613e.entry.js → p-7cedb0f0.entry.js} +66 -69
  670. package/dist/genexus-ide-ui/p-7cedb0f0.entry.js.map +1 -0
  671. package/dist/genexus-ide-ui/{p-bac13202.entry.js → p-844b7117.entry.js} +17 -17
  672. package/dist/genexus-ide-ui/{p-311eedf3.js → p-857866f8.js} +8 -9
  673. package/dist/genexus-ide-ui/p-857866f8.js.map +1 -0
  674. package/dist/genexus-ide-ui/{p-74c81ca3.entry.js → p-8636a0bd.entry.js} +3 -3
  675. package/dist/genexus-ide-ui/{p-d095a37c.entry.js → p-8b046b4b.entry.js} +9 -10
  676. package/dist/genexus-ide-ui/p-8b046b4b.entry.js.map +1 -0
  677. package/dist/genexus-ide-ui/{p-4b79c3ab.entry.js → p-8f1f4126.entry.js} +10 -12
  678. package/dist/genexus-ide-ui/p-8f1f4126.entry.js.map +1 -0
  679. package/dist/genexus-ide-ui/{p-c6c955a3.entry.js → p-95f831a8.entry.js} +3 -3
  680. package/dist/genexus-ide-ui/{p-c91af626.entry.js → p-970d16ca.entry.js} +15 -15
  681. package/dist/genexus-ide-ui/{p-c91af626.entry.js.map → p-970d16ca.entry.js.map} +1 -1
  682. package/dist/genexus-ide-ui/{p-e4c2e200.entry.js → p-9a39e49c.entry.js} +6 -6
  683. package/dist/genexus-ide-ui/{p-beea29fa.entry.js → p-9a9ee1ee.entry.js} +3 -3
  684. package/dist/genexus-ide-ui/{p-961cd6c2.entry.js → p-9b238bf7.entry.js} +174 -181
  685. package/dist/genexus-ide-ui/p-9b238bf7.entry.js.map +1 -0
  686. package/dist/genexus-ide-ui/{p-54fbb568.entry.js → p-9c690c36.entry.js} +14 -17
  687. package/dist/genexus-ide-ui/p-9c690c36.entry.js.map +1 -0
  688. package/dist/genexus-ide-ui/{p-4c717aa7.entry.js → p-a6029d9a.entry.js} +117 -131
  689. package/dist/genexus-ide-ui/p-a6029d9a.entry.js.map +1 -0
  690. package/dist/genexus-ide-ui/{p-833c3585.entry.js → p-a86a8692.entry.js} +33 -39
  691. package/dist/genexus-ide-ui/p-a86a8692.entry.js.map +1 -0
  692. package/dist/genexus-ide-ui/{p-2a6683e1.entry.js → p-a8cc41e4.entry.js} +59 -62
  693. package/dist/genexus-ide-ui/p-a8cc41e4.entry.js.map +1 -0
  694. package/dist/genexus-ide-ui/{p-3d4355b4.entry.js → p-ac0438d6.entry.js} +9 -10
  695. package/dist/genexus-ide-ui/p-ac0438d6.entry.js.map +1 -0
  696. package/dist/genexus-ide-ui/{p-56331289.entry.js → p-b1833747.entry.js} +38 -45
  697. package/dist/genexus-ide-ui/p-b1833747.entry.js.map +1 -0
  698. package/dist/genexus-ide-ui/{p-6b957e82.entry.js → p-b211bca8.entry.js} +2 -2
  699. package/dist/genexus-ide-ui/{p-84618917.entry.js → p-be794132.entry.js} +229 -236
  700. package/dist/genexus-ide-ui/p-be794132.entry.js.map +1 -0
  701. package/dist/genexus-ide-ui/{p-a790c4c9.entry.js → p-bfd9066c.entry.js} +9 -9
  702. package/dist/genexus-ide-ui/p-bfd9066c.entry.js.map +1 -0
  703. package/dist/genexus-ide-ui/{p-9b5cb6b9.entry.js → p-c30b2104.entry.js} +7 -9
  704. package/dist/genexus-ide-ui/p-c30b2104.entry.js.map +1 -0
  705. package/dist/genexus-ide-ui/{p-fa18a70c.entry.js → p-c5cca204.entry.js} +17 -20
  706. package/dist/genexus-ide-ui/p-c5cca204.entry.js.map +1 -0
  707. package/dist/genexus-ide-ui/p-cdf8b082.entry.js +338 -0
  708. package/dist/genexus-ide-ui/p-cdf8b082.entry.js.map +1 -0
  709. package/dist/genexus-ide-ui/{p-8f00263d.entry.js → p-d1cc4724.entry.js} +18 -13
  710. package/dist/genexus-ide-ui/p-d1cc4724.entry.js.map +1 -0
  711. package/dist/genexus-ide-ui/{p-1dd7be84.entry.js → p-daa29451.entry.js} +14 -17
  712. package/dist/genexus-ide-ui/p-daa29451.entry.js.map +1 -0
  713. package/dist/genexus-ide-ui/{p-67762237.entry.js → p-db4750ff.entry.js} +139 -148
  714. package/dist/genexus-ide-ui/p-db4750ff.entry.js.map +1 -0
  715. package/dist/genexus-ide-ui/{p-48826a6f.entry.js → p-db4f756a.entry.js} +123 -135
  716. package/dist/genexus-ide-ui/p-db4f756a.entry.js.map +1 -0
  717. package/dist/genexus-ide-ui/{p-3e936f26.entry.js → p-e1d75f00.entry.js} +3 -3
  718. package/dist/genexus-ide-ui/{p-3e936f26.entry.js.map → p-e1d75f00.entry.js.map} +1 -1
  719. package/dist/genexus-ide-ui/{p-a59a07e2.entry.js → p-e26e05c7.entry.js} +13 -19
  720. package/dist/genexus-ide-ui/p-e26e05c7.entry.js.map +1 -0
  721. package/dist/genexus-ide-ui/{p-2027c939.entry.js → p-e37e95e7.entry.js} +4 -4
  722. package/dist/genexus-ide-ui/{p-4cbc8a8b.entry.js → p-e5571f49.entry.js} +26 -28
  723. package/dist/genexus-ide-ui/p-e5571f49.entry.js.map +1 -0
  724. package/dist/genexus-ide-ui/p-eb51429c.entry.js +317 -0
  725. package/dist/genexus-ide-ui/p-eb51429c.entry.js.map +1 -0
  726. package/dist/genexus-ide-ui/{p-29a026bb.entry.js → p-ec01c70c.entry.js} +15 -18
  727. package/dist/genexus-ide-ui/p-ec01c70c.entry.js.map +1 -0
  728. package/dist/genexus-ide-ui/{p-5ac47c69.js → p-ede7bd20.js} +6885 -6346
  729. package/dist/genexus-ide-ui/p-ede7bd20.js.map +1 -0
  730. package/dist/genexus-ide-ui/{p-e7fb3ee3.entry.js → p-f2bd9044.entry.js} +2 -2
  731. package/dist/genexus-ide-ui/{p-50f304fe.entry.js → p-f315c6e0.entry.js} +12 -14
  732. package/dist/genexus-ide-ui/{p-50f304fe.entry.js.map → p-f315c6e0.entry.js.map} +1 -1
  733. package/dist/genexus-ide-ui/{p-0550fd5f.entry.js → p-f52bcdac.entry.js} +2 -2
  734. package/dist/genexus-ide-ui/{p-a05d4963.entry.js → p-f5879a41.entry.js} +10 -10
  735. package/dist/genexus-ide-ui/{p-a05d4963.entry.js.map → p-f5879a41.entry.js.map} +1 -1
  736. package/dist/genexus-ide-ui/{p-f3f35e5c.entry.js → p-f5a48b33.entry.js} +6 -9
  737. package/dist/genexus-ide-ui/p-f5a48b33.entry.js.map +1 -0
  738. package/dist/genexus-ide-ui/{p-1e8f5da5.entry.js → p-f6ceb01a.entry.js} +4 -5
  739. package/dist/genexus-ide-ui/p-f6ceb01a.entry.js.map +1 -0
  740. package/dist/types/common/common.d.ts +1 -1
  741. package/dist/types/components/bpm/application-declaration/bpm-app-declaration.d.ts +22 -44
  742. package/dist/types/components/{_helpers → chat}/chat-container/chat-container.d.ts +13 -2
  743. package/dist/types/components/chat/chat-welcome/chat-welcome.d.ts +39 -0
  744. package/dist/types/components/chat/chat-welcome/gx-ide-assets/chat-welcome/helpers.d.ts +1 -0
  745. package/dist/types/components/{_helpers/chat-container → chat}/code-render.d.ts +1 -1
  746. package/dist/types/components.d.ts +75 -10
  747. package/dist/types/index.d.ts +1 -1
  748. package/dist/types/showcase/chat-container/callbacks.d.ts +1 -1
  749. package/dist/types/showcase/chat-container/chat.showcase.d.ts +15 -0
  750. package/package.json +5 -5
  751. package/dist/cjs/MERCURY_ASSETS-6bbcc011.js +0 -5
  752. package/dist/cjs/MERCURY_ASSETS-6bbcc011.js.map +0 -1
  753. package/dist/cjs/assets-manager-7227a74b.js +0 -7
  754. package/dist/cjs/assets-manager-7227a74b.js.map +0 -1
  755. package/dist/cjs/code-render-db7cb770.js +0 -59
  756. package/dist/cjs/code-render-db7cb770.js.map +0 -1
  757. package/dist/cjs/common-72f91a78.js.map +0 -1
  758. package/dist/cjs/form-validation-178cf461.js.map +0 -1
  759. package/dist/cjs/gx-ide-chat-container.cjs.entry.js +0 -62
  760. package/dist/cjs/gx-ide-chat-container.cjs.entry.js.map +0 -1
  761. package/dist/cjs/helpers-30f109a4.js.map +0 -1
  762. package/dist/cjs/locale-ff30a5f3.js.map +0 -1
  763. package/dist/collection/components/_helpers/chat-container/chat-container.css +0 -204
  764. package/dist/collection/components/_helpers/chat-container/chat-container.js +0 -137
  765. package/dist/collection/components/_helpers/chat-container/chat-container.js.map +0 -1
  766. package/dist/collection/components/_helpers/chat-container/code-render.js +0 -46
  767. package/dist/collection/components/_helpers/chat-container/code-render.js.map +0 -1
  768. package/dist/components/assets-manager.js +0 -5
  769. package/dist/components/assets-manager.js.map +0 -1
  770. package/dist/esm/MERCURY_ASSETS-bbdf7018.js +0 -3
  771. package/dist/esm/MERCURY_ASSETS-bbdf7018.js.map +0 -1
  772. package/dist/esm/assets-manager-0d129105.js +0 -5
  773. package/dist/esm/assets-manager-0d129105.js.map +0 -1
  774. package/dist/esm/code-render-6cbb0e63.js +0 -56
  775. package/dist/esm/code-render-6cbb0e63.js.map +0 -1
  776. package/dist/esm/common-ccb4504a.js.map +0 -1
  777. package/dist/esm/gx-ide-chat-container.entry.js +0 -58
  778. package/dist/esm/gx-ide-chat-container.entry.js.map +0 -1
  779. package/dist/esm/helpers-10479d69.js.map +0 -1
  780. package/dist/esm/locale-e5107fad.js.map +0 -1
  781. package/dist/genexus-ide-ui/p-007173ef.entry.js.map +0 -1
  782. package/dist/genexus-ide-ui/p-038c3f9b.entry.js.map +0 -1
  783. package/dist/genexus-ide-ui/p-1a74d49a.entry.js +0 -231
  784. package/dist/genexus-ide-ui/p-1a74d49a.entry.js.map +0 -1
  785. package/dist/genexus-ide-ui/p-1bc2613e.entry.js.map +0 -1
  786. package/dist/genexus-ide-ui/p-1dd7be84.entry.js.map +0 -1
  787. package/dist/genexus-ide-ui/p-1e8f5da5.entry.js.map +0 -1
  788. package/dist/genexus-ide-ui/p-22b8bdb1.entry.js.map +0 -1
  789. package/dist/genexus-ide-ui/p-289c3290.js.map +0 -1
  790. package/dist/genexus-ide-ui/p-29a026bb.entry.js.map +0 -1
  791. package/dist/genexus-ide-ui/p-2a6683e1.entry.js.map +0 -1
  792. package/dist/genexus-ide-ui/p-311eedf3.js.map +0 -1
  793. package/dist/genexus-ide-ui/p-31beae9e.entry.js.map +0 -1
  794. package/dist/genexus-ide-ui/p-3d4355b4.entry.js.map +0 -1
  795. package/dist/genexus-ide-ui/p-3ecdb582.entry.js.map +0 -1
  796. package/dist/genexus-ide-ui/p-48826a6f.entry.js.map +0 -1
  797. package/dist/genexus-ide-ui/p-4b79c3ab.entry.js.map +0 -1
  798. package/dist/genexus-ide-ui/p-4c717aa7.entry.js.map +0 -1
  799. package/dist/genexus-ide-ui/p-4cbc8a8b.entry.js.map +0 -1
  800. package/dist/genexus-ide-ui/p-530c32aa.entry.js.map +0 -1
  801. package/dist/genexus-ide-ui/p-54fbb568.entry.js.map +0 -1
  802. package/dist/genexus-ide-ui/p-55c87f23.entry.js +0 -287
  803. package/dist/genexus-ide-ui/p-55c87f23.entry.js.map +0 -1
  804. package/dist/genexus-ide-ui/p-56331289.entry.js.map +0 -1
  805. package/dist/genexus-ide-ui/p-5ac47c69.js.map +0 -1
  806. package/dist/genexus-ide-ui/p-67762237.entry.js.map +0 -1
  807. package/dist/genexus-ide-ui/p-68969051.entry.js.map +0 -1
  808. package/dist/genexus-ide-ui/p-6e4208d8.js +0 -9
  809. package/dist/genexus-ide-ui/p-6e4208d8.js.map +0 -1
  810. package/dist/genexus-ide-ui/p-76c3fc51.entry.js.map +0 -1
  811. package/dist/genexus-ide-ui/p-833c3585.entry.js.map +0 -1
  812. package/dist/genexus-ide-ui/p-84618917.entry.js.map +0 -1
  813. package/dist/genexus-ide-ui/p-8f00263d.entry.js.map +0 -1
  814. package/dist/genexus-ide-ui/p-961cd6c2.entry.js.map +0 -1
  815. package/dist/genexus-ide-ui/p-9a609b51.js.map +0 -1
  816. package/dist/genexus-ide-ui/p-9b5cb6b9.entry.js.map +0 -1
  817. package/dist/genexus-ide-ui/p-9ddea83b.js +0 -146
  818. package/dist/genexus-ide-ui/p-9ddea83b.js.map +0 -1
  819. package/dist/genexus-ide-ui/p-a59a07e2.entry.js.map +0 -1
  820. package/dist/genexus-ide-ui/p-a790c4c9.entry.js.map +0 -1
  821. package/dist/genexus-ide-ui/p-ba7d1472.entry.js.map +0 -1
  822. package/dist/genexus-ide-ui/p-be8a59fd.js +0 -107
  823. package/dist/genexus-ide-ui/p-be8a59fd.js.map +0 -1
  824. package/dist/genexus-ide-ui/p-c747afac.entry.js.map +0 -1
  825. package/dist/genexus-ide-ui/p-cd397078.entry.js.map +0 -1
  826. package/dist/genexus-ide-ui/p-d095a37c.entry.js.map +0 -1
  827. package/dist/genexus-ide-ui/p-db9c3b37.entry.js +0 -85
  828. package/dist/genexus-ide-ui/p-db9c3b37.entry.js.map +0 -1
  829. package/dist/genexus-ide-ui/p-de7f0c1f.entry.js.map +0 -1
  830. package/dist/genexus-ide-ui/p-ded7444c.entry.js.map +0 -1
  831. package/dist/genexus-ide-ui/p-e502c2fd.entry.js.map +0 -1
  832. package/dist/genexus-ide-ui/p-eea944d4.entry.js.map +0 -1
  833. package/dist/genexus-ide-ui/p-f3f35e5c.entry.js.map +0 -1
  834. package/dist/genexus-ide-ui/p-fa18a70c.entry.js.map +0 -1
  835. package/dist/genexus-ide-ui/p-fdf41406.entry.js.map +0 -1
  836. package/dist/genexus-ide-ui/p-fe490103.entry.js.map +0 -1
  837. package/dist/genexus-ide-ui/p-fecc50e4.entry.js.map +0 -1
  838. /package/dist/genexus-ide-ui/{p-59ed3f39.entry.js.map → p-02fc47cd.entry.js.map} +0 -0
  839. /package/dist/genexus-ide-ui/{p-683cb15e.entry.js.map → p-2be58a7a.entry.js.map} +0 -0
  840. /package/dist/genexus-ide-ui/{p-3b8db39e.entry.js.map → p-39c527ff.entry.js.map} +0 -0
  841. /package/dist/genexus-ide-ui/{p-50b22f23.entry.js.map → p-4d929210.entry.js.map} +0 -0
  842. /package/dist/genexus-ide-ui/{p-bac13202.entry.js.map → p-844b7117.entry.js.map} +0 -0
  843. /package/dist/genexus-ide-ui/{p-74c81ca3.entry.js.map → p-8636a0bd.entry.js.map} +0 -0
  844. /package/dist/genexus-ide-ui/{p-c6c955a3.entry.js.map → p-95f831a8.entry.js.map} +0 -0
  845. /package/dist/genexus-ide-ui/{p-e4c2e200.entry.js.map → p-9a39e49c.entry.js.map} +0 -0
  846. /package/dist/genexus-ide-ui/{p-beea29fa.entry.js.map → p-9a9ee1ee.entry.js.map} +0 -0
  847. /package/dist/genexus-ide-ui/{p-6b957e82.entry.js.map → p-b211bca8.entry.js.map} +0 -0
  848. /package/dist/genexus-ide-ui/{p-2027c939.entry.js.map → p-e37e95e7.entry.js.map} +0 -0
  849. /package/dist/genexus-ide-ui/{p-e7fb3ee3.entry.js.map → p-f2bd9044.entry.js.map} +0 -0
  850. /package/dist/genexus-ide-ui/{p-0550fd5f.entry.js.map → p-f52bcdac.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 +0,0 @@
1
- {"file":"helpers-10479d69.js","mappings":"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","names":[],"sources":["src/common/helpers.tsx"],"sourcesContent":["import { h } from \"@stencil/core\";\n\nimport {\n ChCheckboxCustomEvent,\n ComboBoxModel,\n TreeViewItemModel\n} from \"@genexus/chameleon-controls-library\";\nexport type ChCheckboxArray = HTMLChCheckboxElement[] | null;\n\nimport { GxOption } from \"./types\";\n\nconst daysOfWeek = [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n];\n\n/**\n * @param element an HTMLElement\n * @returns an alphabetically ordered array of all the parts and exportparts the element contains.\n */\nexport const getElementSelectorParts = (element: HTMLElement) => {\n const queries: string[] = [];\n const elementParts = element.shadowRoot?.querySelectorAll(`[part]`);\n const elementExportParts =\n element.shadowRoot?.querySelectorAll(`[exportparts]`);\n\n elementParts?.forEach(el => {\n queries.push(\n `${element.tagName.toLowerCase()}::part(${el.getAttribute(\"part\")})`\n );\n });\n elementExportParts?.forEach(el => {\n queries.push(\n ...[\n ...el.getAttribute(\"exportparts\").matchAll(/(?:[\\w-]+:)?([\\w-]+)/g)\n ].map(item => `${element.tagName.toLowerCase()}::part(${item[1]})`)\n );\n });\n\n return queries.sort();\n};\n\n/**\n * @param selector a part selector\n * @returns A reference to the element the part belongs to.\n */\nexport const querySelectorPart = (selector: string) => {\n const querySelectorDeep = (\n element: HTMLElement,\n parts: string\n ): HTMLElement => {\n const shadow = element.shadowRoot;\n const partList = parts.split(\" \");\n\n const partElement: HTMLElement = shadow.querySelector(\n partList.map(partName => `[part~=\"${partName}\"]`).join(\"\")\n );\n if (partElement) {\n return partElement;\n }\n\n const exportPartElement: HTMLElement = shadow.querySelector(\n partList.map(partName => `[exportparts*=\"${partName}\"]`).join(\"\")\n );\n if (exportPartElement) {\n const exportPartList: string[] = [];\n const exportparts = exportPartElement.getAttribute(\"exportparts\");\n\n partList.forEach(partItem => {\n const exportPartName = exportparts.match(\n `(?:([\\\\w-]+):)?(${partItem})`\n )[1];\n if (exportPartName) {\n exportPartList.push(exportPartName);\n }\n });\n\n if (partList.length === exportPartList.length) {\n return querySelectorDeep(exportPartElement, exportPartList.join(\" \"));\n }\n }\n\n return null;\n };\n\n const selectorItems = selector.match(\"(.*)::part\\\\(([^)]+)\\\\)\");\n const entity = selectorItems[1];\n const partName = selectorItems[2];\n\n return querySelectorDeep(document.querySelector(entity), partName);\n};\n\nconst daysFromToday = (date: Date): number => {\n const today = new Date();\n // To calculate the time difference of two dates\n const timeDifference = today.getTime() - date.getTime();\n // To calculate the no. of days between two dates\n const daysDifference = timeDifference / (1000 * 3600 * 24);\n return Math.floor(daysDifference);\n};\n\n// - - - - - - - - - - - -\n// Date Functions\n// - - - - - - - - - - - -\n\nconst isToday = (date: Date): boolean => {\n const today = new Date();\n if (today.toDateString() === date.toDateString()) {\n return true;\n }\n return false;\n};\n\nconst isYesterday = (date: Date): boolean => {\n const yesterday = new Date();\n yesterday.setDate(yesterday.getDate() - 1);\n if (yesterday.toDateString() === date.toDateString()) {\n return true;\n }\n return false;\n};\n\nexport const formatDate = (\n date: Date,\n type: FormatDateType = \"date-time\"\n): string => {\n let formattedDate;\n // validate date\n // undefined or null\n if (date === undefined || date === null) {\n return \"\";\n }\n // If the date object is invalid it will return 'NaN' on getTime() and NaN is never equal to itself\n const dateIsValid = date.getTime() === date.getTime();\n if (!dateIsValid) {\n return \"Invalid date\";\n }\n let locale = \"en-US\";\n const lang = document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf();\n if (lang === \"es\") {\n locale = \"es-ES\";\n }\n formattedDate = date.toLocaleDateString(locale);\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n const time = `${hours}:${minutes}`;\n if (type === \"date-time\") {\n formattedDate += ` / ${date.toLocaleTimeString()}`;\n } else if (type === \"date-time-short\") {\n // No seconds\n if (locale === \"es-ES\") {\n formattedDate = `${year}-${month}-${day} ${time}`;\n } else {\n formattedDate = `${month}/${day}/${year} ${time}`;\n }\n } else if (\"pretty\") {\n const daysPassedFromToday = daysFromToday(date);\n const today = new Date();\n const currentYear = today.getFullYear();\n if (isToday(date)) {\n return `Today ${time}`;\n } else if (isYesterday(date)) {\n return `Yesterday ${time}`;\n } else if (daysPassedFromToday <= 7) {\n // If one week or less, just show the day of the week, and the time\n const day = daysOfWeek[date.getDay()];\n return `${day} ${time}`;\n } else if (currentYear === year) {\n // If current year, show day number and month name. Example: November 17th\n if (locale === \"es-ES\") {\n formattedDate = `${day} de ${date.toLocaleString(\"es-ES\", {\n month: \"long\"\n })} ${time}`;\n } else {\n formattedDate = `${date.toLocaleString(\"en-US\", {\n month: \"long\"\n })} ${day} ${time}`;\n }\n } else {\n // Display date as usual\n formattedDate = formatDate(date, \"date-time-short\");\n }\n }\n return formattedDate;\n};\n\nexport type FormatDateType =\n | \"date\"\n | \"date-time\"\n | \"date-time-short\"\n | \"pretty\";\n\n// - - - - - - - - - - - -\n// /End of Date Functions\n// - - - - - - - - - - - -\n\n/* Count the total tree nodes (by default it does not count the first level nodes)*/\nexport const countTreeItems = (\n treeModel: TreeViewItemModel[],\n children = false\n): number => {\n let totalNodes = 0;\n treeModel.forEach(node => {\n children && totalNodes++;\n if (node.items) {\n totalNodes += countTreeItems(node.items, true);\n }\n });\n return totalNodes;\n};\n\n/**\n * @description it evaluates the initial selected combo item\n * @param options an array of GxOption\n * @returns the initial combo value, which in this case is the id\n */\nexport const setInitialComboValue = (options: GxOption[]): string => {\n const selected = options.find(option => option.selected);\n if (selected) {\n return selected.value || selected.id;\n } else {\n return options[0].value || options[0].id;\n }\n};\n\nexport const escapeRegExp = (str: string) => {\n return str.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\n/**\n * @description this function highlights the character(s) that match(es) the filter value.\n * hiChar comes from (hi)light (Char)acters\n * @param text the string to find the filter value on\n * @param filterValue the filter value\n * @returns a span element\n */\nexport const hiChar = function (text: string, filterValue: string) {\n if (text && filterValue) {\n const escapedFilterValue = escapeRegExp(filterValue);\n const re = new RegExp(escapedFilterValue, \"gi\");\n return (\n <span\n innerHTML={text.replace(re, '<span class=\"hiChar\">$&</span>')}\n ></span>\n );\n } else {\n return text;\n }\n};\n\nexport const closeOnOutsideClickHandler = (\n eventInfo: PointerEvent,\n ref: HTMLElement\n): true | void => {\n if (!eventInfo.composedPath().includes(ref)) {\n return true;\n }\n};\n\nexport const mapOptionsToComboBoxItemModel = (\n options: GxOption[]\n): ComboBoxModel =>\n options.map(option => ({\n value: option.id,\n caption: option.label\n // startImgSrc: option.iconName\n }));\n\nexport const renderChCheckboxItems = (\n options: GxOption[] | undefined,\n frontEndCheckboxInputHandler: (\n event: ChCheckboxCustomEvent<string> | InputEvent\n ) => void,\n checkedIds: string[]\n): HTMLChCheckboxElement[] => {\n return options?.map(option => {\n const value = checkedIds?.find(\n id => option.value === id || option.id === id\n );\n return (\n <ch-checkbox\n name={option.name}\n class=\"checkbox\"\n checkedValue={option.value || option.id}\n caption={option.label}\n disabled={option.disabled}\n value={value}\n onInput={frontEndCheckboxInputHandler}\n startImgSrc={option.iconName}\n key={option.value || option.id}\n ></ch-checkbox>\n );\n });\n};\n"],"version":3}
@@ -1 +0,0 @@
1
- {"file":"locale-e5107fad.js","mappings":"AAEA,MAAM,aAAa,GAAG,gBAAgB,CAAC;AACvC,MAAM,gBAAgB,GAAG,SAAS,CAAC;AACnC,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC9B,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC9B,MAAM,WAAW,GAAG,QAAQ,CAAC;AAC7B,MAAM,cAAc,GAAG,OAAO,CAAC;MAElB,MAAM;IAGT,OAAO,OAAO;;QACpB,MAAM,IAAI,GACR,MAAA,MAAA,QAAQ;aACL,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;aAC/B,YAAY,CAAC,MAAM,CAAC,0CACnB,OAAO,EAAE,mCAAI,gBAAgB,CAAC;;QAGpC,OAAO,IAAI,KAAK,OAAO,GAAG,IAAI,GAAG,IAAI,CAAC;KACvC;IAEO,OAAO,UAAU,CACvB,SAAiB,EACjB,IAAY,EACZ,MAAc;QAEd,IAAI,MAAM,KAAK,EAAE,EAAE;YACjB,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;SAC1B;QACD,MAAM,IAAI,GACR,GAAG,aAAa,GAAG,MAAM,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,GAAG,IAAI,GAAG,cAAc,EAAW,CAAC;QAExG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM;YACjC,KAAK,CAAsC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ;gBAC5D,IAAI,QAAQ,CAAC,EAAE,EAAE;oBACf,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;iBAC1B;qBAAM;oBACL,MAAM,EAAE,CAAC;iBACV;aACF,EAAE,MAAM,CAAC,CAAC;SACZ,CAAC,CAAC;KACJ;IAEM,aAAa,mBAAmB,CACrC,OAAoB,EACpB,MAAM,GAAG,EAAE,EACX,SAAS,GAAG,EAAE;QAEd,IAAI,SAAS,KAAK,EAAE,EAAE;YACpB,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;SACzE;QACD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9B,OAAO,MAAM,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;KACzD;IAEM,OAAO,MAAM,CAAC,IAAY,EAAE,KAAe;QAChD,IAAI,GAAG,GAAW,IAAI,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;SACrD,CAAC,CAAC;QACH,OAAO,GAAG,CAAC;KACZ;;AArDa,uBAAgB,GAAG,EAAE;;;;","names":[],"sources":["src/common/locale.ts"],"sourcesContent":["import { Build } from \"@stencil/core\";\n\nconst ASSETS_FOLDER = \"gx-ide-assets/\";\nconst COMPONENT_PREFIX = \"gx-ide-\";\nconst DEFAULT_LANGUAGE = \"en\";\nconst LANGS_FOLDER = \"langs/\";\nconst LANG_PREFIX = \".lang.\";\nconst LANG_EXTENSION = \".json\";\n\nexport class Locale {\n public static commonAssetsPath = \"\";\n\n private static getLang(): string {\n const lang =\n document\n .getElementsByTagName(\"html\")[0]\n .getAttribute(\"lang\")\n ?.valueOf() ?? DEFAULT_LANGUAGE;\n\n // Normalize en-US\n return lang === \"en-US\" ? \"en\" : lang;\n }\n\n private static getStrings(\n component: string,\n lang: string,\n folder: string\n ): Promise<any> {\n if (folder === \"\") {\n folder = `${component}/`;\n }\n const path =\n `${ASSETS_FOLDER}${folder}${LANGS_FOLDER}${component}${LANG_PREFIX}${lang}${LANG_EXTENSION}` as const;\n\n return new Promise((resolve, reject): void => {\n fetch(Build.isTesting ? \"/build/\" + path : path).then(langFile => {\n if (langFile.ok) {\n resolve(langFile.json());\n } else {\n reject();\n }\n }, reject);\n });\n }\n\n public static async getComponentStrings(\n element: HTMLElement,\n folder = \"\",\n component = \"\"\n ): Promise<any> {\n if (component === \"\") {\n component = element.tagName.toLowerCase().replace(COMPONENT_PREFIX, \"\");\n }\n const lang = Locale.getLang();\n return await Locale.getStrings(component, lang, folder);\n }\n\n public static format(text: string, parms: string[]): string {\n let ret: string = text;\n parms.forEach(parm => {\n ret = ret.replace(`{${parms.indexOf(parm)}}`, parm);\n });\n return ret;\n }\n}\n"],"version":3}
@@ -1 +0,0 @@
1
- {"version":3,"names":["splashCss","COPYRIGHTS_ILLUSTRATION","getAssetPath","LOGO_NEXT","CSS_BUNDLES","OPEN_LOG_ICON","getIconPath","category","name","colorType","GxIdeUiSplash","_GxIdeUiSplash_componentLocale","set","this","componentWillLoad","__classPrivateFieldSet","Locale","getComponentStrings","el","render","renderOpenLogLink","showOpenLogLink","openLogCallback","renderInstallationErrorMessage","showQuitButton","quitCallback","messages","length","renderInitializingMessage","_a","renderErrorMessage","showDockerMissingError","installationErrorMessage","__classPrivateFieldGet","warnings","installationFailed","checkTheLog","h","Host","model","class","scrollable","wrapper","style","backgroundImage","role","src","alt","illustrationAlternativeText","title","allRightsReserved","copyright","initializingServices","ANIMATION_DOTS","ariaBusy","_b","reverse","map","message","i","log__message","type","key","text","dockerMissing","onClick","downloadDockerCallback","downloadDocker","openLog","quitGenexus"],"sources":["src/components/splash/splash.scss?tag=gx-ide-splash&encapsulation=shadow","src/components/splash/splash.tsx"],"sourcesContent":["@import \"../../global/components/splash-and-welcome-page\";\n\n:host {\n --wrapper-copacity: 0;\n --wrapper-min-inline-size: 700px;\n --wrapper-max-inline-size: 1040px;\n --wrapper-block-size: 640px;\n transition: var(--mer-timing--regular) opacity;\n\n display: flex;\n align-items: center;\n justify-content: center;\n inline-size: 100%;\n block-size: 100%;\n padding: 16px;\n\n overflow: auto;\n}\n\n.wrapper {\n flex: 1;\n display: grid;\n grid-template-columns: 1fr var(--wrapper-block-size);\n block-size: var(--wrapper-block-size);\n // min-inline-size: var(--wrapper-min-inline-size);\n max-inline-size: var(--wrapper-max-inline-size);\n\n background-color: var(--mer-surface__elevation--01);\n border-radius: var(--mer-spacing--sm);\n\n overflow: auto;\n transform: translateY(6px);\n}\n\n// Side inline-start (the illustration)\n.side-inline-start {\n background-size: cover;\n}\n\n// Side inline-end (the content)\n.side-inline-end {\n position: relative;\n display: grid;\n grid-template-rows: max-content 1fr max-content;\n padding: 64px 80px;\n\n transition: 1000ms grid-template-rows;\n overflow: auto;\n}\n\n.close-button {\n position: absolute;\n inset-inline-end: 0;\n inset-block-start: 0;\n}\n\n// header\n.header {\n display: grid;\n gap: var(--mer-spacing--md);\n margin-block-end: 92px;\n}\n.header__logo__close-button {\n display: flex;\n justify-content: space-between;\n}\n.title {\n color: var(--mer-text__on-surface);\n font-size: var(--mer-font__size--xl);\n font-weight: var(--mer-font__weight--semi-bold);\n letter-spacing: 0.02em;\n}\n.header__description {\n color: var(--mer-text__complementary);\n line-height: 1.45 !important;\n // TODO: Discuss with Design Team about line-height.\n // Mercury line-heights looks tight to me.\n}\n\n.main {\n display: flex;\n flex-direction: column;\n gap: var(--mer-spacing--sm);\n // margin-block-start: auto;\n\n overflow: auto;\n}\n.log__container {\n --logVisibleLines: 6;\n --logFontSize: 12px; // 12px is the font size of .tiny-regular-l\n --logLineHeight: 1.2; // 1.2 is the line-height of .tiny-regular-l\n --logGap: 4px;\n --logContainerBlockSize: calc(\n var(--logFontSize) * var(--logLineHeight) * var(--logVisibleLines) +\n calc(var(--logGap) * (var(--logVisibleLines) - 1))\n );\n block-size: var(--logContainerBlockSize);\n // TODO: Add/include on Mercury a monospaced font, and then use it here.\n font-family: monospace;\n color: var(--mer-text__complementary);\n display: flex;\n flex-direction: column-reverse;\n gap: var(--logGap);\n overflow: hidden;\n // margin-block-start: auto;\n\n &:hover {\n overflow: auto;\n }\n}\n.log__message {\n opacity: 0;\n transition: var(--mer-timing--regular) opacity;\n animation: fadeInLogMessage 0.45s ease-out forwards;\n\n &--error {\n color: var(--mer-text__error);\n }\n}\n\n// footer\n.footer {\n display: grid;\n grid-auto-rows: max-content;\n gap: var(--mer-spacing--sm);\n margin-block-start: var(--mer-spacing--lg);\n}\n.error-message {\n font-family: monospace;\n font-size: 13px;\n line-height: 1.5;\n color: var(--mer-text__error);\n margin-block-start: auto;\n // TODO: Use clamp from a helper mixin\n display: -webkit-box;\n -webkit-line-clamp: 2;\n overflow: hidden;\n}\n\n// helpers\n.status--processing {\n display: flex;\n flex-direction: row;\n align-items: baseline;\n gap: 4px;\n}\n\n@keyframes fadeInLogMessage {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n","// Stencil\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n State,\n getAssetPath\n} from \"@stencil/core\";\nimport { MercuryBundles, getIconPath } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { ANIMATION_DOTS } from \"../../common/common\";\n\nconst COPYRIGHTS_ILLUSTRATION = getAssetPath(\n `./gx-ide-assets/splash/images/copyrights-illustration.svg`\n);\nconst LOGO_NEXT = getAssetPath(\n `./gx-ide-assets/welcome-page/images/icon-next.svg`\n);\nconst CSS_BUNDLES: MercuryBundles = [\n \"resets/box-sizing\",\n \"utils/typography\",\n \"components/button\",\n \"chameleon/scrollbar\"\n];\n\nconst OPEN_LOG_ICON = getIconPath({\n category: \"system\",\n name: \"launch\",\n colorType: \"primary\"\n});\n\n@Component({\n tag: \"gx-ide-splash\",\n styleUrl: \"splash.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/splash\"]\n})\nexport class GxIdeUiSplash {\n /**\n * The component hard-coded strings translations.\n */\n // eslint-disable-next-line @stencil-community/own-props-must-be-private\n #componentLocale: any;\n\n @Element() el: HTMLGxIdeSplashElement;\n\n /**\n * Set this to true if installation is in process\n */\n @State() ariaBusy: boolean = true;\n\n /**\n * Callback invoked when the user clicks the 'Download Docker' button.\n */\n @Prop() readonly downloadDockerCallback: () => void;\n\n /**\n * Callback invoked when the user clicks the quit button.\n */\n @Prop() readonly quitCallback: () => void;\n\n /**\n * Array of messages to display in the text box.\n * This property updates whenever a message is added,\n * and the scroll should position itself at the bottom to keep the last message visible.\n */\n @Prop() readonly messages: MessageType[] = [];\n\n /**\n * Callback invoked when the user clicks the 'Open log' link.\n */\n @Prop() readonly openLogCallback: () => void;\n\n /**\n * Set to `true` to display the quit button.\n */\n @Prop() readonly showQuitButton: boolean = false;\n\n /**\n * Set to `true` to display the 'Open log' link.\n */\n @Prop() readonly showOpenLogLink: boolean = false;\n\n /**\n * Set to `true` to display \"Docker is not installed\" error message and to display \"Download Docker\" button.\n */\n @Prop() readonly showDockerMissingError: boolean = false;\n\n async componentWillLoad() {\n this.#componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n render() {\n const renderOpenLogLink = this.showOpenLogLink && this.openLogCallback;\n const renderInstallationErrorMessage =\n this.showQuitButton && this.quitCallback && this.messages.length > 0;\n const renderInitializingMessage =\n !(this.showQuitButton && this.quitCallback) && this.messages?.length > 0;\n const renderErrorMessage =\n this.showDockerMissingError || !renderInitializingMessage;\n\n let installationErrorMessage =\n this.#componentLocale.warnings.installationFailed;\n if (renderOpenLogLink) {\n installationErrorMessage = `${installationErrorMessage} ${\n this.#componentLocale.warnings.checkTheLog\n }`;\n }\n\n return (\n <Host>\n <ch-theme model={CSS_BUNDLES}></ch-theme>\n <div\n class={{\n scrollable: true,\n wrapper: true\n }}\n >\n <div\n class=\"side-inline-start\"\n style={{ backgroundImage: `url(${COPYRIGHTS_ILLUSTRATION})` }}\n role=\"img\"\n ></div>\n\n <section class=\"side-inline-end scrollable\">\n <header class=\"header\">\n <img\n src={LOGO_NEXT}\n alt={this.#componentLocale.illustrationAlternativeText}\n />\n <h2 class=\"title\">{this.#componentLocale.title}</h2>\n <p class=\"body-italic-m header__description\">\n {this.#componentLocale.allRightsReserved}\n </p>\n <p class=\"body-italic-m header__description\">\n {this.#componentLocale.copyright}\n </p>\n </header>\n\n <main class=\"main\">\n {renderInitializingMessage && (\n <p\n class={{\n \"body-regular-m\": true,\n \"status--processing\": true\n }}\n >\n {this.#componentLocale.initializingServices}\n {ANIMATION_DOTS(\"tiny\", \"on-surface\")}\n </p>\n )}\n\n <code\n class=\"log__container scrollable\"\n role=\"status\"\n aria-live=\"polite\"\n aria-busy={this.ariaBusy}\n >\n {this.messages?.reverse().map((message, i) => {\n return (\n <p\n class={{\n \"tiny-regular-l\": true,\n \"log__message\": true,\n \"log__message--error\": message.type === \"error\"\n }}\n key={this.messages.length - i}\n >\n {message.text}\n </p>\n );\n })}\n </code>\n\n {renderErrorMessage && (\n <p class=\"error-message status--error\">\n {renderInstallationErrorMessage && (\n <span>{installationErrorMessage}</span>\n )}\n\n {renderInstallationErrorMessage &&\n this.showDockerMissingError && <span> - </span>}\n\n {this.showDockerMissingError && (\n <span>{this.#componentLocale.warnings.dockerMissing}</span>\n )}\n </p>\n )}\n </main>\n\n <footer class=\"footer\">\n <div class=\"buttons-spacer\">\n {this.showDockerMissingError && (\n <button\n key=\"download-docker\"\n class=\"button-secondary button-icon-and-text download-docker-button\"\n onClick={this.downloadDockerCallback}\n >\n {this.#componentLocale.downloadDocker}\n </button>\n )}\n\n {renderOpenLogLink && (\n <button\n key=\"open-log\"\n class=\"button-tertiary button-icon-and-text\"\n onClick={this.openLogCallback}\n >\n <ch-image class=\"icon-md\" src={OPEN_LOG_ICON}></ch-image>\n {this.#componentLocale.openLog}\n </button>\n )}\n\n {this.quitCallback && this.showQuitButton && (\n <button class=\"button-secondary\" onClick={this.quitCallback}>\n {this.#componentLocale.quitGenexus}\n </button>\n )}\n </div>\n </footer>\n </section>\n </div>\n </Host>\n );\n }\n}\n\nexport type MessageType = {\n type: \"info\" | \"error\";\n text: string;\n};\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"names":["editModuleServerCss","GxIdeEditModuleServer","this","renderedFirstTime","confirmCallbackHandler","async","confirmCallback","selectedTypeId","types","find","type","selectedType","data","id","name","nameEl","value","serverTypeEl","authenticated","source","sourceEl","user","userEl","password","passwordEl","cancelCallbackHandler","cancelCallback","selectSourceCallbackHandle","path","selectSourceCallback","renderServerOptions","h","class","_componentLocale","placeholder","ref","el","part","componentWillLoad","Locale","getComponentStrings","componentDidRender","componentDidRenderFirstTime","emit","componentName","render","Host","slimmerFooter","_a","map","onItemSelected","item","detail","onClick","slot","footer","btnCancel","btnConfirm"],"sources":["src/components/modules/edit-module-server/edit-module-server.scss?tag=gx-ide-edit-module-server&encapsulation=shadow","src/components/modules/edit-module-server/edit-module-server.tsx"],"sourcesContent":["@import \"../../../global/gx-ide-common.scss\";\n@import \"../../../global/gx-ide-mixins.scss\";\n\n:host {\n display: block;\n}\n.module-servers-grid-local {\n gap: var(--spacing-comp-03);\n display: grid;\n grid-template-columns: auto 1fr auto;\n\n *:nth-child(3) {\n align-self: end;\n }\n}\n.module-servers-grid-server {\n gap: var(--spacing-comp-03);\n display: grid;\n grid-template-columns: auto 1fr;\n\n *:nth-child(3) {\n align-self: end;\n }\n}\n.module-servers-grid-column-1 {\n gap: var(--spacing-comp-03);\n display: grid;\n grid-template-rows: repeat(3, 1fr);\n}\n\n.module-servers-grid-column-2 {\n gap: var(--spacing-comp-03);\n display: grid;\n grid-template-rows: repeat(2, 1fr);\n}\n.grid-server-auth-column-1 {\n gap: var(--spacing-comp-03);\n display: grid;\n grid-template-rows: repeat(2, 1fr);\n}\n\n.grid-server-auth-column-2 {\n gap: var(--spacing-comp-03);\n display: grid;\n grid-template-rows: repeat(2, 1fr);\n}\n","/* STENCIL IMPORTS */\nimport {\n Component,\n Host,\n h,\n Prop,\n Element,\n Event,\n State,\n EventEmitter\n} from \"@stencil/core\";\n\n/* OTHER LIBRARIES IMPORTS */\n/* CUSTOM IMPORTS */\nimport { Locale } from \"../../../common/locale\";\nimport {\n ModuleServerType,\n ModuleServerFullData,\n EditServerModuleResult\n} from \"../types\";\n@Component({\n tag: \"gx-ide-edit-module-server\",\n styleUrl: \"edit-module-server.scss\",\n shadow: true,\n assetsDirs: [\"gx-ide-assets/edit-module-server\"]\n})\nexport class GxIdeEditModuleServer {\n // 1.OWN PROPERTIES | WATCH'S //\n\n /**\n * The component hard-coded strings translations.\n */\n private _componentLocale: any;\n private renderedFirstTime = false;\n\n // 2. REFERENCE TO ELEMENTS //\n\n @Element() el: HTMLGxIdeEditModuleServerElement;\n private serverTypeEl: HTMLGxgComboBoxElement;\n private nameEl: HTMLGxgFormTextElement;\n private sourceEl: HTMLGxgFormTextElement;\n private userEl: HTMLGxgFormTextElement;\n private passwordEl: HTMLGxgFormTextElement;\n\n // 3.STATE() VARIABLES //\n\n @State() selectedType: \"local\" | \"remote\" = \"local\";\n\n // 4.PUBLIC PROPERTY API //\n\n /**\n * The type of the server\n */\n @Prop() readonly types: ModuleServerType[];\n\n /**\n * The name of the server\n */\n @Prop() readonly name: string;\n\n /**\n * Disk path or server url\n */\n @Prop() readonly source: string;\n\n /**\n * Id of the currently selected server type\n */\n @Prop() readonly type: string;\n\n /**\n * Confirm callback\n */\n @Prop() readonly confirmCallback: ConfirmCallback;\n\n /**\n * Callback invoked when wants to select a local folder that have modules inside\n */\n @Prop() readonly selectSourceCallback: SelectSourceCallback;\n\n /**\n * Cancel callback\n */\n @Prop() readonly cancelCallback: CancelCallback;\n\n // 5.EVENTS (EMIT) //\n\n /**\n * This event is emitted once just after the component is fully loaded and the first render() occurs\n */\n @Event() componentDidRenderFirstTime: EventEmitter<boolean>;\n\n // 6.COMPONENT LIFECYCLE EVENTS //\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n }\n\n componentDidRender() {\n if (!this.renderedFirstTime) {\n this.componentDidRenderFirstTime.emit(\n this._componentLocale.componentName\n );\n this.renderedFirstTime = true;\n }\n }\n\n // 7.LISTENERS //\n\n // 8.PUBLIC METHODS API //\n\n // 9.LOCAL METHODS //\n\n /**\n * Executed when user click on confirm button\n */\n private confirmCallbackHandler = async () => {\n if (this.confirmCallback) {\n const selectedTypeId = this.types.find(\n ({ type }) => type === this.selectedType\n );\n let data = {} as ModuleServerFullData;\n if (selectedTypeId.type === \"remote\") {\n data = {\n id: selectedTypeId.id,\n name: this.nameEl.value,\n type: this.serverTypeEl.value,\n authenticated: selectedTypeId.authenticated,\n source: this.sourceEl.value,\n user: this.userEl.value,\n password: this.passwordEl.value\n };\n } else {\n data = {\n id: selectedTypeId.id,\n name: this.nameEl.value,\n type: this.serverTypeEl.value,\n authenticated: selectedTypeId.authenticated,\n source: this.sourceEl.value\n };\n }\n const result = await this.confirmCallback(data);\n if (result.success) {\n // display success message\n } else {\n // display error message\n }\n }\n };\n\n /**\n * Executed when user click on cancel button\n */\n private cancelCallbackHandler = async () => {\n await this.cancelCallback();\n };\n private selectSourceCallbackHandle = async () => {\n const path = await this.selectSourceCallback();\n\n if (path) {\n this.sourceEl.value = path;\n }\n };\n\n // 10.LOCAL METHODS //\n\n private renderServerOptions = (): Element[] => {\n return [\n <div class=\"grid-server-auth-column-1\">\n <gxg-label>{this._componentLocale.user}</gxg-label>\n <gxg-label>{this._componentLocale.password}</gxg-label>\n </div>,\n <div class=\"grid-server-auth-column-2\">\n <gxg-form-text\n placeholder={this._componentLocale.user}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.userEl = el as HTMLGxgFormTextElement)\n }\n part=\"user\"\n ></gxg-form-text>\n <gxg-form-text\n password\n placeholder={this._componentLocale.password}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.passwordEl = el as HTMLGxgFormTextElement)\n }\n part=\"password\"\n ></gxg-form-text>\n </div>\n ];\n };\n\n render() {\n return (\n <Host class=\"gx-ide-component\">\n <div class=\"gx-ide-main-wrapper gx-ide-overflow\">\n <gx-ide-container slimmerFooter>\n <div\n class={\n this.selectedType === \"local\"\n ? \"grid module-servers-grid-local\"\n : \"grid module-servers-grid-server\"\n }\n >\n <div class=\"module-servers-grid-column-1\">\n <gxg-label> {this._componentLocale.type}</gxg-label>\n <gxg-label> {this._componentLocale.name}</gxg-label>\n <gxg-label> {this._componentLocale.source}</gxg-label>\n </div>\n <div class=\"module-servers-grid-column-2\">\n <gxg-combo-box\n value={this.type}\n ref={(el: HTMLGxgComboBoxElement) =>\n (this.serverTypeEl = el as HTMLGxgComboBoxElement)\n }\n >\n {this.types?.map(type => (\n <gxg-combo-box-item\n value={type.id}\n onItemSelected={item =>\n (this.selectedType = item.detail.value)\n }\n >\n {type.type}\n </gxg-combo-box-item>\n ))}\n </gxg-combo-box>\n <gxg-form-text\n placeholder={this._componentLocale.name}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.nameEl = el as HTMLGxgFormTextElement)\n }\n value={this.name}\n part=\"name\"\n ></gxg-form-text>\n <gxg-form-text\n placeholder={this._componentLocale.source}\n ref={(el: HTMLGxgFormTextElement) =>\n (this.sourceEl = el as HTMLGxgFormTextElement)\n }\n value={this.source}\n part=\"source\"\n ></gxg-form-text>\n </div>\n {this.selectedType === \"local\" && (\n <gxg-button onClick={this.selectSourceCallbackHandle}>\n ...\n </gxg-button>\n )}\n {this.selectedType === \"remote\" && this.renderServerOptions()}\n </div>\n\n <gxg-button\n slot=\"footer-end\"\n type=\"outlined\"\n onClick={this.cancelCallbackHandler}\n >\n {this._componentLocale.footer.btnCancel}\n </gxg-button>\n <gxg-button\n slot=\"footer-end\"\n type=\"primary-text-only\"\n onClick={this.confirmCallbackHandler}\n >\n {this._componentLocale.footer.btnConfirm}\n </gxg-button>\n </gx-ide-container>\n </div>\n </Host>\n );\n }\n}\nexport type ConfirmCallback = (\n data: ModuleServerFullData\n) => Promise<EditServerModuleResult>;\nexport type CancelCallback = () => Promise<void>;\nexport type SelectSourceCallback = () => Promise<string | undefined>;\n"],"mappings":"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"}
@@ -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":"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"}