@gitlab/duo-ui 14.1.1 → 14.3.0

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 (28) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/components/agentic_chat/web_agentic_duo_chat.js +7 -6
  3. package/dist/components/chat/components/duo_chat_message/message_types/message_tool_kv_section.js +1 -44
  4. package/dist/components/chat/components/duo_chat_message_tool_approval/components/base_tool_params.js +1 -1
  5. package/dist/components/chat/components/duo_chat_message_tool_approval/components/create_commit_tool_params.js +1 -1
  6. package/dist/components/chat/components/duo_chat_message_tool_approval/components/pre_block.js +77 -2
  7. package/dist/components/chat/components/duo_chat_message_tool_approval/components/tool_params_json_view.js +1 -1
  8. package/dist/components/chat/components/duo_chat_message_tool_approval/services/highlight.js +21 -0
  9. package/dist/components/chat/components/duo_chat_predefined_prompts/duo_chat_predefined_prompts.js +1 -1
  10. package/dist/components/chat/web_duo_chat.js +14 -3
  11. package/dist/components.css +1 -1
  12. package/dist/components.css.map +1 -1
  13. package/dist/tailwind.css +1 -1
  14. package/dist/tailwind.css.map +1 -1
  15. package/package.json +3 -1
  16. package/src/components/agentic_chat/agentic_duo_chat.scss +1 -2
  17. package/src/components/agentic_chat/web_agentic_duo_chat.vue +26 -16
  18. package/src/components/chat/components/duo_chat_message/duo_chat_message.scss +11 -0
  19. package/src/components/chat/components/duo_chat_message/message_types/message_tool_kv_section.vue +4 -60
  20. package/src/components/chat/components/duo_chat_message_tool_approval/components/base_tool_params.vue +1 -1
  21. package/src/components/chat/components/duo_chat_message_tool_approval/components/create_commit_tool_params.vue +2 -2
  22. package/src/components/chat/components/duo_chat_message_tool_approval/components/pre_block.vue +96 -2
  23. package/src/components/chat/components/duo_chat_message_tool_approval/components/tool_params_json_view.vue +1 -1
  24. package/src/components/chat/components/duo_chat_message_tool_approval/services/highlight.js +18 -0
  25. package/src/components/chat/components/duo_chat_predefined_prompts/duo_chat_predefined_prompts.vue +3 -3
  26. package/src/components/chat/duo_chat.scss +1 -1
  27. package/src/components/chat/web_duo_chat.vue +29 -8
  28. package/translations.js +4 -3
@@ -37,9 +37,14 @@ export const i18n = {
37
37
  'WebDuoChat.chatDisclamer',
38
38
  'Responses may be inaccurate. Verify before use.'
39
39
  ),
40
+ CHAT_EMPTY_STATE_EMOJI: 'šŸ‘‹',
40
41
  CHAT_EMPTY_STATE_TITLE: translate(
41
42
  'WebDuoChat.chatEmptyStateTitle',
42
- 'I am GitLab Duo Chat, your personal AI-powered assistant. How can I help you today?'
43
+ 'I am GitLab Duo Chat, your personal AI-powered assistant.'
44
+ ),
45
+ CHAT_EMPTY_STATE_DESCRIPTION: translate(
46
+ 'WebDuoChat.chatEmptyStateDescription',
47
+ 'How can I help you today?'
43
48
  ),
