@gitlab/ui 93.0.0 → 93.2.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 (116) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/components/base/alert/alert.js +1 -0
  3. package/dist/components/base/avatar/avatar.js +7 -1
  4. package/dist/components/base/datepicker/datepicker.js +3 -1
  5. package/dist/components/base/drawer/drawer.js +1 -0
  6. package/dist/components/base/form/form_fields/form_fields.js +3 -2
  7. package/dist/components/base/form/form_input/form_input.js +7 -1
  8. package/dist/components/base/form/form_select/form_select.js +7 -1
  9. package/dist/components/base/toast/toast.js +1 -0
  10. package/dist/components/base/token/token.js +1 -0
  11. package/dist/components/experimental/duo/chat/components/duo_chat_conversation/duo_chat_conversation.js +2 -1
  12. package/dist/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.js +4 -3
  13. package/dist/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.js +8 -8
  14. package/dist/components/experimental/duo/chat/components/duo_chat_message_sources/duo_chat_message_sources.js +7 -4
  15. package/dist/components/experimental/duo/chat/duo_chat.js +13 -12
  16. package/dist/index.css +3 -3
  17. package/dist/index.css.map +1 -1
  18. package/dist/tokens/build/js/tokens.dark.js +2 -1
  19. package/dist/tokens/build/js/tokens.js +2 -1
  20. package/dist/tokens/css/tokens.css +1 -0
  21. package/dist/tokens/css/tokens.dark.css +1 -0
  22. package/dist/tokens/js/tokens.dark.js +1 -0
  23. package/dist/tokens/js/tokens.js +1 -0
  24. package/dist/tokens/json/tokens.dark.json +22 -0
  25. package/dist/tokens/json/tokens.json +22 -0
  26. package/dist/tokens/scss/_tokens.dark.scss +1 -0
  27. package/dist/tokens/scss/_tokens.scss +1 -0
  28. package/dist/tokens/scss/_tokens_custom_properties.scss +1 -0
  29. package/dist/tokens/tailwind/tokens.cjs +1 -0
  30. package/dist/utils/set_utils.js +25 -0
  31. package/package.json +1 -1
  32. package/src/components/base/accordion/accordion_item.scss +1 -1
  33. package/src/components/base/alert/alert.scss +8 -8
  34. package/src/components/base/alert/alert.vue +1 -0
  35. package/src/components/base/avatar/avatar.scss +6 -6
  36. package/src/components/base/avatar/avatar.vue +4 -0
  37. package/src/components/base/avatar_labeled/avatar_labeled.scss +9 -9
  38. package/src/components/base/avatar_link/avatar_link.scss +6 -6
  39. package/src/components/base/avatars_inline/avatars_inline.scss +9 -9
  40. package/src/components/base/badge/badge.scss +6 -6
  41. package/src/components/base/banner/banner.scss +1 -1
  42. package/src/components/base/breadcrumb/breadcrumb.scss +8 -8
  43. package/src/components/base/broadcast_message/broadcast_message.scss +9 -9
  44. package/src/components/base/button/button.scss +18 -18
  45. package/src/components/base/card/card.scss +4 -4
  46. package/src/components/base/datepicker/datepicker.scss +14 -14
  47. package/src/components/base/datepicker/datepicker.vue +1 -0
  48. package/src/components/base/daterange_picker/daterange_picker.scss +7 -7
  49. package/src/components/base/drawer/drawer.scss +14 -14
  50. package/src/components/base/drawer/drawer.vue +1 -0
  51. package/src/components/base/dropdown/dropdown.scss +15 -15
  52. package/src/components/base/dropdown/dropdown_item.scss +15 -15
  53. package/src/components/base/dropdown/dropdown_section_header.scss +4 -4
  54. package/src/components/base/filtered_search/filtered_search.scss +9 -9
  55. package/src/components/base/filtered_search/filtered_search_suggestion.scss +2 -2
  56. package/src/components/base/filtered_search/filtered_search_suggestion_list.scss +2 -2
  57. package/src/components/base/filtered_search/filtered_search_token.scss +9 -9
  58. package/src/components/base/filtered_search/filtered_search_token_segment.scss +3 -3
  59. package/src/components/base/form/form_checkbox/form_checkbox.scss +10 -10
  60. package/src/components/base/form/form_fields/form_fields.vue +3 -2
  61. package/src/components/base/form/form_group/form_group.scss +6 -6
  62. package/src/components/base/form/form_input/form_input.scss +2 -2
  63. package/src/components/base/form/form_input/form_input.vue +3 -0
  64. package/src/components/base/form/form_radio_group/form_radio_group.scss +2 -2
  65. package/src/components/base/form/form_select/form_select.scss +3 -3
  66. package/src/components/base/form/form_select/form_select.vue +3 -0
  67. package/src/components/base/infinite_scroll/infinite_scroll.scss +2 -2
  68. package/src/components/base/label/label.scss +12 -12
  69. package/src/components/base/link/link.scss +1 -1
  70. package/src/components/base/loading_icon/loading_icon.scss +4 -4
  71. package/src/components/base/markdown/markdown.scss +14 -14
  72. package/src/components/base/modal/modal.scss +12 -12
  73. package/src/components/base/new_dropdowns/dropdown.scss +21 -17
  74. package/src/components/base/new_dropdowns/dropdown_item.scss +10 -10
  75. package/src/components/base/new_dropdowns/listbox/listbox.scss +4 -4
  76. package/src/components/base/pagination/pagination.scss +5 -5
  77. package/src/components/base/path/path.scss +11 -11
  78. package/src/components/base/popover/popover.scss +1 -1
  79. package/src/components/base/search_box_by_click/search_box_by_click.scss +5 -5
  80. package/src/components/base/search_box_by_type/search_box_by_type.scss +9 -9
  81. package/src/components/base/segmented_control/segmented_control.scss +4 -4
  82. package/src/components/base/table/table.scss +6 -6
  83. package/src/components/base/tabs/tabs/tabs.scss +18 -18
  84. package/src/components/base/toast/toast.js +1 -0
  85. package/src/components/base/toast/toast.scss +10 -10
  86. package/src/components/base/toggle/toggle.scss +17 -17
  87. package/src/components/base/token/token.scss +13 -13
  88. package/src/components/base/token/token.vue +1 -0
  89. package/src/components/base/tooltip/tooltip.scss +3 -3
  90. package/src/components/charts/legend/legend.scss +17 -17
  91. package/src/components/charts/series_label/series_label.scss +6 -6
  92. package/src/components/charts/single_stat/single_stat.scss +1 -1
  93. package/src/components/experimental/duo/chat/components/duo_chat_conversation/duo_chat_conversation.md +10 -0
  94. package/src/components/experimental/duo/chat/components/duo_chat_conversation/duo_chat_conversation.vue +2 -1
  95. package/src/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.scss +1 -1
  96. package/src/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.vue +12 -3
  97. package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.scss +4 -4
  98. package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.vue +20 -9
  99. package/src/components/experimental/duo/chat/components/duo_chat_message_sources/duo_chat_message_sources.vue +5 -4
  100. package/src/components/experimental/duo/chat/duo_chat.scss +15 -15
  101. package/src/components/experimental/duo/chat/duo_chat.vue +43 -16
  102. package/src/components/shared_components/charts/tooltip_default_format.scss +5 -5
  103. package/src/scss/typescale/_index.scss +15 -15
  104. package/src/tokens/build/css/tokens.css +1 -0
  105. package/src/tokens/build/css/tokens.dark.css +1 -0
  106. package/src/tokens/build/js/tokens.dark.js +1 -0
  107. package/src/tokens/build/js/tokens.js +1 -0
  108. package/src/tokens/build/json/tokens.dark.json +22 -0
  109. package/src/tokens/build/json/tokens.json +22 -0
  110. package/src/tokens/build/scss/_tokens.dark.scss +1 -0
  111. package/src/tokens/build/scss/_tokens.scss +1 -0
  112. package/src/tokens/build/scss/_tokens_custom_properties.scss +1 -0
  113. package/src/tokens/build/tailwind/tokens.cjs +1 -0
  114. package/src/tokens/text.tokens.json +8 -0
  115. package/src/utils/set_utils.js +24 -0
  116. package/translations.js +33 -0
