@gitlab/duo-ui 15.10.0 → 15.10.1
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/dist/components/agentic_chat/components/agentic_binary_feedback/agentic_binary_feedback.js +24 -147
- package/dist/components/agentic_chat/components/agentic_feedback_panel/agentic_feedback_panel.js +185 -0
- package/dist/components/chat/components/duo_chat_message/duo_chat_message.js +21 -2
- package/dist/components/chat/components/message_action_bar/message_action_bar.js +43 -0
- package/dist/components.css +1 -1
- package/dist/components.css.map +1 -1
- package/dist/tailwind.css +1 -1
- package/dist/tailwind.css.map +1 -1
- package/package.json +1 -1
- package/src/components/agentic_chat/components/agentic_binary_feedback/agentic_binary_feedback.scss +2 -2
- package/src/components/agentic_chat/components/agentic_binary_feedback/agentic_binary_feedback.vue +35 -233
- package/src/components/agentic_chat/components/agentic_feedback_panel/agentic_feedback_panel.vue +228 -0
- package/src/components/chat/components/duo_chat_message/duo_chat_message.vue +64 -33
- package/src/components/chat/components/message_action_bar/message_action_bar.vue +11 -0
package/dist/components/agentic_chat/components/agentic_binary_feedback/agentic_binary_feedback.js
CHANGED
|
@@ -1,175 +1,52 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { GlButton, GlIcon, GlFormTextarea, GlForm, GlTooltipDirective } from '@gitlab/ui';
|
|
1
|
+
import { GlButton, GlIcon, GlTooltipDirective } from '@gitlab/ui';
|
|
3
2
|
import { translate } from '@gitlab/ui/dist/utils/i18n';
|
|
4
3
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
5
4
|
|
|
6
5
|
const i18n = {
|
|
7
6
|
THANKS: translate('AgenticBinaryFeedback.thanks', 'Thanks for the feedback!'),
|
|
8
7
|
THUMBS_UP: translate('AgenticBinaryFeedback.thumbsUp', 'Helpful'),
|
|
9
|
-
THUMBS_DOWN: translate('AgenticBinaryFeedback.thumbsDown', 'Not helpful')
|
|
10
|
-
TELL_US_MORE: translate('AgenticBinaryFeedback.tellUsMore', 'Tell us more'),
|
|
11
|
-
SUBMIT: translate('AgenticBinaryFeedback.submit', 'Submit'),
|
|
12
|
-
BACK: translate('AgenticBinaryFeedback.back', 'Back'),
|
|
13
|
-
CLOSE: translate('AgenticBinaryFeedback.close', 'Close'),
|
|
14
|
-
FEEDBACK_PLACEHOLDER: translate('AgenticBinaryFeedback.placeholder', 'Share your feedback...'),
|
|
15
|
-
THUMBS_UP_HEADER: translate('AgenticBinaryFeedback.thumbsUpHeader', 'What made this helpful?'),
|
|
16
|
-
THUMBS_DOWN_HEADER: translate('AgenticBinaryFeedback.thumbsDownHeader', 'What would have been more helpful?'),
|
|
17
|
-
TOO_GENERIC: translate('AgenticBinaryFeedback.tooGeneric', 'Too generic'),
|
|
18
|
-
MISSING_STEPS: translate('AgenticBinaryFeedback.missingSteps', 'Missing steps'),
|
|
19
|
-
WRONG_CONTEXT: translate('AgenticBinaryFeedback.wrongContext', 'Wrong context'),
|
|
20
|
-
OUTDATED_INCORRECT: translate('AgenticBinaryFeedback.outdatedIncorrect', 'Outdated/incorrect'),
|
|
21
|
-
SOLVED_PROBLEM: translate('AgenticBinaryFeedback.solvedProblem', 'Solved my problem'),
|
|
22
|
-
SAVED_TIME: translate('AgenticBinaryFeedback.savedTime', 'Saved me time'),
|
|
23
|
-
GOOD_EXAMPLES: translate('AgenticBinaryFeedback.goodExamples', 'Good examples'),
|
|
24
|
-
ACCURATE_INFO: translate('AgenticBinaryFeedback.accurateInfo', 'Accurate information')
|
|
25
|
-
};
|
|
26
|
-
const thumbsDownReasons = [{
|
|
27
|
-
key: 'too_generic',
|
|
28
|
-
label: i18n.TOO_GENERIC
|
|
29
|
-
}, {
|
|
30
|
-
key: 'missing_steps',
|
|
31
|
-
label: i18n.MISSING_STEPS
|
|
32
|
-
}, {
|
|
33
|
-
key: 'wrong_context',
|
|
34
|
-
label: i18n.WRONG_CONTEXT
|
|
35
|
-
}, {
|
|
36
|
-
key: 'outdated_incorrect',
|
|
37
|
-
label: i18n.OUTDATED_INCORRECT
|
|
38
|
-
}, {
|
|
39
|
-
key: 'tell_us_more',
|
|
40
|
-
label: i18n.TELL_US_MORE,
|
|
41
|
-
isCustom: true
|
|
42
|
-
}];
|
|
43
|
-
const thumbsUpReasons = [{
|
|
44
|
-
key: 'solved_problem',
|
|
45
|
-
label: i18n.SOLVED_PROBLEM
|
|
46
|
-
}, {
|
|
47
|
-
key: 'saved_time',
|
|
48
|
-
label: i18n.SAVED_TIME
|
|
49
|
-
}, {
|
|
50
|
-
key: 'good_examples',
|
|
51
|
-
label: i18n.GOOD_EXAMPLES
|
|
52
|
-
}, {
|
|
53
|
-
key: 'accurate_info',
|
|
54
|
-
label: i18n.ACCURATE_INFO
|
|
55
|
-
}, {
|
|
56
|
-
key: 'tell_us_more',
|
|
57
|
-
label: i18n.TELL_US_MORE,
|
|
58
|
-
isCustom: true
|
|
59
|
-
}];
|
|
60
|
-
const FEEDBACK_VIEW = {
|
|
61
|
-
CLOSED: 'closed',
|
|
62
|
-
REASON_LIST: 'reason_list',
|
|
63
|
-
TELL_US_MORE: 'tell_us_more'
|
|
8
|
+
THUMBS_DOWN: translate('AgenticBinaryFeedback.thumbsDown', 'Not helpful')
|
|
64
9
|
};
|
|
65
10
|
var script = {
|
|
66
11
|
name: 'AgenticBinaryFeedback',
|
|
67
12
|
i18n,
|
|
68
|
-
thumbsUpReasons,
|
|
69
|
-
thumbsDownReasons,
|
|
70
13
|
components: {
|
|
71
14
|
GlButton,
|
|
72
|
-
GlIcon
|
|
73
|
-
GlFormTextarea,
|
|
74
|
-
GlForm
|
|
15
|
+
GlIcon
|
|
75
16
|
},
|
|
76
17
|
directives: {
|
|
77
18
|
GlTooltip: GlTooltipDirective
|
|
78
19
|
},
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
}
|
|
20
|
+
props: {
|
|
21
|
+
feedbackChoice: {
|
|
22
|
+
type: String,
|
|
23
|
+
required: false,
|
|
24
|
+
default: null,
|
|
25
|
+
validator: value => value === null || ['thumbs_up', 'thumbs_down'].includes(value)
|
|
26
|
+
},
|
|
27
|
+
submitted: {
|
|
28
|
+
type: Boolean,
|
|
29
|
+
required: false,
|
|
30
|
+
default: false
|
|
31
|
+
}
|
|
86
32
|
},
|
|
87
33
|
computed: {
|
|
88
34
|
isThumbsUp() {
|
|
89
|
-
return this.
|
|
35
|
+
return this.feedbackChoice === 'thumbs_up';
|
|
90
36
|
},
|
|
91
37
|
isThumbsDown() {
|
|
92
|
-
return this.
|
|
93
|
-
},
|
|
94
|
-
reasonOptions() {
|
|
95
|
-
return this.isThumbsUp ? this.$options.thumbsUpReasons : this.$options.thumbsDownReasons;
|
|
96
|
-
},
|
|
97
|
-
reasonHeader() {
|
|
98
|
-
return this.isThumbsUp ? this.$options.i18n.THUMBS_UP_HEADER : this.$options.i18n.THUMBS_DOWN_HEADER;
|
|
99
|
-
},
|
|
100
|
-
isOverCharacterLimit() {
|
|
101
|
-
return this.customFeedback.length > 140;
|
|
102
|
-
},
|
|
103
|
-
trimmedFeedback() {
|
|
104
|
-
return this.customFeedback.trim();
|
|
105
|
-
},
|
|
106
|
-
isTextareaValid() {
|
|
107
|
-
return this.trimmedFeedback.length === 0 ? null : !this.isOverCharacterLimit;
|
|
108
|
-
},
|
|
109
|
-
canSubmitCustomFeedback() {
|
|
110
|
-
return this.trimmedFeedback.length > 0 && !this.isOverCharacterLimit;
|
|
38
|
+
return this.feedbackChoice === 'thumbs_down';
|
|
111
39
|
},
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
if (remaining >= 0) {
|
|
115
|
-
return remaining === 1 ? `${remaining} character remaining` : `${remaining} characters remaining`;
|
|
116
|
-
}
|
|
117
|
-
const over = Math.abs(remaining);
|
|
118
|
-
return over === 1 ? `${over} character over limit` : `${over} characters over limit`;
|
|
40
|
+
showButtons() {
|
|
41
|
+
return !this.feedbackChoice && !this.submitted;
|
|
119
42
|
},
|
|
120
|
-
|
|
121
|
-
return this.
|
|
122
|
-
},
|
|
123
|
-
isReasonListVisible() {
|
|
124
|
-
return this.feedbackView === FEEDBACK_VIEW.REASON_LIST;
|
|
125
|
-
},
|
|
126
|
-
isTellUsMoreVisible() {
|
|
127
|
-
return this.feedbackView === FEEDBACK_VIEW.TELL_US_MORE;
|
|
43
|
+
showSelectedIcon() {
|
|
44
|
+
return this.feedbackChoice && !this.submitted;
|
|
128
45
|
}
|
|
129
46
|
},
|
|
130
47
|
methods: {
|
|
131
48
|
selectFeedbackType(type) {
|
|
132
|
-
this
|
|
133
|
-
this.feedbackView = FEEDBACK_VIEW.REASON_LIST;
|
|
134
|
-
this.customFeedback = '';
|
|
135
|
-
this.scrollToDropdown();
|
|
136
|
-
},
|
|
137
|
-
scrollToDropdown() {
|
|
138
|
-
nextTick(() => {
|
|
139
|
-
var _this$$refs$dropdown, _el$scrollIntoView;
|
|
140
|
-
const el = ((_this$$refs$dropdown = this.$refs.dropdown) === null || _this$$refs$dropdown === void 0 ? void 0 : _this$$refs$dropdown.$el) || this.$refs.dropdown;
|
|
141
|
-
el === null || el === void 0 ? void 0 : (_el$scrollIntoView = el.scrollIntoView) === null || _el$scrollIntoView === void 0 ? void 0 : _el$scrollIntoView.call(el, {
|
|
142
|
-
behavior: 'smooth',
|
|
143
|
-
block: 'nearest'
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
},
|
|
147
|
-
selectReason(reason) {
|
|
148
|
-
if (reason.isCustom) {
|
|
149
|
-
this.feedbackView = FEEDBACK_VIEW.TELL_US_MORE;
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
this.submitFeedback(reason.key);
|
|
153
|
-
},
|
|
154
|
-
submitCustomFeedback() {
|
|
155
|
-
this.submitFeedback(`custom_${this.customFeedback.trim()}`);
|
|
156
|
-
},
|
|
157
|
-
submitFeedback(feedbackReason) {
|
|
158
|
-
this.$emit('feedback', {
|
|
159
|
-
feedbackType: this.feedbackType,
|
|
160
|
-
feedbackReason
|
|
161
|
-
});
|
|
162
|
-
this.feedbackView = FEEDBACK_VIEW.CLOSED;
|
|
163
|
-
this.feedbackSubmitted = true;
|
|
164
|
-
},
|
|
165
|
-
goBackToReasons() {
|
|
166
|
-
this.feedbackView = FEEDBACK_VIEW.REASON_LIST;
|
|
167
|
-
this.customFeedback = '';
|
|
168
|
-
},
|
|
169
|
-
closeDropdown() {
|
|
170
|
-
this.feedbackView = FEEDBACK_VIEW.CLOSED;
|
|
171
|
-
this.customFeedback = '';
|
|
172
|
-
this.feedbackType = null;
|
|
49
|
+
this.$emit('select-type', type);
|
|
173
50
|
}
|
|
174
51
|
}
|
|
175
52
|
};
|
|
@@ -178,7 +55,7 @@ var script = {
|
|
|
178
55
|
const __vue_script__ = script;
|
|
179
56
|
|
|
180
57
|
/* template */
|
|
181
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"agentic-binary-feedback gl-flex gl-items-center gl-gap-2"
|
|
58
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"agentic-binary-feedback gl-flex gl-items-center gl-gap-2"},[(_vm.showButtons)?[_c('gl-button',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],attrs:{"title":_vm.$options.i18n.THUMBS_UP,"aria-label":_vm.$options.i18n.THUMBS_UP,"icon":"thumb-up","category":"tertiary","size":"small","data-testid":"thumb-up-button"},on:{"click":function($event){return _vm.selectFeedbackType('thumbs_up')}}}),_vm._v(" "),_c('gl-button',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],attrs:{"title":_vm.$options.i18n.THUMBS_DOWN,"aria-label":_vm.$options.i18n.THUMBS_DOWN,"icon":"thumb-down","category":"tertiary","size":"small","data-testid":"thumb-down-button"},on:{"click":function($event){return _vm.selectFeedbackType('thumbs_down')}}})]:(_vm.showSelectedIcon)?_c('div',{staticClass:"gl-flex gl-h-6 gl-items-center"},[_c('gl-icon',{class:_vm.isThumbsUp ? 'gl-text-success' : 'gl-text-danger',attrs:{"name":_vm.isThumbsUp ? 'thumb-up' : 'thumb-down',"size":16,"data-testid":"selected-thumb-icon"}})],1):(_vm.submitted)?_c('div',{staticClass:"gl-relative gl-flex gl-items-center gl-gap-2",attrs:{"data-testid":"feedback-given"}},[_c('div',{staticClass:"feedback-colored-icon",attrs:{"data-testid":"feedback-colored-icon"}},[(_vm.isThumbsUp)?_c('gl-icon',{staticClass:"gl-text-success",attrs:{"name":"thumb-up","size":16,"data-testid":"thumb-up-icon-success"}}):(_vm.isThumbsDown)?_c('gl-icon',{staticClass:"gl-text-danger",attrs:{"name":"thumb-down","size":16,"data-testid":"thumb-down-icon-danger"}}):_vm._e()],1),_vm._v(" "),_c('div',{staticClass:"feedback-thanks gl-m-l-0 gl-w-0 gl-overflow-hidden gl-whitespace-nowrap gl-opacity-0",attrs:{"data-testid":"feedback-thanks"}},[_c('gl-icon',{staticClass:"gl-text-success",attrs:{"name":"check-xs","size":16,"data-testid":"check-icon"}}),_vm._v(" "),_c('span',{staticClass:"gl-text-sm gl-text-subtle"},[_vm._v(_vm._s(_vm.$options.i18n.THANKS))])],1)]):_vm._e()],2)};
|
|
182
59
|
var __vue_staticRenderFns__ = [];
|
|
183
60
|
|
|
184
61
|
/* style */
|
|
@@ -211,4 +88,4 @@ var __vue_staticRenderFns__ = [];
|
|
|
211
88
|
);
|
|
212
89
|
|
|
213
90
|
export default __vue_component__;
|
|
214
|
-
export {
|
|
91
|
+
export { i18n };
|
package/dist/components/agentic_chat/components/agentic_feedback_panel/agentic_feedback_panel.js
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { GlButton, GlFormTextarea, GlForm } from '@gitlab/ui';
|
|
2
|
+
import { translate } from '@gitlab/ui/dist/utils/i18n';
|
|
3
|
+
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
4
|
+
|
|
5
|
+
const i18n = {
|
|
6
|
+
TELL_US_MORE: translate('AgenticBinaryFeedback.tellUsMore', 'Tell us more'),
|
|
7
|
+
SUBMIT: translate('AgenticBinaryFeedback.submit', 'Submit'),
|
|
8
|
+
BACK: translate('AgenticBinaryFeedback.back', 'Back'),
|
|
9
|
+
CLOSE: translate('AgenticBinaryFeedback.close', 'Close'),
|
|
10
|
+
FEEDBACK_PLACEHOLDER: translate('AgenticBinaryFeedback.placeholder', 'Share your feedback...'),
|
|
11
|
+
THUMBS_UP_HEADER: translate('AgenticBinaryFeedback.thumbsUpHeader', 'What made this helpful?'),
|
|
12
|
+
THUMBS_DOWN_HEADER: translate('AgenticBinaryFeedback.thumbsDownHeader', 'What would have been more helpful?'),
|
|
13
|
+
TOO_GENERIC: translate('AgenticBinaryFeedback.tooGeneric', 'Too generic'),
|
|
14
|
+
MISSING_STEPS: translate('AgenticBinaryFeedback.missingSteps', 'Missing steps'),
|
|
15
|
+
WRONG_CONTEXT: translate('AgenticBinaryFeedback.wrongContext', 'Wrong context'),
|
|
16
|
+
OUTDATED_INCORRECT: translate('AgenticBinaryFeedback.outdatedIncorrect', 'Outdated/incorrect'),
|
|
17
|
+
SOLVED_PROBLEM: translate('AgenticBinaryFeedback.solvedProblem', 'Solved my problem'),
|
|
18
|
+
SAVED_TIME: translate('AgenticBinaryFeedback.savedTime', 'Saved me time'),
|
|
19
|
+
GOOD_EXAMPLES: translate('AgenticBinaryFeedback.goodExamples', 'Good examples'),
|
|
20
|
+
ACCURATE_INFO: translate('AgenticBinaryFeedback.accurateInfo', 'Accurate information')
|
|
21
|
+
};
|
|
22
|
+
const PANEL_VIEW = {
|
|
23
|
+
REASON_LIST: 'reason_list',
|
|
24
|
+
TELL_US_MORE: 'tell_us_more'
|
|
25
|
+
};
|
|
26
|
+
const thumbsDownReasons = [{
|
|
27
|
+
key: 'too_generic',
|
|
28
|
+
label: i18n.TOO_GENERIC
|
|
29
|
+
}, {
|
|
30
|
+
key: 'missing_steps',
|
|
31
|
+
label: i18n.MISSING_STEPS
|
|
32
|
+
}, {
|
|
33
|
+
key: 'wrong_context',
|
|
34
|
+
label: i18n.WRONG_CONTEXT
|
|
35
|
+
}, {
|
|
36
|
+
key: 'outdated_incorrect',
|
|
37
|
+
label: i18n.OUTDATED_INCORRECT
|
|
38
|
+
}, {
|
|
39
|
+
key: 'tell_us_more',
|
|
40
|
+
label: i18n.TELL_US_MORE,
|
|
41
|
+
isCustom: true
|
|
42
|
+
}];
|
|
43
|
+
const thumbsUpReasons = [{
|
|
44
|
+
key: 'solved_problem',
|
|
45
|
+
label: i18n.SOLVED_PROBLEM
|
|
46
|
+
}, {
|
|
47
|
+
key: 'saved_time',
|
|
48
|
+
label: i18n.SAVED_TIME
|
|
49
|
+
}, {
|
|
50
|
+
key: 'good_examples',
|
|
51
|
+
label: i18n.GOOD_EXAMPLES
|
|
52
|
+
}, {
|
|
53
|
+
key: 'accurate_info',
|
|
54
|
+
label: i18n.ACCURATE_INFO
|
|
55
|
+
}, {
|
|
56
|
+
key: 'tell_us_more',
|
|
57
|
+
label: i18n.TELL_US_MORE,
|
|
58
|
+
isCustom: true
|
|
59
|
+
}];
|
|
60
|
+
const CHARACTER_LIMIT = 140;
|
|
61
|
+
var script = {
|
|
62
|
+
name: 'AgenticFeedbackPanel',
|
|
63
|
+
i18n,
|
|
64
|
+
thumbsUpReasons,
|
|
65
|
+
thumbsDownReasons,
|
|
66
|
+
components: {
|
|
67
|
+
GlButton,
|
|
68
|
+
GlFormTextarea,
|
|
69
|
+
GlForm
|
|
70
|
+
},
|
|
71
|
+
props: {
|
|
72
|
+
feedbackType: {
|
|
73
|
+
type: String,
|
|
74
|
+
required: true,
|
|
75
|
+
validator: value => ['thumbs_up', 'thumbs_down'].includes(value)
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
data() {
|
|
79
|
+
return {
|
|
80
|
+
panelView: PANEL_VIEW.REASON_LIST,
|
|
81
|
+
customFeedback: ''
|
|
82
|
+
};
|
|
83
|
+
},
|
|
84
|
+
computed: {
|
|
85
|
+
isThumbsUp() {
|
|
86
|
+
return this.feedbackType === 'thumbs_up';
|
|
87
|
+
},
|
|
88
|
+
reasonOptions() {
|
|
89
|
+
return this.isThumbsUp ? this.$options.thumbsUpReasons : this.$options.thumbsDownReasons;
|
|
90
|
+
},
|
|
91
|
+
reasonHeader() {
|
|
92
|
+
return this.isThumbsUp ? this.$options.i18n.THUMBS_UP_HEADER : this.$options.i18n.THUMBS_DOWN_HEADER;
|
|
93
|
+
},
|
|
94
|
+
isOverCharacterLimit() {
|
|
95
|
+
return this.customFeedback.length > CHARACTER_LIMIT;
|
|
96
|
+
},
|
|
97
|
+
trimmedFeedback() {
|
|
98
|
+
return this.customFeedback.trim();
|
|
99
|
+
},
|
|
100
|
+
isTextareaValid() {
|
|
101
|
+
return this.trimmedFeedback.length === 0 ? null : !this.isOverCharacterLimit;
|
|
102
|
+
},
|
|
103
|
+
canSubmitCustomFeedback() {
|
|
104
|
+
return this.trimmedFeedback.length > 0 && !this.isOverCharacterLimit;
|
|
105
|
+
},
|
|
106
|
+
characterCountText() {
|
|
107
|
+
const remaining = CHARACTER_LIMIT - this.customFeedback.length;
|
|
108
|
+
if (remaining >= 0) {
|
|
109
|
+
return remaining === 1 ? `${remaining} character remaining` : `${remaining} characters remaining`;
|
|
110
|
+
}
|
|
111
|
+
const over = Math.abs(remaining);
|
|
112
|
+
return over === 1 ? `${over} character over limit` : `${over} characters over limit`;
|
|
113
|
+
},
|
|
114
|
+
isReasonListVisible() {
|
|
115
|
+
return this.panelView === PANEL_VIEW.REASON_LIST;
|
|
116
|
+
},
|
|
117
|
+
isTellUsMoreVisible() {
|
|
118
|
+
return this.panelView === PANEL_VIEW.TELL_US_MORE;
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
methods: {
|
|
122
|
+
selectReason(reason) {
|
|
123
|
+
if (reason.isCustom) {
|
|
124
|
+
this.panelView = PANEL_VIEW.TELL_US_MORE;
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
this.$emit('submit', {
|
|
128
|
+
feedbackType: this.feedbackType,
|
|
129
|
+
feedbackReason: reason.key
|
|
130
|
+
});
|
|
131
|
+
},
|
|
132
|
+
submitCustomFeedback() {
|
|
133
|
+
this.$emit('submit', {
|
|
134
|
+
feedbackType: this.feedbackType,
|
|
135
|
+
feedbackReason: `custom_${this.customFeedback.trim()}`
|
|
136
|
+
});
|
|
137
|
+
},
|
|
138
|
+
goBackToReasons() {
|
|
139
|
+
this.panelView = PANEL_VIEW.REASON_LIST;
|
|
140
|
+
this.customFeedback = '';
|
|
141
|
+
},
|
|
142
|
+
close() {
|
|
143
|
+
this.$emit('close');
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
/* script */
|
|
149
|
+
const __vue_script__ = script;
|
|
150
|
+
|
|
151
|
+
/* template */
|
|
152
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"agentic-feedback-panel gl-border gl-mt-2 gl-rounded-lg gl-border-default gl-bg-subtle gl-p-3",attrs:{"data-testid":"feedback-reason-dropdown"}},[_c('div',{staticClass:"gl-mb-3 gl-flex gl-items-center gl-justify-between gl-gap-2"},[_c('p',{staticClass:"gl-m-0 gl-text-sm gl-font-bold",attrs:{"data-testid":"reason-header"}},[_vm._v("\n "+_vm._s(_vm.reasonHeader)+"\n ")]),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-shrink-0 gl-items-center gl-gap-1"},[(_vm.isTellUsMoreVisible)?_c('gl-button',{attrs:{"icon":"go-back","category":"tertiary","size":"small","aria-label":_vm.$options.i18n.BACK,"data-testid":"back-button"},on:{"click":_vm.goBackToReasons}}):_vm._e(),_vm._v(" "),_c('gl-button',{staticClass:"gl-mr-[-5px]",attrs:{"icon":"close","category":"tertiary","size":"small","aria-label":_vm.$options.i18n.CLOSE,"data-testid":"close-dropdown-button"},on:{"click":_vm.close}})],1)]),_vm._v(" "),(_vm.isReasonListVisible)?_c('div',{staticClass:"gl-flex gl-flex-wrap gl-gap-2",attrs:{"data-testid":"reason-buttons"}},_vm._l((_vm.reasonOptions),function(reason){return _c('gl-button',{key:reason.key,staticClass:"gl-rounded-full",attrs:{"category":"secondary","size":"small","icon":reason.isCustom ? 'pencil' : undefined,"data-testid":("reason-" + (reason.key))},on:{"click":function($event){return _vm.selectReason(reason)}}},[_vm._v("\n "+_vm._s(reason.label)+"\n ")])}),1):_vm._e(),_vm._v(" "),(_vm.isTellUsMoreVisible)?_c('div',{staticClass:"gl-flex gl-w-full gl-flex-col gl-gap-3",attrs:{"data-testid":"tell-us-more-view"}},[_c('gl-form',{staticClass:"gl-flex gl-w-full gl-flex-col gl-gap-3",on:{"submit":function($event){$event.preventDefault();_vm.canSubmitCustomFeedback ? _vm.submitCustomFeedback() : null;}}},[_c('gl-form-textarea',{attrs:{"state":_vm.isTextareaValid,"placeholder":_vm.$options.i18n.FEEDBACK_PLACEHOLDER,"rows":3,"max-rows":5,"data-testid":"custom-feedback-textarea"},model:{value:(_vm.customFeedback),callback:function ($$v) {_vm.customFeedback=$$v;},expression:"customFeedback"}}),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-items-center gl-justify-between"},[_c('gl-button',{attrs:{"variant":"confirm","size":"small","type":"submit","data-testid":"submit-custom-feedback-button"}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.SUBMIT)+"\n ")]),_vm._v(" "),_c('span',{staticClass:"gl-text-sm",class:_vm.isOverCharacterLimit ? 'gl-text-danger' : 'gl-text-subtle',attrs:{"data-testid":"character-count"}},[_vm._v("\n "+_vm._s(_vm.characterCountText)+"\n ")])],1)],1)],1):_vm._e()])};
|
|
153
|
+
var __vue_staticRenderFns__ = [];
|
|
154
|
+
|
|
155
|
+
/* style */
|
|
156
|
+
const __vue_inject_styles__ = undefined;
|
|
157
|
+
/* scoped */
|
|
158
|
+
const __vue_scope_id__ = undefined;
|
|
159
|
+
/* module identifier */
|
|
160
|
+
const __vue_module_identifier__ = undefined;
|
|
161
|
+
/* functional template */
|
|
162
|
+
const __vue_is_functional_template__ = false;
|
|
163
|
+
/* style inject */
|
|
164
|
+
|
|
165
|
+
/* style inject SSR */
|
|
166
|
+
|
|
167
|
+
/* style inject shadow dom */
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
const __vue_component__ = __vue_normalize__(
|
|
172
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
173
|
+
__vue_inject_styles__,
|
|
174
|
+
__vue_script__,
|
|
175
|
+
__vue_scope_id__,
|
|
176
|
+
__vue_is_functional_template__,
|
|
177
|
+
__vue_module_identifier__,
|
|
178
|
+
false,
|
|
179
|
+
undefined,
|
|
180
|
+
undefined,
|
|
181
|
+
undefined
|
|
182
|
+
);
|
|
183
|
+
|
|
184
|
+
export default __vue_component__;
|
|
185
|
+
export { PANEL_VIEW, i18n, thumbsDownReasons, thumbsUpReasons };
|
|
@@ -6,6 +6,8 @@ import { SELECTED_CONTEXT_ITEMS_DEFAULT_COLLAPSED, MESSAGE_MODEL_ROLES } from '.
|
|
|
6
6
|
import DocumentationSources from '../duo_chat_message_sources/duo_chat_message_sources';
|
|
7
7
|
import { concatUntilEmpty, copyToClipboard } from '../utils';
|
|
8
8
|
import AgenticBinaryFeedback from '../../../agentic_chat/components/agentic_binary_feedback/agentic_binary_feedback';
|
|
9
|
+
import AgenticFeedbackPanel from '../../../agentic_chat/components/agentic_feedback_panel/agentic_feedback_panel';
|
|
10
|
+
import MessageActionBar from '../message_action_bar/message_action_bar';
|
|
9
11
|
import MessageFeedback from './message_feedback';
|
|
10
12
|
import MarkdownRenderer from './markdown_renderer';
|
|
11
13
|
import { CopyCodeElement } from './copy_code_element';
|
|
@@ -28,8 +30,10 @@ var script = {
|
|
|
28
30
|
},
|
|
29
31
|
components: {
|
|
30
32
|
AgenticBinaryFeedback,
|
|
33
|
+
AgenticFeedbackPanel,
|
|
31
34
|
DocumentationSources,
|
|
32
35
|
DuoChatContextItemSelections,
|
|
36
|
+
MessageActionBar,
|
|
33
37
|
MessageFeedback,
|
|
34
38
|
MessageMap,
|
|
35
39
|
GlIcon,
|
|
@@ -115,7 +119,9 @@ var script = {
|
|
|
115
119
|
// imperatively set up watcher on message
|
|
116
120
|
messageChunks: [],
|
|
117
121
|
selectedContextItemsDefaultCollapsed: SELECTED_CONTEXT_ITEMS_DEFAULT_COLLAPSED,
|
|
118
|
-
copied: false
|
|
122
|
+
copied: false,
|
|
123
|
+
feedbackChoice: null,
|
|
124
|
+
feedbackSubmitted: false
|
|
119
125
|
};
|
|
120
126
|
},
|
|
121
127
|
computed: {
|
|
@@ -295,6 +301,16 @@ var script = {
|
|
|
295
301
|
e.classList.remove(DUO_CODE_SCRIM_TOP_CLASS);
|
|
296
302
|
}
|
|
297
303
|
},
|
|
304
|
+
onFeedbackTypeSelected(type) {
|
|
305
|
+
this.feedbackChoice = type;
|
|
306
|
+
},
|
|
307
|
+
onFeedbackPanelSubmit(payload) {
|
|
308
|
+
this.feedbackSubmitted = true;
|
|
309
|
+
this.logEvent(payload);
|
|
310
|
+
},
|
|
311
|
+
onFeedbackPanelClose() {
|
|
312
|
+
this.feedbackChoice = null;
|
|
313
|
+
},
|
|
298
314
|
async copyMessage() {
|
|
299
315
|
try {
|
|
300
316
|
await copyToClipboard(this.message.content, this.$el);
|
|
@@ -325,7 +341,10 @@ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=
|
|
|
325
341
|
'duo-chat-message-complete': _vm.isDoneStreaming,
|
|
326
342
|
},on:{"insert-code-snippet":_vm.onInsertCodeSnippet,"copy-code-snippet":_vm.onCopyCodeSnippet}},[(_vm.error)?_c('div',{ref:"error-message",staticClass:"duo-chat-message-with-error gl-flex gl-bg-feedback-danger gl-p-4"},[(_vm.error)?_c('gl-icon',{staticClass:"error-icon !gl-mt-1 gl-mr-3 gl-shrink-0 gl-text-danger",attrs:{"aria-label":_vm.$options.i18n.MESSAGE_ERROR,"name":"error","size":16,"data-testid":"error"}}):_vm._e(),_vm._v(" "),(_vm.error)?_c('markdown-renderer',{ref:"error-message",staticClass:"duo-chat-message-error",attrs:{"markdown":_vm.renderedError,"trusted-urls":_vm.trustedUrls}}):_vm._e()],1):(_vm.isAssistantMessage || _vm.isUserMessage)?[_c('div',{staticClass:"gl-sr-only"},[_vm._v("\n "+_vm._s(_vm.isUserMessage ? _vm.$options.i18n.FROM_ME : _vm.$options.i18n.FROM_DUO)+"\n ")]),_vm._v(" "),(_vm.displaySelectedContextItems && _vm.isAssistantMessage)?_c('duo-chat-context-item-selections',{attrs:{"selections":_vm.selectedContextItems,"title":_vm.selectedContextItemsTitle,"default-collapsed":_vm.selectedContextItemsDefaultCollapsed,"variant":"assistant"},on:{"get-content":_vm.onGetContextItemContent}}):_vm._e(),_vm._v(" "),_c('markdown-renderer',{ref:"content",staticClass:"duo-chat-message",class:{
|
|
327
343
|
'gl-bg-feedback-info gl-p-4 gl-text-feedback-info': _vm.isUserMessage,
|
|
328
|
-
},attrs:{"is-html":_vm.hasContentHtml,"markdown":_vm.messageContent,"trusted-urls":_vm.trustedUrls}}),_vm._v(" "),(_vm.sources)?_c('documentation-sources',{attrs:{"sources":_vm.sources}}):_vm._e(),_vm._v(" "),(_vm.isAssistantMessage)?_c('
|
|
344
|
+
},attrs:{"is-html":_vm.hasContentHtml,"markdown":_vm.messageContent,"trusted-urls":_vm.trustedUrls}}),_vm._v(" "),(_vm.sources)?_c('documentation-sources',{attrs:{"sources":_vm.sources}}):_vm._e(),_vm._v(" "),(_vm.isAssistantMessage)?[_c('message-action-bar',[(_vm.isChunkAndNotCancelled)?_c('gl-animated-loader-icon',{attrs:{"is-on":true}}):_vm._e(),_vm._v(" "),(_vm.shouldShowFeedbackLink && _vm.isBinaryFeedbackEnabled)?[(_vm.showBinaryFeedback)?_c('agentic-binary-feedback',{attrs:{"feedback-choice":_vm.feedbackChoice,"submitted":_vm.feedbackSubmitted,"data-testid":"agentic-feedback-latest"},on:{"select-type":_vm.onFeedbackTypeSelected}}):_c('div',{staticClass:"agentic-feedback-hover-wrapper",class:{
|
|
345
|
+
'-gl-mr-3 gl-w-0 gl-overflow-hidden gl-opacity-0':
|
|
346
|
+
!_vm.feedbackChoice && !_vm.feedbackSubmitted,
|
|
347
|
+
},attrs:{"data-testid":"agentic-feedback-hover-container"}},[_c('agentic-binary-feedback',{attrs:{"feedback-choice":_vm.feedbackChoice,"submitted":_vm.feedbackSubmitted},on:{"select-type":_vm.onFeedbackTypeSelected}})],1)]:(_vm.shouldShowFeedbackLink)?_c('message-feedback',{attrs:{"has-feedback":_vm.hasFeedback},on:{"feedback":_vm.logEvent}}):_vm._e(),_vm._v(" "),(_vm.shouldShowCopyAction)?_c('gl-button',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],class:{ '!gl-text-success': _vm.copied, '!gl-text-subtle': !_vm.copied },attrs:{"title":_vm.copied ? _vm.$options.i18n.CHAT_MESSAGE_COPIED : _vm.$options.i18n.CHAT_MESSAGE_COPY,"icon":_vm.copied ? 'check-circle-filled' : 'copy-to-clipboard',"category":"tertiary","size":"small"},on:{"click":_vm.copyMessage,"focusout":function($event){_vm.copied = false;}}}):_vm._e()],2),_vm._v(" "),(_vm.feedbackChoice && !_vm.feedbackSubmitted)?_c('agentic-feedback-panel',{attrs:{"feedback-type":_vm.feedbackChoice},on:{"submit":_vm.onFeedbackPanelSubmit,"close":_vm.onFeedbackPanelClose}}):_vm._e()]:_vm._e(),_vm._v(" "),(_vm.displaySelectedContextItems && _vm.isUserMessage)?_c('duo-chat-context-item-selections',{attrs:{"selections":_vm.selectedContextItems,"title":_vm.selectedContextItemsTitle,"default-collapsed":_vm.selectedContextItemsDefaultCollapsed,"variant":"user"},on:{"get-content":_vm.onGetContextItemContent}}):_vm._e()]:_c('message-map',{attrs:{"message":_vm.message,"with-feedback":_vm.withFeedback,"working-directory":_vm.workingDirectory,"data-testid":"workflow-message"},on:{"open-file-path":_vm.onOpenFilePath,"feedback":_vm.logEvent}})],2)};
|
|
329
348
|
var __vue_staticRenderFns__ = [];
|
|
330
349
|
|
|
331
350
|
/* style */
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
2
|
+
|
|
3
|
+
var script = {
|
|
4
|
+
name: 'MessageActionBar'
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
/* script */
|
|
8
|
+
const __vue_script__ = script;
|
|
9
|
+
|
|
10
|
+
/* template */
|
|
11
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"message-action-bar -gl-ml-2 gl-flex gl-items-start gl-gap-3"},[_vm._t("default")],2)};
|
|
12
|
+
var __vue_staticRenderFns__ = [];
|
|
13
|
+
|
|
14
|
+
/* style */
|
|
15
|
+
const __vue_inject_styles__ = undefined;
|
|
16
|
+
/* scoped */
|
|
17
|
+
const __vue_scope_id__ = undefined;
|
|
18
|
+
/* module identifier */
|
|
19
|
+
const __vue_module_identifier__ = undefined;
|
|
20
|
+
/* functional template */
|
|
21
|
+
const __vue_is_functional_template__ = false;
|
|
22
|
+
/* style inject */
|
|
23
|
+
|
|
24
|
+
/* style inject SSR */
|
|
25
|
+
|
|
26
|
+
/* style inject shadow dom */
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
const __vue_component__ = __vue_normalize__(
|
|
31
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
32
|
+
__vue_inject_styles__,
|
|
33
|
+
__vue_script__,
|
|
34
|
+
__vue_scope_id__,
|
|
35
|
+
__vue_is_functional_template__,
|
|
36
|
+
__vue_module_identifier__,
|
|
37
|
+
false,
|
|
38
|
+
undefined,
|
|
39
|
+
undefined,
|
|
40
|
+
undefined
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
export default __vue_component__;
|
package/dist/components.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
@charset "UTF-8";.resizable-content{--tw-shadow:var(--gl-shadow-lg);--tw-shadow-colored:var(--gl-shadow-lg);background:var(--gl-background-color-default);border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);font-size:var(--gl-font-size-base);height:100%;overflow-y:auto;width:100%}.recents-wrapper .resizable-content{margin-top:var(--gl-spacing-scale-0)}.resizable-content{display:flex;flex-direction:column;line-height:1rem}.resizable-component .resizable-l,.resizable-component .resizable-t{background-color:initial;border-radius:3px;transition:background-color .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.resizable-component .resizable-l,.resizable-component .resizable-t{transition-delay:0ms!important;transition-duration:.01ms!important}}.resizable-component .resizable-l:hover,.resizable-component .resizable-t:hover{background-color:var(--gl-color-blue-200)}.resizable-component .resizable-t{height:4px!important;left:50%!important;top:2px!important;transform:translateX(-50%);width:95%!important}.resizable-component .resizable-l{height:95%!important;left:2px!important;top:50%!important;transform:translateY(-50%);width:4px!important}.resizable-component .duo-chat{z-index:var(--gl-zindex-0)}.resizable-component .resizable-l,.resizable-component .resizable-lt,.resizable-component .resizable-t{z-index:var(--gl-zindex-1)}.duo-chat{font-family:var(--gl-font-family-regular);z-index:999}.duo-chat .message-enter-active,.duo-chat .message-leave-active{transition:all .5s ease}.duo-chat .message-enter,.duo-chat .message-leave-to{opacity:var(--gl-opacity-0);transform:translateY(10px)}.duo-chat .duo-chat-loader.message-leave,.duo-chat .duo-chat-loader.message-leave-to{transition:none}.duo-chat .duo-agent-mode-switcher>*,.duo-chat .duo-model-switcher>*{width:100%}.duo-chat-drawer{--tw-shadow:var(--gl-shadow-lg);--tw-shadow-colored:var(--gl-shadow-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);font-size:var(--gl-font-size-base);height:100%;overflow-y:auto;position:fixed;right:0;transition-duration:.2s;transition-property:all;transition-timing-function:ease;width:100%}.recents-wrapper .duo-chat-drawer{margin-top:var(--gl-spacing-scale-0)}.duo-chat-drawer{display:flex;flex-direction:column;line-height:1rem}.duo-chat-drawer-footer{padding-bottom:var(--gl-spacing-scale-4);padding-left:var(--gl-spacing-scale-4);padding-right:var(--gl-spacing-scale-4)}.duo-chat-drawer-footer:before{--tw-translate-y:-100%;background:linear-gradient(to bottom,#0000,var(--gl-background-color-default));content:"";height:var(--gl-spacing-scale-4);left:0;pointer-events:none;position:absolute;top:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:100%}.duo-chat-history{scroll-behavior:smooth}.duo-chat-history *{overflow-anchor:none}.duo-chat-history .scroll-anchor{height:1px;margin-top:-1px;overflow-anchor:auto}.history-item{align-items:center;background:var(--gl-button-default-tertiary-background-color-default);border-radius:var(--gl-border-radius-lg);display:flex;gap:var(--gl-spacing-scale-3);margin-left:calc(var(--gl-spacing-scale-3)*-1);margin-right:calc(var(--gl-spacing-scale-3)*-1);padding-right:var(--gl-spacing-scale-2);transition:background-color .2s cubic-bezier(.22,.61,.36,1)}.history-item:focus,.history-item:focus-within,.history-item:hover{background:var(--gl-button-default-tertiary-background-color-hover)}.history-item:focus .history-remove-button,.history-item:focus-within .history-remove-button,.history-item:hover .history-remove-button{opacity:1}.history-item .history-remove-button{opacity:0;transition:opacity .2s cubic-bezier(.22,.61,.36,1)}.history-item .history-item-name{border-radius:var(--gl-border-radius-lg);border-width:0;padding:var(--gl-spacing-scale-3)}.history-item .history-item-name,.history-item .history-item-name:active,.history-item .history-item-name:focus,.history-item .history-item-name:hover{background-color:initial!important}.history-item .gl-button-text{align-items:center;display:flex;flex-direction:row;gap:var(--gl-spacing-scale-3);text-align:left;width:100%}.duo-chat-input{background:var(--gl-control-background-color-default);border-radius:1.25rem;box-shadow:inset 0 0 0 1px var(--gl-control-border-color-default);display:flex;flex-direction:column;max-height:240px;overflow:hidden}.duo-chat-input:focus-within{box-shadow:inset 0 0 0 1px var(--gl-control-border-color-focus),0 0 0 1px var(--gl-focus-ring-inner-color),0 0 0 3px var(--gl-focus-ring-outer-color);outline:none}@media (forced-colors:active){.duo-chat-input:focus-within{outline:2px solid LinkText}}.duo-chat-input .gl-form-textarea.form-control{border-radius:1.25rem;flex:1;max-height:240px;padding-right:40px;resize:none}.duo-chat-input:after{content:attr(data-value) " ";font-family:var(--gl-font-family-regular);padding:var(--gl-spacing-scale-4);padding-right:40px;visibility:hidden;word-break:break-word}.duo-chat .duo-chat-suggestion-button{border-radius:1rem}.slash-commands{margin-top:calc(var(--gl-spacing-scale-2)*-1)}.slash-commands .active-command{background-color:var(--gl-background-color-strong);border-radius:.25rem}.slash-commands .gl-dropdown-item button.dropdown-item{background-color:initial;font-size:var(--gl-font-size-sm);padding-left:var(--gl-spacing-scale-3);padding-right:var(--gl-spacing-scale-3)}.slash-commands .gl-dropdown-item button.dropdown-item:hover{background-color:initial}.duo-chat-markdown{color:#3a383f;font-family:var(--gl-font-family-regular);font-size:var(--gl-font-size-lg);font-weight:var(--gl-font-weight-normal);line-height:var(--gl-line-height-24)}.duo-chat-markdown :first-child{margin-top:var(--gl-spacing-scale-0)}.duo-chat-markdown .gl-h1,.duo-chat-markdown h1{color:var(--gl-heading-1-color);font-size:var(--gl-heading-1-font-size);font-weight:var(--gl-heading-1-font-weight);letter-spacing:var(--gl-heading-1-letter-spacing);line-height:var(--gl-heading-1-line-height);margin-bottom:var(--gl-heading-1-margin-bottom);margin-top:var(--gl-spacing-scale-7)}.duo-chat-markdown .gl-h2,.duo-chat-markdown h2{color:var(--gl-heading-2-color);font-size:var(--gl-heading-2-font-size);font-weight:var(--gl-heading-2-font-weight);letter-spacing:var(--gl-heading-2-letter-spacing);line-height:var(--gl-heading-2-line-height);margin-bottom:var(--gl-heading-2-margin-bottom);margin-top:var(--gl-spacing-scale-6)}.duo-chat-markdown .gl-h3,.duo-chat-markdown h3{color:var(--gl-heading-3-color);font-size:var(--gl-heading-3-font-size);font-weight:var(--gl-heading-3-font-weight);letter-spacing:var(--gl-heading-3-letter-spacing);line-height:var(--gl-heading-3-line-height);margin-bottom:var(--gl-heading-3-margin-bottom);margin-top:var(--gl-spacing-scale-6)}.duo-chat-markdown .gl-h4,.duo-chat-markdown h4{color:var(--gl-heading-4-color);font-size:var(--gl-heading-4-font-size);font-weight:var(--gl-heading-4-font-weight);letter-spacing:var(--gl-heading-4-letter-spacing);line-height:var(--gl-heading-4-line-height);margin-bottom:var(--gl-heading-4-margin-bottom);margin-top:var(--gl-spacing-scale-5)}.duo-chat-markdown .gl-h5,.duo-chat-markdown h5{color:var(--gl-heading-5-color);font-size:var(--gl-heading-5-font-size);font-weight:var(--gl-heading-5-font-weight);letter-spacing:var(--gl-heading-5-letter-spacing);line-height:var(--gl-heading-5-line-height);margin-bottom:var(--gl-heading-5-margin-bottom);margin-top:var(--gl-spacing-scale-5)}.duo-chat-markdown .gl-h6,.duo-chat-markdown h6{color:var(--gl-heading-6-color);font-size:var(--gl-heading-6-font-size);font-weight:var(--gl-heading-6-font-weight);letter-spacing:var(--gl-heading-6-letter-spacing);line-height:var(--gl-heading-6-line-height);margin-bottom:var(--gl-heading-6-margin-bottom);margin-top:var(--gl-spacing-scale-5)}.duo-chat-markdown .gl-paragraph,.duo-chat-markdown p{margin-bottom:var(--gl-spacing-scale-0);margin-top:var(--gl-spacing-scale-0)}.duo-chat-markdown .gl-paragraph+.gl-paragraph,.duo-chat-markdown .gl-paragraph+p,.duo-chat-markdown p+.gl-paragraph,.duo-chat-markdown p+p{margin-top:var(--gl-spacing-scale-5)}.duo-chat-markdown .gl-paragraph.sm,.duo-chat-markdown .sm,.duo-chat-markdown p.sm{font-size:.875rem;line-height:var(--gl-line-height-20)}.duo-chat-markdown .monospace,.duo-chat-markdown code{font-family:var(--gl-font-family-monospace);font-family:var(--default-mono-font,"GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace;font-variant-ligatures:none}.duo-chat-markdown blockquote{box-shadow:inset 4px 0 0 0 #dcdcde;color:var(--gray-700);margin:var(--gl-spacing-scale-3) var(--gl-spacing-scale-0);padding-bottom:var(--gl-spacing-scale-3);padding-left:var(--gl-spacing-scale-6);padding-top:var(--gl-spacing-scale-3)}.duo-chat-markdown .idiff{border-radius:.25rem;display:inline-flex;padding-left:var(--gl-spacing-scale-2);padding-right:var(--gl-spacing-scale-2)}.duo-chat-markdown .deletion{background-color:var(--red-100)}.duo-chat-markdown .addition{background-color:var(--green-100)}.duo-chat-markdown code{background-color:var(--gray-50);border-radius:.25rem;color:var(--gray-950);padding:var(--gl-spacing-scale-1) var(--gl-spacing-scale-2)}.duo-chat-markdown pre{border-radius:.25rem;box-shadow:inset 0 0 0 1px #dcdcde;margin-bottom:var(--gl-spacing-scale-7);margin-top:var(--gl-spacing-scale-7);overflow:auto;padding:var(--gl-spacing-scale-3) var(--gl-spacing-scale-4)}.duo-chat-markdown pre code{background-color:var(--white);border-radius:var(--gl-border-radius-none);color:var(--gray-900);padding:var(--gl-spacing-scale-0)}.duo-chat-markdown .audio-container{display:inline-flex;flex-direction:column;width:100%}.duo-chat-markdown .audio-container audio{width:100%}.duo-chat-markdown .audio-container a{margin-top:var(--gl-spacing-scale-3)}.duo-chat-markdown .audio-container a:before{-webkit-font-smoothing:antialiased;content:"📎";margin-right:var(--gl-spacing-scale-2);text-rendering:auto}.duo-chat-markdown table{margin-bottom:var(--gl-spacing-scale-7);margin-top:var(--gl-spacing-scale-7)}.duo-chat-markdown table td,.duo-chat-markdown table th{box-shadow:inset 0 -1px 0 0 #dcdcde;padding:var(--gl-spacing-scale-4) var(--gl-spacing-scale-3);vertical-align:top}.duo-chat-markdown table th{box-shadow:inset 0 1px 0 0 #dcdcde,inset 0 -1px 0 0 #dcdcde;font-weight:var(--gl-font-weight-bold)}.duo-chat-markdown table thead{background-color:var(--gray-50)}.duo-chat-markdown table tr:nth-child(2n){background-color:var(--gray-10)}.duo-chat-compact-markdown{font-size:var(--gl-font-size-base)}.recents-wrapper .duo-chat-compact-markdown{margin-top:var(--gl-spacing-scale-0)}.duo-chat-compact-markdown{line-height:var(--gl-line-height-20)}.duo-chat-compact-markdown .gl-h1,.duo-chat-compact-markdown h1{color:var(--gl-heading-1-fixed-color);font-size:var(--gl-heading-1-fixed-font-size);font-weight:var(--gl-heading-1-fixed-font-weight);letter-spacing:var(--gl-heading-1-fixed-letter-spacing);line-height:var(--gl-heading-1-fixed-line-height);margin-bottom:var(--gl-heading-1-fixed-margin-bottom);margin-top:var(--gl-spacing-scale-7)}.duo-chat-compact-markdown .gl-h2,.duo-chat-compact-markdown h2{color:var(--gl-heading-2-fixed-color);font-size:var(--gl-heading-2-fixed-font-size);font-weight:var(--gl-heading-2-fixed-font-weight);letter-spacing:var(--gl-heading-2-fixed-letter-spacing);line-height:var(--gl-heading-2-fixed-line-height);margin-bottom:var(--gl-heading-2-fixed-margin-bottom);margin-top:var(--gl-spacing-scale-6)}.duo-chat-compact-markdown .gl-h3,.duo-chat-compact-markdown h3{color:var(--gl-heading-3-fixed-color);font-size:var(--gl-heading-3-fixed-font-size);font-weight:var(--gl-heading-3-fixed-font-weight);letter-spacing:var(--gl-heading-3-fixed-letter-spacing);line-height:var(--gl-heading-3-fixed-line-height);margin-bottom:var(--gl-heading-3-fixed-margin-bottom);margin-top:var(--gl-spacing-scale-6)}.duo-chat-compact-markdown .gl-h4,.duo-chat-compact-markdown h4{color:var(--gl-heading-4-fixed-color);font-size:var(--gl-heading-4-fixed-font-size);font-weight:var(--gl-heading-4-fixed-font-weight);letter-spacing:var(--gl-heading-4-fixed-letter-spacing);line-height:var(--gl-heading-4-fixed-line-height);margin-bottom:var(--gl-heading-4-fixed-margin-bottom);margin-top:var(--gl-spacing-scale-5)}.duo-chat-compact-markdown .gl-h5,.duo-chat-compact-markdown h5{color:var(--gl-heading-5-fixed-color);font-size:var(--gl-heading-5-fixed-font-size);font-weight:var(--gl-heading-5-fixed-font-weight);letter-spacing:var(--gl-heading-5-fixed-letter-spacing);line-height:var(--gl-heading-5-fixed-line-height);margin-bottom:var(--gl-heading-5-fixed-margin-bottom);margin-top:var(--gl-spacing-scale-5)}.duo-chat-compact-markdown .gl-h6,.duo-chat-compact-markdown h6{color:var(--gl-heading-6-fixed-color);font-size:var(--gl-heading-6-fixed-font-size);font-weight:var(--gl-heading-6-fixed-font-weight);letter-spacing:var(--gl-heading-6-fixed-letter-spacing);line-height:var(--gl-heading-6-fixed-line-height);margin-bottom:var(--gl-heading-6-fixed-margin-bottom);margin-top:var(--gl-spacing-scale-5)}.duo-chat-compact-markdown .sm{font-size:var(--gl-font-size-sm)}.duo-chat-compact-markdown .monospace,.duo-chat-compact-markdown code{font-family:var(--gl-font-family-monospace);font-family:var(--default-mono-font,"GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace;font-variant-ligatures:none}.duo-chat-compact-markdown table td,.duo-chat-compact-markdown table th{padding-bottom:var(--gl-spacing-scale-3);padding-top:var(--gl-spacing-scale-3)}.message-tool-approval-collapsed{border-bottom:0}.message-tool-approval-collapsed-header{border-bottom-left-radius:calc(var(--gl-card-border-radius) - 1px);border-bottom-right-radius:calc(var(--gl-card-border-radius) - 1px)}.web-only .duo-chat-input{overflow:visible;position:relative}.web-only .duo-chat-input:after{padding:var(--gl-spacing-scale-2)}.web-only .duo-chat-message pre code{background-color:initial!important;color:inherit!important}.duo-chat-loader{display:flex}.duo-chat-loader .transition{transition:width .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .transition{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-enter{opacity:var(--gl-opacity-0)}.duo-chat-loader .text-enter-active{transition:opacity .4s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .text-enter-active{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-enter-to,.duo-chat-loader .text-leave{opacity:var(--gl-opacity-10)}.duo-chat-loader .text-leave-active{transition:opacity .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .text-leave-active{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-leave-to{opacity:var(--gl-opacity-0)}.duo-chat-message{--gl-text-color-heading:var(--duo-chat-message-heading-color,inherit)!important;border-radius:1rem 1rem 0;color:var(--duo-chat-message-color,inherit)!important;position:relative}.duo-chat-message code{background-color:var(--gl-status-neutral-background-color)}.duo-chat-message pre{background-color:var(--gl-background-color-preformat,var(--gl-background-color-default));border-color:var(--gl-border-color-default);border-style:solid;border-width:1px;box-shadow:none!important;color:inherit;max-height:60vh;padding:var(--gl-spacing-scale-3) var(--gl-spacing-scale-4);scroll-behavior:smooth}.duo-chat-message pre:after,.duo-chat-message pre:before{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;content:"";height:var(--gl-spacing-scale-7);left:1px;pointer-events:none;position:absolute;width:calc(100% - 2px)}.duo-chat-message pre.scrim-top:before{--tw-rotate:-180deg;background:linear-gradient(to bottom,#0000,var(--gl-background-color-default));top:1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.duo-chat-message pre.scrim-bottom:after{background:linear-gradient(to bottom,#0000,var(--gl-background-color-default));bottom:1px}.duo-chat-message pre code{background-color:initial;display:block;font-size:var(--gl-font-size-sm);white-space:pre-wrap;word-break:break-all}.duo-chat-message p:not(:last-of-type){margin-bottom:var(--gl-spacing-scale-4)}.duo-chat-message p:last-of-type{margin-bottom:var(--gl-spacing-scale-0)}.duo-chat-message copy-code,.duo-chat-message insert-code-snippet{opacity:var(--gl-opacity-0);position:absolute;right:.5rem;top:.5rem;transition-duration:.2s;transition-property:all;transition-timing-function:ease}.duo-chat-message copy-code [role=tooltip],.duo-chat-message insert-code-snippet [role=tooltip]{background-color:var(--gray-100);border-radius:.25rem;display:none;left:0;position:absolute;top:0;width:max-content}.duo-chat-message copy-code [role=tooltip] .arrow,.duo-chat-message insert-code-snippet [role=tooltip] .arrow{background:inherit;height:var(--gl-spacing-scale-3);position:absolute;transform:rotate(45deg);width:var(--gl-spacing-scale-3)}.duo-chat-message copy-code{margin-right:2.5rem}.insert-code-hidden insert-code-snippet{display:none}.insert-code-hidden copy-code{margin-right:0}.duo-chat-message-complete .duo-message-pre-block:focus .copy-to-clipboard-button-container,.duo-chat-message-complete .duo-message-pre-block:focus copy-code,.duo-chat-message-complete .duo-message-pre-block:focus insert-code-snippet,.duo-chat-message-complete .duo-message-pre-block:has(button:focus) .copy-to-clipboard-button-container,.duo-chat-message-complete .duo-message-pre-block:has(button:focus) copy-code,.duo-chat-message-complete .duo-message-pre-block:has(button:focus) insert-code-snippet,.duo-chat-message-complete .duo-message-pre-block:hover .copy-to-clipboard-button-container,.duo-chat-message-complete .duo-message-pre-block:hover copy-code,.duo-chat-message-complete .duo-message-pre-block:hover insert-code-snippet{opacity:1}.duo-chat-message-error>p{margin:0}.agentic-feedback-hover-wrapper{transition:width .3s ease-in-out,opacity .3s ease-in-out,margin .3s ease-in-out}.gl-group:hover .agentic-feedback-hover-wrapper{margin-right:0;opacity:1;width:auto}.recents-wrapper .gl-accordion-item-header .gl-button.gl-button.btn-link{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border-radius:var(--gl-border-radius-none);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:block;font-size:var(--gl-font-size-sm);font-weight:var(--gl-font-weight-bold);padding-bottom:var(--gl-spacing-scale-2);padding-left:var(--gl-spacing-scale-3);padding-top:var(--gl-spacing-scale-2);text-decoration-line:none;text-transform:uppercase;width:100%}.recents-wrapper .gl-accordion-item-header>.collapse{margin-left:var(--gl-spacing-scale-0)}.recents-wrapper .gl-text-base{margin-top:var(--gl-spacing-scale-0)}.agentic-binary-feedback .feedback-colored-icon{animation:feedback-fade-out .3s ease-in-out forwards;animation-delay:2s;margin-left:4px;will-change:opacity}.agentic-binary-feedback .feedback-thanks{animation:feedback-fade-in .3s ease-in-out forwards;animation-delay:2s;pointer-events:none;will-change:opacity,width,margin}@keyframes feedback-fade-out{to{opacity:0;overflow:hidden;pointer-events:none;width:0}}@media (prefers-reduced-motion:reduce){.feedback-colored-icon,.feedback-thanks{animation:none}}@keyframes feedback-fade-in{to{margin-left:-6px;opacity:1;pointer-events:auto;width:auto}}
|
|
1
|
+
@charset "UTF-8";.resizable-content{--tw-shadow:var(--gl-shadow-lg);--tw-shadow-colored:var(--gl-shadow-lg);background:var(--gl-background-color-default);border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);font-size:var(--gl-font-size-base);height:100%;overflow-y:auto;width:100%}.recents-wrapper .resizable-content{margin-top:var(--gl-spacing-scale-0)}.resizable-content{display:flex;flex-direction:column;line-height:1rem}.resizable-component .resizable-l,.resizable-component .resizable-t{background-color:initial;border-radius:3px;transition:background-color .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.resizable-component .resizable-l,.resizable-component .resizable-t{transition-delay:0ms!important;transition-duration:.01ms!important}}.resizable-component .resizable-l:hover,.resizable-component .resizable-t:hover{background-color:var(--gl-color-blue-200)}.resizable-component .resizable-t{height:4px!important;left:50%!important;top:2px!important;transform:translateX(-50%);width:95%!important}.resizable-component .resizable-l{height:95%!important;left:2px!important;top:50%!important;transform:translateY(-50%);width:4px!important}.resizable-component .duo-chat{z-index:var(--gl-zindex-0)}.resizable-component .resizable-l,.resizable-component .resizable-lt,.resizable-component .resizable-t{z-index:var(--gl-zindex-1)}.duo-chat{font-family:var(--gl-font-family-regular);z-index:999}.duo-chat .message-enter-active,.duo-chat .message-leave-active{transition:all .5s ease}.duo-chat .message-enter,.duo-chat .message-leave-to{opacity:var(--gl-opacity-0);transform:translateY(10px)}.duo-chat .duo-chat-loader.message-leave,.duo-chat .duo-chat-loader.message-leave-to{transition:none}.duo-chat .duo-agent-mode-switcher>*,.duo-chat .duo-model-switcher>*{width:100%}.duo-chat-drawer{--tw-shadow:var(--gl-shadow-lg);--tw-shadow-colored:var(--gl-shadow-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);font-size:var(--gl-font-size-base);height:100%;overflow-y:auto;position:fixed;right:0;transition-duration:.2s;transition-property:all;transition-timing-function:ease;width:100%}.recents-wrapper .duo-chat-drawer{margin-top:var(--gl-spacing-scale-0)}.duo-chat-drawer{display:flex;flex-direction:column;line-height:1rem}.duo-chat-drawer-footer{padding-bottom:var(--gl-spacing-scale-4);padding-left:var(--gl-spacing-scale-4);padding-right:var(--gl-spacing-scale-4)}.duo-chat-drawer-footer:before{--tw-translate-y:-100%;background:linear-gradient(to bottom,#0000,var(--gl-background-color-default));content:"";height:var(--gl-spacing-scale-4);left:0;pointer-events:none;position:absolute;top:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:100%}.duo-chat-history{scroll-behavior:smooth}.duo-chat-history *{overflow-anchor:none}.duo-chat-history .scroll-anchor{height:1px;margin-top:-1px;overflow-anchor:auto}.history-item{align-items:center;background:var(--gl-button-default-tertiary-background-color-default);border-radius:var(--gl-border-radius-lg);display:flex;gap:var(--gl-spacing-scale-3);margin-left:calc(var(--gl-spacing-scale-3)*-1);margin-right:calc(var(--gl-spacing-scale-3)*-1);padding-right:var(--gl-spacing-scale-2);transition:background-color .2s cubic-bezier(.22,.61,.36,1)}.history-item:focus,.history-item:focus-within,.history-item:hover{background:var(--gl-button-default-tertiary-background-color-hover)}.history-item:focus .history-remove-button,.history-item:focus-within .history-remove-button,.history-item:hover .history-remove-button{opacity:1}.history-item .history-remove-button{opacity:0;transition:opacity .2s cubic-bezier(.22,.61,.36,1)}.history-item .history-item-name{border-radius:var(--gl-border-radius-lg);border-width:0;padding:var(--gl-spacing-scale-3)}.history-item .history-item-name,.history-item .history-item-name:active,.history-item .history-item-name:focus,.history-item .history-item-name:hover{background-color:initial!important}.history-item .gl-button-text{align-items:center;display:flex;flex-direction:row;gap:var(--gl-spacing-scale-3);text-align:left;width:100%}.duo-chat-input{background:var(--gl-control-background-color-default);border-radius:1.25rem;box-shadow:inset 0 0 0 1px var(--gl-control-border-color-default);display:flex;flex-direction:column;max-height:240px;overflow:hidden}.duo-chat-input:focus-within{box-shadow:inset 0 0 0 1px var(--gl-control-border-color-focus),0 0 0 1px var(--gl-focus-ring-inner-color),0 0 0 3px var(--gl-focus-ring-outer-color);outline:none}@media (forced-colors:active){.duo-chat-input:focus-within{outline:2px solid LinkText}}.duo-chat-input .gl-form-textarea.form-control{border-radius:1.25rem;flex:1;max-height:240px;padding-right:40px;resize:none}.duo-chat-input:after{content:attr(data-value) " ";font-family:var(--gl-font-family-regular);padding:var(--gl-spacing-scale-4);padding-right:40px;visibility:hidden;word-break:break-word}.duo-chat .duo-chat-suggestion-button{border-radius:1rem}.slash-commands{margin-top:calc(var(--gl-spacing-scale-2)*-1)}.slash-commands .active-command{background-color:var(--gl-background-color-strong);border-radius:.25rem}.slash-commands .gl-dropdown-item button.dropdown-item{background-color:initial;font-size:var(--gl-font-size-sm);padding-left:var(--gl-spacing-scale-3);padding-right:var(--gl-spacing-scale-3)}.slash-commands .gl-dropdown-item button.dropdown-item:hover{background-color:initial}.duo-chat-markdown{color:#3a383f;font-family:var(--gl-font-family-regular);font-size:var(--gl-font-size-lg);font-weight:var(--gl-font-weight-normal);line-height:var(--gl-line-height-24)}.duo-chat-markdown :first-child{margin-top:var(--gl-spacing-scale-0)}.duo-chat-markdown .gl-h1,.duo-chat-markdown h1{color:var(--gl-heading-1-color);font-size:var(--gl-heading-1-font-size);font-weight:var(--gl-heading-1-font-weight);letter-spacing:var(--gl-heading-1-letter-spacing);line-height:var(--gl-heading-1-line-height);margin-bottom:var(--gl-heading-1-margin-bottom);margin-top:var(--gl-spacing-scale-7)}.duo-chat-markdown .gl-h2,.duo-chat-markdown h2{color:var(--gl-heading-2-color);font-size:var(--gl-heading-2-font-size);font-weight:var(--gl-heading-2-font-weight);letter-spacing:var(--gl-heading-2-letter-spacing);line-height:var(--gl-heading-2-line-height);margin-bottom:var(--gl-heading-2-margin-bottom);margin-top:var(--gl-spacing-scale-6)}.duo-chat-markdown .gl-h3,.duo-chat-markdown h3{color:var(--gl-heading-3-color);font-size:var(--gl-heading-3-font-size);font-weight:var(--gl-heading-3-font-weight);letter-spacing:var(--gl-heading-3-letter-spacing);line-height:var(--gl-heading-3-line-height);margin-bottom:var(--gl-heading-3-margin-bottom);margin-top:var(--gl-spacing-scale-6)}.duo-chat-markdown .gl-h4,.duo-chat-markdown h4{color:var(--gl-heading-4-color);font-size:var(--gl-heading-4-font-size);font-weight:var(--gl-heading-4-font-weight);letter-spacing:var(--gl-heading-4-letter-spacing);line-height:var(--gl-heading-4-line-height);margin-bottom:var(--gl-heading-4-margin-bottom);margin-top:var(--gl-spacing-scale-5)}.duo-chat-markdown .gl-h5,.duo-chat-markdown h5{color:var(--gl-heading-5-color);font-size:var(--gl-heading-5-font-size);font-weight:var(--gl-heading-5-font-weight);letter-spacing:var(--gl-heading-5-letter-spacing);line-height:var(--gl-heading-5-line-height);margin-bottom:var(--gl-heading-5-margin-bottom);margin-top:var(--gl-spacing-scale-5)}.duo-chat-markdown .gl-h6,.duo-chat-markdown h6{color:var(--gl-heading-6-color);font-size:var(--gl-heading-6-font-size);font-weight:var(--gl-heading-6-font-weight);letter-spacing:var(--gl-heading-6-letter-spacing);line-height:var(--gl-heading-6-line-height);margin-bottom:var(--gl-heading-6-margin-bottom);margin-top:var(--gl-spacing-scale-5)}.duo-chat-markdown .gl-paragraph,.duo-chat-markdown p{margin-bottom:var(--gl-spacing-scale-0);margin-top:var(--gl-spacing-scale-0)}.duo-chat-markdown .gl-paragraph+.gl-paragraph,.duo-chat-markdown .gl-paragraph+p,.duo-chat-markdown p+.gl-paragraph,.duo-chat-markdown p+p{margin-top:var(--gl-spacing-scale-5)}.duo-chat-markdown .gl-paragraph.sm,.duo-chat-markdown .sm,.duo-chat-markdown p.sm{font-size:.875rem;line-height:var(--gl-line-height-20)}.duo-chat-markdown .monospace,.duo-chat-markdown code{font-family:var(--gl-font-family-monospace);font-family:var(--default-mono-font,"GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace;font-variant-ligatures:none}.duo-chat-markdown blockquote{box-shadow:inset 4px 0 0 0 #dcdcde;color:var(--gray-700);margin:var(--gl-spacing-scale-3) var(--gl-spacing-scale-0);padding-bottom:var(--gl-spacing-scale-3);padding-left:var(--gl-spacing-scale-6);padding-top:var(--gl-spacing-scale-3)}.duo-chat-markdown .idiff{border-radius:.25rem;display:inline-flex;padding-left:var(--gl-spacing-scale-2);padding-right:var(--gl-spacing-scale-2)}.duo-chat-markdown .deletion{background-color:var(--red-100)}.duo-chat-markdown .addition{background-color:var(--green-100)}.duo-chat-markdown code{background-color:var(--gray-50);border-radius:.25rem;color:var(--gray-950);padding:var(--gl-spacing-scale-1) var(--gl-spacing-scale-2)}.duo-chat-markdown pre{border-radius:.25rem;box-shadow:inset 0 0 0 1px #dcdcde;margin-bottom:var(--gl-spacing-scale-7);margin-top:var(--gl-spacing-scale-7);overflow:auto;padding:var(--gl-spacing-scale-3) var(--gl-spacing-scale-4)}.duo-chat-markdown pre code{background-color:var(--white);border-radius:var(--gl-border-radius-none);color:var(--gray-900);padding:var(--gl-spacing-scale-0)}.duo-chat-markdown .audio-container{display:inline-flex;flex-direction:column;width:100%}.duo-chat-markdown .audio-container audio{width:100%}.duo-chat-markdown .audio-container a{margin-top:var(--gl-spacing-scale-3)}.duo-chat-markdown .audio-container a:before{-webkit-font-smoothing:antialiased;content:"📎";margin-right:var(--gl-spacing-scale-2);text-rendering:auto}.duo-chat-markdown table{margin-bottom:var(--gl-spacing-scale-7);margin-top:var(--gl-spacing-scale-7)}.duo-chat-markdown table td,.duo-chat-markdown table th{box-shadow:inset 0 -1px 0 0 #dcdcde;padding:var(--gl-spacing-scale-4) var(--gl-spacing-scale-3);vertical-align:top}.duo-chat-markdown table th{box-shadow:inset 0 1px 0 0 #dcdcde,inset 0 -1px 0 0 #dcdcde;font-weight:var(--gl-font-weight-bold)}.duo-chat-markdown table thead{background-color:var(--gray-50)}.duo-chat-markdown table tr:nth-child(2n){background-color:var(--gray-10)}.duo-chat-compact-markdown{font-size:var(--gl-font-size-base)}.recents-wrapper .duo-chat-compact-markdown{margin-top:var(--gl-spacing-scale-0)}.duo-chat-compact-markdown{line-height:var(--gl-line-height-20)}.duo-chat-compact-markdown .gl-h1,.duo-chat-compact-markdown h1{color:var(--gl-heading-1-fixed-color);font-size:var(--gl-heading-1-fixed-font-size);font-weight:var(--gl-heading-1-fixed-font-weight);letter-spacing:var(--gl-heading-1-fixed-letter-spacing);line-height:var(--gl-heading-1-fixed-line-height);margin-bottom:var(--gl-heading-1-fixed-margin-bottom);margin-top:var(--gl-spacing-scale-7)}.duo-chat-compact-markdown .gl-h2,.duo-chat-compact-markdown h2{color:var(--gl-heading-2-fixed-color);font-size:var(--gl-heading-2-fixed-font-size);font-weight:var(--gl-heading-2-fixed-font-weight);letter-spacing:var(--gl-heading-2-fixed-letter-spacing);line-height:var(--gl-heading-2-fixed-line-height);margin-bottom:var(--gl-heading-2-fixed-margin-bottom);margin-top:var(--gl-spacing-scale-6)}.duo-chat-compact-markdown .gl-h3,.duo-chat-compact-markdown h3{color:var(--gl-heading-3-fixed-color);font-size:var(--gl-heading-3-fixed-font-size);font-weight:var(--gl-heading-3-fixed-font-weight);letter-spacing:var(--gl-heading-3-fixed-letter-spacing);line-height:var(--gl-heading-3-fixed-line-height);margin-bottom:var(--gl-heading-3-fixed-margin-bottom);margin-top:var(--gl-spacing-scale-6)}.duo-chat-compact-markdown .gl-h4,.duo-chat-compact-markdown h4{color:var(--gl-heading-4-fixed-color);font-size:var(--gl-heading-4-fixed-font-size);font-weight:var(--gl-heading-4-fixed-font-weight);letter-spacing:var(--gl-heading-4-fixed-letter-spacing);line-height:var(--gl-heading-4-fixed-line-height);margin-bottom:var(--gl-heading-4-fixed-margin-bottom);margin-top:var(--gl-spacing-scale-5)}.duo-chat-compact-markdown .gl-h5,.duo-chat-compact-markdown h5{color:var(--gl-heading-5-fixed-color);font-size:var(--gl-heading-5-fixed-font-size);font-weight:var(--gl-heading-5-fixed-font-weight);letter-spacing:var(--gl-heading-5-fixed-letter-spacing);line-height:var(--gl-heading-5-fixed-line-height);margin-bottom:var(--gl-heading-5-fixed-margin-bottom);margin-top:var(--gl-spacing-scale-5)}.duo-chat-compact-markdown .gl-h6,.duo-chat-compact-markdown h6{color:var(--gl-heading-6-fixed-color);font-size:var(--gl-heading-6-fixed-font-size);font-weight:var(--gl-heading-6-fixed-font-weight);letter-spacing:var(--gl-heading-6-fixed-letter-spacing);line-height:var(--gl-heading-6-fixed-line-height);margin-bottom:var(--gl-heading-6-fixed-margin-bottom);margin-top:var(--gl-spacing-scale-5)}.duo-chat-compact-markdown .sm{font-size:var(--gl-font-size-sm)}.duo-chat-compact-markdown .monospace,.duo-chat-compact-markdown code{font-family:var(--gl-font-family-monospace);font-family:var(--default-mono-font,"GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace;font-variant-ligatures:none}.duo-chat-compact-markdown table td,.duo-chat-compact-markdown table th{padding-bottom:var(--gl-spacing-scale-3);padding-top:var(--gl-spacing-scale-3)}.message-tool-approval-collapsed{border-bottom:0}.message-tool-approval-collapsed-header{border-bottom-left-radius:calc(var(--gl-card-border-radius) - 1px);border-bottom-right-radius:calc(var(--gl-card-border-radius) - 1px)}.web-only .duo-chat-input{overflow:visible;position:relative}.web-only .duo-chat-input:after{padding:var(--gl-spacing-scale-2)}.web-only .duo-chat-message pre code{background-color:initial!important;color:inherit!important}.duo-chat-loader{display:flex}.duo-chat-loader .transition{transition:width .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .transition{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-enter{opacity:var(--gl-opacity-0)}.duo-chat-loader .text-enter-active{transition:opacity .4s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .text-enter-active{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-enter-to,.duo-chat-loader .text-leave{opacity:var(--gl-opacity-10)}.duo-chat-loader .text-leave-active{transition:opacity .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .text-leave-active{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-leave-to{opacity:var(--gl-opacity-0)}.duo-chat-message{--gl-text-color-heading:var(--duo-chat-message-heading-color,inherit)!important;border-radius:1rem 1rem 0;color:var(--duo-chat-message-color,inherit)!important;position:relative}.duo-chat-message code{background-color:var(--gl-status-neutral-background-color)}.duo-chat-message pre{background-color:var(--gl-background-color-preformat,var(--gl-background-color-default));border-color:var(--gl-border-color-default);border-style:solid;border-width:1px;box-shadow:none!important;color:inherit;max-height:60vh;padding:var(--gl-spacing-scale-3) var(--gl-spacing-scale-4);scroll-behavior:smooth}.duo-chat-message pre:after,.duo-chat-message pre:before{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;content:"";height:var(--gl-spacing-scale-7);left:1px;pointer-events:none;position:absolute;width:calc(100% - 2px)}.duo-chat-message pre.scrim-top:before{--tw-rotate:-180deg;background:linear-gradient(to bottom,#0000,var(--gl-background-color-default));top:1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.duo-chat-message pre.scrim-bottom:after{background:linear-gradient(to bottom,#0000,var(--gl-background-color-default));bottom:1px}.duo-chat-message pre code{background-color:initial;display:block;font-size:var(--gl-font-size-sm);white-space:pre-wrap;word-break:break-all}.duo-chat-message p:not(:last-of-type){margin-bottom:var(--gl-spacing-scale-4)}.duo-chat-message p:last-of-type{margin-bottom:var(--gl-spacing-scale-0)}.duo-chat-message copy-code,.duo-chat-message insert-code-snippet{opacity:var(--gl-opacity-0);position:absolute;right:.5rem;top:.5rem;transition-duration:.2s;transition-property:all;transition-timing-function:ease}.duo-chat-message copy-code [role=tooltip],.duo-chat-message insert-code-snippet [role=tooltip]{background-color:var(--gray-100);border-radius:.25rem;display:none;left:0;position:absolute;top:0;width:max-content}.duo-chat-message copy-code [role=tooltip] .arrow,.duo-chat-message insert-code-snippet [role=tooltip] .arrow{background:inherit;height:var(--gl-spacing-scale-3);position:absolute;transform:rotate(45deg);width:var(--gl-spacing-scale-3)}.duo-chat-message copy-code{margin-right:2.5rem}.insert-code-hidden insert-code-snippet{display:none}.insert-code-hidden copy-code{margin-right:0}.duo-chat-message-complete .duo-message-pre-block:focus .copy-to-clipboard-button-container,.duo-chat-message-complete .duo-message-pre-block:focus copy-code,.duo-chat-message-complete .duo-message-pre-block:focus insert-code-snippet,.duo-chat-message-complete .duo-message-pre-block:has(button:focus) .copy-to-clipboard-button-container,.duo-chat-message-complete .duo-message-pre-block:has(button:focus) copy-code,.duo-chat-message-complete .duo-message-pre-block:has(button:focus) insert-code-snippet,.duo-chat-message-complete .duo-message-pre-block:hover .copy-to-clipboard-button-container,.duo-chat-message-complete .duo-message-pre-block:hover copy-code,.duo-chat-message-complete .duo-message-pre-block:hover insert-code-snippet{opacity:1}.duo-chat-message-error>p{margin:0}.agentic-feedback-hover-wrapper{transition:width .3s ease-in-out,opacity .3s ease-in-out,margin .3s ease-in-out}.gl-group:hover .agentic-feedback-hover-wrapper{margin-right:0;opacity:1;width:auto}.recents-wrapper .gl-accordion-item-header .gl-button.gl-button.btn-link{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border-radius:var(--gl-border-radius-none);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:block;font-size:var(--gl-font-size-sm);font-weight:var(--gl-font-weight-bold);padding-bottom:var(--gl-spacing-scale-2);padding-left:var(--gl-spacing-scale-3);padding-top:var(--gl-spacing-scale-2);text-decoration-line:none;text-transform:uppercase;width:100%}.recents-wrapper .gl-accordion-item-header>.collapse{margin-left:var(--gl-spacing-scale-0)}.recents-wrapper .gl-text-base{margin-top:var(--gl-spacing-scale-0)}.agentic-binary-feedback .feedback-colored-icon{animation:feedback-fade-out .3s ease-in-out forwards;animation-delay:.3s;margin-left:4px;will-change:opacity}.agentic-binary-feedback .feedback-thanks{animation:feedback-fade-in .3s ease-in-out forwards;animation-delay:.3s;pointer-events:none;will-change:opacity,width,margin}@keyframes feedback-fade-out{to{opacity:0;overflow:hidden;pointer-events:none;width:0}}@media (prefers-reduced-motion:reduce){.feedback-colored-icon,.feedback-thanks{animation:none}}@keyframes feedback-fade-in{to{margin-left:-6px;opacity:1;pointer-events:auto;width:auto}}
|
|
2
2
|
/*# sourceMappingURL=components.css.map */
|