@gitlab/ui 94.10.0 → 95.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.
- package/CHANGELOG.md +47 -0
- package/dist/components/base/progress_bar/progress_bar.js +1 -1
- package/dist/components/experimental/duo/chat/components/duo_chat_context/constants.js +4 -1
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_details_modal/duo_chat_context_item_details_modal.js +120 -0
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu.js +11 -1
- package/dist/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.js +29 -2
- package/dist/components/experimental/duo/chat/components/duo_chat_context/mock_context_data.js +14 -1
- package/dist/components/experimental/duo/chat/components/duo_chat_conversation/duo_chat_conversation.js +4 -1
- package/dist/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.js +7 -1
- package/dist/components/experimental/duo/chat/duo_chat.js +9 -1
- package/dist/index.css +2 -2
- package/dist/index.css.map +1 -1
- package/dist/tokens/build/js/tokens.dark.js +6 -1
- package/dist/tokens/build/js/tokens.js +6 -1
- package/dist/tokens/css/tokens.css +5 -0
- package/dist/tokens/css/tokens.dark.css +5 -0
- package/dist/tokens/js/tokens.dark.js +5 -0
- package/dist/tokens/js/tokens.js +5 -0
- package/dist/tokens/json/tokens.dark.json +110 -0
- package/dist/tokens/json/tokens.json +110 -0
- package/dist/tokens/scss/_tokens.dark.scss +5 -0
- package/dist/tokens/scss/_tokens.scss +5 -0
- package/dist/tokens/scss/_tokens_custom_properties.scss +5 -0
- package/dist/utils/constants.js +3 -14
- package/dist/vendor/bootstrap-vue/src/components/modal/modal.js +4 -34
- package/package.json +1 -1
- package/src/components/base/progress_bar/progress_bar.scss +19 -0
- package/src/components/base/progress_bar/progress_bar.vue +1 -1
- package/src/components/experimental/duo/chat/components/duo_chat_context/constants.js +4 -0
- package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_details_modal/duo_chat_context_item_details_modal.vue +114 -0
- package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_menu/duo_chat_context_item_menu.vue +10 -0
- package/src/components/experimental/duo/chat/components/duo_chat_context/duo_chat_context_item_selections/duo_chat_context_item_selections.vue +42 -0
- package/src/components/experimental/duo/chat/components/duo_chat_context/mock_context_data.js +15 -0
- package/src/components/experimental/duo/chat/components/duo_chat_conversation/duo_chat_conversation.vue +4 -0
- package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.vue +8 -0
- package/src/components/experimental/duo/chat/duo_chat.vue +9 -0
- package/src/scss/components.scss +1 -0
- package/src/tokens/build/css/tokens.css +5 -0
- package/src/tokens/build/css/tokens.dark.css +5 -0
- package/src/tokens/build/js/tokens.dark.js +5 -0
- package/src/tokens/build/js/tokens.js +5 -0
- package/src/tokens/build/json/tokens.dark.json +110 -0
- package/src/tokens/build/json/tokens.json +110 -0
- package/src/tokens/build/scss/_tokens.dark.scss +5 -0
- package/src/tokens/build/scss/_tokens.scss +5 -0
- package/src/tokens/build/scss/_tokens_custom_properties.scss +5 -0
- package/src/tokens/contextual/progress-bar.tokens.json +38 -0
- package/src/utils/constants.js +1 -11
- package/src/vendor/bootstrap-vue/src/components/modal/MODIFICATIONS.md +27 -0
- package/src/vendor/bootstrap-vue/src/components/modal/README.md +2 -118
- package/src/vendor/bootstrap-vue/src/components/modal/index.d.ts +0 -10
- package/src/vendor/bootstrap-vue/src/components/modal/modal.js +4 -43
- package/src/vendor/bootstrap-vue/src/components/modal/package.json +0 -36
- package/src/vendor/bootstrap-vue/src/components/progress/MODIFICATIONS.md +23 -0
- package/src/vendor/bootstrap-vue/src/components/progress/README.md +4 -17
- package/translations.js +1 -0
|
@@ -503,6 +503,7 @@ $gl-spinner-track-color-light: $gl-color-neutral-800; // Used for the static tra
|
|
|
503
503
|
$gl-spinner-track-color-default: $gl-color-neutral-800; // Used for the static track (background) of a loading spinner.
|
|
504
504
|
$gl-skeleton-loader-shimmer-color: $gl-color-neutral-700; // Used for the animated shimmer effect in a skeleton loader.
|
|
505
505
|
$gl-skeleton-loader-background-color: $gl-color-neutral-800; // Used for the skeleton loader background color.
|
|
506
|
+
$gl-progress-bar-track-color: $gl-color-neutral-700; // Used for the track color for all progress-bar variants.
|
|
506
507
|
$gl-link-mention-background-color-current: $gl-color-orange-800; // Used for the mention link background when referencing the current user.
|
|
507
508
|
$gl-link-mention-background-color-default: $gl-color-blue-800; // Used for the mention link default background.
|
|
508
509
|
$gl-link-mention-text-color-current: $gl-color-orange-100; // Used for the mention link text color when referencing the current user.
|
|
@@ -779,6 +780,10 @@ $gl-control-text-color-error: $gl-text-color-danger; // Used for the helper text
|
|
|
779
780
|
$gl-token-foreground-color: $gl-text-color-default; // Used for the token foreground color.
|
|
780
781
|
$gl-table-sorting-icon-color: $gl-text-color-heading; // Used for the color of the sorting icons in the column headers.
|
|
781
782
|
$gl-table-row-background-color-hover: $gl-background-color-subtle; // Used for the background of a table row in hover state.
|
|
783
|
+
$gl-progress-bar-indicator-color-danger: $gl-status-danger-icon-color; // Used for the indicator color for the danger progress-bar variant.
|
|
784
|
+
$gl-progress-bar-indicator-color-warning: $gl-status-warning-icon-color; // Used for the indicator color for the warning progress-bar variant.
|
|
785
|
+
$gl-progress-bar-indicator-color-success: $gl-status-success-icon-color; // Used for the indicator color for the success progress-bar variant.
|
|
786
|
+
$gl-progress-bar-indicator-color-default: $gl-status-info-icon-color; // Used for the indicator color for the primary progress-bar variant.
|
|
782
787
|
$gl-dropdown-option-background-color-selected-focus: $gl-dropdown-option-background-color-selected-hover; // Used for the background of a selected dropdown option in the focus state.
|
|
783
788
|
$gl-dropdown-option-background-color-unselected-focus: $gl-action-neutral-background-color-focus; // Used for the background of an unselected dropdown option in the focus state.
|
|
784
789
|
$gl-dropdown-option-indicator-color-selected-focus: $gl-color-neutral-0; // Used for the dropdown selected option indicator in the focus state.
|
|
@@ -503,6 +503,7 @@ $gl-spinner-track-color-light: $gl-color-neutral-800; // Used for the static tra
|
|
|
503
503
|
$gl-spinner-track-color-default: $gl-color-neutral-100; // Used for the static track (background) of a loading spinner.
|
|
504
504
|
$gl-skeleton-loader-shimmer-color: $gl-color-neutral-50; // Used for the animated shimmer effect in a skeleton loader.
|
|
505
505
|
$gl-skeleton-loader-background-color: $gl-color-neutral-100; // Used for the skeleton loader background color.
|
|
506
|
+
$gl-progress-bar-track-color: $gl-color-neutral-200; // Used for the track color for all progress-bar variants.
|
|
506
507
|
$gl-link-mention-background-color-current: $gl-color-orange-100; // Used for the mention link background when referencing the current user.
|
|
507
508
|
$gl-link-mention-background-color-default: $gl-color-blue-100; // Used for the mention link default background.
|
|
508
509
|
$gl-link-mention-text-color-current: $gl-color-orange-800; // Used for the mention link text color when referencing the current user.
|
|
@@ -779,6 +780,10 @@ $gl-control-text-color-error: $gl-text-color-danger; // Used for the helper text
|
|
|
779
780
|
$gl-token-foreground-color: $gl-text-color-default; // Used for the token foreground color.
|
|
780
781
|
$gl-table-sorting-icon-color: $gl-text-color-heading; // Used for the color of the sorting icons in the column headers.
|
|
781
782
|
$gl-table-row-background-color-hover: $gl-background-color-subtle; // Used for the background of a table row in hover state.
|
|
783
|
+
$gl-progress-bar-indicator-color-danger: $gl-status-danger-icon-color; // Used for the indicator color for the danger progress-bar variant.
|
|
784
|
+
$gl-progress-bar-indicator-color-warning: $gl-status-warning-icon-color; // Used for the indicator color for the warning progress-bar variant.
|
|
785
|
+
$gl-progress-bar-indicator-color-success: $gl-status-success-icon-color; // Used for the indicator color for the success progress-bar variant.
|
|
786
|
+
$gl-progress-bar-indicator-color-default: $gl-status-info-icon-color; // Used for the indicator color for the primary progress-bar variant.
|
|
782
787
|
$gl-dropdown-option-background-color-selected-focus: $gl-dropdown-option-background-color-selected-hover; // Used for the background of a selected dropdown option in the focus state.
|
|
783
788
|
$gl-dropdown-option-background-color-unselected-focus: $gl-action-neutral-background-color-focus; // Used for the background of an unselected dropdown option in the focus state.
|
|
784
789
|
$gl-dropdown-option-indicator-color-selected-focus: $gl-control-background-color-selected-focus; // Used for the dropdown selected option indicator in the focus state.
|
|
@@ -668,6 +668,11 @@ $gl-link-mention-text-color-default: var(--gl-link-mention-text-color-default);
|
|
|
668
668
|
$gl-link-mention-text-color-current: var(--gl-link-mention-text-color-current);
|
|
669
669
|
$gl-link-mention-background-color-default: var(--gl-link-mention-background-color-default);
|
|
670
670
|
$gl-link-mention-background-color-current: var(--gl-link-mention-background-color-current);
|
|
671
|
+
$gl-progress-bar-indicator-color-default: var(--gl-progress-bar-indicator-color-default);
|
|
672
|
+
$gl-progress-bar-indicator-color-success: var(--gl-progress-bar-indicator-color-success);
|
|
673
|
+
$gl-progress-bar-indicator-color-warning: var(--gl-progress-bar-indicator-color-warning);
|
|
674
|
+
$gl-progress-bar-indicator-color-danger: var(--gl-progress-bar-indicator-color-danger);
|
|
675
|
+
$gl-progress-bar-track-color: var(--gl-progress-bar-track-color);
|
|
671
676
|
$gl-skeleton-loader-background-color: var(--gl-skeleton-loader-background-color);
|
|
672
677
|
$gl-skeleton-loader-shimmer-color: var(--gl-skeleton-loader-shimmer-color);
|
|
673
678
|
$gl-spinner-track-color-default: var(--gl-spinner-track-color-default);
|
package/dist/utils/constants.js
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { POSITION } from '../components/utilities/truncate/constants';
|
|
2
2
|
|
|
3
|
-
function appendDefaultOption(options) {
|
|
4
|
-
return {
|
|
5
|
-
...options,
|
|
6
|
-
default: ''
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
3
|
const COMMA = ',';
|
|
10
4
|
const CONTRAST_LEVELS = [{
|
|
11
5
|
grade: 'F',
|
|
@@ -26,15 +20,11 @@ const CONTRAST_LEVELS = [{
|
|
|
26
20
|
}];
|
|
27
21
|
const HEX_REGEX = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;
|
|
28
22
|
const LEFT_MOUSE_BUTTON = 0;
|
|
29
|
-
const
|
|
23
|
+
const progressBarVariantOptions = {
|
|
30
24
|
primary: 'primary',
|
|
31
|
-
secondary: 'secondary',
|
|
32
25
|
success: 'success',
|
|
33
26
|
warning: 'warning',
|
|
34
|
-
danger: 'danger'
|
|
35
|
-
info: 'info',
|
|
36
|
-
light: 'light',
|
|
37
|
-
dark: 'dark'
|
|
27
|
+
danger: 'danger'
|
|
38
28
|
};
|
|
39
29
|
const badgeSizeOptions = {
|
|
40
30
|
sm: 'sm',
|
|
@@ -251,7 +241,6 @@ const tabsButtonDefaults = {
|
|
|
251
241
|
};
|
|
252
242
|
const tokenVariants = ['default', 'search-type', 'search-value'];
|
|
253
243
|
const resizeDebounceTime = 200;
|
|
254
|
-
const variantOptionsWithNoDefault = appendDefaultOption(variantOptions);
|
|
255
244
|
|
|
256
245
|
// Datetime constants
|
|
257
246
|
const defaultDateFormat = 'YYYY-MM-DD';
|
|
@@ -305,4 +294,4 @@ const loadingIconVariants = {
|
|
|
305
294
|
dots: 'dots'
|
|
306
295
|
};
|
|
307
296
|
|
|
308
|
-
export { COMMA, CONTRAST_LEVELS, HEX_REGEX, LEFT_MOUSE_BUTTON, alertVariantIconMap, alertVariantOptions, alignOptions, avatarShapeOptions, avatarSizeOptions, avatarsInlineSizeOptions, badgeForButtonOptions, badgeIconSizeOptions, badgeSizeOptions, badgeVariantOptions, bannerVariants, buttonCategoryOptions, buttonSizeOptions, buttonVariantOptions, colorThemes, columnOptions, datepickerWidthOptionsMap, defaultDateFormat, drawerVariants, dropdownAllowedAutoPlacements, dropdownPlacements, dropdownVariantOptions, focusableTags, formInputWidths, formStateOptions, iconSizeOptions, iconVariantOptions, keyboard, labelColorOptions, loadingIconSizes, loadingIconVariants, maxZIndex, modalButtonDefaults, modalSizeOptions, popoverPlacements, resizeDebounceTime, tabsButtonDefaults, targetOptions, toggleLabelPosition, tokenVariants, tooltipActionEvents, tooltipDelay, tooltipPlacements, triggerVariantOptions, truncateOptions, variantCssColorMap,
|
|
297
|
+
export { COMMA, CONTRAST_LEVELS, HEX_REGEX, LEFT_MOUSE_BUTTON, alertVariantIconMap, alertVariantOptions, alignOptions, avatarShapeOptions, avatarSizeOptions, avatarsInlineSizeOptions, badgeForButtonOptions, badgeIconSizeOptions, badgeSizeOptions, badgeVariantOptions, bannerVariants, buttonCategoryOptions, buttonSizeOptions, buttonVariantOptions, colorThemes, columnOptions, datepickerWidthOptionsMap, defaultDateFormat, drawerVariants, dropdownAllowedAutoPlacements, dropdownPlacements, dropdownVariantOptions, focusableTags, formInputWidths, formStateOptions, iconSizeOptions, iconVariantOptions, keyboard, labelColorOptions, loadingIconSizes, loadingIconVariants, maxZIndex, modalButtonDefaults, modalSizeOptions, popoverPlacements, progressBarVariantOptions, resizeDebounceTime, tabsButtonDefaults, targetOptions, toggleLabelPosition, tokenVariants, tooltipActionEvents, tooltipDelay, tooltipPlacements, triggerVariantOptions, truncateOptions, variantCssColorMap, viewModeOptions };
|
|
@@ -71,9 +71,7 @@ const props = makePropsConfigurable(sortKeys({
|
|
|
71
71
|
autoFocusButton: makeProp(PROP_TYPE_STRING, null, /* istanbul ignore next */value => {
|
|
72
72
|
return isUndefinedOrNull(value) || arrayIncludes(BUTTONS, value);
|
|
73
73
|
}),
|
|
74
|
-
bodyBgVariant: makeProp(PROP_TYPE_STRING),
|
|
75
74
|
bodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
|
|
76
|
-
bodyTextVariant: makeProp(PROP_TYPE_STRING),
|
|
77
75
|
busy: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
78
76
|
buttonSize: makeProp(PROP_TYPE_STRING),
|
|
79
77
|
cancelDisabled: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
@@ -83,19 +81,12 @@ const props = makePropsConfigurable(sortKeys({
|
|
|
83
81
|
centered: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
84
82
|
contentClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
|
|
85
83
|
dialogClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
|
|
86
|
-
footerBgVariant: makeProp(PROP_TYPE_STRING),
|
|
87
|
-
footerBorderVariant: makeProp(PROP_TYPE_STRING),
|
|
88
84
|
footerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
|
|
89
85
|
footerTag: makeProp(PROP_TYPE_STRING, 'footer'),
|
|
90
|
-
footerTextVariant: makeProp(PROP_TYPE_STRING),
|
|
91
|
-
headerBgVariant: makeProp(PROP_TYPE_STRING),
|
|
92
|
-
headerBorderVariant: makeProp(PROP_TYPE_STRING),
|
|
93
86
|
headerClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
|
|
94
87
|
headerCloseContent: makeProp(PROP_TYPE_STRING, '×'),
|
|
95
88
|
headerCloseLabel: makeProp(PROP_TYPE_STRING, 'Close'),
|
|
96
|
-
headerCloseVariant: makeProp(PROP_TYPE_STRING),
|
|
97
89
|
headerTag: makeProp(PROP_TYPE_STRING, 'header'),
|
|
98
|
-
headerTextVariant: makeProp(PROP_TYPE_STRING),
|
|
99
90
|
// TODO: Rename to `noBackdrop` and deprecate `hideBackdrop`
|
|
100
91
|
hideBackdrop: makeProp(PROP_TYPE_BOOLEAN, false),
|
|
101
92
|
// TODO: Rename to `noFooter` and deprecate `hideFooter`
|
|
@@ -209,31 +200,11 @@ const BModal = /*#__PURE__*/extend({
|
|
|
209
200
|
'modal-dialog-scrollable': this.scrollable
|
|
210
201
|
}, this.dialogClass];
|
|
211
202
|
},
|
|
212
|
-
headerClasses() {
|
|
213
|
-
return [{
|
|
214
|
-
[`bg-${this.headerBgVariant}`]: this.headerBgVariant,
|
|
215
|
-
[`text-${this.headerTextVariant}`]: this.headerTextVariant,
|
|
216
|
-
[`border-${this.headerBorderVariant}`]: this.headerBorderVariant
|
|
217
|
-
}, this.headerClass];
|
|
218
|
-
},
|
|
219
203
|
titleClasses() {
|
|
220
204
|
return [{
|
|
221
205
|
'sr-only': this.titleSrOnly
|
|
222
206
|
}, this.titleClass];
|
|
223
207
|
},
|
|
224
|
-
bodyClasses() {
|
|
225
|
-
return [{
|
|
226
|
-
[`bg-${this.bodyBgVariant}`]: this.bodyBgVariant,
|
|
227
|
-
[`text-${this.bodyTextVariant}`]: this.bodyTextVariant
|
|
228
|
-
}, this.bodyClass];
|
|
229
|
-
},
|
|
230
|
-
footerClasses() {
|
|
231
|
-
return [{
|
|
232
|
-
[`bg-${this.footerBgVariant}`]: this.footerBgVariant,
|
|
233
|
-
[`text-${this.footerTextVariant}`]: this.footerTextVariant,
|
|
234
|
-
[`border-${this.footerBorderVariant}`]: this.footerBorderVariant
|
|
235
|
-
}, this.footerClass];
|
|
236
|
-
},
|
|
237
208
|
modalOuterStyle() {
|
|
238
209
|
// Styles needed for proper stacking of modals
|
|
239
210
|
return {
|
|
@@ -706,8 +677,7 @@ const BModal = /*#__PURE__*/extend({
|
|
|
706
677
|
props: {
|
|
707
678
|
content: this.headerCloseContent,
|
|
708
679
|
disabled: this.isTransitioning,
|
|
709
|
-
ariaLabel: this.headerCloseLabel
|
|
710
|
-
textVariant: this.headerCloseVariant || this.headerTextVariant
|
|
680
|
+
ariaLabel: this.headerCloseLabel
|
|
711
681
|
},
|
|
712
682
|
on: {
|
|
713
683
|
click: this.onClose
|
|
@@ -731,7 +701,7 @@ const BModal = /*#__PURE__*/extend({
|
|
|
731
701
|
}
|
|
732
702
|
$header = h(this.headerTag, {
|
|
733
703
|
staticClass: 'modal-header',
|
|
734
|
-
class: this.
|
|
704
|
+
class: this.headerClass,
|
|
735
705
|
attrs: {
|
|
736
706
|
id: this.modalHeaderId
|
|
737
707
|
},
|
|
@@ -742,7 +712,7 @@ const BModal = /*#__PURE__*/extend({
|
|
|
742
712
|
// Modal body
|
|
743
713
|
const $body = h('div', {
|
|
744
714
|
staticClass: 'modal-body',
|
|
745
|
-
class: this.
|
|
715
|
+
class: this.bodyClass,
|
|
746
716
|
attrs: {
|
|
747
717
|
id: this.modalBodyId
|
|
748
718
|
},
|
|
@@ -792,7 +762,7 @@ const BModal = /*#__PURE__*/extend({
|
|
|
792
762
|
}
|
|
793
763
|
$footer = h(this.footerTag, {
|
|
794
764
|
staticClass: 'modal-footer',
|
|
795
|
-
class: this.
|
|
765
|
+
class: this.footerClass,
|
|
796
766
|
attrs: {
|
|
797
767
|
id: this.modalFooterId
|
|
798
768
|
},
|
package/package.json
CHANGED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
.gl-progress-bar {
|
|
2
|
+
background-color: var(--gl-progress-bar-track-color);
|
|
3
|
+
|
|
4
|
+
.bg-primary {
|
|
5
|
+
background-color: var(--gl-progress-bar-indicator-color-default) !important;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
.bg-success {
|
|
9
|
+
background-color: var(--gl-progress-bar-indicator-color-success) !important;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.bg-warning {
|
|
13
|
+
background-color: var(--gl-progress-bar-indicator-color-warning) !important;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.bg-danger {
|
|
17
|
+
background-color: var(--gl-progress-bar-indicator-color-danger) !important;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -5,3 +5,7 @@ export const CONTEXT_ITEM_CATEGORY_LOCAL_GIT = 'local_git';
|
|
|
5
5
|
|
|
6
6
|
export const CONTEXT_ITEM_LOCAL_GIT_COMMIT = 'commit';
|
|
7
7
|
export const CONTEXT_ITEM_LOCAL_GIT_DIFF = 'diff';
|
|
8
|
+
|
|
9
|
+
export const LANGUAGE_IDENTIFIER_PREFIX = 'language-';
|
|
10
|
+
export const LANGUAGE_IDENTIFIER_DIFF = 'language-diff';
|
|
11
|
+
export const LANGUAGE_IDENTIFIER_PLAINTEXT = 'language-plaintext';
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { nextTick } from 'vue';
|
|
3
|
+
import { contextItemValidator } from '../utils';
|
|
4
|
+
import GlModal from '../../../../../../base/modal/modal.vue';
|
|
5
|
+
import { SafeHtmlDirective as SafeHtml } from '../../../../../../../directives/safe_html/safe_html';
|
|
6
|
+
import GlSkeletonLoader from '../../../../../../base/skeleton_loader/skeleton_loader.vue';
|
|
7
|
+
import { translate } from '../../../../../../../utils/i18n';
|
|
8
|
+
import {
|
|
9
|
+
CONTEXT_ITEM_CATEGORY_LOCAL_GIT,
|
|
10
|
+
LANGUAGE_IDENTIFIER_DIFF,
|
|
11
|
+
LANGUAGE_IDENTIFIER_PLAINTEXT,
|
|
12
|
+
LANGUAGE_IDENTIFIER_PREFIX,
|
|
13
|
+
} from '../constants';
|
|
14
|
+
|
|
15
|
+
export default {
|
|
16
|
+
name: 'GlDuoChatContextItemDetailsModal',
|
|
17
|
+
components: {
|
|
18
|
+
GlSkeletonLoader,
|
|
19
|
+
GlModal,
|
|
20
|
+
},
|
|
21
|
+
directives: {
|
|
22
|
+
SafeHtml,
|
|
23
|
+
},
|
|
24
|
+
inject: {
|
|
25
|
+
renderGFM: {
|
|
26
|
+
from: 'renderGFM',
|
|
27
|
+
default: () => (element) => {
|
|
28
|
+
element.classList.add('gl-markdown', 'gl-compact-markdown');
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
props: {
|
|
33
|
+
/**
|
|
34
|
+
* Context items to preview. If it has no `content`, the loading state will be displayed.
|
|
35
|
+
*/
|
|
36
|
+
contextItem: {
|
|
37
|
+
type: Object,
|
|
38
|
+
required: true,
|
|
39
|
+
validator: contextItemValidator,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
computed: {
|
|
43
|
+
isLoadingContent() {
|
|
44
|
+
return this.contextItem.content === undefined;
|
|
45
|
+
},
|
|
46
|
+
languageIdentifierClass() {
|
|
47
|
+
if (this.contextItem.category === CONTEXT_ITEM_CATEGORY_LOCAL_GIT) {
|
|
48
|
+
return LANGUAGE_IDENTIFIER_DIFF;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const fileExtension = this.contextItem.metadata?.relativePath?.split('.').at(-1);
|
|
52
|
+
if (fileExtension && fileExtension !== this.contextItem.metadata?.relativePath) {
|
|
53
|
+
return `${LANGUAGE_IDENTIFIER_PREFIX}${fileExtension}`;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return LANGUAGE_IDENTIFIER_PLAINTEXT;
|
|
57
|
+
},
|
|
58
|
+
title() {
|
|
59
|
+
return (
|
|
60
|
+
this.contextItem.metadata?.title ||
|
|
61
|
+
this.contextItem.metadata?.relativePath ||
|
|
62
|
+
translate('GlDuoChatContextItemDetailsModal.title', 'Preview')
|
|
63
|
+
);
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
watch: {
|
|
67
|
+
contextItem: {
|
|
68
|
+
async handler(newVal, oldVal) {
|
|
69
|
+
const shouldFormat = newVal?.content !== oldVal?.content && newVal?.content;
|
|
70
|
+
if (shouldFormat) {
|
|
71
|
+
await nextTick();
|
|
72
|
+
await this.hydrateContentWithGFM();
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
immediate: true,
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
methods: {
|
|
79
|
+
async hydrateContentWithGFM() {
|
|
80
|
+
await nextTick();
|
|
81
|
+
|
|
82
|
+
if (this.$refs.content) {
|
|
83
|
+
this.renderGFM(this.$refs.content);
|
|
84
|
+
}
|
|
85
|
+
},
|
|
86
|
+
onModalVisibilityChange(isVisible) {
|
|
87
|
+
if (!isVisible) {
|
|
88
|
+
this.$emit('close');
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
</script>
|
|
94
|
+
|
|
95
|
+
<template>
|
|
96
|
+
<gl-modal
|
|
97
|
+
modal-id="context-item-details-modal"
|
|
98
|
+
:title="title"
|
|
99
|
+
:visible="true"
|
|
100
|
+
:scrollable="true"
|
|
101
|
+
hide-footer
|
|
102
|
+
size="lg"
|
|
103
|
+
@change="onModalVisibilityChange"
|
|
104
|
+
>
|
|
105
|
+
<gl-skeleton-loader v-if="isLoadingContent" />
|
|
106
|
+
<div v-else ref="content" data-testid="context-item-content">
|
|
107
|
+
<pre
|
|
108
|
+
v-safe-html="contextItem.content"
|
|
109
|
+
class="code js-syntax-highlight gl-p-3"
|
|
110
|
+
:class="languageIdentifierClass"
|
|
111
|
+
></pre>
|
|
112
|
+
</div>
|
|
113
|
+
</gl-modal>
|
|
114
|
+
</template>
|
|
@@ -218,6 +218,14 @@ export default {
|
|
|
218
218
|
|
|
219
219
|
this.activeIndex = newIndex;
|
|
220
220
|
},
|
|
221
|
+
onGetContextItemContent(contextItem) {
|
|
222
|
+
/**
|
|
223
|
+
* Emit get-context-item-content event that tells clients to load the full file content for a selected context item.
|
|
224
|
+
* The fully hydrated context item should be updated in the context item selections.
|
|
225
|
+
* @param {*} event An event containing the context item to hydrate
|
|
226
|
+
*/
|
|
227
|
+
this.$emit('get-context-item-content', { contextItem });
|
|
228
|
+
},
|
|
221
229
|
},
|
|
222
230
|
i18n: {
|
|
223
231
|
selectedContextItemsTitle: translate(
|
|
@@ -233,11 +241,13 @@ export default {
|
|
|
233
241
|
<gl-duo-chat-context-item-selections
|
|
234
242
|
v-if="selections.length"
|
|
235
243
|
:selections="selections"
|
|
244
|
+
:categories="categories"
|
|
236
245
|
:removable="true"
|
|
237
246
|
:title="$options.i18n.selectedContextItemsTitle"
|
|
238
247
|
:default-collapsed="false"
|
|
239
248
|
class="gl-mb-3"
|
|
240
249
|
@remove="removeItem"
|
|
250
|
+
@get-content="onGetContextItemContent"
|
|
241
251
|
/>
|
|
242
252
|
<gl-card
|
|
243
253
|
v-if="open"
|
|
@@ -4,12 +4,15 @@ import GlIcon from '../../../../../../base/icon/icon.vue';
|
|
|
4
4
|
import GlToken from '../../../../../../base/token/token.vue';
|
|
5
5
|
import GlTruncate from '../../../../../../utilities/truncate/truncate.vue';
|
|
6
6
|
import GlDuoChatContextItemPopover from '../duo_chat_context_item_popover/duo_chat_context_item_popover.vue';
|
|
7
|
+
import { CONTEXT_ITEM_CATEGORY_FILE, CONTEXT_ITEM_CATEGORY_LOCAL_GIT } from '../constants';
|
|
8
|
+
import GlDuoChatContextItemDetailsModal from '../duo_chat_context_item_details_modal/duo_chat_context_item_details_modal.vue';
|
|
7
9
|
import { contextItemsValidator, getContextItemIcon } from '../utils';
|
|
8
10
|
|
|
9
11
|
export default {
|
|
10
12
|
name: 'GlDuoChatContextItemSelections',
|
|
11
13
|
components: {
|
|
12
14
|
GlTruncate,
|
|
15
|
+
GlDuoChatContextItemDetailsModal,
|
|
13
16
|
GlIcon,
|
|
14
17
|
GlDuoChatContextItemPopover,
|
|
15
18
|
GlToken,
|
|
@@ -55,6 +58,7 @@ export default {
|
|
|
55
58
|
return {
|
|
56
59
|
isCollapsed: this.defaultCollapsed,
|
|
57
60
|
selectionsId: uniqueId(),
|
|
61
|
+
previewContextItemId: null,
|
|
58
62
|
};
|
|
59
63
|
},
|
|
60
64
|
computed: {
|
|
@@ -73,6 +77,9 @@ export default {
|
|
|
73
77
|
}
|
|
74
78
|
return '';
|
|
75
79
|
},
|
|
80
|
+
contextItemPreview() {
|
|
81
|
+
return this.selections.find((item) => item.id === this.previewContextItemId);
|
|
82
|
+
},
|
|
76
83
|
},
|
|
77
84
|
methods: {
|
|
78
85
|
getContextItemIcon,
|
|
@@ -86,6 +93,30 @@ export default {
|
|
|
86
93
|
*/
|
|
87
94
|
this.$emit('remove', contextItem);
|
|
88
95
|
},
|
|
96
|
+
onOpenItem(event, contextItem) {
|
|
97
|
+
const isKeypressOnCloseButton =
|
|
98
|
+
event.type === 'keydown' && event.target !== event.currentTarget;
|
|
99
|
+
if (isKeypressOnCloseButton) {
|
|
100
|
+
// don't respond to events triggered by the gl-token children (e.g. the close button)
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (!this.canOpen(contextItem)) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (!contextItem.content) {
|
|
108
|
+
this.$emit('get-content', contextItem);
|
|
109
|
+
}
|
|
110
|
+
this.previewContextItemId = contextItem.id;
|
|
111
|
+
},
|
|
112
|
+
canOpen(contextItem) {
|
|
113
|
+
return [CONTEXT_ITEM_CATEGORY_LOCAL_GIT, CONTEXT_ITEM_CATEGORY_FILE].includes(
|
|
114
|
+
contextItem.category
|
|
115
|
+
);
|
|
116
|
+
},
|
|
117
|
+
onClosePreview() {
|
|
118
|
+
this.previewContextItemId = null;
|
|
119
|
+
},
|
|
89
120
|
},
|
|
90
121
|
};
|
|
91
122
|
</script>
|
|
@@ -114,6 +145,11 @@ export default {
|
|
|
114
145
|
variant="default"
|
|
115
146
|
class="gl-mb-2 gl-mr-2 gl-max-w-full"
|
|
116
147
|
:class="tokenVariantClasses"
|
|
148
|
+
:tabindex="canOpen(item) ? 0 : -1"
|
|
149
|
+
:role="canOpen(item) ? 'button' : undefined"
|
|
150
|
+
@click="onOpenItem($event, item)"
|
|
151
|
+
@keydown.enter="onOpenItem($event, item)"
|
|
152
|
+
@keydown.space.prevent="onOpenItem($event, item)"
|
|
117
153
|
@close="onRemoveItem(item)"
|
|
118
154
|
>
|
|
119
155
|
<div
|
|
@@ -132,8 +168,14 @@ export default {
|
|
|
132
168
|
:context-item="item"
|
|
133
169
|
:target="`context-item-${item.id}-${selectionsId}-token`"
|
|
134
170
|
placement="bottom"
|
|
171
|
+
@show-git-diff="onOpenItem(item)"
|
|
135
172
|
/>
|
|
136
173
|
</gl-token>
|
|
137
174
|
</div>
|
|
175
|
+
<gl-duo-chat-context-item-details-modal
|
|
176
|
+
v-if="contextItemPreview"
|
|
177
|
+
:context-item="contextItemPreview"
|
|
178
|
+
@close="onClosePreview"
|
|
179
|
+
/>
|
|
138
180
|
</div>
|
|
139
181
|
</template>
|
package/src/components/experimental/duo/chat/components/duo_chat_context/mock_context_data.js
CHANGED
|
@@ -16,6 +16,21 @@ export function getMockCategory(categoryValue) {
|
|
|
16
16
|
return MOCK_CATEGORIES.find((cat) => cat.value === categoryValue);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
export const MOCK_CONTEXT_FILE_CONTENT = `export function waterPlants() {
|
|
20
|
+
console.log('sprinkle');
|
|
21
|
+
}`;
|
|
22
|
+
|
|
23
|
+
export const MOCK_CONTEXT_FILE_DIFF_CONTENT = `diff --git a/src/plants/strawberry.ts b/src/plants/strawberry.ts
|
|
24
|
+
index 1234567..8901234 100644
|
|
25
|
+
--- a/src/plants/strawberry.ts
|
|
26
|
+
+++ b/src/plants/strawberry.ts
|
|
27
|
+
@@ -1,4 +1,4 @@
|
|
28
|
+
export const strawberry = {
|
|
29
|
+
name: 'Strawberry',
|
|
30
|
+
- waterNeeds: 'moderate',
|
|
31
|
+
+ waterNeeds: 'high',
|
|
32
|
+
};`;
|
|
33
|
+
|
|
19
34
|
export const MOCK_CONTEXT_ITEM_FILE = {
|
|
20
35
|
id: '123e4567-e89b-12d3-a456-426614174000',
|
|
21
36
|
category: CONTEXT_ITEM_CATEGORY_FILE,
|
|
@@ -57,6 +57,9 @@ export default {
|
|
|
57
57
|
onInsertCodeSnippet(e) {
|
|
58
58
|
this.$emit('insert-code-snippet', e);
|
|
59
59
|
},
|
|
60
|
+
onGetContextItemContent(e) {
|
|
61
|
+
this.$emit('get-context-item-content', e);
|
|
62
|
+
},
|
|
60
63
|
},
|
|
61
64
|
i18n,
|
|
62
65
|
};
|
|
@@ -81,6 +84,7 @@ export default {
|
|
|
81
84
|
:is-cancelled="canceledRequestIds.includes(msg.requestId)"
|
|
82
85
|
@track-feedback="onTrackFeedback"
|
|
83
86
|
@insert-code-snippet="onInsertCodeSnippet"
|
|
87
|
+
@get-context-item-content="onGetContextItemContent"
|
|
84
88
|
/>
|
|
85
89
|
</div>
|
|
86
90
|
</template>
|
package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.vue
CHANGED
|
@@ -234,6 +234,12 @@ export default {
|
|
|
234
234
|
onInsertCodeSnippet(e) {
|
|
235
235
|
this.$emit('insert-code-snippet', e);
|
|
236
236
|
},
|
|
237
|
+
onGetContextItemContent(contextItem) {
|
|
238
|
+
this.$emit('get-context-item-content', {
|
|
239
|
+
messageId: this.message.id,
|
|
240
|
+
contextItem,
|
|
241
|
+
});
|
|
242
|
+
},
|
|
237
243
|
},
|
|
238
244
|
};
|
|
239
245
|
</script>
|
|
@@ -264,6 +270,7 @@ export default {
|
|
|
264
270
|
:title="selectedContextItemsTitle"
|
|
265
271
|
:default-collapsed="selectedContextItemsDefaultCollapsed"
|
|
266
272
|
variant="assistant"
|
|
273
|
+
@get-content="onGetContextItemContent"
|
|
267
274
|
/>
|
|
268
275
|
<div
|
|
269
276
|
v-if="error"
|
|
@@ -309,6 +316,7 @@ export default {
|
|
|
309
316
|
:title="selectedContextItemsTitle"
|
|
310
317
|
:default-collapsed="selectedContextItemsDefaultCollapsed"
|
|
311
318
|
variant="user"
|
|
319
|
+
@get-content="onGetContextItemContent"
|
|
312
320
|
/>
|
|
313
321
|
</div>
|
|
314
322
|
</div>
|
|
@@ -518,6 +518,14 @@ export default {
|
|
|
518
518
|
*/
|
|
519
519
|
this.$emit('insert-code-snippet', e);
|
|
520
520
|
},
|
|
521
|
+
onGetContextItemContent(event) {
|
|
522
|
+
/**
|
|
523
|
+
* Emit get-context-item-content event that tells clients to load the full file content for a selected context item.
|
|
524
|
+
* The fully hydrated context item should be updated in the chat message context item.
|
|
525
|
+
* @param {*} event An event containing the message ID and context item to hydrate
|
|
526
|
+
*/
|
|
527
|
+
this.$emit('get-context-item-content', event);
|
|
528
|
+
},
|
|
521
529
|
closeContextItemsMenuOpen() {
|
|
522
530
|
this.contextItemsMenuIsOpen = false;
|
|
523
531
|
this.setPromptAndFocus();
|
|
@@ -603,6 +611,7 @@ export default {
|
|
|
603
611
|
:show-delimiter="index > 0"
|
|
604
612
|
@track-feedback="onTrackFeedback"
|
|
605
613
|
@insert-code-snippet="onInsertCodeSnippet"
|
|
614
|
+
@get-context-item-content="onGetContextItemContent"
|
|
606
615
|
/>
|
|
607
616
|
<template v-if="!hasMessages && !isLoading">
|
|
608
617
|
<gl-empty-state
|
package/src/scss/components.scss
CHANGED
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
@import '../components/base/pagination/pagination';
|
|
59
59
|
@import '../components/base/path/path';
|
|
60
60
|
@import '../components/base/popover/popover';
|
|
61
|
+
@import '../components/base/progress_bar/progress_bar';
|
|
61
62
|
@import '../components/base/search_box_by_type/search_box_by_type';
|
|
62
63
|
@import '../components/base/search_box_by_click/search_box_by_click';
|
|
63
64
|
@import '../components/base/segmented_control/segmented_control';
|
|
@@ -505,6 +505,7 @@
|
|
|
505
505
|
--gl-spinner-track-color-default: var(--gl-color-neutral-100); /* Used for the static track (background) of a loading spinner. */
|
|
506
506
|
--gl-skeleton-loader-shimmer-color: var(--gl-color-neutral-50); /* Used for the animated shimmer effect in a skeleton loader. */
|
|
507
507
|
--gl-skeleton-loader-background-color: var(--gl-color-neutral-100); /* Used for the skeleton loader background color. */
|
|
508
|
+
--gl-progress-bar-track-color: var(--gl-color-neutral-200); /* Used for the track color for all progress-bar variants. */
|
|
508
509
|
--gl-link-mention-background-color-current: var(--gl-color-orange-100); /* Used for the mention link background when referencing the current user. */
|
|
509
510
|
--gl-link-mention-background-color-default: var(--gl-color-blue-100); /* Used for the mention link default background. */
|
|
510
511
|
--gl-link-mention-text-color-current: var(--gl-color-orange-800); /* Used for the mention link text color when referencing the current user. */
|
|
@@ -781,6 +782,10 @@
|
|
|
781
782
|
--gl-token-foreground-color: var(--gl-text-color-default); /* Used for the token foreground color. */
|
|
782
783
|
--gl-table-sorting-icon-color: var(--gl-text-color-heading); /* Used for the color of the sorting icons in the column headers. */
|
|
783
784
|
--gl-table-row-background-color-hover: var(--gl-background-color-subtle); /* Used for the background of a table row in hover state. */
|
|
785
|
+
--gl-progress-bar-indicator-color-danger: var(--gl-status-danger-icon-color); /* Used for the indicator color for the danger progress-bar variant. */
|
|
786
|
+
--gl-progress-bar-indicator-color-warning: var(--gl-status-warning-icon-color); /* Used for the indicator color for the warning progress-bar variant. */
|
|
787
|
+
--gl-progress-bar-indicator-color-success: var(--gl-status-success-icon-color); /* Used for the indicator color for the success progress-bar variant. */
|
|
788
|
+
--gl-progress-bar-indicator-color-default: var(--gl-status-info-icon-color); /* Used for the indicator color for the primary progress-bar variant. */
|
|
784
789
|
--gl-dropdown-option-background-color-selected-focus: var(--gl-dropdown-option-background-color-selected-hover); /* Used for the background of a selected dropdown option in the focus state. */
|
|
785
790
|
--gl-dropdown-option-background-color-unselected-focus: var(--gl-action-neutral-background-color-focus); /* Used for the background of an unselected dropdown option in the focus state. */
|
|
786
791
|
--gl-dropdown-option-indicator-color-selected-focus: var(--gl-control-background-color-selected-focus); /* Used for the dropdown selected option indicator in the focus state. */
|
|
@@ -505,6 +505,7 @@
|
|
|
505
505
|
--gl-spinner-track-color-default: var(--gl-color-neutral-800); /* Used for the static track (background) of a loading spinner. */
|
|
506
506
|
--gl-skeleton-loader-shimmer-color: var(--gl-color-neutral-700); /* Used for the animated shimmer effect in a skeleton loader. */
|
|
507
507
|
--gl-skeleton-loader-background-color: var(--gl-color-neutral-800); /* Used for the skeleton loader background color. */
|
|
508
|
+
--gl-progress-bar-track-color: var(--gl-color-neutral-700); /* Used for the track color for all progress-bar variants. */
|
|
508
509
|
--gl-link-mention-background-color-current: var(--gl-color-orange-800); /* Used for the mention link background when referencing the current user. */
|
|
509
510
|
--gl-link-mention-background-color-default: var(--gl-color-blue-800); /* Used for the mention link default background. */
|
|
510
511
|
--gl-link-mention-text-color-current: var(--gl-color-orange-100); /* Used for the mention link text color when referencing the current user. */
|
|
@@ -781,6 +782,10 @@
|
|
|
781
782
|
--gl-token-foreground-color: var(--gl-text-color-default); /* Used for the token foreground color. */
|
|
782
783
|
--gl-table-sorting-icon-color: var(--gl-text-color-heading); /* Used for the color of the sorting icons in the column headers. */
|
|
783
784
|
--gl-table-row-background-color-hover: var(--gl-background-color-subtle); /* Used for the background of a table row in hover state. */
|
|
785
|
+
--gl-progress-bar-indicator-color-danger: var(--gl-status-danger-icon-color); /* Used for the indicator color for the danger progress-bar variant. */
|
|
786
|
+
--gl-progress-bar-indicator-color-warning: var(--gl-status-warning-icon-color); /* Used for the indicator color for the warning progress-bar variant. */
|
|
787
|
+
--gl-progress-bar-indicator-color-success: var(--gl-status-success-icon-color); /* Used for the indicator color for the success progress-bar variant. */
|
|
788
|
+
--gl-progress-bar-indicator-color-default: var(--gl-status-info-icon-color); /* Used for the indicator color for the primary progress-bar variant. */
|
|
784
789
|
--gl-dropdown-option-background-color-selected-focus: var(--gl-dropdown-option-background-color-selected-hover); /* Used for the background of a selected dropdown option in the focus state. */
|
|
785
790
|
--gl-dropdown-option-background-color-unselected-focus: var(--gl-action-neutral-background-color-focus); /* Used for the background of an unselected dropdown option in the focus state. */
|
|
786
791
|
--gl-dropdown-option-indicator-color-selected-focus: var(--gl-color-neutral-0); /* Used for the dropdown selected option indicator in the focus state. */
|
|
@@ -668,6 +668,11 @@ export const GL_LINK_MENTION_TEXT_COLOR_DEFAULT = '#9dc7f1'; // Used for the men
|
|
|
668
668
|
export const GL_LINK_MENTION_TEXT_COLOR_CURRENT = '#f5d9a8'; // Used for the mention link text color when referencing the current user.
|
|
669
669
|
export const GL_LINK_MENTION_BACKGROUND_COLOR_DEFAULT = '#064787'; // Used for the mention link default background.
|
|
670
670
|
export const GL_LINK_MENTION_BACKGROUND_COLOR_CURRENT = '#703800'; // Used for the mention link background when referencing the current user.
|
|
671
|
+
export const GL_PROGRESS_BAR_INDICATOR_COLOR_DEFAULT = '#428fdc'; // Used for the indicator color for the primary progress-bar variant.
|
|
672
|
+
export const GL_PROGRESS_BAR_INDICATOR_COLOR_SUCCESS = '#2da160'; // Used for the indicator color for the success progress-bar variant.
|
|
673
|
+
export const GL_PROGRESS_BAR_INDICATOR_COLOR_WARNING = '#c17d10'; // Used for the indicator color for the warning progress-bar variant.
|
|
674
|
+
export const GL_PROGRESS_BAR_INDICATOR_COLOR_DANGER = '#ec5941'; // Used for the indicator color for the danger progress-bar variant.
|
|
675
|
+
export const GL_PROGRESS_BAR_TRACK_COLOR = '#4c4b51'; // Used for the track color for all progress-bar variants.
|
|
671
676
|
export const GL_SKELETON_LOADER_BACKGROUND_COLOR = '#3a383f'; // Used for the skeleton loader background color.
|
|
672
677
|
export const GL_SKELETON_LOADER_SHIMMER_COLOR = '#4c4b51'; // Used for the animated shimmer effect in a skeleton loader.
|
|
673
678
|
export const GL_SPINNER_TRACK_COLOR_DEFAULT = '#3a383f'; // Used for the static track (background) of a loading spinner.
|
|
@@ -668,6 +668,11 @@ export const GL_LINK_MENTION_TEXT_COLOR_DEFAULT = '#0b5cad'; // Used for the men
|
|
|
668
668
|
export const GL_LINK_MENTION_TEXT_COLOR_CURRENT = '#703800'; // Used for the mention link text color when referencing the current user.
|
|
669
669
|
export const GL_LINK_MENTION_BACKGROUND_COLOR_DEFAULT = '#cbe2f9'; // Used for the mention link default background.
|
|
670
670
|
export const GL_LINK_MENTION_BACKGROUND_COLOR_CURRENT = '#f5d9a8'; // Used for the mention link background when referencing the current user.
|
|
671
|
+
export const GL_PROGRESS_BAR_INDICATOR_COLOR_DEFAULT = '#1f75cb'; // Used for the indicator color for the primary progress-bar variant.
|
|
672
|
+
export const GL_PROGRESS_BAR_INDICATOR_COLOR_SUCCESS = '#108548'; // Used for the indicator color for the success progress-bar variant.
|
|
673
|
+
export const GL_PROGRESS_BAR_INDICATOR_COLOR_WARNING = '#ab6100'; // Used for the indicator color for the warning progress-bar variant.
|
|
674
|
+
export const GL_PROGRESS_BAR_INDICATOR_COLOR_DANGER = '#dd2b0e'; // Used for the indicator color for the danger progress-bar variant.
|
|
675
|
+
export const GL_PROGRESS_BAR_TRACK_COLOR = '#bfbfc3'; // Used for the track color for all progress-bar variants.
|
|
671
676
|
export const GL_SKELETON_LOADER_BACKGROUND_COLOR = '#dcdcde'; // Used for the skeleton loader background color.
|
|
672
677
|
export const GL_SKELETON_LOADER_SHIMMER_COLOR = '#ececef'; // Used for the animated shimmer effect in a skeleton loader.
|
|
673
678
|
export const GL_SPINNER_TRACK_COLOR_DEFAULT = '#dcdcde'; // Used for the static track (background) of a loading spinner.
|