@gitlab/ui 92.5.0 → 93.1.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 (32) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/components/base/broadcast_message/broadcast_message.js +1 -1
  3. package/dist/components/base/form/form_fields/form_fields.js +3 -2
  4. package/dist/components/base/toast/toast.js +1 -1
  5. package/dist/components/base/token/token.js +1 -1
  6. package/dist/components/experimental/duo/chat/components/duo_chat_conversation/duo_chat_conversation.js +2 -1
  7. package/dist/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.js +4 -3
  8. package/dist/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.js +8 -8
  9. package/dist/components/experimental/duo/chat/components/duo_chat_message_sources/duo_chat_message_sources.js +7 -4
  10. package/dist/components/experimental/duo/chat/duo_chat.js +13 -12
  11. package/dist/index.css +2 -2
  12. package/dist/index.css.map +1 -1
  13. package/dist/utils/set_utils.js +25 -0
  14. package/package.json +1 -1
  15. package/src/components/base/broadcast_message/broadcast_message.scss +1 -0
  16. package/src/components/base/broadcast_message/broadcast_message.vue +1 -1
  17. package/src/components/base/form/form_fields/form_fields.vue +3 -2
  18. package/src/components/base/new_dropdowns/dropdown.scss +4 -0
  19. package/src/components/base/toast/toast.js +1 -1
  20. package/src/components/base/toast/toast.scss +1 -0
  21. package/src/components/base/token/token.scss +1 -5
  22. package/src/components/base/token/token.vue +1 -6
  23. package/src/components/experimental/duo/chat/components/duo_chat_conversation/duo_chat_conversation.md +10 -0
  24. package/src/components/experimental/duo/chat/components/duo_chat_conversation/duo_chat_conversation.vue +2 -1
  25. package/src/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.vue +12 -3
  26. package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.vue +20 -9
  27. package/src/components/experimental/duo/chat/components/duo_chat_message_sources/duo_chat_message_sources.vue +5 -4
  28. package/src/components/experimental/duo/chat/duo_chat.vue +43 -16
  29. package/src/scss/components.scss +0 -1
  30. package/src/utils/set_utils.js +24 -0
  31. package/translations.js +33 -0
  32. package/src/components/shared_components/close_button/close_button.scss +0 -21
@@ -0,0 +1,25 @@
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
+ const setObjectProperty = function (source, key) {
12
+ let value = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
13
+ if (!source || !key || !isObject(source)) {
14
+ return {};
15
+ }
16
+ if (typeof key !== 'string') {
17
+ return source;
18
+ }
19
+ return {
20
+ ...source,
21
+ [key]: value
22
+ };
23
+ };
24
+
25
+ export { setObjectProperty };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitlab/ui",
3
- "version": "92.5.0",
3
+ "version": "93.1.0",
4
4
  "description": "GitLab UI Components",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -130,5 +130,6 @@ $gl-broadcast-message-padding-x: var(--gl-broadcast-message-padding-x, 0px);
130
130
  &-dismiss {
131
131
  @include gl-my-n2;
132
132
  @apply gl-ml-5;
133
+ color: inherit !important;
133
134
  }
134
135
  }