@@ -1,10 +1,10 @@
1
1
  @mixin gl-typescale-ui($selector: 'body') {
2
2
  #{$selector} {
3
- @include gl-font-base;
3
+ @apply gl-text-base;
4
4
  @include gl-text-gray-900;
5
5
  @include gl-font-regular;
6
- @include gl-font-weight-normal;
7
- @include gl-line-height-normal;
6
+ @apply gl-font-normal;
7
+ @apply gl-leading-normal;
8
8
  }
9
9
 
10
10
  h1,
@@ -20,7 +20,7 @@
20
20
  .gl-h4,
21
21
  .gl-h5,
22
22
  .gl-h6 {
23
- @include gl-font-weight-bold;
23
+ @apply gl-font-bold;
24
24
  @apply gl-mt-0;
25
25
  @apply gl-mb-0;
26
26
  }
@@ -44,29 +44,29 @@
44
44
 
45
45
  h3,
46
46
  .gl-h3 {
47
- @include gl-font-lg;
48
- @include gl-line-height-20;
47
+ @apply gl-text-lg;
48
+ @apply gl-leading-20;
49
49
  }
50
50
 
51
51
  h4,
52
52
  .gl-h4 {
53
- @include gl-font-base;
54
- @include gl-line-height-20;
53
+ @apply gl-text-base;
54
+ @apply gl-leading-20;
55
55
  }
