@genexus/genexus-ide-ui 1.0.48 → 1.0.50

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 (227) hide show
  1. package/dist/{esm/MERCURY_ASSETS-91a1db9c.js → cjs/MERCURY_ASSETS-ac982891.js} +2 -4
  2. package/dist/cjs/MERCURY_ASSETS-ac982891.js.map +1 -0
  3. package/dist/cjs/assets-manager-7227a74b.js +7 -0
  4. package/dist/cjs/assets-manager-7227a74b.js.map +1 -0
  5. package/dist/cjs/code-render-9b3efb53.js +50 -0
  6. package/dist/cjs/code-render-9b3efb53.js.map +1 -0
  7. package/dist/cjs/genexus-ide-ui.cjs.js +1 -1
  8. package/dist/cjs/gx-ide-ai-message.cjs.entry.js +3 -2
  9. package/dist/cjs/gx-ide-ai-message.cjs.entry.js.map +1 -1
  10. package/dist/cjs/gx-ide-chat-container.cjs.entry.js +62 -0
  11. package/dist/cjs/gx-ide-chat-container.cjs.entry.js.map +1 -0
  12. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js +4 -3
  13. package/dist/cjs/gx-ide-create-kb-from-server.cjs.entry.js.map +1 -1
  14. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js +3 -2
  15. package/dist/cjs/gx-ide-current-user-info.cjs.entry.js.map +1 -1
  16. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js +3 -2
  17. package/dist/cjs/gx-ide-dashboard-home.cjs.entry.js.map +1 -1
  18. package/dist/cjs/gx-ide-data-selector.cjs.entry.js +3 -2
  19. package/dist/cjs/gx-ide-data-selector.cjs.entry.js.map +1 -1
  20. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js +3 -2
  21. package/dist/cjs/gx-ide-data-type-selector.cjs.entry.js.map +1 -1
  22. package/dist/cjs/gx-ide-design-import.cjs.entry.js +8 -7
  23. package/dist/cjs/gx-ide-design-import.cjs.entry.js.map +1 -1
  24. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js +4 -3
  25. package/dist/cjs/gx-ide-entity-selector.cjs.entry.js.map +1 -1
  26. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js +7 -6
  27. package/dist/cjs/gx-ide-kb-manager-export.cjs.entry.js.map +1 -1
  28. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js +6 -5
  29. package/dist/cjs/gx-ide-kb-manager-import.cjs.entry.js.map +1 -1
  30. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js +4 -3
  31. package/dist/cjs/gx-ide-manage-module-references-v2.cjs.entry.js.map +1 -1
  32. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js +4 -3
  33. package/dist/cjs/gx-ide-manage-module-references.cjs.entry.js.map +1 -1
  34. package/dist/cjs/gx-ide-new-kb.cjs.entry.js +3 -2
  35. package/dist/cjs/gx-ide-new-kb.cjs.entry.js.map +1 -1
  36. package/dist/cjs/gx-ide-object-selector.cjs.entry.js +4 -3
  37. package/dist/cjs/gx-ide-object-selector.cjs.entry.js.map +1 -1
  38. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js +286 -0
  39. package/dist/cjs/gx-ide-sc-chat-container.cjs.entry.js.map +1 -0
  40. package/dist/cjs/gx-ide-share-kb.cjs.entry.js +3 -2
  41. package/dist/cjs/gx-ide-share-kb.cjs.entry.js.map +1 -1
  42. package/dist/cjs/gx-ide-start-page.cjs.entry.js +6 -5
  43. package/dist/cjs/gx-ide-start-page.cjs.entry.js.map +1 -1
  44. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js +3 -2
  45. package/dist/cjs/gx-ide-welcome-page.cjs.entry.js.map +1 -1
  46. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js +3 -2
  47. package/dist/cjs/gx-ide-ww-attributes.cjs.entry.js.map +1 -1
  48. package/dist/cjs/index.cjs.js +9 -0
  49. package/dist/cjs/index.cjs.js.map +1 -1
  50. package/dist/cjs/loader.cjs.js +1 -1
  51. package/dist/collection/collection-manifest.json +3 -1
  52. package/dist/collection/components/_helpers/chat-container/chat-container.css +178 -0
  53. package/dist/collection/components/_helpers/chat-container/chat-container.js +137 -0
  54. package/dist/collection/components/_helpers/chat-container/chat-container.js.map +1 -0
  55. package/dist/collection/components/_helpers/chat-container/code-render.js +42 -0
  56. package/dist/collection/components/_helpers/chat-container/code-render.js.map +1 -0
  57. package/dist/collection/index.js +1 -0
  58. package/dist/collection/index.js.map +1 -1
  59. package/dist/collection/showcase/chat-container/callbacks.js +247 -0
  60. package/dist/collection/showcase/chat-container/callbacks.js.map +1 -0
  61. package/dist/collection/showcase/chat-container/chat-showcase.css +4 -0
  62. package/dist/collection/showcase/chat-container/chat.showcase.js +57 -0
  63. package/dist/collection/showcase/chat-container/chat.showcase.js.map +1 -0
  64. package/dist/collection/testing/locale.e2e.js +4 -0
  65. package/dist/collection/testing/locale.e2e.js.map +1 -1
  66. package/dist/components/MERCURY_ASSETS.js +0 -4
  67. package/dist/components/MERCURY_ASSETS.js.map +1 -1
  68. package/dist/components/ai-message.js +2 -1
  69. package/dist/components/ai-message.js.map +1 -1
  70. package/dist/components/assets-manager.js +5 -0
  71. package/dist/components/assets-manager.js.map +1 -0
  72. package/dist/components/chat-container.js +78 -0
  73. package/dist/components/chat-container.js.map +1 -0
  74. package/dist/components/code-render.js +47 -0
  75. package/dist/components/code-render.js.map +1 -0
  76. package/dist/components/entity-selector.js +2 -1
  77. package/dist/components/entity-selector.js.map +1 -1
  78. package/dist/components/gx-ide-chat-container.d.ts +11 -0
  79. package/dist/components/gx-ide-chat-container.js +8 -0
  80. package/dist/components/gx-ide-chat-container.js.map +1 -0
  81. package/dist/components/gx-ide-create-kb-from-server.js +2 -1
  82. package/dist/components/gx-ide-create-kb-from-server.js.map +1 -1
  83. package/dist/components/gx-ide-current-user-info.js +2 -1
  84. package/dist/components/gx-ide-current-user-info.js.map +1 -1
  85. package/dist/components/gx-ide-dashboard-home.js +2 -1
  86. package/dist/components/gx-ide-dashboard-home.js.map +1 -1
  87. package/dist/components/gx-ide-data-selector.js +2 -1
  88. package/dist/components/gx-ide-data-selector.js.map +1 -1
  89. package/dist/components/gx-ide-data-type-selector.js +2 -1
  90. package/dist/components/gx-ide-data-type-selector.js.map +1 -1
  91. package/dist/components/gx-ide-design-import.js +2 -1
  92. package/dist/components/gx-ide-design-import.js.map +1 -1
  93. package/dist/components/gx-ide-kb-manager-export.js +2 -1
  94. package/dist/components/gx-ide-kb-manager-export.js.map +1 -1
  95. package/dist/components/gx-ide-kb-manager-import.js +2 -1
  96. package/dist/components/gx-ide-kb-manager-import.js.map +1 -1
  97. package/dist/components/gx-ide-manage-module-references-v2.js +2 -1
  98. package/dist/components/gx-ide-manage-module-references-v2.js.map +1 -1
  99. package/dist/components/gx-ide-manage-module-references.js +2 -1
  100. package/dist/components/gx-ide-manage-module-references.js.map +1 -1
  101. package/dist/components/gx-ide-new-kb.js +2 -1
  102. package/dist/components/gx-ide-new-kb.js.map +1 -1
  103. package/dist/components/gx-ide-object-selector.js +2 -1
  104. package/dist/components/gx-ide-object-selector.js.map +1 -1
  105. package/dist/components/gx-ide-sc-chat-container.d.ts +11 -0
  106. package/dist/components/gx-ide-sc-chat-container.js +308 -0
  107. package/dist/components/gx-ide-sc-chat-container.js.map +1 -0
  108. package/dist/components/gx-ide-share-kb.js +2 -1
  109. package/dist/components/gx-ide-share-kb.js.map +1 -1
  110. package/dist/components/gx-ide-start-page.js +2 -1
  111. package/dist/components/gx-ide-start-page.js.map +1 -1
  112. package/dist/components/gx-ide-welcome-page.js +2 -1
  113. package/dist/components/gx-ide-welcome-page.js.map +1 -1
  114. package/dist/components/gx-ide-ww-attributes.js +2 -1
  115. package/dist/components/gx-ide-ww-attributes.js.map +1 -1
  116. package/dist/components/index.js +2 -0
  117. package/dist/components/index.js.map +1 -1
  118. package/dist/{cjs/MERCURY_ASSETS-fbc83c8c.js → esm/MERCURY_ASSETS-9e4e8ebc.js} +1 -7
  119. package/dist/esm/MERCURY_ASSETS-9e4e8ebc.js.map +1 -0
  120. package/dist/esm/assets-manager-0d129105.js +5 -0
  121. package/dist/esm/assets-manager-0d129105.js.map +1 -0
  122. package/dist/esm/code-render-79798e42.js +47 -0
  123. package/dist/esm/code-render-79798e42.js.map +1 -0
  124. package/dist/esm/genexus-ide-ui.js +1 -1
  125. package/dist/esm/gx-ide-ai-message.entry.js +2 -1
  126. package/dist/esm/gx-ide-ai-message.entry.js.map +1 -1
  127. package/dist/esm/gx-ide-chat-container.entry.js +58 -0
  128. package/dist/esm/gx-ide-chat-container.entry.js.map +1 -0
  129. package/dist/esm/gx-ide-create-kb-from-server.entry.js +2 -1
  130. package/dist/esm/gx-ide-create-kb-from-server.entry.js.map +1 -1
  131. package/dist/esm/gx-ide-current-user-info.entry.js +2 -1
  132. package/dist/esm/gx-ide-current-user-info.entry.js.map +1 -1
  133. package/dist/esm/gx-ide-dashboard-home.entry.js +2 -1
  134. package/dist/esm/gx-ide-dashboard-home.entry.js.map +1 -1
  135. package/dist/esm/gx-ide-data-selector.entry.js +2 -1
  136. package/dist/esm/gx-ide-data-selector.entry.js.map +1 -1
  137. package/dist/esm/gx-ide-data-type-selector.entry.js +2 -1
  138. package/dist/esm/gx-ide-data-type-selector.entry.js.map +1 -1
  139. package/dist/esm/gx-ide-design-import.entry.js +2 -1
  140. package/dist/esm/gx-ide-design-import.entry.js.map +1 -1
  141. package/dist/esm/gx-ide-entity-selector.entry.js +2 -1
  142. package/dist/esm/gx-ide-entity-selector.entry.js.map +1 -1
  143. package/dist/esm/gx-ide-kb-manager-export.entry.js +2 -1
  144. package/dist/esm/gx-ide-kb-manager-export.entry.js.map +1 -1
  145. package/dist/esm/gx-ide-kb-manager-import.entry.js +2 -1
  146. package/dist/esm/gx-ide-kb-manager-import.entry.js.map +1 -1
  147. package/dist/esm/gx-ide-manage-module-references-v2.entry.js +2 -1
  148. package/dist/esm/gx-ide-manage-module-references-v2.entry.js.map +1 -1
  149. package/dist/esm/gx-ide-manage-module-references.entry.js +2 -1
  150. package/dist/esm/gx-ide-manage-module-references.entry.js.map +1 -1
  151. package/dist/esm/gx-ide-new-kb.entry.js +2 -1
  152. package/dist/esm/gx-ide-new-kb.entry.js.map +1 -1
  153. package/dist/esm/gx-ide-object-selector.entry.js +2 -1
  154. package/dist/esm/gx-ide-object-selector.entry.js.map +1 -1
  155. package/dist/esm/gx-ide-sc-chat-container.entry.js +282 -0
  156. package/dist/esm/gx-ide-sc-chat-container.entry.js.map +1 -0
  157. package/dist/esm/gx-ide-share-kb.entry.js +2 -1
  158. package/dist/esm/gx-ide-share-kb.entry.js.map +1 -1
  159. package/dist/esm/gx-ide-start-page.entry.js +2 -1
  160. package/dist/esm/gx-ide-start-page.entry.js.map +1 -1
  161. package/dist/esm/gx-ide-welcome-page.entry.js +2 -1
  162. package/dist/esm/gx-ide-welcome-page.entry.js.map +1 -1
  163. package/dist/esm/gx-ide-ww-attributes.entry.js +2 -1
  164. package/dist/esm/gx-ide-ww-attributes.entry.js.map +1 -1
  165. package/dist/esm/index.js +4 -0
  166. package/dist/esm/index.js.map +1 -1
  167. package/dist/esm/loader.js +1 -1
  168. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js +1 -1
  169. package/dist/genexus-ide-ui/genexus-ide-ui.esm.js.map +1 -1
  170. package/dist/genexus-ide-ui/index.esm.js +6 -0
  171. package/dist/genexus-ide-ui/index.esm.js.map +1 -1
  172. package/dist/genexus-ide-ui/{p-aa324232.entry.js → p-1a629aa9.entry.js} +4 -2
  173. package/dist/genexus-ide-ui/{p-aa324232.entry.js.map → p-1a629aa9.entry.js.map} +1 -1
  174. package/dist/genexus-ide-ui/{p-18317dd7.entry.js → p-1e29cd30.entry.js} +4 -2
  175. package/dist/genexus-ide-ui/{p-18317dd7.entry.js.map → p-1e29cd30.entry.js.map} +1 -1
  176. package/dist/genexus-ide-ui/{p-af05e095.entry.js → p-1ea6c3fe.entry.js} +13 -11
  177. package/dist/genexus-ide-ui/{p-af05e095.entry.js.map → p-1ea6c3fe.entry.js.map} +1 -1
  178. package/dist/genexus-ide-ui/{p-a1c5775d.entry.js → p-2145674e.entry.js} +4 -2
  179. package/dist/genexus-ide-ui/{p-a1c5775d.entry.js.map → p-2145674e.entry.js.map} +1 -1
  180. package/dist/genexus-ide-ui/{p-ec6129c7.entry.js → p-2cefd33a.entry.js} +4 -2
  181. package/dist/genexus-ide-ui/{p-ec6129c7.entry.js.map → p-2cefd33a.entry.js.map} +1 -1
  182. package/dist/genexus-ide-ui/{p-f252dd07.entry.js → p-36fecdcb.entry.js} +10 -8
  183. package/dist/genexus-ide-ui/{p-f252dd07.entry.js.map → p-36fecdcb.entry.js.map} +1 -1
  184. package/dist/genexus-ide-ui/{p-f827b9b8.entry.js → p-3ca45936.entry.js} +4 -2
  185. package/dist/genexus-ide-ui/{p-f827b9b8.entry.js.map → p-3ca45936.entry.js.map} +1 -1
  186. package/dist/genexus-ide-ui/{p-a8739942.entry.js → p-440742f3.entry.js} +4 -2
  187. package/dist/genexus-ide-ui/{p-a8739942.entry.js.map → p-440742f3.entry.js.map} +1 -1
  188. package/dist/genexus-ide-ui/{p-a40648dc.entry.js → p-442e30e3.entry.js} +4 -2
  189. package/dist/genexus-ide-ui/{p-a40648dc.entry.js.map → p-442e30e3.entry.js.map} +1 -1
  190. package/dist/genexus-ide-ui/{p-2dcfa6ef.entry.js → p-47d4ec9a.entry.js} +33 -31
  191. package/dist/genexus-ide-ui/{p-2dcfa6ef.entry.js.map → p-47d4ec9a.entry.js.map} +1 -1
  192. package/dist/genexus-ide-ui/p-6e4208d8.js +9 -0
  193. package/dist/genexus-ide-ui/p-6e4208d8.js.map +1 -0
  194. package/dist/genexus-ide-ui/{p-64f2a9f4.entry.js → p-7be438dc.entry.js} +10 -8
  195. package/dist/genexus-ide-ui/{p-64f2a9f4.entry.js.map → p-7be438dc.entry.js.map} +1 -1
  196. package/dist/genexus-ide-ui/p-8558e873.entry.js +224 -0
  197. package/dist/genexus-ide-ui/p-8558e873.entry.js.map +1 -0
  198. package/dist/genexus-ide-ui/{p-8cebb078.entry.js → p-8942f4b6.entry.js} +4 -2
  199. package/dist/genexus-ide-ui/{p-8cebb078.entry.js.map → p-8942f4b6.entry.js.map} +1 -1
  200. package/dist/genexus-ide-ui/{p-9e34f166.entry.js → p-9cfd7800.entry.js} +4 -2
  201. package/dist/genexus-ide-ui/{p-9e34f166.entry.js.map → p-9cfd7800.entry.js.map} +1 -1
  202. package/dist/genexus-ide-ui/{p-1986d34d.js → p-ad5caf61.js} +1 -10
  203. package/dist/genexus-ide-ui/p-ad5caf61.js.map +1 -0
  204. package/dist/genexus-ide-ui/{p-c1162623.entry.js → p-b1eb312d.entry.js} +15 -13
  205. package/dist/genexus-ide-ui/{p-c1162623.entry.js.map → p-b1eb312d.entry.js.map} +1 -1
  206. package/dist/genexus-ide-ui/p-c1791757.entry.js +87 -0
  207. package/dist/genexus-ide-ui/p-c1791757.entry.js.map +1 -0
  208. package/dist/genexus-ide-ui/{p-1feae6ef.entry.js → p-c4c48a1e.entry.js} +4 -2
  209. package/dist/genexus-ide-ui/{p-1feae6ef.entry.js.map → p-c4c48a1e.entry.js.map} +1 -1
  210. package/dist/genexus-ide-ui/{p-e4bbec21.entry.js → p-cfef5956.entry.js} +4 -2
  211. package/dist/genexus-ide-ui/{p-e4bbec21.entry.js.map → p-cfef5956.entry.js.map} +1 -1
  212. package/dist/genexus-ide-ui/{p-92c51f3e.entry.js → p-e14affde.entry.js} +4 -2
  213. package/dist/genexus-ide-ui/{p-92c51f3e.entry.js.map → p-e14affde.entry.js.map} +1 -1
  214. package/dist/genexus-ide-ui/p-f3f1e1f6.js +68 -0
  215. package/dist/genexus-ide-ui/p-f3f1e1f6.js.map +1 -0
  216. package/dist/genexus-ide-ui/{p-0c60c76f.entry.js → p-f7d2a39a.entry.js} +11 -9
  217. package/dist/genexus-ide-ui/{p-0c60c76f.entry.js.map → p-f7d2a39a.entry.js.map} +1 -1
  218. package/dist/types/components/_helpers/chat-container/chat-container.d.ts +23 -0
  219. package/dist/types/components/_helpers/chat-container/code-render.d.ts +4 -0
  220. package/dist/types/components.d.ts +54 -0
  221. package/dist/types/index.d.ts +1 -0
  222. package/dist/types/showcase/chat-container/callbacks.d.ts +6 -0
  223. package/dist/types/showcase/chat-container/chat.showcase.d.ts +6 -0
  224. package/package.json +1 -1
  225. package/dist/cjs/MERCURY_ASSETS-fbc83c8c.js.map +0 -1
  226. package/dist/esm/MERCURY_ASSETS-91a1db9c.js.map +0 -1
  227. package/dist/genexus-ide-ui/p-1986d34d.js.map +0 -1