@@ -90,7 +90,7 @@ export default {
90
90
  <close-button
91
91
  v-if="showDismissButton"
92
92
  ref="dismiss"
93
- class="gl-close-btn-color-inherit gl-broadcast-message-dismiss"
93
+ class="gl-broadcast-message-dismiss"
94
94
  :label="dismissLabel"
95
95
  @click="onDismiss"
96
96
  />
@@ -4,6 +4,7 @@ import mapValues from 'lodash/mapValues';
4
4
  import uniqueId from 'lodash/uniqueId';
5
5
  import GlFormGroup from '../form_group/form_group.vue';
6
6
  import GlFormInput from '../form_input/form_input.vue';
7
+ import { setObjectProperty } from '../../../../utils/set_utils';
7
8
  import GlFormFieldValidator from './form_field_validator.vue';
8
9
 
9
10
  export default {
@@ -147,7 +148,7 @@ export default {
147
148
  },
148
149
  methods: {
149
150
  setFieldDirty(fieldName) {
150
- this.$set(this.fieldDirtyStatuses, fieldName, true);
151
+ this.fieldDirtyStatuses = setObjectProperty(this.fieldDirtyStatuses, fieldName, true);
151
152
  },
152
153
  setAllFieldsDirty() {
153
154
  this.fieldNames.forEach((fieldName) => this.setFieldDirty(fieldName));
@@ -173,7 +174,7 @@ export default {
173
174
  return val;
174
175
  },
175
176
  onFieldValidationUpdate(fieldName, invalidFeedback) {
176
- this.$set(this.fieldValidations, fieldName, invalidFeedback);
177
+ this.fieldValidations = setObjectProperty(this.fieldValidations, fieldName, invalidFeedback);
177
178
  },
178
179
  onFieldBlur(fieldName) {
179
180
  this.setFieldDirty(fieldName);
@@ -102,6 +102,10 @@
102
102
 
103
103
  .gl-button-icon.gl-button-icon {
104
104
  @apply gl-mr-0;
105
+
106
+ &.gl-button-loading-indicator {
107
+ @apply gl-mr-2;
108
+ }
105
109
  }
106
110
 
107
111
  &.btn-sm .gl-new-dropdown-chevron {
@@ -17,7 +17,7 @@ let toastsCount = 0;
17
17
  function renderTitle(h, toast, options) {
18
18
  const nodes = [
19
19
  h(CloseButton, {
20
- class: ['gl-toast-close-button', 'gl-close-btn-color-inherit'],
20
+ class: ['gl-toast-close-button'],
21
21
  on: {
22
22
  click: toast.hide,
23
23
  },
@@ -56,5 +56,6 @@
56
56
 
57
57
  .gl-toast-close-button {
58
58
  @apply gl-ml-5;
59
+ color: inherit !important;
59
60
  }
60
61
  }
@@ -41,15 +41,11 @@
41
41
  @apply gl-ml-2;
42
42
  @include gl-reset-color;
43
43
  @include gl-cursor-pointer;
44
+
44
45
  opacity: 0.8;
45
46
  color: inherit !important;
46
47
  background-color: transparent !important;
47
48
 
48
- svg {
49
- color: inherit !important;
50
- mix-blend-mode: normal !important;
51
- }
52
-
53
49
  &:hover,
54
50
  &:focus {
55
51
  @include gl-opacity-10;
@@ -60,12 +60,7 @@ export default {
60
60
  <span :class="['gl-token', variantClass, viewOnlyClass]" v-on="$listeners">
61
61
  <span class="gl-token-content">
62
62
  <slot></slot>
63
- <close-button
64
- v-if="!viewOnly"
65
- class="gl-token-close gl-close-btn-color-inherit"
66
- :label="removeLabel"
67
- @click="close"
68
- />
63
+ <close-button v-if="!viewOnly" class="gl-token-close" :label="removeLabel" @click="close" />
69
64
  </span>
70
65
  </span>
71
66
  </template>
@@ -6,3 +6,13 @@ mark the beginning of the conversation.
6
6
  ```html
7
7
  <gl-duo-chat-conversation :messages="messages" :show-delimeter="showDelimiter" />
8
8
  ```
9
+
10
+ Translations for newChatLabel can be set via the props as documented or via translation configuration:
11
+
12
+ ```js
13
+ setConfigs({
14
+ translations: {
15
+ 'GlDuoWorkflowPrompt.newChat': __('New chat'),
16
+ },
17
+ });
18
+ ```
@@ -1,8 +1,9 @@
1
1
  <script>
2
2
  import GlDuoChatMessage from '../duo_chat_message/duo_chat_message.vue';
3
+ import { translate } from '../../../../../../utils/i18n';
3
4
 
4
5
  const i18n = {
5
- CONVERSATION_NEW_CHAT: 'New chat',
6
+ CONVERSATION_NEW_CHAT: translate('GlDuoChatConversation.newChat', 'New chat'),
6
7
  };
7
8
 
8
9
  const isMessage = (item) => Boolean(item) && item?.role;
@@ -1,11 +1,20 @@
1
1
  <script>
2
+ import { translate } from '../../../../../../utils/i18n';
2
3
  import GlSprintf from '../../../../../utilities/sprintf/sprintf.vue';
3
4
  import { LOADING_TRANSITION_DURATION } from '../../constants';
4
5
 
5
6
  export const i18n = {
6
- LOADER_LOADING_MESSAGE: '%{tool} is %{transition} an answer',
7
- LOADER_LOADING_TRANSITIONS: ['finding', 'working on', 'generating', 'producing'],
8
- GITLAB_DUO: 'GitLab Duo',
7
+ LOADER_LOADING_MESSAGE: translate(
8
+ 'GlDuoChatLoader.loaderLoadingMessage',
9
+ '%{tool} is %{transition} an answer'
10
+ ),
11
+ LOADER_LOADING_TRANSITIONS: [
12
+ translate('GlDuoChatLoader.loaderLoadingTransitionsFinding', 'finding'),
13
+ translate('GlDuoChatLoader.loaderLoadingTransitionsWorkingOn', 'working on'),
14
+ translate('GlDuoChatLoader.loaderLoadingTransitionsGenerating', 'generating'),
15
+ translate('GlDuoChatLoader.loaderLoadingTransitionsProducing', 'producing'),
16
+ ],
17
+ GITLAB_DUO: translate('GlDuoChatLoader.gitlabDuo', 'GitLab Duo'),
9
18
  };
10
19
 
11
20
  export default {
@@ -7,8 +7,8 @@ import GlDuoUserFeedback from '../../../user_feedback/user_feedback.vue';
7
7
  import GlFormGroup from '../../../../../base/form/form_group/form_group.vue';
8
8
  import GlFormTextarea from '../../../../../base/form/form_textarea/form_textarea.vue';
9
9
  import { SafeHtmlDirective as SafeHtml } from '../../../../../../directives/safe_html/safe_html';
10
- import { sprintf, translatePlural } from '../../../../../../utils/i18n';
11
10
  import { MESSAGE_MODEL_ROLES, SELECTED_CONTEXT_ITEMS_DEFAULT_COLLAPSED } from '../../constants';
11
+ import { sprintf, translate, translatePlural } from '../../../../../../utils/i18n';
12
12
  import DocumentationSources from '../duo_chat_message_sources/duo_chat_message_sources.vue';
13
13
  // eslint-disable-next-line no-restricted-imports
14
14
  import { renderDuoChatMarkdownPreview } from '../../markdown_renderer';
@@ -18,14 +18,25 @@ import { concatUntilEmpty } from './utils';
18
18
 
19
19
  export const i18n = {
20
20
  MODAL: {
21
- TITLE: 'Give feedback on GitLab Duo Chat',
22
- ALERT_TEXT:
23
- 'GitLab team members cannot view your conversation. Please be as descriptive as possible.',
24
- DID_WHAT: 'What were you doing?',
25
- INTERACTION: 'The situation in which you interacted with GitLab Duo Chat.',
26
- IMPROVE_WHAT: 'How could the response be improved?',
27
- BETTER_RESPONSE: 'How the response might better meet your needs.',
28
- MESSAGE_ERROR: 'Error sending the message',
21
+ TITLE: translate('GlDuoChatMessage.modalTitle', 'Give feedback on GitLab Duo Chat'),
22
+ ALERT_TEXT: translate(
23
+ 'GlDuoChatMessage.modalAlertText',
24
+ 'GitLab team members cannot view your conversation. Please be as descriptive as possible.'
25
+ ),
26
+ DID_WHAT: translate('GlDuoChatMessage.modalDidWhat', 'What were you doing?'),
27
+ INTERACTION: translate(
28
+ 'GlDuoChatMessage.modalInteraction',
29
+ 'The situation in which you interacted with GitLab Duo Chat.'
30
+ ),
31
+ IMPROVE_WHAT: translate(
32
+ 'GlDuoChatMessage.modalImproveWhat',
33
+ 'How could the response be improved?'
34
+ ),
35
+ BETTER_RESPONSE: translate(
36
+ 'GlDuoChatMessage.modalBetterResponse',
37
+ 'How the response might better meet your needs.'
38
+ ),
39
+ MESSAGE_ERROR: translate('GlDuoChatMessage.modalMessageError', 'Error sending the message'),
29
40
  },
30
41
  };
31
42
 
@@ -1,11 +1,12 @@
1
1
  <script>
2
+ import { translatePlural } from '../../../../../../utils/i18n';
2
3
  import GlIcon from '../../../../../base/icon/icon.vue';
3
4
  import GlLink from '../../../../../base/link/link.vue';
4
5
  import { DOCUMENTATION_SOURCE_TYPES } from '../../constants';
5
6
 
6
7
  export const i18n = {
7
- MESSAGE_SOURCE: 'Source',
8
- MESSAGE_SOURCES: 'Sources',
8
+ MESSAGE_SOURCE: (count = 1) =>
9
+ translatePlural('GlDuoChatMessageSources.messageSources', 'Source', 'Sources')(count),
9
10
  };
10
11
 
11
12
  export default {
@@ -25,7 +26,7 @@ export default {
25
26
  },
26
27
  computed: {
27
28
  sourceLabel() {
28
- return this.sources.length > 1 ? i18n.MESSAGE_SOURCES : i18n.MESSAGE_SOURCES;
29
+ return i18n.MESSAGE_SOURCE(this.sources.length);
29
30
  },
30
31
  },
31
32
  methods: {
@@ -53,7 +54,7 @@ export default {
53
54
  }
54
55
  }
55
56
 
56
- return i18n.MESSAGE_SOURCE;
57
+ return this.sourceLabel;
57
58
  },
58
59
  },
59
60
  };
@@ -12,6 +12,7 @@ import GlForm from '../../../base/form/form.vue';
12
12
  import GlExperimentBadge from '../../experiment_badge/experiment_badge.vue';
13
13
  import { badgeTypes, badgeTypeValidator } from '../../experiment_badge/constants';
14
14
  import { SafeHtmlDirective as SafeHtml } from '../../../../directives/safe_html/safe_html';
15
+ import { translate } from '../../../../utils/i18n';
15
16
  import GlDuoChatLoader from './components/duo_chat_loader/duo_chat_loader.vue';
16
17
  import GlDuoChatPredefinedPrompts from './components/duo_chat_predefined_prompts/duo_chat_predefined_prompts.vue';
17
18
  import GlDuoChatConversation from './components/duo_chat_conversation/duo_chat_conversation.vue';
@@ -25,23 +26,49 @@ import {
25
26
  import { INCLUDE_SLASH_COMMAND } from './mock_data';
26
27
 
27
28
  export const i18n = {
28
- CHAT_DEFAULT_TITLE: 'GitLab Duo Chat',
29
- CHAT_CLOSE_LABEL: 'Close the Code Explanation',
30
- CHAT_LEGAL_GENERATED_BY_AI: 'Responses generated by AI',
31
- CHAT_EMPTY_STATE_TITLE: 'Ask a question',
32
- CHAT_EMPTY_STATE_DESC: 'GitLab Duo Chat is your AI-powered assistant.',
33
- CHAT_EMPTY_STATE_SECONDARY_DESC: 'Responses may be inaccurate. Verify before use.',
34
- CHAT_PROMPT_PLACEHOLDER_DEFAULT: 'GitLab Duo Chat',
35
- CHAT_PROMPT_PLACEHOLDER_WITH_COMMANDS: 'Type "/" for slash commands',
36
- CHAT_SUBMIT_LABEL: 'Send chat message.',
37
- CHAT_CANCEL_LABEL: 'Cancel',
38
- CHAT_LEGAL_DISCLAIMER:
39
- "May provide inappropriate responses not representative of GitLab's views. Do not input personal data.",
29
+ CHAT_DEFAULT_TITLE: translate('GlDuoChat.chatDefaultTitle', 'GitLab Duo Chat'),
30
+ CHAT_CLOSE_LABEL: translate('GlDuoChat.chatCloseLabel', 'Close the Code Explanation'),
31
+ CHAT_LEGAL_GENERATED_BY_AI: translate(
32
+ 'GlDuoChat.chatLegalGeneratedByAI',
33
+ 'Responses generated by AI'
34
+ ),
35
+ CHAT_EMPTY_STATE_TITLE: translate('GlDuoChat.chatEmptyStateTitle', 'Ask a question'),
36
+ CHAT_EMPTY_STATE_DESC: translate(
37
+ 'GlDuoChat.chatEmptyStateDesc',
38
+ 'GitLab Duo Chat is your AI-powered assistant.'
39
+ ),
40
+ CHAT_EMPTY_STATE_SECONDARY_DESC: translate(
41
+ 'GlDuoChat.chatEmptyStateSecondaryDesc',
42
+ 'Responses may be inaccurate. Verify before use.'
43
+ ),
44
+ CHAT_PROMPT_PLACEHOLDER_DEFAULT: translate(
45
+ 'GlDuoChat.chatPromptPlaceholderDefault',
46
+ 'GitLab Duo Chat'
47
+ ),
48
+ CHAT_PROMPT_PLACEHOLDER_WITH_COMMANDS: translate(
49
+ 'GlDuoChat.chatPromptPlaceholderWithCommands',
50
+ 'Type "/" for slash commands'
51
+ ),
52
+ CHAT_SUBMIT_LABEL: translate('GlDuoChat.chatSubmitLabel', 'Send chat message.'),
53
+ CHAT_CANCEL_LABEL: translate('GlDuoChat.chatCancelLabel', 'Cancel'),
54
+ CHAT_LEGAL_DISCLAIMER: translate(
55
+ 'GlDuoChat.chatLegalDisclaimer',
56
+ "May provide inappropriate responses not representative of GitLab's views. Do not input personal data."
57
+ ),
40
58
  CHAT_DEFAULT_PREDEFINED_PROMPTS: [
41
- 'How do I change my password in GitLab?',
42
- 'How do I fork a project?',
43
- 'How do I clone a repository?',
44
- 'How do I create a template?',
59
+ translate(
60
+ 'GlDuoChat.chatDefaultPredefinedPromptsChangePassword',
61
+ 'How do I change my password in GitLab?'
62
+ ),
63
+ translate('GlDuoChat.chatDefaultPredefinedPromptsForkProject', 'How do I fork a project?'),
64
+ translate(
65
+ 'GlDuoChat.chatDefaultPredefinedPromptsCloneRepository',
66
+ 'How do I clone a repository?'
67
+ ),
68
+ translate(
69
+ 'GlDuoChat.chatDefaultPredefinedPromptsCreateTemplate',
70
+ 'How do I create a template?'
71
+ ),
45
72
  ],
46
73
  };
47
74
 
@@ -12,7 +12,6 @@
12
12
  @import '../components/base/token_selector/token_selector';
13
13
  @import '../components/base/card/card';
14
14
  @import '../components/shared_components/clear_icon_button/clear_icon_button';
15
- @import '../components/shared_components/close_button/close_button';
16
15
  @import '../components/base/accordion/accordion_item';
17
16
  @import '../components/base/alert/alert';
18
17
  @import '../components/base/avatar/avatar';
@@ -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',
@@ -1,21 +0,0 @@
1
- .gl-close-btn-color-inherit {
2
- mix-blend-mode: luminosity !important;
3
-
4
- &,
5
- &:focus .gl-icon,
6
- &:not(:hover) .gl-icon {
7
- color: inherit !important;
8
- }
9
-
10
- &:focus,
11
- &:active,
12
- &.active {
13
- mix-blend-mode: initial !important;
14
- @include gl-focus($important: true, $focus-ring: $focus-ring-dark);
15
-
16
- .gl-icon {
17
- background-color: transparent;
18
- mix-blend-mode: difference;
19
- }
20
- }
21
- }