@gitlab/ui 66.23.0 → 66.24.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 +14 -0
- package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js +2 -2
- package/dist/components/base/new_dropdowns/listbox/listbox.js +1 -1
- package/dist/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.js +100 -0
- package/dist/components/experimental/duo/chat/constants.js +2 -1
- package/dist/components/experimental/duo/user_feedback/user_feedback.js +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/tokens/css/tokens.css +1 -1
- package/dist/tokens/css/tokens.dark.css +1 -1
- package/dist/tokens/js/tokens.dark.js +1 -1
- package/dist/tokens/js/tokens.js +1 -1
- package/dist/tokens/scss/_tokens.dark.scss +1 -1
- package/dist/tokens/scss/_tokens.scss +1 -1
- package/package.json +2 -2
- package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.vue +2 -2
- package/src/components/base/new_dropdowns/listbox/listbox.stories.js +1 -1
- package/src/components/base/new_dropdowns/listbox/listbox.vue +1 -1
- package/src/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.md +1 -0
- package/src/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.scss +67 -0
- package/src/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.spec.js +70 -0
- package/src/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.stories.js +31 -0
- package/src/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.vue +94 -0
- package/src/components/experimental/duo/chat/constants.js +2 -0
- package/src/components/experimental/duo/user_feedback/user_feedback.vue +1 -0
- package/src/scss/components.scss +1 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [66.24.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v66.23.1...v66.24.0) (2023-10-05)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **DuoChatLoader:** added component ([658ca9e](https://gitlab.com/gitlab-org/gitlab-ui/commit/658ca9e4eecf3311f110311f483123271432897d))
|
|
7
|
+
|
|
8
|
+
## [66.23.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v66.23.0...v66.23.1) (2023-10-04)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **GlCollapsibleListbox, GlDisclosureDropdown:** Update group border color ([6dc4bf2](https://gitlab.com/gitlab-org/gitlab-ui/commit/6dc4bf25af9fcd85f7de70f3919e5152b0979de0))
|
|
14
|
+
|
|
1
15
|
# [66.23.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v66.22.0...v66.23.0) (2023-10-03)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -5,8 +5,8 @@ import { DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS, DISCLOSURE_DROPDOWN_GROUP_N
|
|
|
5
5
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
6
6
|
|
|
7
7
|
const BORDER_CLASSES = {
|
|
8
|
-
[DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top]: 'gl-border-t gl-pt-2 gl-mt-2',
|
|
9
|
-
[DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.bottom]: 'gl-border-b gl-pb-2 gl-mb-2'
|
|
8
|
+
[DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top]: 'gl-border-t gl-border-t-gray-200 gl-pt-2 gl-mt-2',
|
|
9
|
+
[DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.bottom]: 'gl-border-b gl-border-b-gray-200 gl-pb-2 gl-mb-2'
|
|
10
10
|
};
|
|
11
11
|
var script = {
|
|
12
12
|
name: DISCLOSURE_DROPDOWN_GROUP_NAME,
|
|
@@ -18,7 +18,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
|
18
18
|
//
|
|
19
19
|
const ITEM_SELECTOR = '[role="option"]';
|
|
20
20
|
const HEADER_ITEMS_BORDER_CLASSES = ['gl-border-b-1', 'gl-border-b-solid', 'gl-border-b-gray-200'];
|
|
21
|
-
const GROUP_TOP_BORDER_CLASSES = ['gl-border-t', 'gl-pt-1', 'gl-mt-2'];
|
|
21
|
+
const GROUP_TOP_BORDER_CLASSES = ['gl-border-t', 'gl-border-t-gray-200', 'gl-pt-1', 'gl-mt-2'];
|
|
22
22
|
const SEARCH_INPUT_SELECTOR = '.gl-listbox-search-input';
|
|
23
23
|
var script = {
|
|
24
24
|
name: 'GlCollapsibleListbox',
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import GlSprintf from '../../../../../utilities/sprintf/sprintf';
|
|
2
|
+
import { LOADING_TRANSITION_DURATION } from '../../constants';
|
|
3
|
+
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
4
|
+
|
|
5
|
+
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'
|
|
9
|
+
};
|
|
10
|
+
var script = {
|
|
11
|
+
name: 'GlDuoChatLoader',
|
|
12
|
+
components: {
|
|
13
|
+
GlSprintf
|
|
14
|
+
},
|
|
15
|
+
i18n,
|
|
16
|
+
props: {
|
|
17
|
+
/**
|
|
18
|
+
* The message containing the name of the current AI tool working on the answer.
|
|
19
|
+
*/
|
|
20
|
+
toolName: {
|
|
21
|
+
type: String,
|
|
22
|
+
required: false,
|
|
23
|
+
default: i18n.GITLAB_DUO
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
data() {
|
|
27
|
+
return {
|
|
28
|
+
loadingSequence: 0,
|
|
29
|
+
timeout: null
|
|
30
|
+
};
|
|
31
|
+
},
|
|
32
|
+
beforeDestroy() {
|
|
33
|
+
clearTimeout(this.timeout);
|
|
34
|
+
},
|
|
35
|
+
mounted() {
|
|
36
|
+
this.computeTransitionWidth();
|
|
37
|
+
this.enter();
|
|
38
|
+
},
|
|
39
|
+
methods: {
|
|
40
|
+
computeTransitionWidth() {
|
|
41
|
+
const container = this.$refs.transition;
|
|
42
|
+
const active = this.$refs.currentTransition[0]; // There's only one `currentTransition` ref at a time, but refs in v-for loops are always Arrays
|
|
43
|
+
const {
|
|
44
|
+
width,
|
|
45
|
+
height
|
|
46
|
+
} = active.getBoundingClientRect();
|
|
47
|
+
container.$el.style.width = `${width}px`;
|
|
48
|
+
container.$el.style.height = `${height}px`;
|
|
49
|
+
},
|
|
50
|
+
enter() {
|
|
51
|
+
clearTimeout(this.timeout);
|
|
52
|
+
this.timeout = setTimeout(() => {
|
|
53
|
+
this.loadingSequence = (this.loadingSequence + 1) % this.$options.i18n.LOADER_LOADING_TRANSITIONS.length;
|
|
54
|
+
this.enter();
|
|
55
|
+
}, LOADING_TRANSITION_DURATION);
|
|
56
|
+
},
|
|
57
|
+
isCurrentTransition(index) {
|
|
58
|
+
return index === this.loadingSequence;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
/* script */
|
|
64
|
+
const __vue_script__ = script;
|
|
65
|
+
|
|
66
|
+
/* template */
|
|
67
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"duo-chat-loader"},[_vm._m(0),_vm._v(" "),_c('gl-sprintf',{attrs:{"message":_vm.$options.i18n.LOADER_LOADING_MESSAGE},scopedSlots:_vm._u([{key:"tool",fn:function(){return [_c('strong',{staticClass:"gl-mr-2",attrs:{"data-testid":"tool"}},[_vm._v(_vm._s(_vm.toolName))])]},proxy:true},{key:"transition",fn:function(){return [_c('transition-group',{ref:"transition",staticClass:"transition gl-display-inline-block gl-mx-2",attrs:{"name":"text"},on:{"after-leave":_vm.computeTransitionWidth}},_vm._l((_vm.$options.i18n.LOADER_LOADING_TRANSITIONS),function(message,index){return _c('span',{directives:[{name:"show",rawName:"v-show",value:(_vm.isCurrentTransition(index)),expression:"isCurrentTransition(index)"}],key:message,ref:_vm.isCurrentTransition(index) ? 'currentTransition' : '',refInFor:true,staticClass:"gl-white-space-nowrap",attrs:{"data-testid":_vm.isCurrentTransition(index) ? 'current-transition' : ''}},[_vm._v(_vm._s(message))])}),0)]},proxy:true}])})],1)};
|
|
68
|
+
var __vue_staticRenderFns__ = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-display-flex gl-align-items-center gl-mr-3"},[_c('div',{staticClass:"duo-chat-loader__dot duo-chat-loader__dot--1"}),_vm._v(" "),_c('div',{staticClass:"duo-chat-loader__dot duo-chat-loader__dot--2"}),_vm._v(" "),_c('div',{staticClass:"duo-chat-loader__dot duo-chat-loader__dot--3"})])}];
|
|
69
|
+
|
|
70
|
+
/* style */
|
|
71
|
+
const __vue_inject_styles__ = undefined;
|
|
72
|
+
/* scoped */
|
|
73
|
+
const __vue_scope_id__ = undefined;
|
|
74
|
+
/* module identifier */
|
|
75
|
+
const __vue_module_identifier__ = undefined;
|
|
76
|
+
/* functional template */
|
|
77
|
+
const __vue_is_functional_template__ = false;
|
|
78
|
+
/* style inject */
|
|
79
|
+
|
|
80
|
+
/* style inject SSR */
|
|
81
|
+
|
|
82
|
+
/* style inject shadow dom */
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
const __vue_component__ = __vue_normalize__(
|
|
87
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
88
|
+
__vue_inject_styles__,
|
|
89
|
+
__vue_script__,
|
|
90
|
+
__vue_scope_id__,
|
|
91
|
+
__vue_is_functional_template__,
|
|
92
|
+
__vue_module_identifier__,
|
|
93
|
+
false,
|
|
94
|
+
undefined,
|
|
95
|
+
undefined,
|
|
96
|
+
undefined
|
|
97
|
+
);
|
|
98
|
+
|
|
99
|
+
export default __vue_component__;
|
|
100
|
+
export { i18n };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
const LOADING_TRANSITION_DURATION = 7500;
|
|
1
2
|
const DOCUMENTATION_SOURCE_TYPES = {
|
|
2
3
|
HANDBOOK: {
|
|
3
4
|
value: 'handbook',
|
|
@@ -18,4 +19,4 @@ const MESSAGE_MODEL_ROLES = {
|
|
|
18
19
|
assistant: 'assistant'
|
|
19
20
|
};
|
|
20
21
|
|
|
21
|
-
export { DOCUMENTATION_SOURCE_TYPES, MESSAGE_MODEL_ROLES };
|
|
22
|
+
export { DOCUMENTATION_SOURCE_TYPES, LOADING_TRANSITION_DURATION, MESSAGE_MODEL_ROLES };
|
|
@@ -58,7 +58,7 @@ var script = {
|
|
|
58
58
|
const __vue_script__ = script;
|
|
59
59
|
|
|
60
60
|
/* template */
|
|
61
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-pt-4"},[_c('div',[(!_vm.feedbackReceived)?_c('gl-button',{attrs:{"variant":"link","target":"_blank","href":_vm.feedbackLinkUrl},on:{"click":function($event){_vm.shouldRenderModal && _vm.$refs.feedbackModal.show();}}},[_vm._v(_vm._s(_vm.feedbackLinkText))]):_c('span',{staticClass:"gl-text-gray-500"},[_vm._v("\n "+_vm._s(_vm.$options.i18n.FEEDBACK_THANKS)+"\n ")])],1),_vm._v(" "),(_vm.shouldRenderModal)?_c('feedback-modal',{ref:"feedbackModal",on:{"feedback-submitted":_vm.notify}}):_vm._e()],1)};
|
|
61
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-pt-4"},[_c('div',[(!_vm.feedbackReceived)?_c('gl-button',{attrs:{"variant":"link","target":"_blank","href":_vm.feedbackLinkUrl,"button-text-classes":"gl-white-space-normal! gl-text-left"},on:{"click":function($event){_vm.shouldRenderModal && _vm.$refs.feedbackModal.show();}}},[_vm._v(_vm._s(_vm.feedbackLinkText))]):_c('span',{staticClass:"gl-text-gray-500"},[_vm._v("\n "+_vm._s(_vm.$options.i18n.FEEDBACK_THANKS)+"\n ")])],1),_vm._v(" "),(_vm.shouldRenderModal)?_c('feedback-modal',{ref:"feedbackModal",on:{"feedback-submitted":_vm.notify}}):_vm._e()],1)};
|
|
62
62
|
var __vue_staticRenderFns__ = [];
|
|
63
63
|
|
|
64
64
|
/* style */
|