44
49
  CHAT_PROMPT_PLACEHOLDER_DEFAULT: translate(
45
50
  'WebDuoChat.chatPromptPlaceholderDefault',
@@ -255,7 +260,7 @@ export default {
255
260
  emptyStateTitle: {
256
261
  type: String,
257
262
  required: false,
258
- default: i18n.CHAT_EMPTY_STATE_TITLE,
263
+ default: null,
259
264
  },
260
265
  /**
261
266
  * Override the default chat prompt placeholder text.
@@ -421,6 +426,15 @@ export default {
421
426
  this.$scopedSlots['footer-controls']()
422
427
  );
423
428
  },
429
+ emptyStateMainText() {
430
+ if (this.emptyStateTitle) {
431
+ return this.emptyStateTitle;
432
+ }
433
+ return i18n.CHAT_EMPTY_STATE_TITLE;
434
+ },
435
+ emptyStateSubText() {
436
+ return i18n.CHAT_EMPTY_STATE_DESCRIPTION;
437
+ },
424
438
  },
425
439
  watch: {
426
440
  multiThreadedView(newView) {
@@ -786,15 +800,22 @@ export default {
786
800
  <template v-if="!hasMessages && !isLoading">
787
801
  <div
788
802
  key="empty-state-message"
789
- class="duo-chat-message gl-rounded-bl-none gl-leading-20 gl-text-gray-900 gl-break-anywhere"
803
+ class="duo-chat-message gl-rounded-bl-none gl-leading-20 gl-text-default gl-break-anywhere"
790
804
  data-testid="gl-duo-chat-empty-state"
791
805
  >
792
- <template v-if="emptyStateTitle">
793
- <div class="gl-heading-display">šŸ‘‹</div>
794
- <p data-testid="gl-duo-chat-empty-state-title" class="gl-m-0">
795
- {{ emptyStateTitle }}
806
+ <div
807
+ class="gl-mb-[3.75rem] gl-flex gl-flex-col gl-items-center gl-justify-center gl-gap-3 gl-text-center"
808
+ >
809
+ <h1 class="gl-my-0 gl-text-[3.5rem]" data-testid="gl-duo-chat-empty-state-emoji">
810
+ {{ $options.i18n.CHAT_EMPTY_STATE_EMOJI }}
811
+ </h1>
812
+ <h2 class="gl-my-0 gl-text-size-h2" data-testid="gl-duo-chat-empty-state-title">
813
+ {{ emptyStateMainText }}
814
+ </h2>
815
+ <p class="gl-text-base gl-text-subtle" data-testid="gl-duo-chat-empty-state-subtitle">
816
+ {{ emptyStateSubText }}
796
817
  </p>
797
- </template>
818
+ </div>
798
819
  <duo-chat-predefined-prompts
799
820
  key="predefined-prompts"
800
821
  :prompts="predefinedPrompts"
package/translations.js CHANGED
@@ -160,6 +160,7 @@ export default {
160
160
  'MessageToolApproval.toolStatusPending': 'Pending',
161
161
  'MessageToolApproval.toolUnknown': 'Unknown',
162
162
  No: 'No',
163
+ 'PreBlock.COPY_TO_CLIPBOARD_TEXT': 'Copy to clipboard',
163
164
  'RunCommandToolParams.ACCORDION_TITLE': 'Expand command output',
164
165
  'WebAgenticDuoChat.agenticChatEmptyStateGreeting': 'Hello, I’m %{agentName}!',
165
166
  'WebAgenticDuoChat.chatCancelLabel': 'Cancel',
@@ -172,7 +173,7 @@ export default {
172
173
  'WebAgenticDuoChat.chatDisclamer': 'Responses may be inaccurate. Verify before use.',
173
174
  'WebAgenticDuoChat.chatEmptyStateDescription': 'How can I help you today?',
174
175
  'WebAgenticDuoChat.chatEmptyStateTitle':
175
- 'I am GitLab Duo Agentic Chat, your personal AI-powered assistant. How can I help you today?',
176
+ 'I am GitLab Duo Agentic Chat, your personal AI-powered assistant.',
176
177
  'WebAgenticDuoChat.chatHistoryTitle': 'Chat history',
177
178
  'WebAgenticDuoChat.chatModelPlaceholder': 'GitLab Duo Agentic Chat',
178
179
  'WebAgenticDuoChat.chatPromptPlaceholderDefault': "Let's work through this together...",
@@ -189,8 +190,8 @@ export default {
189
190
  'WebDuoChat.chatDefaultTitle': 'GitLab Duo Chat',
190
191
  'WebDuoChat.chatDisclamer': 'Responses may be inaccurate. Verify before use.',
191
192
  'WebDuoChat.chatDropdownMoreOptions': 'More options',
192
- 'WebDuoChat.chatEmptyStateTitle':
193
- 'I am GitLab Duo Chat, your personal AI-powered assistant. How can I help you today?',
193
+ 'WebDuoChat.chatEmptyStateDescription': 'How can I help you today?',
194
+ 'WebDuoChat.chatEmptyStateTitle': 'I am GitLab Duo Chat, your personal AI-powered assistant.',
194
195
  'WebDuoChat.chatHistoryTitle': 'Chat history',
195
196
  'WebDuoChat.chatModelPlaceholder': 'GitLab Duo Chat',
196
197
  'WebDuoChat.chatNewLabel': 'New chat',