56
56
 
57
57
  h5,
58
58
  .gl-h5,
59
59
  h6,
60
60
  .gl-h6 {
61
- @include gl-font-base;
62
- @include gl-line-height-20;
61
+ @apply gl-text-base;
62
+ @apply gl-leading-20;
63
63
  @include gl-text-gray-700;
64
64
  }
65
65
 
66
66
  p,
67
67
  .gl-paragraph {
68
- @include gl-font-base;
69
- @include gl-line-height-20;
68
+ @apply gl-text-base;
69
+ @apply gl-leading-20;
70
70
  @apply gl-mt-0;
71
71
  @apply gl-mb-0;
72
72
 
@@ -76,16 +76,16 @@
76
76
  }
77
77
 
78
78
  &.lg {
79
- @include gl-line-height-24;
79
+ @apply gl-leading-24;
80
80
  }
81
81
  }
82
82
 
83
83
  .sm {
84
- @include gl-font-sm;
84
+ @apply gl-text-sm;
85
85
  }
86
86
 
87
87
  .lg {
88
- @include gl-font-lg;
88
+ @apply gl-text-lg;
89
89
  }
90
90
 
91
91
  .monospace {
@@ -426,6 +426,7 @@
426
426
  --gl-text-color-disabled: var(--gl-color-neutral-400); /* Used for disabled text. */
427
427
  --gl-text-color-success: var(--gl-color-green-600); /* Used for text indicating success, completion, approval, addition, or validity. */
428
428
  --gl-text-color-danger: var(--gl-color-red-600); /* Used for text indicating a problem, critical state, destructive action, error, failure, removal, stop, or declination. */
429
+ --gl-text-color-warning: var(--gl-color-orange-600); /* Used for text that requires caution or careful attention. */
429
430
  --gl-text-color-link: var(--gl-color-blue-700); /* Used for default text links. */
430
431
  --gl-text-color-heading: var(--gl-color-neutral-950); /* Used for headings level 1-6. */
431
432
  --gl-text-color-strong: var(--gl-color-neutral-950); /* Used for text with the highest contrast. */
@@ -426,6 +426,7 @@
426
426
  --gl-text-color-disabled: var(--gl-color-neutral-400); /* Used for disabled text. */
427
427
  --gl-text-color-success: var(--gl-color-green-300); /* Used for text indicating success, completion, approval, addition, or validity. */
428
428
  --gl-text-color-danger: var(--gl-color-red-300); /* Used for text indicating a problem, critical state, destructive action, error, failure, removal, stop, or declination. */
429
+ --gl-text-color-warning: var(--gl-color-orange-300); /* Used for text that requires caution or careful attention. */
429
430
  --gl-text-color-link: var(--gl-color-blue-300); /* Used for default text links. */
430
431
  --gl-text-color-heading: var(--gl-color-neutral-0); /* Used for headings level 1-6. */
431
432
  --gl-text-color-strong: var(--gl-color-neutral-0); /* Used for text with the highest contrast. */
@@ -904,6 +904,7 @@ export const GL_TEXT_COLOR_SUBTLE = '#bfbfc3'; // Used for supplemental text tha
904
904
  export const GL_TEXT_COLOR_STRONG = '#fff'; // Used for text with the highest contrast.
905
905
  export const GL_TEXT_COLOR_HEADING = '#fff'; // Used for headings level 1-6.
906
906
  export const GL_TEXT_COLOR_LINK = '#63a6e9'; // Used for default text links.
907
+ export const GL_TEXT_COLOR_WARNING = '#d99530'; // Used for text that requires caution or careful attention.
907
908
  export const GL_TEXT_COLOR_DANGER = '#f57f6c'; // Used for text indicating a problem, critical state, destructive action, error, failure, removal, stop, or declination.
908
909
  export const GL_TEXT_COLOR_SUCCESS = '#52b87a'; // Used for text indicating success, completion, approval, addition, or validity.
909
910
  export const GL_TEXT_COLOR_DISABLED = '#89888d'; // Used for disabled text.
@@ -904,6 +904,7 @@ export const GL_TEXT_COLOR_SUBTLE = '#626168'; // Used for supplemental text tha
904
904
  export const GL_TEXT_COLOR_STRONG = '#18171d'; // Used for text with the highest contrast.
905
905
  export const GL_TEXT_COLOR_HEADING = '#18171d'; // Used for headings level 1-6.
906
906
  export const GL_TEXT_COLOR_LINK = '#0b5cad'; // Used for default text links.
907
+ export const GL_TEXT_COLOR_WARNING = '#9e5400'; // Used for text that requires caution or careful attention.
907
908
  export const GL_TEXT_COLOR_DANGER = '#c91c00'; // Used for text indicating a problem, critical state, destructive action, error, failure, removal, stop, or declination.
908
909
  export const GL_TEXT_COLOR_SUCCESS = '#217645'; // Used for text indicating success, completion, approval, addition, or validity.
909
910
  export const GL_TEXT_COLOR_DISABLED = '#89888d'; // Used for disabled text.
@@ -20706,6 +20706,28 @@
20706
20706
  "link"
20707
20707
  ]