@@ -1,6 +1,8 @@
1
1
  import { r as e, h as s, g as r } from "./p-49712340.js";
2
2
 
3
- import { g as a } from "./p-1986d34d.js";
3
+ import { g as a } from "./p-6e4208d8.js";
4
+
5
+ import "./p-ad5caf61.js";
4
6
 
5
7
  import { L as i } from "./p-311eedf3.js";
6
8
 
@@ -14,9 +16,9 @@ var n = undefined && undefined.__classPrivateFieldGet || function(e, s, r, a) {
14
16
  return r === "m" ? a : r === "a" ? a.call(e) : a ? a.value : s.get(e);
15
17
  };
16
18
 
17
- var l;
19
+ var p;
18
20
 
19
- const p = a({
21
+ const l = a({
20
22
  category: "bpm",
21
23
  name: "tasks",
22
24
  colorType: "neutral"
@@ -33,7 +35,7 @@ const d = class {
33
35
  this.showCopiedMessage = false;
34
36
  }), 1500);
35
37
  };
36
- l.set(this, (e => {
38
+ p.set(this, (e => {
37
39
  e.preventDefault();
38
40
  e.stopPropagation();
39
41
  }));
@@ -44,10 +46,10 @@ const d = class {
44
46
  class: "button-tertiary button-icon-only",
45
47
  "aria-label": "copy",
46
48
  onClick: this.copyMessage,
47
- onMouseDown: n(this, l, "f")
49
+ onMouseDown: n(this, p, "f")
48
50
  }, s("ch-image", {
49
51
  class: "icon-md",
50
- src: p
52
+ src: l
51
53
  })) : null;
52
54
  this.visible = false;
53
55
  this.showCopiedMessage = false;
@@ -114,7 +116,7 @@ const d = class {
114
116
  class: "copied"
115
117
  }, s("ch-image", {
116
118
  class: "icon-md",
117
- src: p
119
+ src: l
118
120
  }), this.translations["copied"]) : null, o(this.message, this.filterValue)), this.messageType === "assistant-in-progress" ? s("div", {
119
121
  class: "animation-wrapper"
120
122
  }, s("div", {
@@ -129,9 +131,9 @@ const d = class {
129
131
  }
130
132
  };
131
133
 
132
- l = new WeakMap;
134
+ p = new WeakMap;
133
135
 
134
136
  d.style = t;
135
137
 
136
138
  export { d as gx_ide_ai_message };
137
- //# sourceMappingURL=p-0c60c76f.entry.js.map
139
+ //# sourceMappingURL=p-f7d2a39a.entry.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["aiMessageCss","COPY_ICON","getIconPath","category","name","colorType","GxIdeAiMessage","this","copyable","copyMessage","navigator","clipboard","writeText","message","showCopiedMessage","setTimeout","_GxIdeAiMessage_buttonMouseDownHandler","set","e","preventDefault","stopPropagation","evaluateMessageIsCopyable","messageType","evaluateCopyIcon","h","class","onClick","onMouseDown","__classPrivateFieldGet","src","componentWillLoad","_componentLocale","Locale","getComponentStrings","el","componentDidRender","visible","messagesList","parentElement","scrollTo","render","hidden","you","message__header","message__role","assistant","message__caption","translations","hiChar","filterValue"],"sources":["src/components/ai-assistant/ai-message.scss?tag=gx-ide-ai-message","src/components/ai-assistant/ai-message.tsx"],"sourcesContent":["@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n font-family: var(--mer-font-family--primary);\n}\n/*--- Messages ---*/\n.message {\n color: var(--mer-color__neutral-gray--100);\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 100ms;\n transition: grid-template-rows 100ms, -ms-grid-rows 100ms;\n &__outer-wrapper {\n overflow: hidden;\n }\n &__inner-wrapper {\n padding: var(--mer-spacing--sm) var(--mer-spacing--sm);\n border-radius: var(--mer-border__radius--sm);\n border-inline-start: var(--mer-border__width--md) solid transparent;\n background-color: var(--mer-color__neutral-gray--1200);\n margin-block-start: var(--mer-spacing--xs);\n position: relative;\n }\n &__header {\n display: flex;\n gap: var(--mer-spacing--xs);\n justify-content: space-between;\n\n .icon-md {\n opacity: 0;\n }\n\n &--in-progress {\n display: contents;\n }\n }\n &__role {\n &:before {\n content: \"\";\n display: grid;\n place-self: center flex-end;\n inline-size: 4px;\n block-size: 4px;\n border-radius: 50%;\n background-color: currentcolor;\n }\n\n font-weight: var(--mer-font__weight--semi-bold);\n margin-block-end: var(--mer-spacing--xs);\n display: inline-grid;\n grid-template-columns: max-content 1fr;\n gap: 8px;\n\n &-description {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: inline-block;\n padding-block-start: 2px;\n }\n &--user {\n color: var(--mer-color__primary--300);\n }\n &--assistant {\n }\n &--hidden {\n display: none;\n }\n }\n &__caption {\n font-size: var(--mer-font__size--xs);\n line-height: var(--mer-line-height--regular);\n }\n &--visible {\n grid-template-rows: 1fr;\n }\n &--copying {\n pointer-events: none;\n span:not(.copied),\n .message__caption {\n color: transparent;\n -webkit-user-select: none; /* Safari */\n -ms-user-select: none; /* IE 10 and IE 11 */\n user-select: none; /* Standard syntax */\n }\n }\n /*--- Types of messages ---*/\n &--user {\n .message__inner-wrapper {\n background-color: rgba(91, 167, 255, 0.08);\n border-color: var(--mer-border-color__primary);\n }\n }\n &--assistant-action {\n .message__inner-wrapper {\n background-color: rgba(63, 168, 155, 0.05);\n border-color: var(--mer-border-color__success);\n }\n }\n &--assistant-chat {\n .message__inner-wrapper {\n background-color: var(--mer-surface__elevation--01);\n }\n }\n &--assistant-in-progress {\n color: var(--mer-color__neutral-gray--500);\n .message__inner-wrapper {\n font-style: italic;\n display: grid;\n grid-template-columns: 1fr auto;\n gap: var(--mer-spacing--xs);\n\n .message__caption {\n flex: 1;\n }\n .animation-wrapper {\n flex: none;\n }\n }\n }\n &--assistant-error {\n .message__inner-wrapper {\n background-color: rgba(251, 124, 132, 0.05);\n border-color: var(--mer-border-color__error);\n }\n }\n &--copyable {\n &:hover {\n filter: brightness(1.2);\n .icon-md {\n opacity: 1;\n }\n }\n }\n &:last-child {\n margin-block-end: 0;\n }\n}\n:host(:first-child) {\n .message {\n &__inner-wrapper {\n margin-block-end: 0;\n }\n }\n}\n\n/*--- Dot Pulse Sweet Animation ---*/\n.animation-wrapper {\n width: 45px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n$color: var(--mer-color__neutral-gray--400);\n.dot-pulse {\n position: relative;\n left: -9999px;\n width: 5px;\n height: 5px;\n border-radius: 2.5px;\n background-color: $color;\n color: $color;\n box-shadow: 9999px 0 0 -5px;\n animation: dot-pulse 1.5s infinite linear;\n animation-delay: 0.25s;\n &::before,\n &::after {\n content: \"\";\n display: inline-block;\n position: absolute;\n top: 0;\n width: 5px;\n height: 5px;\n border-radius: 2.5px;\n background-color: $color;\n color: $color;\n }\n &::before {\n box-shadow: 9984px 0 0 -5px;\n animation: dot-pulse-before 1.5s infinite linear;\n animation-delay: 0s;\n }\n &::after {\n box-shadow: 10014px 0 0 -5px;\n animation: dot-pulse-after 1.5s infinite linear;\n animation-delay: 0.5s;\n }\n}\n@keyframes dot-pulse-before {\n 0% {\n box-shadow: 9984px 0 0 -5px;\n }\n 30% {\n box-shadow: 9984px 0 0 2px;\n }\n 60%,\n 100% {\n box-shadow: 9984px 0 0 -5px;\n }\n}\n@keyframes dot-pulse {\n 0% {\n box-shadow: 9999px 0 0 -5px;\n }\n 30% {\n box-shadow: 9999px 0 0 2px;\n }\n 60%,\n 100% {\n box-shadow: 9999px 0 0 -5px;\n }\n}\n@keyframes dot-pulse-after {\n 0% {\n box-shadow: 10014px 0 0 -5px;\n }\n 30% {\n box-shadow: 10014px 0 0 2px;\n }\n 60%,\n 100% {\n box-shadow: 10014px 0 0 -5px;\n }\n}\n\n/*--- Copy Message ---*/\n.copied {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mer-color__neutral-gray--300);\n display: flex;\n gap: var(--mer-spacing--xs);\n opacity: 0;\n animation: fadeIn var(--mer-timing--regular) ease-out forwards;\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@include hiChar;\n","import { Component, h, Prop, Element, State } from \"@stencil/core\";\n\nimport { getIconPath } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { MessageType } from \"./ai-assistant\";\nimport { hiChar } from \"../../common/helpers\";\n\nconst COPY_ICON = getIconPath({\n category: \"bpm\",\n name: \"tasks\",\n colorType: \"neutral\"\n});\n\n@Component({\n tag: \"gx-ide-ai-message\",\n styleUrl: \"ai-message.scss\",\n shadow: false,\n assetsDirs: [\"gx-ide-assets/ai-message\"]\n})\nexport class GxIdeAiMessage {\n /* The message allows to be copied*/\n private _componentLocale: any;\n private copyable = false;\n\n @Element() el: HTMLGxIdeAiMessageElement;\n\n /**\n * This wil display the message if true\n */\n @State() visible = false;\n\n /**\n * This wil show the user a text, indicating that the message has been copied\n */\n @State() showCopiedMessage = false;\n\n /**\n * A reference to the gx-ide-ai-assistant host element\n */\n @Prop() readonly aiAssistantHostRef: HTMLGxIdeAiAssistantElement;\n\n /**\n * The actual message\n */\n @Prop() readonly message: string;\n\n /**\n * The message type\n */\n @Prop() readonly messageType: MessageType;\n\n /**\n * The filter value\n */\n @Prop() readonly filterValue: string;\n\n /**\n * It hides the message (used for the filter)\n */\n @Prop() readonly hidden: boolean;\n\n /**\n * An object with the needed string translations.\n */\n @Prop() readonly translations: Translations;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.evaluateMessageIsCopyable();\n }\n\n componentDidRender() {\n setTimeout(() => {\n /* Without the timeout it appears instantly (no apparent transition)*/\n this.visible = true;\n const messagesList = this.el.parentElement;\n messagesList.scrollTo(0, 0);\n }, 0);\n }\n\n private copyMessage = () => {\n navigator.clipboard.writeText(this.message);\n this.showCopiedMessage = true;\n setTimeout(() => {\n this.showCopiedMessage = false;\n }, 1500);\n };\n\n #buttonMouseDownHandler = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n private evaluateMessageIsCopyable = () => {\n this.copyable = this.messageType !== \"assistant-in-progress\";\n };\n\n private evaluateCopyIcon = () => {\n return this.copyable ? (\n <button\n class=\"button-tertiary button-icon-only\"\n aria-label=\"copy\"\n onClick={this.copyMessage}\n onMouseDown={this.#buttonMouseDownHandler}\n >\n <ch-image class=\"icon-md\" src={COPY_ICON}></ch-image>\n </button>\n ) : null;\n };\n\n render() {\n return (\n <li\n class={{\n \"message\": true,\n \"message--visible\": this.visible && !this.hidden,\n [`message--${[this.messageType]}`]: true,\n \"message--assistant\": this.messageType !== \"user\",\n \"message--copyable\": this.copyable,\n \"message--copying\": this.showCopiedMessage\n }}\n >\n <div class=\"message__outer-wrapper\">\n <div\n class={{\n \"message__inner-wrapper\": true\n }}\n >\n {this.messageType === \"user\" ? (\n <div class=\"message__header\">\n <span class=\"message__role message__role--user\">\n <span class=\"message__role-description\">\n {this._componentLocale.you}\n </span>\n </span>\n {this.evaluateCopyIcon()}\n </div>\n ) : (\n <div\n class={{\n \"message__header\": true,\n \"message__header--in-progress\":\n this.messageType === \"assistant-in-progress\"\n }}\n >\n <span\n class={{\n \"message__role\":\n this.messageType !== \"assistant-in-progress\",\n \"message__role--hidden\":\n this.messageType === \"assistant-in-progress\",\n \"message__role--assistant\": true\n }}\n >\n <span class=\"message__role-description\">\n {this._componentLocale.assistant}\n </span>\n </span>\n {this.evaluateCopyIcon()}\n </div>\n )}\n <div\n class={{\n \"message__caption\": true,\n \"message__caption--in-progress\":\n this.messageType === \"assistant-in-progress\"\n }}\n >\n {this.showCopiedMessage ? (\n <span class=\"copied\">\n <ch-image class=\"icon-md\" src={COPY_ICON}></ch-image>\n {this.translations[\"copied\"]}\n </span>\n ) : null}\n {hiChar(this.message, this.filterValue)}\n </div>\n {this.messageType === \"assistant-in-progress\" ? (\n <div class=\"animation-wrapper\">\n <div class=\"dot-pulse\"></div>\n </div>\n ) : null}\n </div>\n </div>\n </li>\n );\n }\n}\n\nexport type Translations = {\n [key: string]: string;\n};\n"],"mappings":";;;;;;;;AAAA,MAAMA,IAAe;;;;;;;;;;ACQrB,MAAMC,IAAYC,EAAY;EAC5BC,UAAU;EACVC,MAAM;EACNC,WAAW;;;MASAC,IAAc;;;IAGjBC,KAAAC,WAAW;IA0DXD,KAAAE,cAAc;MACpBC,UAAUC,UAAUC,UAAUL,KAAKM;MACnCN,KAAKO,oBAAoB;MACzBC,YAAW;QACTR,KAAKO,oBAAoB;AAAK,UAC7B;AAAK;IAGVE,EAAAC,IAAAV,OAA2BW;MACzBA,EAAEC;MACFD,EAAEE;AAAiB;IAGbb,KAAAc,4BAA4B;MAClCd,KAAKC,WAAWD,KAAKe,gBAAgB;AAAuB;IAGtDf,KAAAgB,mBAAmB,MAClBhB,KAAKC,WACVgB,EAAA;MACEC,OAAM;MAAkC,cAC7B;MACXC,SAASnB,KAAKE;MACdkB,aAAaC,EAAArB,MAAIS,GAAA;OAEjBQ,EAAA;MAAUC,OAAM;MAAUI,KAAK5B;UAE/B;mBA9Ea;6BAKU;;;;;;;;EAgC7B,uBAAM6B;IACJvB,KAAKwB,yBAAyBC,EAAOC,oBAAoB1B,KAAK2B;IAC9D3B,KAAKc;;EAGP,kBAAAc;IACEpB,YAAW;;MAETR,KAAK6B,UAAU;MACf,MAAMC,IAAe9B,KAAK2B,GAAGI;MAC7BD,EAAaE,SAAS,GAAG;AAAE,QAC1B;;EAiCL,MAAAC;IACE,OACEhB,EAAA;MACEC,OAAO;QACLZ,SAAW;QACX,oBAAoBN,KAAK6B,YAAY7B,KAAKkC;QAC1C,CAAC,YAAY,EAAClC,KAAKe,kBAAiB;QACpC,sBAAsBf,KAAKe,gBAAgB;QAC3C,qBAAqBf,KAAKC;QAC1B,oBAAoBD,KAAKO;;OAG3BU,EAAA;MAAKC,OAAM;OACTD,EAAA;MACEC,OAAO;QACL,0BAA0B;;OAG3BlB,KAAKe,gBAAgB,SACpBE,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAMC,OAAM;OACVD,EAAA;MAAMC,OAAM;OACTlB,KAAKwB,iBAAiBW,OAG1BnC,KAAKgB,sBAGRC,EAAA;MACEC,OAAO;QACLkB,iBAAmB;QACnB,gCACEpC,KAAKe,gBAAgB;;OAGzBE,EAAA;MACEC,OAAO;QACLmB,eACErC,KAAKe,gBAAgB;QACvB,yBACEf,KAAKe,gBAAgB;QACvB,4BAA4B;;OAG9BE,EAAA;MAAMC,OAAM;OACTlB,KAAKwB,iBAAiBc,aAG1BtC,KAAKgB,qBAGVC,EAAA;MACEC,OAAO;QACLqB,kBAAoB;QACpB,iCACEvC,KAAKe,gBAAgB;;OAGxBf,KAAKO,oBACJU,EAAA;MAAMC,OAAM;OACVD,EAAA;MAAUC,OAAM;MAAUI,KAAK5B;QAC9BM,KAAKwC,aAAa,aAEnB,MACHC,EAAOzC,KAAKM,SAASN,KAAK0C,eAE5B1C,KAAKe,gBAAgB,0BACpBE,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAKC,OAAM;UAEX"}
1
+ {"version":3,"names":["aiMessageCss","COPY_ICON","getIconPath","category","name","colorType","GxIdeAiMessage","this","copyable","copyMessage","navigator","clipboard","writeText","message","showCopiedMessage","setTimeout","_GxIdeAiMessage_buttonMouseDownHandler","set","e","preventDefault","stopPropagation","evaluateMessageIsCopyable","messageType","evaluateCopyIcon","h","class","onClick","onMouseDown","__classPrivateFieldGet","src","componentWillLoad","_componentLocale","Locale","getComponentStrings","el","componentDidRender","visible","messagesList","parentElement","scrollTo","render","hidden","you","message__header","message__role","assistant","message__caption","translations","hiChar","filterValue"],"sources":["src/components/ai-assistant/ai-message.scss?tag=gx-ide-ai-message","src/components/ai-assistant/ai-message.tsx"],"sourcesContent":["@import \"../../global/gx-ide-mixins.scss\";\n\n:host {\n font-family: var(--mer-font-family--primary);\n}\n/*--- Messages ---*/\n.message {\n color: var(--mer-color__neutral-gray--100);\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 100ms;\n transition: grid-template-rows 100ms, -ms-grid-rows 100ms;\n &__outer-wrapper {\n overflow: hidden;\n }\n &__inner-wrapper {\n padding: var(--mer-spacing--sm) var(--mer-spacing--sm);\n border-radius: var(--mer-border__radius--sm);\n border-inline-start: var(--mer-border__width--md) solid transparent;\n background-color: var(--mer-color__neutral-gray--1200);\n margin-block-start: var(--mer-spacing--xs);\n position: relative;\n }\n &__header {\n display: flex;\n gap: var(--mer-spacing--xs);\n justify-content: space-between;\n\n .icon-md {\n opacity: 0;\n }\n\n &--in-progress {\n display: contents;\n }\n }\n &__role {\n &:before {\n content: \"\";\n display: grid;\n place-self: center flex-end;\n inline-size: 4px;\n block-size: 4px;\n border-radius: 50%;\n background-color: currentcolor;\n }\n\n font-weight: var(--mer-font__weight--semi-bold);\n margin-block-end: var(--mer-spacing--xs);\n display: inline-grid;\n grid-template-columns: max-content 1fr;\n gap: 8px;\n\n &-description {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n display: inline-block;\n padding-block-start: 2px;\n }\n &--user {\n color: var(--mer-color__primary--300);\n }\n &--assistant {\n }\n &--hidden {\n display: none;\n }\n }\n &__caption {\n font-size: var(--mer-font__size--xs);\n line-height: var(--mer-line-height--regular);\n }\n &--visible {\n grid-template-rows: 1fr;\n }\n &--copying {\n pointer-events: none;\n span:not(.copied),\n .message__caption {\n color: transparent;\n -webkit-user-select: none; /* Safari */\n -ms-user-select: none; /* IE 10 and IE 11 */\n user-select: none; /* Standard syntax */\n }\n }\n /*--- Types of messages ---*/\n &--user {\n .message__inner-wrapper {\n background-color: rgba(91, 167, 255, 0.08);\n border-color: var(--mer-border-color__primary);\n }\n }\n &--assistant-action {\n .message__inner-wrapper {\n background-color: rgba(63, 168, 155, 0.05);\n border-color: var(--mer-border-color__success);\n }\n }\n &--assistant-chat {\n .message__inner-wrapper {\n background-color: var(--mer-surface__elevation--01);\n }\n }\n &--assistant-in-progress {\n color: var(--mer-color__neutral-gray--500);\n .message__inner-wrapper {\n font-style: italic;\n display: grid;\n grid-template-columns: 1fr auto;\n gap: var(--mer-spacing--xs);\n\n .message__caption {\n flex: 1;\n }\n .animation-wrapper {\n flex: none;\n }\n }\n }\n &--assistant-error {\n .message__inner-wrapper {\n background-color: rgba(251, 124, 132, 0.05);\n border-color: var(--mer-border-color__error);\n }\n }\n &--copyable {\n &:hover {\n filter: brightness(1.2);\n .icon-md {\n opacity: 1;\n }\n }\n }\n &:last-child {\n margin-block-end: 0;\n }\n}\n:host(:first-child) {\n .message {\n &__inner-wrapper {\n margin-block-end: 0;\n }\n }\n}\n\n/*--- Dot Pulse Sweet Animation ---*/\n.animation-wrapper {\n width: 45px;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n$color: var(--mer-color__neutral-gray--400);\n.dot-pulse {\n position: relative;\n left: -9999px;\n width: 5px;\n height: 5px;\n border-radius: 2.5px;\n background-color: $color;\n color: $color;\n box-shadow: 9999px 0 0 -5px;\n animation: dot-pulse 1.5s infinite linear;\n animation-delay: 0.25s;\n &::before,\n &::after {\n content: \"\";\n display: inline-block;\n position: absolute;\n top: 0;\n width: 5px;\n height: 5px;\n border-radius: 2.5px;\n background-color: $color;\n color: $color;\n }\n &::before {\n box-shadow: 9984px 0 0 -5px;\n animation: dot-pulse-before 1.5s infinite linear;\n animation-delay: 0s;\n }\n &::after {\n box-shadow: 10014px 0 0 -5px;\n animation: dot-pulse-after 1.5s infinite linear;\n animation-delay: 0.5s;\n }\n}\n@keyframes dot-pulse-before {\n 0% {\n box-shadow: 9984px 0 0 -5px;\n }\n 30% {\n box-shadow: 9984px 0 0 2px;\n }\n 60%,\n 100% {\n box-shadow: 9984px 0 0 -5px;\n }\n}\n@keyframes dot-pulse {\n 0% {\n box-shadow: 9999px 0 0 -5px;\n }\n 30% {\n box-shadow: 9999px 0 0 2px;\n }\n 60%,\n 100% {\n box-shadow: 9999px 0 0 -5px;\n }\n}\n@keyframes dot-pulse-after {\n 0% {\n box-shadow: 10014px 0 0 -5px;\n }\n 30% {\n box-shadow: 10014px 0 0 2px;\n }\n 60%,\n 100% {\n box-shadow: 10014px 0 0 -5px;\n }\n}\n\n/*--- Copy Message ---*/\n.copied {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--mer-color__neutral-gray--300);\n display: flex;\n gap: var(--mer-spacing--xs);\n opacity: 0;\n animation: fadeIn var(--mer-timing--regular) ease-out forwards;\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n@include hiChar;\n","import { Component, h, Prop, Element, State } from \"@stencil/core\";\n\nimport { getIconPath } from \"@genexus/mercury\";\n\nimport { Locale } from \"../../common/locale\";\nimport { MessageType } from \"./ai-assistant\";\nimport { hiChar } from \"../../common/helpers\";\n\nconst COPY_ICON = getIconPath({\n category: \"bpm\",\n name: \"tasks\",\n colorType: \"neutral\"\n});\n\n@Component({\n tag: \"gx-ide-ai-message\",\n styleUrl: \"ai-message.scss\",\n shadow: false,\n assetsDirs: [\"gx-ide-assets/ai-message\"]\n})\nexport class GxIdeAiMessage {\n /* The message allows to be copied*/\n private _componentLocale: any;\n private copyable = false;\n\n @Element() el: HTMLGxIdeAiMessageElement;\n\n /**\n * This wil display the message if true\n */\n @State() visible = false;\n\n /**\n * This wil show the user a text, indicating that the message has been copied\n */\n @State() showCopiedMessage = false;\n\n /**\n * A reference to the gx-ide-ai-assistant host element\n */\n @Prop() readonly aiAssistantHostRef: HTMLGxIdeAiAssistantElement;\n\n /**\n * The actual message\n */\n @Prop() readonly message: string;\n\n /**\n * The message type\n */\n @Prop() readonly messageType: MessageType;\n\n /**\n * The filter value\n */\n @Prop() readonly filterValue: string;\n\n /**\n * It hides the message (used for the filter)\n */\n @Prop() readonly hidden: boolean;\n\n /**\n * An object with the needed string translations.\n */\n @Prop() readonly translations: Translations;\n\n async componentWillLoad() {\n this._componentLocale = await Locale.getComponentStrings(this.el);\n this.evaluateMessageIsCopyable();\n }\n\n componentDidRender() {\n setTimeout(() => {\n /* Without the timeout it appears instantly (no apparent transition)*/\n this.visible = true;\n const messagesList = this.el.parentElement;\n messagesList.scrollTo(0, 0);\n }, 0);\n }\n\n private copyMessage = () => {\n navigator.clipboard.writeText(this.message);\n this.showCopiedMessage = true;\n setTimeout(() => {\n this.showCopiedMessage = false;\n }, 1500);\n };\n\n #buttonMouseDownHandler = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n private evaluateMessageIsCopyable = () => {\n this.copyable = this.messageType !== \"assistant-in-progress\";\n };\n\n private evaluateCopyIcon = () => {\n return this.copyable ? (\n <button\n class=\"button-tertiary button-icon-only\"\n aria-label=\"copy\"\n onClick={this.copyMessage}\n onMouseDown={this.#buttonMouseDownHandler}\n >\n <ch-image class=\"icon-md\" src={COPY_ICON}></ch-image>\n </button>\n ) : null;\n };\n\n render() {\n return (\n <li\n class={{\n \"message\": true,\n \"message--visible\": this.visible && !this.hidden,\n [`message--${[this.messageType]}`]: true,\n \"message--assistant\": this.messageType !== \"user\",\n \"message--copyable\": this.copyable,\n \"message--copying\": this.showCopiedMessage\n }}\n >\n <div class=\"message__outer-wrapper\">\n <div\n class={{\n \"message__inner-wrapper\": true\n }}\n >\n {this.messageType === \"user\" ? (\n <div class=\"message__header\">\n <span class=\"message__role message__role--user\">\n <span class=\"message__role-description\">\n {this._componentLocale.you}\n </span>\n </span>\n {this.evaluateCopyIcon()}\n </div>\n ) : (\n <div\n class={{\n \"message__header\": true,\n \"message__header--in-progress\":\n this.messageType === \"assistant-in-progress\"\n }}\n >\n <span\n class={{\n \"message__role\":\n this.messageType !== \"assistant-in-progress\",\n \"message__role--hidden\":\n this.messageType === \"assistant-in-progress\",\n \"message__role--assistant\": true\n }}\n >\n <span class=\"message__role-description\">\n {this._componentLocale.assistant}\n </span>\n </span>\n {this.evaluateCopyIcon()}\n </div>\n )}\n <div\n class={{\n \"message__caption\": true,\n \"message__caption--in-progress\":\n this.messageType === \"assistant-in-progress\"\n }}\n >\n {this.showCopiedMessage ? (\n <span class=\"copied\">\n <ch-image class=\"icon-md\" src={COPY_ICON}></ch-image>\n {this.translations[\"copied\"]}\n </span>\n ) : null}\n {hiChar(this.message, this.filterValue)}\n </div>\n {this.messageType === \"assistant-in-progress\" ? (\n <div class=\"animation-wrapper\">\n <div class=\"dot-pulse\"></div>\n </div>\n ) : null}\n </div>\n </div>\n </li>\n );\n }\n}\n\nexport type Translations = {\n [key: string]: string;\n};\n"],"mappings":";;;;;;;;;;AAAA,MAAMA,IAAe;;;;;;;;;;ACQrB,MAAMC,IAAYC,EAAY;EAC5BC,UAAU;EACVC,MAAM;EACNC,WAAW;;;MASAC,IAAc;;;IAGjBC,KAAAC,WAAW;IA0DXD,KAAAE,cAAc;MACpBC,UAAUC,UAAUC,UAAUL,KAAKM;MACnCN,KAAKO,oBAAoB;MACzBC,YAAW;QACTR,KAAKO,oBAAoB;AAAK,UAC7B;AAAK;IAGVE,EAAAC,IAAAV,OAA2BW;MACzBA,EAAEC;MACFD,EAAEE;AAAiB;IAGbb,KAAAc,4BAA4B;MAClCd,KAAKC,WAAWD,KAAKe,gBAAgB;AAAuB;IAGtDf,KAAAgB,mBAAmB,MAClBhB,KAAKC,WACVgB,EAAA;MACEC,OAAM;MAAkC,cAC7B;MACXC,SAASnB,KAAKE;MACdkB,aAAaC,EAAArB,MAAIS,GAAA;OAEjBQ,EAAA;MAAUC,OAAM;MAAUI,KAAK5B;UAE/B;mBA9Ea;6BAKU;;;;;;;;EAgC7B,uBAAM6B;IACJvB,KAAKwB,yBAAyBC,EAAOC,oBAAoB1B,KAAK2B;IAC9D3B,KAAKc;;EAGP,kBAAAc;IACEpB,YAAW;;MAETR,KAAK6B,UAAU;MACf,MAAMC,IAAe9B,KAAK2B,GAAGI;MAC7BD,EAAaE,SAAS,GAAG;AAAE,QAC1B;;EAiCL,MAAAC;IACE,OACEhB,EAAA;MACEC,OAAO;QACLZ,SAAW;QACX,oBAAoBN,KAAK6B,YAAY7B,KAAKkC;QAC1C,CAAC,YAAY,EAAClC,KAAKe,kBAAiB;QACpC,sBAAsBf,KAAKe,gBAAgB;QAC3C,qBAAqBf,KAAKC;QAC1B,oBAAoBD,KAAKO;;OAG3BU,EAAA;MAAKC,OAAM;OACTD,EAAA;MACEC,OAAO;QACL,0BAA0B;;OAG3BlB,KAAKe,gBAAgB,SACpBE,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAMC,OAAM;OACVD,EAAA;MAAMC,OAAM;OACTlB,KAAKwB,iBAAiBW,OAG1BnC,KAAKgB,sBAGRC,EAAA;MACEC,OAAO;QACLkB,iBAAmB;QACnB,gCACEpC,KAAKe,gBAAgB;;OAGzBE,EAAA;MACEC,OAAO;QACLmB,eACErC,KAAKe,gBAAgB;QACvB,yBACEf,KAAKe,gBAAgB;QACvB,4BAA4B;;OAG9BE,EAAA;MAAMC,OAAM;OACTlB,KAAKwB,iBAAiBc,aAG1BtC,KAAKgB,qBAGVC,EAAA;MACEC,OAAO;QACLqB,kBAAoB;QACpB,iCACEvC,KAAKe,gBAAgB;;OAGxBf,KAAKO,oBACJU,EAAA;MAAMC,OAAM;OACVD,EAAA;MAAUC,OAAM;MAAUI,KAAK5B;QAC9BM,KAAKwC,aAAa,aAEnB,MACHC,EAAOzC,KAAKM,SAASN,KAAK0C,eAE5B1C,KAAKe,gBAAgB,0BACpBE,EAAA;MAAKC,OAAM;OACTD,EAAA;MAAKC,OAAM;UAEX"}
@@ -0,0 +1,23 @@
1
+ export declare class GxIdeChatContainer {
2
+ /**
3
+ * The chat title
4
+ */
5
+ readonly chatTitle?: string;
6
+ /**
7
+ * If true a button for copying the conversation will be render on the header
8
+ */
9
+ readonly copyConversationCallback: () => void;
10
+ /**
11
+ * If true a button for deleting the conversation will be render on the header
12
+ */
13
+ readonly deleteConversationCallback: () => void;
14
+ /**
15
+ * Coneration Copied
16
+ */
17
+ displayConversationCopiedMessage: boolean;
18
+ /**
19
+ * It will display a feedback message that the conversation has been copied
20
+ */
21
+ showCopyConversationMessage(): Promise<void>;
22
+ render(): any;
23
+ }
@@ -0,0 +1,4 @@
1
+ import { MarkdownViewerCodeRender, ChatMessageByRole } from "@genexus/chameleon-controls-library";
2
+ import { MarkdownViewerCodeRenderOptions } from "@genexus/chameleon-controls-library/dist/types/components/markdown-viewer/parsers/types";
3
+ export declare const mercuryCodeRender: (copyButtonAccessibleName: string) => (options: MarkdownViewerCodeRenderOptions) => MarkdownViewerCodeRender;
4
+ export declare const mercuryChatMessageRender: (theme: string) => (messageModel: ChatMessageByRole<"assistant" | "error" | "user">) => any[];
@@ -354,6 +354,24 @@ export namespace Components {
354
354
  */
355
355
  "icon": string;
356
356
  }
357
+ interface GxIdeChatContainer {
358
+ /**
359
+ * The chat title
360
+ */
361
+ "chatTitle"?: string;
362
+ /**
363
+ * If true a button for copying the conversation will be render on the header
364
+ */
365
+ "copyConversationCallback": () => void;
366
+ /**
367
+ * If true a button for deleting the conversation will be render on the header
368
+ */
369
+ "deleteConversationCallback": () => void;
370
+ /**
371
+ * It will display a feedback message that the conversation has been copied
372
+ */
373
+ "showCopyConversationMessage": () => Promise<void>;
374
+ }
357
375
  interface GxIdeConnectGxServer {
358
376
  /**
359
377
  * List of authentication types.
@@ -1457,6 +1475,8 @@ export namespace Components {
1457
1475
  */
1458
1476
  "selectorSourceCallback"?: SelectorSourceCallback;
1459
1477
  }
1478
+ interface GxIdeScChatContainer {
1479
+ }
1460
1480
  interface GxIdeSelectUserTeam {
1461
1481
  /**
1462
1482
  * Callback executed when the user clicks the 'Cancel' button
@@ -2299,6 +2319,12 @@ declare global {
2299
2319
  prototype: HTMLGxIdeCardElement;
2300
2320
  new (): HTMLGxIdeCardElement;
2301
2321
  };
2322
+ interface HTMLGxIdeChatContainerElement extends Components.GxIdeChatContainer, HTMLStencilElement {
2323
+ }
2324
+ var HTMLGxIdeChatContainerElement: {
2325
+ prototype: HTMLGxIdeChatContainerElement;
2326
+ new (): HTMLGxIdeChatContainerElement;
2327
+ };
2302
2328
  interface HTMLGxIdeConnectGxServerElement extends Components.GxIdeConnectGxServer, HTMLStencilElement {
2303
2329
  }
2304
2330
  var HTMLGxIdeConnectGxServerElement: {
@@ -2601,6 +2627,12 @@ declare global {
2601
2627
  prototype: HTMLGxIdeReferencesElement;
2602
2628
  new (): HTMLGxIdeReferencesElement;
2603
2629
  };
2630
+ interface HTMLGxIdeScChatContainerElement extends Components.GxIdeScChatContainer, HTMLStencilElement {
2631
+ }
2632
+ var HTMLGxIdeScChatContainerElement: {
2633
+ prototype: HTMLGxIdeScChatContainerElement;
2634
+ new (): HTMLGxIdeScChatContainerElement;
2635
+ };
2604
2636
  interface HTMLGxIdeSelectUserTeamElement extends Components.GxIdeSelectUserTeam, HTMLStencilElement {
2605
2637
  }
2606
2638
  var HTMLGxIdeSelectUserTeamElement: {
@@ -2860,6 +2892,7 @@ declare global {
2860
2892
  "gx-ide-bpm-objects-selector": HTMLGxIdeBpmObjectsSelectorElement;
2861
2893
  "gx-ide-bpm-timer-duration": HTMLGxIdeBpmTimerDurationElement;
2862
2894
  "gx-ide-card": HTMLGxIdeCardElement;
2895
+ "gx-ide-chat-container": HTMLGxIdeChatContainerElement;
2863
2896
  "gx-ide-connect-gx-server": HTMLGxIdeConnectGxServerElement;
2864
2897
  "gx-ide-container": HTMLGxIdeContainerElement;
2865
2898
  "gx-ide-create-kb-from-server": HTMLGxIdeCreateKbFromServerElement;
@@ -2886,6 +2919,7 @@ declare global {
2886
2919
  "gx-ide-new-object": HTMLGxIdeNewObjectElement;
2887
2920
  "gx-ide-object-selector": HTMLGxIdeObjectSelectorElement;
2888
2921
  "gx-ide-references": HTMLGxIdeReferencesElement;
2922
+ "gx-ide-sc-chat-container": HTMLGxIdeScChatContainerElement;
2889
2923
  "gx-ide-select-user-team": HTMLGxIdeSelectUserTeamElement;
2890
2924
  "gx-ide-share-kb": HTMLGxIdeShareKbElement;
2891
2925
  "gx-ide-sign-in": HTMLGxIdeSignInElement;
@@ -3181,6 +3215,20 @@ declare namespace LocalJSX {
3181
3215
  */
3182
3216
  "onComponentDidRenderFirstTime"?: (event: GxIdeCardCustomEvent<string>) => void;
3183
3217
  }
3218
+ interface GxIdeChatContainer {
3219
+ /**
3220
+ * The chat title
3221
+ */
3222
+ "chatTitle"?: string;
3223
+ /**
3224
+ * If true a button for copying the conversation will be render on the header
3225
+ */
3226
+ "copyConversationCallback"?: () => void;
3227
+ /**
3228
+ * If true a button for deleting the conversation will be render on the header
3229
+ */
3230
+ "deleteConversationCallback"?: () => void;
3231
+ }
3184
3232
  interface GxIdeConnectGxServer {
3185
3233
  /**
3186
3234
  * List of authentication types.
@@ -4304,6 +4352,8 @@ declare namespace LocalJSX {
4304
4352
  */
4305
4353
  "selectorSourceCallback"?: SelectorSourceCallback;
4306
4354
  }
4355
+ interface GxIdeScChatContainer {
4356
+ }
4307
4357
  interface GxIdeSelectUserTeam {
4308
4358
  /**
4309
4359
  * Callback executed when the user clicks the 'Cancel' button
@@ -4913,6 +4963,7 @@ declare namespace LocalJSX {
4913
4963
  "gx-ide-bpm-objects-selector": GxIdeBpmObjectsSelector;
4914
4964
  "gx-ide-bpm-timer-duration": GxIdeBpmTimerDuration;
4915
4965
  "gx-ide-card": GxIdeCard;
4966
+ "gx-ide-chat-container": GxIdeChatContainer;
4916
4967
  "gx-ide-connect-gx-server": GxIdeConnectGxServer;
4917
4968
  "gx-ide-container": GxIdeContainer;
4918
4969
  "gx-ide-create-kb-from-server": GxIdeCreateKbFromServer;
@@ -4939,6 +4990,7 @@ declare namespace LocalJSX {
4939
4990
  "gx-ide-new-object": GxIdeNewObject;
4940
4991
  "gx-ide-object-selector": GxIdeObjectSelector;
4941
4992
  "gx-ide-references": GxIdeReferences;
4993
+ "gx-ide-sc-chat-container": GxIdeScChatContainer;
4942
4994
  "gx-ide-select-user-team": GxIdeSelectUserTeam;
4943
4995
  "gx-ide-share-kb": GxIdeShareKb;
4944
4996
  "gx-ide-sign-in": GxIdeSignIn;
@@ -4977,6 +5029,7 @@ declare module "@stencil/core" {
4977
5029
  "gx-ide-bpm-objects-selector": LocalJSX.GxIdeBpmObjectsSelector & JSXBase.HTMLAttributes<HTMLGxIdeBpmObjectsSelectorElement>;
4978
5030
  "gx-ide-bpm-timer-duration": LocalJSX.GxIdeBpmTimerDuration & JSXBase.HTMLAttributes<HTMLGxIdeBpmTimerDurationElement>;
4979
5031
  "gx-ide-card": LocalJSX.GxIdeCard & JSXBase.HTMLAttributes<HTMLGxIdeCardElement>;
5032
+ "gx-ide-chat-container": LocalJSX.GxIdeChatContainer & JSXBase.HTMLAttributes<HTMLGxIdeChatContainerElement>;
4980
5033
  "gx-ide-connect-gx-server": LocalJSX.GxIdeConnectGxServer & JSXBase.HTMLAttributes<HTMLGxIdeConnectGxServerElement>;
4981
5034
  "gx-ide-container": LocalJSX.GxIdeContainer & JSXBase.HTMLAttributes<HTMLGxIdeContainerElement>;
4982
5035
  "gx-ide-create-kb-from-server": LocalJSX.GxIdeCreateKbFromServer & JSXBase.HTMLAttributes<HTMLGxIdeCreateKbFromServerElement>;
@@ -5003,6 +5056,7 @@ declare module "@stencil/core" {
5003
5056
  "gx-ide-new-object": LocalJSX.GxIdeNewObject & JSXBase.HTMLAttributes<HTMLGxIdeNewObjectElement>;
5004
5057
  "gx-ide-object-selector": LocalJSX.GxIdeObjectSelector & JSXBase.HTMLAttributes<HTMLGxIdeObjectSelectorElement>;
5005
5058
  "gx-ide-references": LocalJSX.GxIdeReferences & JSXBase.HTMLAttributes<HTMLGxIdeReferencesElement>;
5059
+ "gx-ide-sc-chat-container": LocalJSX.GxIdeScChatContainer & JSXBase.HTMLAttributes<HTMLGxIdeScChatContainerElement>;
5006
5060
  "gx-ide-select-user-team": LocalJSX.GxIdeSelectUserTeam & JSXBase.HTMLAttributes<HTMLGxIdeSelectUserTeamElement>;
5007
5061
  "gx-ide-share-kb": LocalJSX.GxIdeShareKb & JSXBase.HTMLAttributes<HTMLGxIdeShareKbElement>;
5008
5062
  "gx-ide-sign-in": LocalJSX.GxIdeSignIn & JSXBase.HTMLAttributes<HTMLGxIdeSignInElement>;
@@ -1 +1,2 @@
1
1
  export * from "./components";
2
+ export { mercuryChatMessageRender, mercuryCodeRender } from "./components/_helpers/chat-container/code-render";
@@ -0,0 +1,6 @@
1
+ import { ChatInternalCallbacks, ChatMessage, ChatTranslations } from "@genexus/chameleon-controls-library";
2
+ export declare const chatCallbacks: ChatInternalCallbacks;
3
+ export declare const chatTranslations: ChatTranslations;
4
+ export declare const chatRecord: ChatMessage[];
5
+ export declare const longChatRecord: ChatMessage[];
6
+ export declare const codeFixerRecord: ChatMessage[];
@@ -0,0 +1,6 @@
1
+ export declare class GxIdeScChatContainer {
2
+ #private;
3
+ showAdditionalContent: boolean;
4
+ conversationCopied: boolean;
5
+ render(): any;
6
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genexus/genexus-ide-ui",
3
3
  "license": "Apache-2.0",
4
- "version": "1.0.48",
4
+ "version": "1.0.50",
5
5
  "description": "GeneXus IDE UI components",
6
6
  "main": "dist/index.cjs.js",
7
7
  "module": "dist/index.js",