20708
20708
  },
20709
+ "warning": {
20710
+ "value": "#d99530",
20711
+ "$type": "color",
20712
+ "comment": "Used for text that requires caution or careful attention.",
20713
+ "filePath": "src/tokens/text.tokens.json",
20714
+ "isSource": true,
20715
+ "original": {
20716
+ "value": {
20717
+ "default": "{color.orange.600}",
20718
+ "dark": "{color.orange.300}"
20719
+ },
20720
+ "$type": "color",
20721
+ "comment": "Used for text that requires caution or careful attention."
20722
+ },
20723
+ "name": "TEXT_COLOR_WARNING",
20724
+ "attributes": {},
20725
+ "path": [
20726
+ "text",
20727
+ "color",
20728
+ "warning"
20729
+ ]
20730
+ },
20709
20731
  "danger": {
20710
20732
  "value": "#f57f6c",
20711
20733
  "$type": "color",
@@ -20706,6 +20706,28 @@
20706
20706
  "link"
20707
20707
  ]
20708
20708
  },
20709
+ "warning": {
20710
+ "value": "#9e5400",
20711
+ "$type": "color",
20712
+ "comment": "Used for text that requires caution or careful attention.",
20713
+ "filePath": "src/tokens/text.tokens.json",
20714
+ "isSource": true,
20715
+ "original": {
20716
+ "value": {
20717
+ "default": "{color.orange.600}",
20718
+ "dark": "{color.orange.300}"
20719
+ },
20720
+ "$type": "color",
20721
+ "comment": "Used for text that requires caution or careful attention."
20722
+ },
20723
+ "name": "TEXT_COLOR_WARNING",
20724
+ "attributes": {},
20725
+ "path": [
20726
+ "text",
20727
+ "color",
20728
+ "warning"
20729
+ ]
20730
+ },
20709
20731
  "danger": {
20710
20732
  "value": "#c91c00",
20711
20733
  "$type": "color",
@@ -424,6 +424,7 @@ $gl-action-neutral-background-color-default: rgba(137, 136, 141, 0.0); // Used f
424
424
  $gl-text-color-disabled: $gl-color-neutral-400; // Used for disabled text.
425
425
  $gl-text-color-success: $gl-color-green-300; // Used for text indicating success, completion, approval, addition, or validity.
426
426
  $gl-text-color-danger: $gl-color-red-300; // Used for text indicating a problem, critical state, destructive action, error, failure, removal, stop, or declination.
427
+ $gl-text-color-warning: $gl-color-orange-300; // Used for text that requires caution or careful attention.
427
428
  $gl-text-color-link: $gl-color-blue-300; // Used for default text links.
428
429
  $gl-text-color-heading: $gl-color-neutral-0; // Used for headings level 1-6.
429
430
  $gl-text-color-strong: $gl-color-neutral-0; // Used for text with the highest contrast.
@@ -424,6 +424,7 @@ $gl-action-neutral-background-color-default: rgba(164, 163, 168, 0.0); // Used f
424
424
  $gl-text-color-disabled: $gl-color-neutral-400; // Used for disabled text.
425
425
  $gl-text-color-success: $gl-color-green-600; // Used for text indicating success, completion, approval, addition, or validity.
426
426
  $gl-text-color-danger: $gl-color-red-600; // Used for text indicating a problem, critical state, destructive action, error, failure, removal, stop, or declination.
427
+ $gl-text-color-warning: $gl-color-orange-600; // Used for text that requires caution or careful attention.
427
428
  $gl-text-color-link: $gl-color-blue-700; // Used for default text links.
428
429
  $gl-text-color-heading: $gl-color-neutral-950; // Used for headings level 1-6.
429
430
  $gl-text-color-strong: $gl-color-neutral-950; // Used for text with the highest contrast.
@@ -904,6 +904,7 @@ $gl-text-color-subtle: var(--gl-text-color-subtle);
904
904
  $gl-text-color-strong: var(--gl-text-color-strong);
905
905
  $gl-text-color-heading: var(--gl-text-color-heading);
906
906
  $gl-text-color-link: var(--gl-text-color-link);
907
+ $gl-text-color-warning: var(--gl-text-color-warning);
907
908
  $gl-text-color-danger: var(--gl-text-color-danger);
908
909
  $gl-text-color-success: var(--gl-text-color-success);
909
910
  $gl-text-color-disabled: var(--gl-text-color-disabled);
@@ -209,6 +209,7 @@ const textColors = {
209
209
  strong: 'var(--gl-text-color-strong, var(--gl-color-neutral-950, #18171d))',
210
210
  heading: 'var(--gl-text-color-heading, var(--gl-color-neutral-950, #18171d))',
211
211
  link: 'var(--gl-text-color-link, var(--gl-color-blue-700, #0b5cad))',
212
+ warning: 'var(--gl-text-color-warning, var(--gl-color-orange-600, #9e5400))',
212
213
  danger: 'var(--gl-text-color-danger, var(--gl-color-red-600, #c91c00))',
213
214
  success: 'var(--gl-text-color-success, var(--gl-color-green-600, #217645))',
214
215
  disabled: 'var(--gl-text-color-disabled, var(--gl-color-neutral-400, #89888d))',
@@ -68,6 +68,14 @@
68
68
  "$type": "color",
69
69
  "$description": "Used for default text links."
70
70
  },
71
+ "warning": {
72
+ "$value": {
73
+ "default": "{color.orange.600}",
74
+ "dark": "{color.orange.300}"
75
+ },
76
+ "$type": "color",
77
+ "$description": "Used for text that requires caution or careful attention."
78
+ },
71
79
  "danger": {
72
80
  "$value": {
73
81
  "default": "{color.red.600}",
@@ -0,0 +1,24 @@
1
+ import isObject from 'lodash/isObject';
2
+
3
+ /**
4
+ * Purpose is a substitute of Vue.set but with preserving reactivity
5
+ * New object can be assigned to data property of aa component
6
+ * @param source
7
+ * @param key
8
+ * @param value
9
+ * @returns {*}
10
+ */
11
+ export const setObjectProperty = (source, key, value = '') => {
12
+ if (!source || !key || !isObject(source)) {
13
+ return {};
14
+ }
15
+
16
+ if (typeof key !== 'string') {
17
+ return source;
18
+ }
19
+
20
+ return {
21
+ ...source,
22
+ [key]: value,
23
+ };
24
+ };
package/translations.js CHANGED
@@ -11,12 +11,45 @@ export default {
11
11
  'GlBreadcrumb.showMoreLabel': 'Show more breadcrumbs',
12
12
  'GlBroadcastMessage.closeButtonTitle': 'Dismiss',
13
13
  'GlCollapsibleListbox.srOnlyResultsLabel': null,
14
+ 'GlDuoChat.chatCancelLabel': 'Cancel',
15
+ 'GlDuoChat.chatCloseLabel': 'Close the Code Explanation',
16
+ 'GlDuoChat.chatDefaultPredefinedPromptsChangePassword': 'How do I change my password in GitLab?',
17
+ 'GlDuoChat.chatDefaultPredefinedPromptsCloneRepository': 'How do I clone a repository?',
18
+ 'GlDuoChat.chatDefaultPredefinedPromptsCreateTemplate': 'How do I create a template?',
19
+ 'GlDuoChat.chatDefaultPredefinedPromptsForkProject': 'How do I fork a project?',
20
+ 'GlDuoChat.chatDefaultTitle': 'GitLab Duo Chat',
21
+ 'GlDuoChat.chatEmptyStateDesc': 'GitLab Duo Chat is your AI-powered assistant.',
22
+ 'GlDuoChat.chatEmptyStateSecondaryDesc': 'Responses may be inaccurate. Verify before use.',
23
+ 'GlDuoChat.chatEmptyStateTitle': 'Ask a question',
24
+ 'GlDuoChat.chatLegalDisclaimer':
25
+ "May provide inappropriate responses not representative of GitLab's views. Do not input personal data.",
26
+ 'GlDuoChat.chatLegalGeneratedByAI': 'Responses generated by AI',
27
+ 'GlDuoChat.chatPromptPlaceholderDefault': 'GitLab Duo Chat',
28
+ 'GlDuoChat.chatPromptPlaceholderWithCommands': 'Type "/" for slash commands',
29
+ 'GlDuoChat.chatSubmitLabel': 'Send chat message.',
14
30
  'GlDuoChatContextItemMenu.emptyStateMessage': 'No results found',
15
31
  'GlDuoChatContextItemMenu.loadingMessage': 'Loading...',
16
32
  'GlDuoChatContextItemMenu.searchInputPlaceholder': 'Search %{categoryLabel}...',
17
33
  'GlDuoChatContextItemMenu.selectedContextItemsTitle': 'Included references',
34
+ 'GlDuoChatConversation.newChat': 'New chat',
35
+ 'GlDuoChatLoader.gitlabDuo': 'GitLab Duo',
36
+ 'GlDuoChatLoader.loaderLoadingMessage': '%{tool} is %{transition} an answer',
37
+ 'GlDuoChatLoader.loaderLoadingTransitionsFinding': 'finding',
38
+ 'GlDuoChatLoader.loaderLoadingTransitionsGenerating': 'generating',
39
+ 'GlDuoChatLoader.loaderLoadingTransitionsProducing': 'producing',
40
+ 'GlDuoChatLoader.loaderLoadingTransitionsWorkingOn': 'working on',
18
41
  'GlDuoChatMessage.SelectedContextItemsTitleAssistantMessage': null,
19
42
  'GlDuoChatMessage.SelectedContextItemsTitleUserMessage': null,
43
+ 'GlDuoChatMessage.modalAlertText':
44
+ 'GitLab team members cannot view your conversation. Please be as descriptive as possible.',
45
+ 'GlDuoChatMessage.modalBetterResponse': 'How the response might better meet your needs.',
46
+ 'GlDuoChatMessage.modalDidWhat': 'What were you doing?',
47
+ 'GlDuoChatMessage.modalImproveWhat': 'How could the response be improved?',
48
+ 'GlDuoChatMessage.modalInteraction':
49
+ 'The situation in which you interacted with GitLab Duo Chat.',
50
+ 'GlDuoChatMessage.modalMessageError': 'Error sending the message',
51
+ 'GlDuoChatMessage.modalTitle': 'Give feedback on GitLab Duo Chat',
52
+ 'GlDuoChatMessageSources.messageSources': null,
20
53
  'GlDuoWorkflowPanel.collapseButtonTitle': 'Collapse',
21
54
  'GlDuoWorkflowPanel.expandButtonTitle': 'Expand',
22
55
  'GlDuoWorkflowPrompt.cancelButtonText': 'Cancel',