@gitlab/duo-ui 15.18.0 → 15.19.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_tool_approval_flow/agentic_tool_approval_flow.js +4 -0
- package/dist/components/agentic_chat/components/agentic_tool_approval_flow/agentic_tool_approval_modal/agentic_tool_approval_modal.js +25 -4
- package/dist/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.js +35 -5
- package/dist/components/chat/components/duo_chat_threads/duo_chat_thread_title.js +68 -0
- package/dist/components/chat/components/duo_chat_threads/duo_chat_threads.js +18 -13
- package/dist/components/chat/constants.js +3 -1
- package/dist/components/chat/mock_data.js +11 -1
- package/dist/tailwind.css +1 -1
- package/dist/tailwind.css.map +1 -1
- package/dist/utils/date.js +13 -1
- package/package.json +2 -2
- package/src/components/agentic_chat/components/agentic_tool_approval_flow/agentic_tool_approval_flow.vue +4 -0
- package/src/components/agentic_chat/components/agentic_tool_approval_flow/agentic_tool_approval_modal/agentic_tool_approval_modal.vue +47 -22
- package/src/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.vue +61 -27
- package/src/components/chat/components/duo_chat_threads/duo_chat_thread_title.vue +48 -0
- package/src/components/chat/components/duo_chat_threads/duo_chat_threads.vue +33 -22
- package/src/components/chat/constants.js +3 -0
- package/src/components/chat/mock_data.js +12 -0
- package/src/utils/date.js +14 -0
- package/translations.js +1 -0
|
@@ -58,6 +58,7 @@ var script = {
|
|
|
58
58
|
* @property {string} text - Display text for button/dropdown
|
|
59
59
|
* @property {boolean} primary - Mark as primary action (exactly one required)
|
|
60
60
|
* @property {boolean} disabled - Disable this option (passed through to GitLab UI)
|
|
61
|
+
* @property {string} [secondaryText] - Secondary text shown below the option (e.g., reason for disabled state)
|
|
61
62
|
*/
|
|
62
63
|
approvalOptions: {
|
|
63
64
|
type: Array,
|
|
@@ -88,6 +89,9 @@ var script = {
|
|
|
88
89
|
if (option.primary === true && option.disabled === true) {
|
|
89
90
|
return false;
|
|
90
91
|
}
|
|
92
|
+
if ('secondaryText' in option && typeof option.secondaryText !== 'string') {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
91
95
|
return true;
|
|
92
96
|
});
|
|
93
97
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GlModal, GlButton,
|
|
1
|
+
import { GlModal, GlButton, GlButtonGroup, GlDisclosureDropdown } from '@gitlab/ui';
|
|
2
2
|
import { translate } from '../../../../../utils/i18n';
|
|
3
3
|
import { acceptedApproveToolPayloads } from '../../../../chat/constants';
|
|
4
4
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
@@ -18,8 +18,8 @@ var script = {
|
|
|
18
18
|
components: {
|
|
19
19
|
GlModal,
|
|
20
20
|
GlButton,
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
GlButtonGroup,
|
|
22
|
+
GlDisclosureDropdown
|
|
23
23
|
},
|
|
24
24
|
props: {
|
|
25
25
|
/**
|
|
@@ -79,6 +79,25 @@ var script = {
|
|
|
79
79
|
showSplitButton() {
|
|
80
80
|
return this.safeApprovalOptions.length > 1;
|
|
81
81
|
},
|
|
82
|
+
approvalDropdownItems() {
|
|
83
|
+
return this.additionalApprovalOptions.map(option => ({
|
|
84
|
+
text: option.text,
|
|
85
|
+
...(option.secondaryText ? {
|
|
86
|
+
secondaryText: option.secondaryText
|
|
87
|
+
} : {}),
|
|
88
|
+
extraAttrs: {
|
|
89
|
+
...(option.disabled ? {
|
|
90
|
+
disabled: true
|
|
91
|
+
} : {}),
|
|
92
|
+
'data-testid': 'approve-dropdown-item'
|
|
93
|
+
},
|
|
94
|
+
action: () => {
|
|
95
|
+
var _this$$refs$approvalD;
|
|
96
|
+
(_this$$refs$approvalD = this.$refs.approvalDropdown) === null || _this$$refs$approvalD === void 0 ? void 0 : _this$$refs$approvalD.close();
|
|
97
|
+
this.handleDropdownSelection(option);
|
|
98
|
+
}
|
|
99
|
+
}));
|
|
100
|
+
},
|
|
82
101
|
denyAction() {
|
|
83
102
|
return {
|
|
84
103
|
text: this.$options.i18n.DENY_TEXT,
|
|
@@ -152,7 +171,9 @@ var script = {
|
|
|
152
171
|
const __vue_script__ = script;
|
|
153
172
|
|
|
154
173
|
/* template */
|
|
155
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-modal',{attrs:{"visible":_vm.visible,"modal-id":"agentic-tool-approval-modal","title":_vm.$options.i18n.TITLE,"action-primary":null,"action-cancel":null,"no-close-on-backdrop":true,"no-close-on-esc":true,"data-testid":"agentic-tool-approval-modal"},on:{"hide":_vm.handleModalHide},scopedSlots:_vm._u([{key:"modal-footer",fn:function(){return [_c('div',{staticClass:"gl-flex gl-justify-end gl-gap-3"},[_c('gl-button',_vm._b({on:{"click":_vm.handleDeny}},'gl-button',_vm.denyAction.attributes,false),[_vm._v("\n "+_vm._s(_vm.denyAction.text)+"\n ")]),_vm._v(" "),(_vm.showSplitButton)?_c('gl-
|
|
174
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-modal',{attrs:{"visible":_vm.visible,"modal-id":"agentic-tool-approval-modal","title":_vm.$options.i18n.TITLE,"action-primary":null,"action-cancel":null,"no-close-on-backdrop":true,"no-close-on-esc":true,"data-testid":"agentic-tool-approval-modal"},on:{"hide":_vm.handleModalHide},scopedSlots:_vm._u([{key:"modal-footer",fn:function(){return [_c('div',{staticClass:"gl-flex gl-justify-end gl-gap-3"},[_c('gl-button',_vm._b({on:{"click":_vm.handleDeny}},'gl-button',_vm.denyAction.attributes,false),[_vm._v("\n "+_vm._s(_vm.denyAction.text)+"\n ")]),_vm._v(" "),(_vm.showSplitButton)?_c('gl-button-group',{attrs:{"data-testid":"approve-dropdown"}},[_c('gl-button',{attrs:{"variant":"confirm","size":"small","disabled":_vm.primaryApprovalOption.disabled,"data-testid":"approve-dropdown-primary"},on:{"click":_vm.handlePrimaryApprove}},[_vm._v("\n "+_vm._s(_vm.primaryApprovalOption.text)+"\n ")]),_vm._v(" "),_c('gl-disclosure-dropdown',{ref:"approvalDropdown",attrs:{"variant":"confirm","category":"primary","size":"small","no-caret":"","icon":"chevron-down","toggle-text":"More approval options","text-sr-only":"","placement":"bottom-end","disabled":_vm.primaryApprovalOption.disabled,"items":_vm.approvalDropdownItems},scopedSlots:_vm._u([{key:"list-item",fn:function(ref){
|
|
175
|
+
var item = ref.item;
|
|
176
|
+
return [_c('span',[_vm._v(_vm._s(item.text))]),_vm._v(" "),(item.secondaryText)?_c('span',{staticClass:"gl-block gl-text-sm gl-text-subtle"},[_vm._v("\n "+_vm._s(item.secondaryText)+"\n ")]):_vm._e()]}}],null,false,1049862671)})],1):_c('gl-button',{attrs:{"variant":"confirm","size":"small","disabled":_vm.primaryApprovalOption.disabled,"data-testid":"approve-button"},on:{"click":_vm.handlePrimaryApprove}},[_vm._v("\n "+_vm._s(_vm.primaryApprovalOption.text)+"\n ")])],1)]},proxy:true}])},[_c('div',{staticClass:"gl-mb-4"},[_c('p',{staticClass:"gl-mb-3",attrs:{"data-testid":"approval-description"}},[_vm._v("\n "+_vm._s(_vm.description)+"\n ")]),_vm._v(" "),(_vm.toolDetails)?_c('div',{staticClass:"gl-mb-3 gl-rounded-base gl-bg-gray-10 gl-p-3",attrs:{"data-testid":"tool-details"}},[_c('strong',[_vm._v(_vm._s(_vm.$options.i18n.TOOL_LABEL)+" "+_vm._s(_vm.toolName))]),_vm._v(" "),(_vm.toolDetails.parameters)?_c('pre',{staticClass:"gl-mb-0 gl-mt-2 gl-text-inherit",attrs:{"data-testid":"tool-parameters"}},[_vm._v(_vm._s(JSON.stringify(_vm.toolDetails.parameters, null, 2)))]):_vm._e()]):_vm._e()])])};
|
|
156
177
|
var __vue_staticRenderFns__ = [];
|
|
157
178
|
|
|
158
179
|
/* style */
|
package/dist/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GlButton, GlCard, GlFormTextarea, GlFormGroup, GlBadge,
|
|
1
|
+
import { GlButton, GlButtonGroup, GlCard, GlFormTextarea, GlFormGroup, GlBadge, GlDisclosureDropdown } from '@gitlab/ui';
|
|
2
2
|
import { capitalize, startCase } from 'lodash-es';
|
|
3
3
|
import { translate } from '../../../../utils/i18n';
|
|
4
4
|
import { convertKeysToCamelCase } from '../../../../utils/object';
|
|
@@ -48,12 +48,12 @@ var script = {
|
|
|
48
48
|
name: 'MessageToolApproval',
|
|
49
49
|
components: {
|
|
50
50
|
GlButton,
|
|
51
|
+
GlButtonGroup,
|
|
51
52
|
GlCard,
|
|
52
53
|
GlFormTextarea,
|
|
53
54
|
GlFormGroup,
|
|
54
55
|
GlBadge,
|
|
55
|
-
|
|
56
|
-
GlDropdownItem,
|
|
56
|
+
GlDisclosureDropdown,
|
|
57
57
|
CreateCommitToolParams,
|
|
58
58
|
DefaultToolParams,
|
|
59
59
|
RunCommandToolParams
|
|
@@ -84,6 +84,7 @@ var script = {
|
|
|
84
84
|
* @property {string} text - The display text for the option
|
|
85
85
|
* @property {boolean} primary - Whether this is the primary option (appears as main button)
|
|
86
86
|
* @property {boolean} disabled - Whether this option is disabled
|
|
87
|
+
* @property {string} [secondaryText] - Secondary text shown below the option (e.g., reason for disabled state)
|
|
87
88
|
*/
|
|
88
89
|
approvalOptions: {
|
|
89
90
|
type: Array,
|
|
@@ -96,7 +97,15 @@ var script = {
|
|
|
96
97
|
validator(value) {
|
|
97
98
|
if (!Array.isArray(value)) return false;
|
|
98
99
|
// Must have at least one approve-tool-once option
|
|
99
|
-
|
|
100
|
+
if (!value.some(option => option.type === acceptedApproveToolPayloads.APPROVE_TOOL_ONCE)) {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
return value.every(option => {
|
|
104
|
+
if ('secondaryText' in option && typeof option.secondaryText !== 'string') {
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
return true;
|
|
108
|
+
});
|
|
100
109
|
}
|
|
101
110
|
}
|
|
102
111
|
},
|
|
@@ -202,6 +211,25 @@ var script = {
|
|
|
202
211
|
},
|
|
203
212
|
showSplitButton() {
|
|
204
213
|
return this.safeApprovalOptions.length > 1;
|
|
214
|
+
},
|
|
215
|
+
approvalDropdownItems() {
|
|
216
|
+
return this.additionalApprovalOptions.map(option => ({
|
|
217
|
+
text: option.text,
|
|
218
|
+
...(option.secondaryText ? {
|
|
219
|
+
secondaryText: option.secondaryText
|
|
220
|
+
} : {}),
|
|
221
|
+
extraAttrs: {
|
|
222
|
+
...(option.disabled ? {
|
|
223
|
+
disabled: true
|
|
224
|
+
} : {}),
|
|
225
|
+
'data-testid': 'approve-dropdown-item'
|
|
226
|
+
},
|
|
227
|
+
action: () => {
|
|
228
|
+
var _this$$refs$approvalD;
|
|
229
|
+
(_this$$refs$approvalD = this.$refs.approvalDropdown) === null || _this$$refs$approvalD === void 0 ? void 0 : _this$$refs$approvalD.close();
|
|
230
|
+
this.handleDropdownSelection(option);
|
|
231
|
+
}
|
|
232
|
+
}));
|
|
205
233
|
}
|
|
206
234
|
},
|
|
207
235
|
watch: {
|
|
@@ -265,7 +293,9 @@ var script = {
|
|
|
265
293
|
const __vue_script__ = script;
|
|
266
294
|
|
|
267
295
|
/* template */
|
|
268
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-card',{staticClass:"gl-w-full",class:{ 'message-tool-approval-collapsed': _vm.collapsed },attrs:{"header-class":{ 'message-tool-approval-collapsed-header': _vm.collapsed },"body-class":{ 'gl-hidden': _vm.collapsed }},scopedSlots:_vm._u([{key:"header",fn:function(){return [_c('div',{staticClass:"gl-flex gl-items-center gl-justify-between gl-gap-3"},[_c('span',{staticClass:"gl-inline-flex gl-items-center gl-gap-2"},[(_vm.collapsible)?_c('gl-button',_vm._b({attrs:{"variant":"default","category":"tertiary","size":"small","data-testid":"toggle-details-button"},on:{"click":function($event){_vm.collapsed = !_vm.collapsed;}}},'gl-button',_vm.collapseButtonProps,false)):_vm._e(),_vm._v(" "),_c('span',[_vm._v("\n "+_vm._s(_vm.toolApprovalTitle)+"\n ")])],1),_vm._v(" "),_c('gl-badge',{attrs:{"variant":_vm.toolStatusVariant}},[_vm._v("\n "+_vm._s(_vm.toolStatusLabel)+"\n ")])],1)]},proxy:true},(!_vm.isApproved)?{key:"footer",fn:function(){return [(!_vm.showDenialReason)?_c('div',{staticClass:"gl-flex gl-gap-2"},[(_vm.showSplitButton)?_c('gl-
|
|
296
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-card',{staticClass:"gl-w-full",class:{ 'message-tool-approval-collapsed': _vm.collapsed },attrs:{"header-class":{ 'message-tool-approval-collapsed-header': _vm.collapsed },"body-class":{ 'gl-hidden': _vm.collapsed }},scopedSlots:_vm._u([{key:"header",fn:function(){return [_c('div',{staticClass:"gl-flex gl-items-center gl-justify-between gl-gap-3"},[_c('span',{staticClass:"gl-inline-flex gl-items-center gl-gap-2"},[(_vm.collapsible)?_c('gl-button',_vm._b({attrs:{"variant":"default","category":"tertiary","size":"small","data-testid":"toggle-details-button"},on:{"click":function($event){_vm.collapsed = !_vm.collapsed;}}},'gl-button',_vm.collapseButtonProps,false)):_vm._e(),_vm._v(" "),_c('span',[_vm._v("\n "+_vm._s(_vm.toolApprovalTitle)+"\n ")])],1),_vm._v(" "),_c('gl-badge',{attrs:{"variant":_vm.toolStatusVariant}},[_vm._v("\n "+_vm._s(_vm.toolStatusLabel)+"\n ")])],1)]},proxy:true},(!_vm.isApproved)?{key:"footer",fn:function(){return [(!_vm.showDenialReason)?_c('div',{staticClass:"gl-flex gl-gap-2"},[(_vm.showSplitButton)?_c('gl-button-group',{attrs:{"data-testid":"approve-dropdown"}},[_c('gl-button',{attrs:{"variant":"confirm","size":"small","disabled":_vm.buttonsDisabled || _vm.primaryApprovalOption.disabled,"loading":_vm.isApproving,"data-testid":"approve-dropdown-primary"},on:{"click":_vm.handlePrimaryApprove}},[_vm._v("\n "+_vm._s(_vm.primaryApprovalOption.text)+"\n ")]),_vm._v(" "),_c('gl-disclosure-dropdown',{ref:"approvalDropdown",attrs:{"variant":"confirm","category":"primary","size":"small","no-caret":"","icon":"chevron-down","toggle-text":"More approval options","text-sr-only":"","placement":"bottom-end","disabled":_vm.buttonsDisabled || _vm.primaryApprovalOption.disabled,"items":_vm.approvalDropdownItems},scopedSlots:_vm._u([{key:"list-item",fn:function(ref){
|
|
297
|
+
var item = ref.item;
|
|
298
|
+
return [_c('span',[_vm._v(_vm._s(item.text))]),_vm._v(" "),(item.secondaryText)?_c('span',{staticClass:"gl-block gl-text-sm gl-text-subtle"},[_vm._v("\n "+_vm._s(item.secondaryText)+"\n ")]):_vm._e()]}}],null,false,1049862671)})],1):_c('gl-button',{attrs:{"variant":"confirm","size":"small","data-testid":"approve-tool-inline","disabled":_vm.buttonsDisabled || _vm.primaryApprovalOption.disabled,"loading":_vm.isApproving},on:{"click":_vm.handlePrimaryApprove}},[_vm._v("\n "+_vm._s(_vm.primaryApprovalOption.text)+"\n ")]),_vm._v(" "),_c('gl-button',{attrs:{"size":"small","data-testid":"deny-tool-inline","disabled":_vm.buttonsDisabled,"loading":_vm.isDenying},on:{"click":_vm.handleDeny}},[_vm._v("\n "+_vm._s(_vm.denyButtonText)+"\n ")])],1):_c('div',[_c('gl-form-group',{staticClass:"gl-mb-3",attrs:{"label":_vm.$options.i18n.DENIAL_REASON_LABEL,"label-for":"inline-rejection-reason","optional":true}},[_c('gl-form-textarea',{attrs:{"id":"inline-rejection-reason","placeholder":_vm.$options.i18n.DENIAL_REASON_PLACEHOLDER,"rows":2,"no-resize":true,"submit-on-enter":false,"disabled":_vm.buttonsDisabled,"data-testid":"denial-reason-textarea","autofocus":""},on:{"submit":_vm.submitDenial},model:{value:(_vm.denialReason),callback:function ($$v) {_vm.denialReason=$$v;},expression:"denialReason"}})],1),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-gap-3"},[_c('gl-button',{attrs:{"size":"small","data-testid":"submit-denial","variant":"confirm","disabled":_vm.buttonsDisabled,"loading":_vm.isDenying},on:{"click":_vm.submitDenial}},[_vm._v("\n "+_vm._s(_vm.denyButtonText)+"\n ")]),_vm._v(" "),_c('gl-button',{attrs:{"size":"small","data-testid":"cancel-denial","disabled":_vm.buttonsDisabled},on:{"click":_vm.cancelDenial}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.CANCEL_TEXT)+"\n ")])],1)],1)]},proxy:true}:null],null,true)},[_vm._v(" "),_vm._l((_vm.messages),function(toolMsg,index){return _c('div',{key:toolMsg.id || index},[_c(_vm.getToolParamsComponent(toolMsg.tool_info && toolMsg.tool_info.name),_vm._b({tag:"component",class:['gl-leading-20', { 'gl-border-t gl-mt-3 gl-border-gray-100 gl-pt-3': index > 0 }],attrs:{"tool-name":toolMsg.tool_info && toolMsg.tool_info.name,"tool-params":_vm.convertKeysToCamelCase((toolMsg.tool_info && toolMsg.tool_info.args) || {}),"tool-response":toolMsg.tool_info && toolMsg.tool_info.tool_response,"working-directory":_vm.workingDirectory}},'component',_vm.convertKeysToCamelCase((toolMsg.tool_info && toolMsg.tool_info.args) || {}),false))],1)})],2)};
|
|
269
299
|
var __vue_staticRenderFns__ = [];
|
|
270
300
|
|
|
271
301
|
/* style */
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { GlIcon } from '@gitlab/ui';
|
|
2
|
+
import { translate } from '../../../../utils/i18n';
|
|
3
|
+
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
4
|
+
|
|
5
|
+
const i18n = {
|
|
6
|
+
EXPIRED_CHAT_LABEL: translate('DuoChat.expiredChatLabel', 'Expired chat')
|
|
7
|
+
};
|
|
8
|
+
var script = {
|
|
9
|
+
name: 'DuoChatThreadTitle',
|
|
10
|
+
components: {
|
|
11
|
+
GlIcon
|
|
12
|
+
},
|
|
13
|
+
props: {
|
|
14
|
+
text: {
|
|
15
|
+
type: String,
|
|
16
|
+
required: true
|
|
17
|
+
},
|
|
18
|
+
expired: {
|
|
19
|
+
type: Boolean,
|
|
20
|
+
required: false,
|
|
21
|
+
default: false
|
|
22
|
+
},
|
|
23
|
+
showExpiredIcon: {
|
|
24
|
+
type: Boolean,
|
|
25
|
+
required: false,
|
|
26
|
+
default: false
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
i18n
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
/* script */
|
|
33
|
+
const __vue_script__ = script;
|
|
34
|
+
|
|
35
|
+
/* template */
|
|
36
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:"gl-line-clamp-1",class:_vm.expired ? 'gl-text-subtle' : 'gl-text-default'},[(_vm.expired && _vm.showExpiredIcon)?_c('gl-icon',{attrs:{"name":"archive","size":12,"aria-label":_vm.$options.i18n.EXPIRED_CHAT_LABEL,"data-testid":"expired-thread-icon"}}):_vm._e(),_vm._v("\n "+_vm._s(_vm.text)+"\n")],1)};
|
|
37
|
+
var __vue_staticRenderFns__ = [];
|
|
38
|
+
|
|
39
|
+
/* style */
|
|
40
|
+
const __vue_inject_styles__ = undefined;
|
|
41
|
+
/* scoped */
|
|
42
|
+
const __vue_scope_id__ = undefined;
|
|
43
|
+
/* module identifier */
|
|
44
|
+
const __vue_module_identifier__ = undefined;
|
|
45
|
+
/* functional template */
|
|
46
|
+
const __vue_is_functional_template__ = false;
|
|
47
|
+
/* style inject */
|
|
48
|
+
|
|
49
|
+
/* style inject SSR */
|
|
50
|
+
|
|
51
|
+
/* style inject shadow dom */
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
const __vue_component__ = __vue_normalize__(
|
|
56
|
+
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
|
|
57
|
+
__vue_inject_styles__,
|
|
58
|
+
__vue_script__,
|
|
59
|
+
__vue_scope_id__,
|
|
60
|
+
__vue_is_functional_template__,
|
|
61
|
+
__vue_module_identifier__,
|
|
62
|
+
false,
|
|
63
|
+
undefined,
|
|
64
|
+
undefined,
|
|
65
|
+
undefined
|
|
66
|
+
);
|
|
67
|
+
|
|
68
|
+
export default __vue_component__;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { GlButton, GlAvatar, GlSearchBoxByType } from '@gitlab/ui';
|
|
2
2
|
import { debounce } from 'lodash-es';
|
|
3
3
|
import { translate, sprintf } from '../../../../utils/i18n';
|
|
4
|
-
import { formatLocalizedDate } from '../../../../utils/date';
|
|
5
|
-
import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '../../constants';
|
|
4
|
+
import { compareDates, getDateKey, formatLocalizedDate, isOlderThanDays } from '../../../../utils/date';
|
|
5
|
+
import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS, EXPIRY_DAYS } from '../../constants';
|
|
6
6
|
import DuoChatThreadsEmpty from './duo_chat_threads_empty';
|
|
7
7
|
import DuoChatThreadsSkeleton from './duo_chat_threads_skeleton_loader';
|
|
8
|
+
import DuoChatThreadTitle from './duo_chat_thread_title';
|
|
8
9
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
9
10
|
|
|
10
11
|
const i18n = {
|
|
@@ -23,7 +24,8 @@ var script = {
|
|
|
23
24
|
GlAvatar,
|
|
24
25
|
GlSearchBoxByType,
|
|
25
26
|
DuoChatThreadsEmpty,
|
|
26
|
-
DuoChatThreadsSkeleton
|
|
27
|
+
DuoChatThreadsSkeleton,
|
|
28
|
+
DuoChatThreadTitle
|
|
27
29
|
},
|
|
28
30
|
props: {
|
|
29
31
|
threads: {
|
|
@@ -65,9 +67,12 @@ var script = {
|
|
|
65
67
|
if (!this.hasFilteredThreads) {
|
|
66
68
|
return {};
|
|
67
69
|
}
|
|
68
|
-
return this.filteredThreads.
|
|
70
|
+
return this.filteredThreads.map(thread => ({
|
|
71
|
+
...thread,
|
|
72
|
+
expired: this.isExpired(thread)
|
|
73
|
+
})).sort((a, b) => compareDates(b.updatedAt, a.updatedAt)).sort((a, b) => compareDates(b.lastUpdatedAt, a.lastUpdatedAt)).reduce((grouped, thread) => {
|
|
69
74
|
const dateField = thread.updatedAt || thread.lastUpdatedAt;
|
|
70
|
-
const dateKey =
|
|
75
|
+
const dateKey = getDateKey(dateField);
|
|
71
76
|
return {
|
|
72
77
|
...grouped,
|
|
73
78
|
[dateKey]: [...(grouped[dateKey] || []), thread]
|
|
@@ -111,12 +116,12 @@ var script = {
|
|
|
111
116
|
onClose() {
|
|
112
117
|
this.$emit('close');
|
|
113
118
|
},
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
return
|
|
119
|
+
isExpired(_ref) {
|
|
120
|
+
let {
|
|
121
|
+
lastUpdatedAt,
|
|
122
|
+
updatedAt
|
|
123
|
+
} = _ref;
|
|
124
|
+
return isOlderThanDays(lastUpdatedAt || updatedAt, EXPIRY_DAYS);
|
|
120
125
|
},
|
|
121
126
|
sprintf
|
|
122
127
|
},
|
|
@@ -127,9 +132,9 @@ var script = {
|
|
|
127
132
|
const __vue_script__ = script;
|
|
128
133
|
|
|
129
134
|
/* template */
|
|
130
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-flex gl-flex-col gl-overflow-hidden"},[(_vm.loading)?_c('duo-chat-threads-skeleton'):(_vm.hasThreads)?[_c('div',{staticClass:"gl-px-4 gl-pt-4"},[_c('span',{staticClass:"gl-sr-only"},[_vm._v(_vm._s(_vm.$options.i18n.CHAT_HISTORY_SEARCH))]),_vm._v(" "),_c('gl-search-box-by-type',{attrs:{"data-testid":"chat-threads-search-input","placeholder":_vm.$options.i18n.SEARCH_PLACEHOLDER},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v;},expression:"searchQuery"}})],1),_vm._v(" "),_c('div',{staticClass:"gl-grow gl-overflow-y-scroll gl-px-4 gl-py-5"},[(!_vm.hasFilteredThreads)?_c('p',{staticClass:"gl-mb-0 gl-text-center gl-text-subtle",attrs:{"data-testid":"chat-threads-no-results"}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.NO_RESULTS)+"\n ")]):_vm._e(),_vm._v(" "),_vm._l((_vm.groupedThreads),function(threadsForDate,date){return _c('div',{key:date,staticClass:"gl-mb-3"},[_c('div',{staticClass:"gl-mb-3 gl-text-base gl-font-bold gl-text-default",attrs:{"data-testid":"chat-threads-date-header"}},[_vm._v("\n "+_vm._s(_vm.formattedLocalDate(date))+"\n ")]),_vm._v(" "),_vm._l((threadsForDate),function(thread){return _c('div',{key:thread.id,staticClass:"history-item gl-w-full gl-text-base"},[_c('gl-button',{staticClass:"history-item-name gl-w-full gl-text-base",attrs:{"data-testid":"chat-threads-thread-box","aria-label":_vm.sprintf(_vm.$options.i18n.OPEN_CHAT_LABEL, {
|
|
135
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-flex gl-flex-col gl-overflow-hidden"},[(_vm.loading)?_c('duo-chat-threads-skeleton'):(_vm.hasThreads)?[_c('div',{staticClass:"gl-px-4 gl-pt-4"},[_c('span',{staticClass:"gl-sr-only"},[_vm._v(_vm._s(_vm.$options.i18n.CHAT_HISTORY_SEARCH))]),_vm._v(" "),_c('gl-search-box-by-type',{attrs:{"data-testid":"chat-threads-search-input","placeholder":_vm.$options.i18n.SEARCH_PLACEHOLDER},model:{value:(_vm.searchQuery),callback:function ($$v) {_vm.searchQuery=$$v;},expression:"searchQuery"}})],1),_vm._v(" "),_c('div',{staticClass:"gl-grow gl-overflow-y-scroll gl-px-4 gl-py-5"},[(!_vm.hasFilteredThreads)?_c('p',{staticClass:"gl-mb-0 gl-text-center gl-text-subtle",attrs:{"data-testid":"chat-threads-no-results"}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.NO_RESULTS)+"\n ")]):_vm._e(),_vm._v(" "),_vm._l((_vm.groupedThreads),function(threadsForDate,date){return _c('div',{key:date,staticClass:"gl-mb-3"},[_c('div',{staticClass:"gl-mb-3 gl-text-base gl-font-bold gl-text-default",attrs:{"data-testid":"chat-threads-date-header"}},[_vm._v("\n "+_vm._s(_vm.formattedLocalDate(date))+"\n ")]),_vm._v(" "),_vm._l((threadsForDate),function(thread){return _c('div',{key:thread.id,staticClass:"history-item gl-w-full gl-text-base",class:{ 'gl-opacity-7': thread.expired }},[_c('gl-button',{staticClass:"history-item-name gl-w-full gl-text-base",attrs:{"data-testid":"chat-threads-thread-box","aria-label":_vm.sprintf(_vm.$options.i18n.OPEN_CHAT_LABEL, {
|
|
131
136
|
title: _vm.threadLabel(thread),
|
|
132
|
-
})},on:{"click":function($event){return _vm.onSelectThread(thread)}}},[_c('gl-avatar',{staticClass:"gl-shrink-0",attrs:{"size":32,"entity-name":_vm.threadLabel(thread),"shape":"circle"}}),_vm._v(" "),_c('div',{staticClass:"gl-grow gl-whitespace-normal gl-break-all"},[(!thread.title && !thread.goal)?_c('
|
|
137
|
+
})},on:{"click":function($event){return _vm.onSelectThread(thread)}}},[_c('gl-avatar',{staticClass:"gl-shrink-0",attrs:{"size":32,"entity-name":_vm.threadLabel(thread),"shape":"circle"}}),_vm._v(" "),_c('div',{staticClass:"gl-grow gl-whitespace-normal gl-break-all"},[(!thread.title && !thread.goal)?_c('duo-chat-thread-title',{attrs:{"text":_vm.$options.i18n.UNTITLED_CHAT_TITLE,"expired":thread.expired,"show-expired-icon":""}}):[(thread.title)?_c('duo-chat-thread-title',{attrs:{"text":thread.title,"expired":thread.expired,"show-expired-icon":""}}):_vm._e(),_vm._v(" "),(thread.goal)?_c('duo-chat-thread-title',{attrs:{"text":thread.goal,"expired":thread.expired,"show-expired-icon":!thread.title}}):_vm._e()],_vm._v(" "),(thread.agentName)?_c('span',{staticClass:"gl-line-clamp-1 gl-text-sm gl-text-subtle"},[_vm._v("\n "+_vm._s(thread.agentName)+"\n ")]):_vm._e()],2)],1),_vm._v(" "),_c('gl-button',{staticClass:"history-remove-button",attrs:{"data-testid":"chat-threads-delete-thread-button","icon":"remove","category":"tertiary","title":_vm.$options.i18n.THREAD_DELETE_LABEL,"aria-label":_vm.$options.i18n.THREAD_DELETE_LABEL},on:{"click":function($event){return _vm.$emit('delete-thread', thread.id)}}})],1)})],2)})],2),_vm._v(" "),_c('p',{staticClass:"gl-m-0 gl-p-5 gl-text-center gl-text-base gl-text-subtle",attrs:{"data-testid":"chat-threads-info-banner"}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.CHAT_HISTORY_INFO)+"\n ")])]:_c('duo-chat-threads-empty')],2)};
|
|
133
138
|
var __vue_staticRenderFns__ = [];
|
|
134
139
|
|
|
135
140
|
/* style */
|
|
@@ -60,5 +60,7 @@ const APPROVAL_TOOL_NAMES = {
|
|
|
60
60
|
runCommand: 'run_command',
|
|
61
61
|
runGitCommand: 'run_git_command'
|
|
62
62
|
};
|
|
63
|
+
const EXPIRY_DAYS = 30;
|
|
64
|
+
const MS_PER_DAY = 86400000;
|
|
63
65
|
|
|
64
|
-
export { APPROVAL_TOOL_NAMES, CHAT_BASE_COMMANDS, CHAT_CLEAR_MESSAGE, CHAT_INCLUDE_MESSAGE, CHAT_NEW_MESSAGE, CHAT_RESET_MESSAGE, DEFAULT_DEBOUNCE_AND_THROTTLE_MS, DOCUMENTATION_SOURCE_TYPES, LOADING_TRANSITION_DURATION, MAX_PROMPT_LENGTH, MESSAGE_MODEL_ROLES, PROMPT_LENGTH_WARNING, SELECTED_CONTEXT_ITEMS_DEFAULT_COLLAPSED, VALID_MESSAGE_TYPES, acceptedApproveToolPayloads, badgeTypeValidator, badgeTypes };
|
|
66
|
+
export { APPROVAL_TOOL_NAMES, CHAT_BASE_COMMANDS, CHAT_CLEAR_MESSAGE, CHAT_INCLUDE_MESSAGE, CHAT_NEW_MESSAGE, CHAT_RESET_MESSAGE, DEFAULT_DEBOUNCE_AND_THROTTLE_MS, DOCUMENTATION_SOURCE_TYPES, EXPIRY_DAYS, LOADING_TRANSITION_DURATION, MAX_PROMPT_LENGTH, MESSAGE_MODEL_ROLES, MS_PER_DAY, PROMPT_LENGTH_WARNING, SELECTED_CONTEXT_ITEMS_DEFAULT_COLLAPSED, VALID_MESSAGE_TYPES, acceptedApproveToolPayloads, badgeTypeValidator, badgeTypes };
|
|
@@ -647,6 +647,16 @@ const INCLUDE_SLASH_COMMAND = {
|
|
|
647
647
|
name: CHAT_INCLUDE_MESSAGE,
|
|
648
648
|
description: 'Include additional context in the conversation.'
|
|
649
649
|
};
|
|
650
|
+
const FIXED_NOW = new Date('2025-02-01T12:00:00Z').getTime();
|
|
651
|
+
const withFixedDate = fixedTimestamp => story => {
|
|
652
|
+
const originalNow = Date.now;
|
|
653
|
+
Date.now = () => fixedTimestamp;
|
|
654
|
+
const result = story();
|
|
655
|
+
result.destroyed = function destroyed() {
|
|
656
|
+
Date.now = originalNow;
|
|
657
|
+
};
|
|
658
|
+
return result;
|
|
659
|
+
};
|
|
650
660
|
const THREADLIST = [{
|
|
651
661
|
__typename: 'AiConversationsThread',
|
|
652
662
|
id: 'gid://gitlab/Ai::Conversation::Thread/14',
|
|
@@ -790,4 +800,4 @@ const AGENTIC_THREADLIST = [{
|
|
|
790
800
|
agentName: 'Issue Tracker Agent'
|
|
791
801
|
}];
|
|
792
802
|
|
|
793
|
-
export { AGENTIC_THREADLIST, INCLUDE_SLASH_COMMAND, MOCK_AGENT_MESSAGE, MOCK_AGENT_MESSAGE_WITH_LONG_CODE_BLOCK, MOCK_AGENT_MESSAGE_WITH_MARKDOWN, MOCK_REQUEST_MESSAGE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_COMMIT, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_COMMIT_AUTO_BRANCH, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_COMMIT_MESSAGE_ONLY, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_COMMIT_OLD_NEW_CONTENT, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_EPIC, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_ISSUE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_ISSUE_NOTE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_MERGE_REQUEST, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_MERGE_REQUEST_NOTE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_WORK_ITEM, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_WORK_ITEM_NOTE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_PARAMS, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_RUN_COMMAND, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_RUN_COMMAND_WITH_ERROR_RESPONSE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_RUN_COMMAND_WITH_RESPONSE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_RUN_GIT_COMMAND, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_UPDATE_ISSUE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_UPDATE_MERGE_REQUEST, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_UPDATE_WORK_ITEM, MOCK_RESPONSE_MESSAGE, MOCK_RESPONSE_MESSAGE_FOR_STREAMING, MOCK_TOOL_MESSAGE, MOCK_TOOL_MESSAGE_WITH_LINK, MOCK_TOOL_MESSAGE_WITH_REQUEST_AND_RESPONSE_DETAILS, MOCK_USER_PROMPT_MESSAGE, MOCK_WORKFLOW_END_MESSAGE, SLASH_COMMANDS, THREADLIST, generateMockResponseChunks, generateSeparateChunks, renderGFM, renderMarkdown };
|
|
803
|
+
export { AGENTIC_THREADLIST, FIXED_NOW, INCLUDE_SLASH_COMMAND, MOCK_AGENT_MESSAGE, MOCK_AGENT_MESSAGE_WITH_LONG_CODE_BLOCK, MOCK_AGENT_MESSAGE_WITH_MARKDOWN, MOCK_REQUEST_MESSAGE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_COMMIT, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_COMMIT_AUTO_BRANCH, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_COMMIT_MESSAGE_ONLY, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_COMMIT_OLD_NEW_CONTENT, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_EPIC, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_ISSUE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_ISSUE_NOTE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_MERGE_REQUEST, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_MERGE_REQUEST_NOTE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_WORK_ITEM, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_CREATE_WORK_ITEM_NOTE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_PARAMS, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_RUN_COMMAND, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_RUN_COMMAND_WITH_ERROR_RESPONSE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_RUN_COMMAND_WITH_RESPONSE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_RUN_GIT_COMMAND, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_UPDATE_ISSUE, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_UPDATE_MERGE_REQUEST, MOCK_REQUEST_MESSAGE_WITH_TOOL_APPROVAL_UPDATE_WORK_ITEM, MOCK_RESPONSE_MESSAGE, MOCK_RESPONSE_MESSAGE_FOR_STREAMING, MOCK_TOOL_MESSAGE, MOCK_TOOL_MESSAGE_WITH_LINK, MOCK_TOOL_MESSAGE_WITH_REQUEST_AND_RESPONSE_DETAILS, MOCK_USER_PROMPT_MESSAGE, MOCK_WORKFLOW_END_MESSAGE, SLASH_COMMANDS, THREADLIST, generateMockResponseChunks, generateSeparateChunks, renderGFM, renderMarkdown, withFixedDate };
|
package/dist/tailwind.css
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.gl-animate-skeleton-loader{background-color:var(--gl-skeleton-loader-background-color);background-image:linear-gradient(to right,var(--gl-skeleton-loader-background-color) 0,var(--gl-skeleton-loader-shimmer-color) 23%,var(--gl-skeleton-loader-shimmer-color) 27%,var(--gl-skeleton-loader-background-color) 50%);background-position:-32rem 0;background-repeat:no-repeat;background-size:32rem 100%;max-width:32rem;overflow:hidden}@media (prefers-reduced-motion:no-preference){.gl-animate-skeleton-loader{animation:gl-keyframes-skeleton-loader 2.5s linear;animation-delay:inherit;animation-iteration-count:3}}@keyframes gl-keyframes-skeleton-loader{0%{background-position-x:-32rem}to{background-position-x:32rem}}.gl-border{border-color:var(--gl-border-color-default);border-style:solid}.gl-border-t{border-top-color:var(--gl-border-color-default);border-top-style:solid}.gl-border-r{border-right-color:var(--gl-border-color-default);border-right-style:solid}.gl-border-b{border-bottom-color:var(--gl-border-color-default);border-bottom-style:solid}.gl-heading-1{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-heading-1-margin-top)}.gl-heading-2{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-heading-2-margin-top)}.gl-heading-3{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-heading-3-margin-top)}.gl-heading-4{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-heading-4-margin-top)}.gl-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.gl-pointer-events-auto{pointer-events:auto}.gl-invisible{visibility:hidden}.gl-collapse{visibility:collapse}.gl-static{position:static}.gl-fixed{position:fixed}.\!gl-absolute{position:absolute!important}.gl-absolute{position:absolute}.\!gl-relative{position:relative!important}.gl-relative{position:relative}.gl-sticky{position:sticky}.gl-bottom-0{bottom:var(--gl-spacing-scale-0)}.gl-bottom-2{bottom:var(--gl-spacing-scale-2)}.gl-bottom-\[-1\.6rem\]{bottom:-1.6rem}.gl-bottom-\[-25px\]{bottom:-25px}.gl-bottom-\[-5rem\]{bottom:-5rem}.gl-left-0{left:var(--gl-spacing-scale-0)}.gl-right-0{right:var(--gl-spacing-scale-0)}.gl-right-2{right:var(--gl-spacing-scale-2)}.gl-right-3{right:var(--gl-spacing-scale-3)}.gl-right-5{right:var(--gl-spacing-scale-5)}.gl-right-px{right:var(--gl-spacing-scale-px)}.gl-top-0{top:var(--gl-spacing-scale-0)}.gl-top-4{top:var(--gl-spacing-scale-4)}.\!gl-z-9999{z-index:var(--gl-zindex-9999)!important}.gl-z-1{z-index:var(--gl-zindex-1)}.gl-z-2{z-index:var(--gl-zindex-2)}.gl-z-9999{z-index:var(--gl-zindex-9999)}.gl-float-right{float:right}.\!gl-m-0{margin:var(--gl-spacing-scale-0)!important}.gl-m-0{margin:var(--gl-spacing-scale-0)}.gl-m-3{margin:var(--gl-spacing-scale-3)}.gl-m-4{margin:var(--gl-spacing-scale-4)}.gl-m-auto{margin:auto}.\!gl-mx-2{margin-left:var(--gl-spacing-scale-2)!important;margin-right:var(--gl-spacing-scale-2)!important}.-gl-mx-1{margin-left:calc(var(--gl-spacing-scale-1)*-1);margin-right:calc(var(--gl-spacing-scale-1)*-1)}.-gl-mx-2{margin-left:calc(var(--gl-spacing-scale-2)*-1);margin-right:calc(var(--gl-spacing-scale-2)*-1)}.-gl-mx-3{margin-left:calc(var(--gl-spacing-scale-3)*-1);margin-right:calc(var(--gl-spacing-scale-3)*-1)}.-gl-mx-4{margin-left:calc(var(--gl-spacing-scale-4)*-1);margin-right:calc(var(--gl-spacing-scale-4)*-1)}.-gl-my-1{margin-bottom:calc(var(--gl-spacing-scale-1)*-1);margin-top:calc(var(--gl-spacing-scale-1)*-1)}.-gl-my-3{margin-bottom:calc(var(--gl-spacing-scale-3)*-1);margin-top:calc(var(--gl-spacing-scale-3)*-1)}.gl-mx-0{margin-left:var(--gl-spacing-scale-0);margin-right:var(--gl-spacing-scale-0)}.gl-mx-2{margin-left:var(--gl-spacing-scale-2);margin-right:var(--gl-spacing-scale-2)}.gl-mx-3{margin-left:var(--gl-spacing-scale-3);margin-right:var(--gl-spacing-scale-3)}.gl-mx-4{margin-left:var(--gl-spacing-scale-4);margin-right:var(--gl-spacing-scale-4)}.gl-mx-auto{margin-left:auto;margin-right:auto}.gl-my-0{margin-bottom:var(--gl-spacing-scale-0);margin-top:var(--gl-spacing-scale-0)}.gl-my-2{margin-bottom:var(--gl-spacing-scale-2);margin-top:var(--gl-spacing-scale-2)}.gl-my-3{margin-bottom:var(--gl-spacing-scale-3);margin-top:var(--gl-spacing-scale-3)}.gl-my-4{margin-bottom:var(--gl-spacing-scale-4);margin-top:var(--gl-spacing-scale-4)}.gl-my-5{margin-bottom:var(--gl-spacing-scale-5);margin-top:var(--gl-spacing-scale-5)}.\!gl-mb-0{margin-bottom:var(--gl-spacing-scale-0)!important}.\!gl-mb-4{margin-bottom:var(--gl-spacing-scale-4)!important}.\!gl-mt-1{margin-top:var(--gl-spacing-scale-1)!important}.-gl-ml-2{margin-left:calc(var(--gl-spacing-scale-2)*-1)}.-gl-mr-3{margin-right:calc(var(--gl-spacing-scale-3)*-1)}.-gl-mt-1{margin-top:calc(var(--gl-spacing-scale-1)*-1)}.-gl-mt-2{margin-top:calc(var(--gl-spacing-scale-2)*-1)}.-gl-mt-3{margin-top:calc(var(--gl-spacing-scale-3)*-1)}.gl-mb-0{margin-bottom:var(--gl-spacing-scale-0)}.gl-mb-1{margin-bottom:var(--gl-spacing-scale-1)}.gl-mb-2{margin-bottom:var(--gl-spacing-scale-2)}.gl-mb-3{margin-bottom:var(--gl-spacing-scale-3)}.gl-mb-4{margin-bottom:var(--gl-spacing-scale-4)}.gl-mb-5{margin-bottom:var(--gl-spacing-scale-5)}.gl-mb-8{margin-bottom:var(--gl-spacing-scale-8)}.gl-mb-\[3\.75rem\]{margin-bottom:3.75rem}.gl-ml-1{margin-left:var(--gl-spacing-scale-1)}.gl-ml-2{margin-left:var(--gl-spacing-scale-2)}.gl-ml-3{margin-left:var(--gl-spacing-scale-3)}.gl-ml-5{margin-left:var(--gl-spacing-scale-5)}.gl-ml-auto{margin-left:auto}.gl-mr-1{margin-right:var(--gl-spacing-scale-1)}.gl-mr-2{margin-right:var(--gl-spacing-scale-2)}.gl-mr-3{margin-right:var(--gl-spacing-scale-3)}.gl-mr-\[-5px\]{margin-right:-5px}.gl-mr-auto{margin-right:auto}.gl-mt-0{margin-top:var(--gl-spacing-scale-0)}.gl-mt-1{margin-top:var(--gl-spacing-scale-1)}.gl-mt-2{margin-top:var(--gl-spacing-scale-2)}.gl-mt-3{margin-top:var(--gl-spacing-scale-3)}.gl-mt-4{margin-top:var(--gl-spacing-scale-4)}.gl-mt-5{margin-top:var(--gl-spacing-scale-5)}.gl-mt-6{margin-top:var(--gl-spacing-scale-6)}.gl-mt-7{margin-top:var(--gl-spacing-scale-7)}.gl-mt-auto{margin-top:auto}.gl-line-clamp-1{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden}.\!gl-block{display:block!important}.gl-block{display:block}.gl-inline-block{display:inline-block}.gl-flex{display:flex}.gl-inline-flex{display:inline-flex}.gl-table{display:table}.gl-grid{display:grid}.gl-hidden{display:none}.\!gl-h-full{height:100%!important}.gl-h-0{height:var(--gl-spacing-scale-0)}.gl-h-1{height:var(--gl-spacing-scale-1)}.gl-h-4{height:var(--gl-spacing-scale-4)}.gl-h-5{height:var(--gl-spacing-scale-5)}.gl-h-6{height:var(--gl-spacing-scale-6)}.gl-h-8{height:var(--gl-spacing-scale-8)}.gl-h-auto{height:auto}.gl-h-full{height:100%}.gl-max-h-13{max-height:var(--gl-spacing-scale-13)}.gl-max-h-31{max-height:var(--gl-spacing-scale-31)}.gl-max-h-48{max-height:var(--gl-spacing-scale-48)}.gl-max-h-full{max-height:100%}.gl-min-h-8{min-height:var(--gl-spacing-scale-8)}.gl-min-h-full{min-height:100%}.\!gl-w-31{width:var(--gl-spacing-scale-31)!important}.\!gl-w-auto{width:auto!important}.\!gl-w-full{width:100%!important}.gl-w-0{width:var(--gl-spacing-scale-0)}.gl-w-1\/2{width:50%}.gl-w-1\/3{width:33.333333%}.gl-w-2\/3{width:66.666667%}.gl-w-3\/4{width:75%}.gl-w-4\/10{width:40%}.gl-w-5{width:var(--gl-spacing-scale-5)}.gl-w-6{width:var(--gl-spacing-scale-6)}.gl-w-8{width:var(--gl-spacing-scale-8)}.gl-w-9{width:var(--gl-spacing-scale-9)}.gl-w-auto{width:auto}.gl-w-full{width:100%}.gl-min-w-0{min-width:var(--gl-spacing-scale-0)}.gl-min-w-5{min-width:var(--gl-spacing-scale-5)}.gl-min-w-9{min-width:var(--gl-spacing-scale-9)}.gl-min-w-\[33\%\]{min-width:33%}.\!gl-max-w-26{max-width:var(--gl-spacing-scale-26)!important}.\!gl-max-w-48{max-width:var(--gl-spacing-scale-48)!important}.gl-max-w-1\/2{max-width:50%}.gl-max-w-17\/20{max-width:85%}.gl-max-w-80{max-width:var(--gl-spacing-scale-80)}.gl-max-w-full{max-width:100%}.gl-flex-1{flex:1 1 0%}.gl-flex-auto{flex:1 1 auto}.gl-flex-shrink-0,.gl-shrink-0{flex-shrink:0}.gl-flex-grow,.gl-grow{flex-grow:1}.gl-basis-0{flex-basis:var(--gl-spacing-scale-0)}.-gl-translate-y-full{--tw-translate-y:-100%;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))}.\!gl-cursor-default{cursor:default!important}.\!gl-cursor-grabbing{cursor:grabbing!important}.\!gl-cursor-not-allowed{cursor:not-allowed!important}.\!gl-cursor-text{cursor:text!important}.gl-cursor-default{cursor:default}.gl-cursor-grab{cursor:grab}.gl-cursor-not-allowed{cursor:not-allowed}.gl-cursor-pointer{cursor:pointer}.gl-cursor-text{cursor:text}.gl-list-none{list-style-type:none}.gl-flex-row{flex-direction:row}.gl-flex-col{flex-direction:column}.gl-flex-wrap{flex-wrap:wrap}.gl-flex-nowrap{flex-wrap:nowrap}.gl-content-center{align-content:center}.gl-items-start{align-items:flex-start}.gl-items-end{align-items:flex-end}.gl-items-center{align-items:center}.gl-items-baseline{align-items:baseline}.\!gl-justify-start{justify-content:flex-start!important}.gl-justify-start{justify-content:flex-start}.gl-justify-end{justify-content:flex-end}.gl-justify-center{justify-content:center}.gl-justify-between{justify-content:space-between}.gl-gap-1{gap:var(--gl-spacing-scale-1)}.gl-gap-2{gap:var(--gl-spacing-scale-2)}.gl-gap-3{gap:var(--gl-spacing-scale-3)}.gl-gap-4{gap:var(--gl-spacing-scale-4)}.gl-gap-5{gap:var(--gl-spacing-scale-5)}.gl-gap-6{gap:var(--gl-spacing-scale-6)}.gl-gap-x-2{column-gap:var(--gl-spacing-scale-2)}.gl-gap-x-3{column-gap:var(--gl-spacing-scale-3)}.gl-gap-x-4{column-gap:var(--gl-spacing-scale-4)}.gl-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(var(--gl-spacing-scale-1)*var(--tw-space-y-reverse));margin-top:calc(var(--gl-spacing-scale-1)*(1 - var(--tw-space-y-reverse)))}.gl-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(var(--gl-spacing-scale-2)*var(--tw-space-y-reverse));margin-top:calc(var(--gl-spacing-scale-2)*(1 - var(--tw-space-y-reverse)))}.gl-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(var(--gl-spacing-scale-3)*var(--tw-space-y-reverse));margin-top:calc(var(--gl-spacing-scale-3)*(1 - var(--tw-space-y-reverse)))}.gl-self-start{align-self:flex-start}.gl-self-center{align-self:center}.gl-overflow-auto{overflow:auto}.gl-overflow-hidden{overflow:hidden}.gl-overflow-visible{overflow:visible}.gl-overflow-y-auto{overflow-y:auto}.gl-overflow-x-hidden{overflow-x:hidden}.gl-overflow-y-scroll{overflow-y:scroll}.gl-overscroll-contain{overscroll-behavior:contain}.gl-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\!gl-text-ellipsis{text-overflow:ellipsis!important}.gl-text-ellipsis{text-overflow:ellipsis}.gl-whitespace-normal{white-space:normal}.gl-whitespace-nowrap{white-space:nowrap}.gl-whitespace-pre-wrap{white-space:pre-wrap}.gl-text-pretty{text-wrap:pretty}.gl-break-words{overflow-wrap:break-word}.gl-break-all{word-break:break-all}.\!gl-rounded-control{border-radius:var(--gl-control-border-radius)!important}.\!gl-rounded-full{border-radius:var(--gl-border-radius-full)!important}.\!gl-rounded-none{border-radius:var(--gl-border-radius-none)!important}.gl-rounded-\[0\.75rem\]{border-radius:.75rem}.gl-rounded-\[1rem\]{border-radius:1rem}.gl-rounded-base{border-radius:.25rem}.gl-rounded-default{border-radius:var(--gl-border-radius-default)}.gl-rounded-full{border-radius:var(--gl-border-radius-full)}.gl-rounded-lg{border-radius:var(--gl-border-radius-lg)}.\!gl-rounded-t-none{border-top-left-radius:var(--gl-border-radius-none)!important;border-top-right-radius:var(--gl-border-radius-none)!important}.gl-rounded-t-default{border-top-left-radius:var(--gl-border-radius-default);border-top-right-radius:var(--gl-border-radius-default)}.gl-rounded-bl-\[12px\]{border-bottom-left-radius:12px}.gl-rounded-bl-none{border-bottom-left-radius:var(--gl-border-radius-none)}.gl-rounded-br-\[18px\]{border-bottom-right-radius:18px}.gl-rounded-br-none{border-bottom-right-radius:var(--gl-border-radius-none)}.gl-rounded-tl-\[12px\]{border-top-left-radius:12px}.gl-rounded-tr-\[12px\]{border-top-right-radius:12px}.gl-rounded-tr-none{border-top-right-radius:var(--gl-border-radius-none)}.\!gl-border-0{border-width:0!important}.gl-border{border-width:1px}.gl-border-0{border-width:0}.\!gl-border-b-0{border-bottom-width:0!important}.gl-border-b,.gl-border-b-1{border-bottom-width:1px}.gl-border-r{border-right-width:1px}.gl-border-t,.gl-border-t-1{border-top-width:1px}.gl-border-t-2{border-top-width:2px}.gl-border-solid{border-style:solid}.gl-border-dashed{border-style:dashed}.gl-border-none{border-style:none}.gl-border-default{border-color:var(--gl-border-color-default)}.gl-border-gray-100{border-color:var(--gray-100)}.gl-border-gray-500{border-color:var(--gray-500)}.gl-border-red-500{border-color:var(--red-500)}.gl-border-strong{border-color:var(--gl-border-color-strong)}.gl-border-subtle{border-color:var(--gl-border-color-subtle)}.gl-border-b-dropdown-divider{border-bottom-color:var(--gl-dropdown-divider-color)}.gl-border-t-dropdown-divider{border-top-color:var(--gl-dropdown-divider-color)}.\!gl-bg-transparent{background-color:initial!important}.gl-bg-blue-100{background-color:var(--blue-100)}.gl-bg-blue-50{background-color:var(--blue-50)}.gl-bg-default{background-color:var(--gl-background-color-default)}.gl-bg-dropdown{background-color:var(--gl-dropdown-background-color)}.gl-bg-feedback-danger{background-color:var(--gl-feedback-danger-background-color)}.gl-bg-feedback-info{background-color:var(--gl-feedback-info-background-color)}.gl-bg-gray-10{background-color:var(--gray-10)}.gl-bg-gray-50{background-color:var(--gray-50)}.gl-bg-inherit{background-color:inherit}.gl-bg-status-neutral{background-color:var(--gl-status-neutral-background-color)}.gl-bg-strong{background-color:var(--gl-background-color-strong)}.gl-bg-subtle{background-color:var(--gl-background-color-subtle)}.gl-bg-transparent{background-color:initial}.gl-bg-white{background-color:var(--white)}.gl-fill-current{fill:currentColor}.gl-fill-icon-danger{fill:var(--gl-icon-color-danger)}.gl-fill-icon-default{fill:var(--gl-icon-color-default)}.gl-fill-icon-disabled{fill:var(--gl-icon-color-disabled)}.gl-fill-icon-info{fill:var(--gl-icon-color-info)}.gl-fill-icon-link{fill:var(--gl-icon-color-link)}.gl-fill-icon-strong{fill:var(--gl-icon-color-strong)}.gl-fill-icon-subtle{fill:var(--gl-icon-color-subtle)}.gl-fill-icon-success{fill:var(--gl-icon-color-success)}.gl-fill-icon-warning{fill:var(--gl-icon-color-warning)}.\!gl-p-0{padding:var(--gl-spacing-scale-0)!important}.\!gl-p-2{padding:var(--gl-spacing-scale-2)!important}.\!gl-p-4{padding:var(--gl-spacing-scale-4)!important}.\!gl-p-5{padding:var(--gl-spacing-scale-5)!important}.gl-p-0{padding:var(--gl-spacing-scale-0)}.gl-p-1{padding:var(--gl-spacing-scale-1)}.gl-p-2{padding:var(--gl-spacing-scale-2)}.gl-p-3{padding:var(--gl-spacing-scale-3)}.gl-p-4{padding:var(--gl-spacing-scale-4)}.gl-p-5{padding:var(--gl-spacing-scale-5)}.gl-p-6{padding:var(--gl-spacing-scale-6)}.\!gl-px-2{padding-left:var(--gl-spacing-scale-2)!important;padding-right:var(--gl-spacing-scale-2)!important}.\!gl-px-3{padding-left:var(--gl-spacing-scale-3)!important;padding-right:var(--gl-spacing-scale-3)!important}.\!gl-py-2{padding-bottom:var(--gl-spacing-scale-2)!important;padding-top:var(--gl-spacing-scale-2)!important}.\!gl-py-4{padding-bottom:var(--gl-spacing-scale-4)!important;padding-top:var(--gl-spacing-scale-4)!important}.gl-px-0{padding-left:var(--gl-spacing-scale-0);padding-right:var(--gl-spacing-scale-0)}.gl-px-1{padding-left:var(--gl-spacing-scale-1);padding-right:var(--gl-spacing-scale-1)}.gl-px-2{padding-left:var(--gl-spacing-scale-2);padding-right:var(--gl-spacing-scale-2)}.gl-px-3{padding-left:var(--gl-spacing-scale-3);padding-right:var(--gl-spacing-scale-3)}.gl-px-4{padding-left:var(--gl-spacing-scale-4);padding-right:var(--gl-spacing-scale-4)}.gl-px-5{padding-left:var(--gl-spacing-scale-5);padding-right:var(--gl-spacing-scale-5)}.gl-py-1{padding-bottom:var(--gl-spacing-scale-1);padding-top:var(--gl-spacing-scale-1)}.gl-py-2{padding-bottom:var(--gl-spacing-scale-2);padding-top:var(--gl-spacing-scale-2)}.gl-py-3{padding-bottom:var(--gl-spacing-scale-3);padding-top:var(--gl-spacing-scale-3)}.gl-py-4{padding-bottom:var(--gl-spacing-scale-4);padding-top:var(--gl-spacing-scale-4)}.gl-py-5{padding-bottom:var(--gl-spacing-scale-5);padding-top:var(--gl-spacing-scale-5)}.gl-py-6{padding-bottom:var(--gl-spacing-scale-6);padding-top:var(--gl-spacing-scale-6)}.\!gl-pl-9{padding-left:var(--gl-spacing-scale-9)!important}.\!gl-pr-7{padding-right:var(--gl-spacing-scale-7)!important}.\!gl-pr-9{padding-right:var(--gl-spacing-scale-9)!important}.\!gl-pt-0{padding-top:var(--gl-spacing-scale-0)!important}.gl-pb-2{padding-bottom:var(--gl-spacing-scale-2)}.gl-pb-3{padding-bottom:var(--gl-spacing-scale-3)}.gl-pb-4{padding-bottom:var(--gl-spacing-scale-4)}.gl-pl-0{padding-left:var(--gl-spacing-scale-0)}.gl-pl-2{padding-left:var(--gl-spacing-scale-2)}.gl-pl-3{padding-left:var(--gl-spacing-scale-3)}.gl-pl-4{padding-left:var(--gl-spacing-scale-4)}.gl-pl-5{padding-left:var(--gl-spacing-scale-5)}.gl-pl-6{padding-left:var(--gl-spacing-scale-6)}.gl-pl-7{padding-left:var(--gl-spacing-scale-7)}.gl-pr-2{padding-right:var(--gl-spacing-scale-2)}.gl-pr-3{padding-right:var(--gl-spacing-scale-3)}.gl-pr-5{padding-right:var(--gl-spacing-scale-5)}.gl-pr-6{padding-right:var(--gl-spacing-scale-6)}.gl-pr-7{padding-right:var(--gl-spacing-scale-7)}.gl-pr-8{padding-right:var(--gl-spacing-scale-8)}.gl-pt-1{padding-top:var(--gl-spacing-scale-1)}.gl-pt-2{padding-top:var(--gl-spacing-scale-2)}.gl-pt-3{padding-top:var(--gl-spacing-scale-3)}.gl-pt-4{padding-top:var(--gl-spacing-scale-4)}.gl-pt-6{padding-top:var(--gl-spacing-scale-6)}.gl-pt-8{padding-top:var(--gl-spacing-scale-8)}.\!gl-text-left{text-align:left!important}.gl-text-left{text-align:left}.gl-text-center{text-align:center}.gl-text-right{text-align:right}.gl-align-top{vertical-align:top}.gl-align-middle{vertical-align:middle}.gl-align-bottom{vertical-align:bottom}.\!gl-align-text-bottom{vertical-align:text-bottom!important}.gl-font-monospace{font-family:var(--gl-font-family-monospace)}.gl-font-regular{font-family:var(--gl-font-family-regular)}.\!gl-text-sm{font-size:var(--gl-font-size-sm)!important}.gl-text-\[0\.75rem\]{font-size:.75rem}.gl-text-\[0\.875rem\]{font-size:.875rem}.gl-text-\[3\.5rem\]{font-size:3.5rem}.gl-text-base{font-size:var(--gl-font-size-base)}.gl-text-lg{font-size:var(--gl-font-size-lg)}.gl-text-md{font-size:var(--gl-font-size-md)}.gl-text-size-h-display{font-size:1.75rem}.gl-text-size-h2{font-size:1.1875rem}.gl-text-sm{font-size:var(--gl-font-size-sm)}.gl-text-xs{font-size:var(--gl-font-size-xs)}.gl-font-bold{font-weight:var(--gl-font-weight-bold)}.gl-font-normal{font-weight:var(--gl-font-weight-normal)}.gl-font-semibold{font-weight:var(--gl-font-weight-semibold)}.gl-lowercase{text-transform:lowercase}.gl-italic{font-style:italic}.\!gl-leading-20{line-height:var(--gl-line-height-20)!important}.gl-leading-0{line-height:0}.gl-leading-1{line-height:1}.gl-leading-20{line-height:var(--gl-line-height-20)}.gl-leading-36{line-height:var(--gl-line-height-36)}.gl-leading-normal{line-height:1rem}.\!gl-text-subtle{color:var(--gl-text-color-subtle)!important}.\!gl-text-success{color:var(--gl-text-color-success)!important}.gl-text-blue-100{color:var(--blue-100)}.gl-text-blue-500{color:var(--blue-500)}.gl-text-blue-600{color:var(--blue-600)}.gl-text-blue-700{color:var(--blue-700)}.gl-text-blue-900{color:var(--blue-900)}.gl-text-danger{color:var(--gl-text-color-danger)}.gl-text-default{color:var(--gl-text-color-default)}.gl-text-feedback-info{color:var(--gl-feedback-info-text-color)}.gl-text-gray-500{color:var(--gray-500)}.gl-text-gray-700{color:var(--gray-700)}.gl-text-gray-900{color:var(--gray-900)}.gl-text-green-500{color:var(--green-500)}.gl-text-green-600{color:var(--green-600)}.gl-text-heading{color:var(--gl-text-color-heading)}.gl-text-inherit{color:inherit}.gl-text-neutral-0{color:var(--gl-color-neutral-0)}.gl-text-neutral-950{color:var(--gl-color-neutral-950)}.gl-text-orange-500{color:var(--orange-500)}.gl-text-red-500{color:var(--red-500)}.gl-text-red-600{color:var(--red-600)}.gl-text-strong{color:var(--gl-text-color-strong)}.gl-text-subtle{color:var(--gl-text-color-subtle)}.gl-text-success{color:var(--gl-text-color-success)}.\!gl-opacity-0{opacity:var(--gl-opacity-0)!important}.gl-opacity-0{opacity:var(--gl-opacity-0)}.gl-opacity-10{opacity:var(--gl-opacity-10)}.gl-opacity-\[50\%\]{opacity:50%}.\!gl-shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.gl-shadow-md{--tw-shadow:var(--gl-shadow-md);--tw-shadow-colored:var(--gl-shadow-md)}.gl-shadow-md,.gl-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.gl-shadow-sm{--tw-shadow:var(--gl-shadow-sm);--tw-shadow-colored:var(--gl-shadow-sm)}.gl-outline-none{outline:2px solid #0000;outline-offset:2px}.gl-drop-shadow-md{--tw-drop-shadow:drop-shadow(0 0 0.5px var(--gl-shadow-color-default,#05050629)) drop-shadow(0 0.5px 1px var(--gl-shadow-color-default,#05050629)) drop-shadow(0 1px 3px var(--gl-shadow-color-default,#05050629));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.gl-transition-all{transition-duration:.2s;transition-property:all;transition-timing-function:ease}.gl-transition-opacity{transition-duration:.2s;transition-property:opacity;transition-timing-function:ease}.gl-font-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}.gl-break-anywhere{overflow-wrap:anywhere;word-break:normal}.gl-border-b-solid{border-bottom-style:solid}.gl-border-t-solid{border-top-style:solid}.gl-focus{box-shadow: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){.forced-colors\:gl-border{border-color:var(--gl-border-color-default);border-style:solid}}.focus-within\:\!gl-shadow-none:focus-within{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.hover\:\!gl-cursor-not-allowed:hover{cursor:not-allowed!important}.hover\:gl-cursor-pointer:hover{cursor:pointer}.hover\:gl-no-underline:hover{text-decoration-line:none}.focus\:\!gl-focus-inset:focus{box-shadow:inset 0 0 0 2px var(--gl-focus-ring-outer-color),inset 0 0 0 3px var(--gl-focus-ring-inner-color),inset 0 0 0 1px var(--gl-focus-ring-inner-color)!important;outline:none!important}@media (min-width:576px){.\@sm\:gl-block{display:block}.\@sm\:gl-flex-nowrap{flex-wrap:nowrap}.\@sm\:gl-gap-3{gap:var(--gl-spacing-scale-3)}.sm\:gl-mt-3{margin-top:var(--gl-spacing-scale-3)}.sm\:\!gl-hidden{display:none!important}.sm\:gl-max-w-1\/2{max-width:50%}}@media (forced-colors:active){.forced-colors\:gl-border{border-width:1px}.forced-colors\:\!gl-border-b-0{border-bottom-width:0!important}.forced-colors\:\!gl-border-l-0{border-left-width:0!important}.forced-colors\:\!gl-border-r-0{border-right-width:0!important}.forced-colors\:gl-border-none{border-style:none}}.\[\&\>button\]\:focus-within\:\!gl-shadow-none:focus-within>button{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}
|
|
1
|
+
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.gl-animate-skeleton-loader{background-color:var(--gl-skeleton-loader-background-color);background-image:linear-gradient(to right,var(--gl-skeleton-loader-background-color) 0,var(--gl-skeleton-loader-shimmer-color) 23%,var(--gl-skeleton-loader-shimmer-color) 27%,var(--gl-skeleton-loader-background-color) 50%);background-position:-32rem 0;background-repeat:no-repeat;background-size:32rem 100%;max-width:32rem;overflow:hidden}@media (prefers-reduced-motion:no-preference){.gl-animate-skeleton-loader{animation:gl-keyframes-skeleton-loader 2.5s linear;animation-delay:inherit;animation-iteration-count:3}}@keyframes gl-keyframes-skeleton-loader{0%{background-position-x:-32rem}to{background-position-x:32rem}}.gl-border{border-color:var(--gl-border-color-default);border-style:solid}.gl-border-t{border-top-color:var(--gl-border-color-default);border-top-style:solid}.gl-border-r{border-right-color:var(--gl-border-color-default);border-right-style:solid}.gl-border-b{border-bottom-color:var(--gl-border-color-default);border-bottom-style:solid}.gl-heading-1{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-heading-1-margin-top)}.gl-heading-2{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-heading-2-margin-top)}.gl-heading-3{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-heading-3-margin-top)}.gl-heading-4{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-heading-4-margin-top)}.gl-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.gl-pointer-events-auto{pointer-events:auto}.gl-invisible{visibility:hidden}.gl-collapse{visibility:collapse}.gl-static{position:static}.gl-fixed{position:fixed}.\!gl-absolute{position:absolute!important}.gl-absolute{position:absolute}.\!gl-relative{position:relative!important}.gl-relative{position:relative}.gl-sticky{position:sticky}.gl-bottom-0{bottom:var(--gl-spacing-scale-0)}.gl-bottom-2{bottom:var(--gl-spacing-scale-2)}.gl-bottom-\[-1\.6rem\]{bottom:-1.6rem}.gl-bottom-\[-25px\]{bottom:-25px}.gl-bottom-\[-5rem\]{bottom:-5rem}.gl-left-0{left:var(--gl-spacing-scale-0)}.gl-right-0{right:var(--gl-spacing-scale-0)}.gl-right-2{right:var(--gl-spacing-scale-2)}.gl-right-3{right:var(--gl-spacing-scale-3)}.gl-right-5{right:var(--gl-spacing-scale-5)}.gl-right-px{right:var(--gl-spacing-scale-px)}.gl-top-0{top:var(--gl-spacing-scale-0)}.gl-top-4{top:var(--gl-spacing-scale-4)}.\!gl-z-9999{z-index:var(--gl-zindex-9999)!important}.gl-z-1{z-index:var(--gl-zindex-1)}.gl-z-2{z-index:var(--gl-zindex-2)}.gl-z-9999{z-index:var(--gl-zindex-9999)}.gl-float-right{float:right}.\!gl-m-0{margin:var(--gl-spacing-scale-0)!important}.gl-m-0{margin:var(--gl-spacing-scale-0)}.gl-m-3{margin:var(--gl-spacing-scale-3)}.gl-m-4{margin:var(--gl-spacing-scale-4)}.gl-m-auto{margin:auto}.\!gl-mx-2{margin-left:var(--gl-spacing-scale-2)!important;margin-right:var(--gl-spacing-scale-2)!important}.-gl-mx-1{margin-left:calc(var(--gl-spacing-scale-1)*-1);margin-right:calc(var(--gl-spacing-scale-1)*-1)}.-gl-mx-2{margin-left:calc(var(--gl-spacing-scale-2)*-1);margin-right:calc(var(--gl-spacing-scale-2)*-1)}.-gl-mx-3{margin-left:calc(var(--gl-spacing-scale-3)*-1);margin-right:calc(var(--gl-spacing-scale-3)*-1)}.-gl-mx-4{margin-left:calc(var(--gl-spacing-scale-4)*-1);margin-right:calc(var(--gl-spacing-scale-4)*-1)}.-gl-my-1{margin-bottom:calc(var(--gl-spacing-scale-1)*-1);margin-top:calc(var(--gl-spacing-scale-1)*-1)}.-gl-my-3{margin-bottom:calc(var(--gl-spacing-scale-3)*-1);margin-top:calc(var(--gl-spacing-scale-3)*-1)}.gl-mx-0{margin-left:var(--gl-spacing-scale-0);margin-right:var(--gl-spacing-scale-0)}.gl-mx-2{margin-left:var(--gl-spacing-scale-2);margin-right:var(--gl-spacing-scale-2)}.gl-mx-3{margin-left:var(--gl-spacing-scale-3);margin-right:var(--gl-spacing-scale-3)}.gl-mx-4{margin-left:var(--gl-spacing-scale-4);margin-right:var(--gl-spacing-scale-4)}.gl-mx-auto{margin-left:auto;margin-right:auto}.gl-my-0{margin-bottom:var(--gl-spacing-scale-0);margin-top:var(--gl-spacing-scale-0)}.gl-my-2{margin-bottom:var(--gl-spacing-scale-2);margin-top:var(--gl-spacing-scale-2)}.gl-my-3{margin-bottom:var(--gl-spacing-scale-3);margin-top:var(--gl-spacing-scale-3)}.gl-my-4{margin-bottom:var(--gl-spacing-scale-4);margin-top:var(--gl-spacing-scale-4)}.gl-my-5{margin-bottom:var(--gl-spacing-scale-5);margin-top:var(--gl-spacing-scale-5)}.\!gl-mb-0{margin-bottom:var(--gl-spacing-scale-0)!important}.\!gl-mb-4{margin-bottom:var(--gl-spacing-scale-4)!important}.\!gl-mt-1{margin-top:var(--gl-spacing-scale-1)!important}.-gl-ml-2{margin-left:calc(var(--gl-spacing-scale-2)*-1)}.-gl-mr-3{margin-right:calc(var(--gl-spacing-scale-3)*-1)}.-gl-mt-1{margin-top:calc(var(--gl-spacing-scale-1)*-1)}.-gl-mt-2{margin-top:calc(var(--gl-spacing-scale-2)*-1)}.-gl-mt-3{margin-top:calc(var(--gl-spacing-scale-3)*-1)}.gl-mb-0{margin-bottom:var(--gl-spacing-scale-0)}.gl-mb-1{margin-bottom:var(--gl-spacing-scale-1)}.gl-mb-2{margin-bottom:var(--gl-spacing-scale-2)}.gl-mb-3{margin-bottom:var(--gl-spacing-scale-3)}.gl-mb-4{margin-bottom:var(--gl-spacing-scale-4)}.gl-mb-5{margin-bottom:var(--gl-spacing-scale-5)}.gl-mb-8{margin-bottom:var(--gl-spacing-scale-8)}.gl-mb-\[3\.75rem\]{margin-bottom:3.75rem}.gl-ml-1{margin-left:var(--gl-spacing-scale-1)}.gl-ml-2{margin-left:var(--gl-spacing-scale-2)}.gl-ml-3{margin-left:var(--gl-spacing-scale-3)}.gl-ml-5{margin-left:var(--gl-spacing-scale-5)}.gl-ml-auto{margin-left:auto}.gl-mr-1{margin-right:var(--gl-spacing-scale-1)}.gl-mr-2{margin-right:var(--gl-spacing-scale-2)}.gl-mr-3{margin-right:var(--gl-spacing-scale-3)}.gl-mr-\[-5px\]{margin-right:-5px}.gl-mr-auto{margin-right:auto}.gl-mt-0{margin-top:var(--gl-spacing-scale-0)}.gl-mt-1{margin-top:var(--gl-spacing-scale-1)}.gl-mt-2{margin-top:var(--gl-spacing-scale-2)}.gl-mt-3{margin-top:var(--gl-spacing-scale-3)}.gl-mt-4{margin-top:var(--gl-spacing-scale-4)}.gl-mt-5{margin-top:var(--gl-spacing-scale-5)}.gl-mt-6{margin-top:var(--gl-spacing-scale-6)}.gl-mt-7{margin-top:var(--gl-spacing-scale-7)}.gl-mt-auto{margin-top:auto}.gl-line-clamp-1{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;overflow:hidden}.\!gl-block{display:block!important}.gl-block{display:block}.gl-inline-block{display:inline-block}.gl-flex{display:flex}.gl-inline-flex{display:inline-flex}.gl-table{display:table}.gl-grid{display:grid}.gl-hidden{display:none}.\!gl-h-full{height:100%!important}.gl-h-0{height:var(--gl-spacing-scale-0)}.gl-h-1{height:var(--gl-spacing-scale-1)}.gl-h-4{height:var(--gl-spacing-scale-4)}.gl-h-5{height:var(--gl-spacing-scale-5)}.gl-h-6{height:var(--gl-spacing-scale-6)}.gl-h-8{height:var(--gl-spacing-scale-8)}.gl-h-auto{height:auto}.gl-h-full{height:100%}.gl-max-h-13{max-height:var(--gl-spacing-scale-13)}.gl-max-h-31{max-height:var(--gl-spacing-scale-31)}.gl-max-h-48{max-height:var(--gl-spacing-scale-48)}.gl-max-h-full{max-height:100%}.gl-min-h-8{min-height:var(--gl-spacing-scale-8)}.gl-min-h-full{min-height:100%}.\!gl-w-31{width:var(--gl-spacing-scale-31)!important}.\!gl-w-auto{width:auto!important}.\!gl-w-full{width:100%!important}.gl-w-0{width:var(--gl-spacing-scale-0)}.gl-w-1\/2{width:50%}.gl-w-1\/3{width:33.333333%}.gl-w-2\/3{width:66.666667%}.gl-w-3\/4{width:75%}.gl-w-4\/10{width:40%}.gl-w-5{width:var(--gl-spacing-scale-5)}.gl-w-6{width:var(--gl-spacing-scale-6)}.gl-w-8{width:var(--gl-spacing-scale-8)}.gl-w-9{width:var(--gl-spacing-scale-9)}.gl-w-auto{width:auto}.gl-w-full{width:100%}.gl-min-w-0{min-width:var(--gl-spacing-scale-0)}.gl-min-w-5{min-width:var(--gl-spacing-scale-5)}.gl-min-w-9{min-width:var(--gl-spacing-scale-9)}.gl-min-w-\[33\%\]{min-width:33%}.\!gl-max-w-26{max-width:var(--gl-spacing-scale-26)!important}.\!gl-max-w-48{max-width:var(--gl-spacing-scale-48)!important}.gl-max-w-1\/2{max-width:50%}.gl-max-w-17\/20{max-width:85%}.gl-max-w-80{max-width:var(--gl-spacing-scale-80)}.gl-max-w-full{max-width:100%}.gl-flex-1{flex:1 1 0%}.gl-flex-auto{flex:1 1 auto}.gl-flex-shrink-0,.gl-shrink-0{flex-shrink:0}.gl-flex-grow,.gl-grow{flex-grow:1}.gl-basis-0{flex-basis:var(--gl-spacing-scale-0)}.-gl-translate-y-full{--tw-translate-y:-100%;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))}.\!gl-cursor-default{cursor:default!important}.\!gl-cursor-grabbing{cursor:grabbing!important}.\!gl-cursor-not-allowed{cursor:not-allowed!important}.\!gl-cursor-text{cursor:text!important}.gl-cursor-default{cursor:default}.gl-cursor-grab{cursor:grab}.gl-cursor-not-allowed{cursor:not-allowed}.gl-cursor-pointer{cursor:pointer}.gl-cursor-text{cursor:text}.gl-list-none{list-style-type:none}.gl-flex-row{flex-direction:row}.gl-flex-col{flex-direction:column}.gl-flex-wrap{flex-wrap:wrap}.gl-flex-nowrap{flex-wrap:nowrap}.gl-content-center{align-content:center}.gl-items-start{align-items:flex-start}.gl-items-end{align-items:flex-end}.gl-items-center{align-items:center}.gl-items-baseline{align-items:baseline}.\!gl-justify-start{justify-content:flex-start!important}.gl-justify-start{justify-content:flex-start}.gl-justify-end{justify-content:flex-end}.gl-justify-center{justify-content:center}.gl-justify-between{justify-content:space-between}.gl-gap-1{gap:var(--gl-spacing-scale-1)}.gl-gap-2{gap:var(--gl-spacing-scale-2)}.gl-gap-3{gap:var(--gl-spacing-scale-3)}.gl-gap-4{gap:var(--gl-spacing-scale-4)}.gl-gap-5{gap:var(--gl-spacing-scale-5)}.gl-gap-6{gap:var(--gl-spacing-scale-6)}.gl-gap-x-2{column-gap:var(--gl-spacing-scale-2)}.gl-gap-x-3{column-gap:var(--gl-spacing-scale-3)}.gl-gap-x-4{column-gap:var(--gl-spacing-scale-4)}.gl-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(var(--gl-spacing-scale-1)*var(--tw-space-y-reverse));margin-top:calc(var(--gl-spacing-scale-1)*(1 - var(--tw-space-y-reverse)))}.gl-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(var(--gl-spacing-scale-2)*var(--tw-space-y-reverse));margin-top:calc(var(--gl-spacing-scale-2)*(1 - var(--tw-space-y-reverse)))}.gl-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(var(--gl-spacing-scale-3)*var(--tw-space-y-reverse));margin-top:calc(var(--gl-spacing-scale-3)*(1 - var(--tw-space-y-reverse)))}.gl-self-start{align-self:flex-start}.gl-self-center{align-self:center}.gl-overflow-auto{overflow:auto}.gl-overflow-hidden{overflow:hidden}.gl-overflow-visible{overflow:visible}.gl-overflow-y-auto{overflow-y:auto}.gl-overflow-x-hidden{overflow-x:hidden}.gl-overflow-y-scroll{overflow-y:scroll}.gl-overscroll-contain{overscroll-behavior:contain}.gl-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\!gl-text-ellipsis{text-overflow:ellipsis!important}.gl-text-ellipsis{text-overflow:ellipsis}.gl-whitespace-normal{white-space:normal}.gl-whitespace-nowrap{white-space:nowrap}.gl-whitespace-pre-wrap{white-space:pre-wrap}.gl-text-pretty{text-wrap:pretty}.gl-break-words{overflow-wrap:break-word}.gl-break-all{word-break:break-all}.\!gl-rounded-control{border-radius:var(--gl-control-border-radius)!important}.\!gl-rounded-full{border-radius:var(--gl-border-radius-full)!important}.\!gl-rounded-none{border-radius:var(--gl-border-radius-none)!important}.gl-rounded-\[0\.75rem\]{border-radius:.75rem}.gl-rounded-\[1rem\]{border-radius:1rem}.gl-rounded-base{border-radius:.25rem}.gl-rounded-default{border-radius:var(--gl-border-radius-default)}.gl-rounded-full{border-radius:var(--gl-border-radius-full)}.gl-rounded-lg{border-radius:var(--gl-border-radius-lg)}.\!gl-rounded-t-none{border-top-left-radius:var(--gl-border-radius-none)!important;border-top-right-radius:var(--gl-border-radius-none)!important}.gl-rounded-t-default{border-top-left-radius:var(--gl-border-radius-default);border-top-right-radius:var(--gl-border-radius-default)}.gl-rounded-bl-\[12px\]{border-bottom-left-radius:12px}.gl-rounded-bl-none{border-bottom-left-radius:var(--gl-border-radius-none)}.gl-rounded-br-\[18px\]{border-bottom-right-radius:18px}.gl-rounded-br-none{border-bottom-right-radius:var(--gl-border-radius-none)}.gl-rounded-tl-\[12px\]{border-top-left-radius:12px}.gl-rounded-tr-\[12px\]{border-top-right-radius:12px}.gl-rounded-tr-none{border-top-right-radius:var(--gl-border-radius-none)}.\!gl-border-0{border-width:0!important}.gl-border{border-width:1px}.gl-border-0{border-width:0}.\!gl-border-b-0{border-bottom-width:0!important}.gl-border-b,.gl-border-b-1{border-bottom-width:1px}.gl-border-r{border-right-width:1px}.gl-border-t,.gl-border-t-1{border-top-width:1px}.gl-border-t-2{border-top-width:2px}.gl-border-solid{border-style:solid}.gl-border-dashed{border-style:dashed}.gl-border-none{border-style:none}.gl-border-default{border-color:var(--gl-border-color-default)}.gl-border-gray-100{border-color:var(--gray-100)}.gl-border-gray-500{border-color:var(--gray-500)}.gl-border-red-500{border-color:var(--red-500)}.gl-border-strong{border-color:var(--gl-border-color-strong)}.gl-border-subtle{border-color:var(--gl-border-color-subtle)}.gl-border-b-dropdown-divider{border-bottom-color:var(--gl-dropdown-divider-color)}.gl-border-t-dropdown-divider{border-top-color:var(--gl-dropdown-divider-color)}.\!gl-bg-transparent{background-color:initial!important}.gl-bg-blue-100{background-color:var(--blue-100)}.gl-bg-blue-50{background-color:var(--blue-50)}.gl-bg-default{background-color:var(--gl-background-color-default)}.gl-bg-dropdown{background-color:var(--gl-dropdown-background-color)}.gl-bg-feedback-danger{background-color:var(--gl-feedback-danger-background-color)}.gl-bg-feedback-info{background-color:var(--gl-feedback-info-background-color)}.gl-bg-gray-10{background-color:var(--gray-10)}.gl-bg-gray-50{background-color:var(--gray-50)}.gl-bg-inherit{background-color:inherit}.gl-bg-status-neutral{background-color:var(--gl-status-neutral-background-color)}.gl-bg-strong{background-color:var(--gl-background-color-strong)}.gl-bg-subtle{background-color:var(--gl-background-color-subtle)}.gl-bg-transparent{background-color:initial}.gl-bg-white{background-color:var(--white)}.gl-fill-current{fill:currentColor}.gl-fill-icon-danger{fill:var(--gl-icon-color-danger)}.gl-fill-icon-default{fill:var(--gl-icon-color-default)}.gl-fill-icon-disabled{fill:var(--gl-icon-color-disabled)}.gl-fill-icon-info{fill:var(--gl-icon-color-info)}.gl-fill-icon-link{fill:var(--gl-icon-color-link)}.gl-fill-icon-strong{fill:var(--gl-icon-color-strong)}.gl-fill-icon-subtle{fill:var(--gl-icon-color-subtle)}.gl-fill-icon-success{fill:var(--gl-icon-color-success)}.gl-fill-icon-warning{fill:var(--gl-icon-color-warning)}.\!gl-p-0{padding:var(--gl-spacing-scale-0)!important}.\!gl-p-2{padding:var(--gl-spacing-scale-2)!important}.\!gl-p-4{padding:var(--gl-spacing-scale-4)!important}.\!gl-p-5{padding:var(--gl-spacing-scale-5)!important}.gl-p-0{padding:var(--gl-spacing-scale-0)}.gl-p-1{padding:var(--gl-spacing-scale-1)}.gl-p-2{padding:var(--gl-spacing-scale-2)}.gl-p-3{padding:var(--gl-spacing-scale-3)}.gl-p-4{padding:var(--gl-spacing-scale-4)}.gl-p-5{padding:var(--gl-spacing-scale-5)}.gl-p-6{padding:var(--gl-spacing-scale-6)}.\!gl-px-2{padding-left:var(--gl-spacing-scale-2)!important;padding-right:var(--gl-spacing-scale-2)!important}.\!gl-px-3{padding-left:var(--gl-spacing-scale-3)!important;padding-right:var(--gl-spacing-scale-3)!important}.\!gl-py-2{padding-bottom:var(--gl-spacing-scale-2)!important;padding-top:var(--gl-spacing-scale-2)!important}.\!gl-py-4{padding-bottom:var(--gl-spacing-scale-4)!important;padding-top:var(--gl-spacing-scale-4)!important}.gl-px-0{padding-left:var(--gl-spacing-scale-0);padding-right:var(--gl-spacing-scale-0)}.gl-px-1{padding-left:var(--gl-spacing-scale-1);padding-right:var(--gl-spacing-scale-1)}.gl-px-2{padding-left:var(--gl-spacing-scale-2);padding-right:var(--gl-spacing-scale-2)}.gl-px-3{padding-left:var(--gl-spacing-scale-3);padding-right:var(--gl-spacing-scale-3)}.gl-px-4{padding-left:var(--gl-spacing-scale-4);padding-right:var(--gl-spacing-scale-4)}.gl-px-5{padding-left:var(--gl-spacing-scale-5);padding-right:var(--gl-spacing-scale-5)}.gl-py-1{padding-bottom:var(--gl-spacing-scale-1);padding-top:var(--gl-spacing-scale-1)}.gl-py-2{padding-bottom:var(--gl-spacing-scale-2);padding-top:var(--gl-spacing-scale-2)}.gl-py-3{padding-bottom:var(--gl-spacing-scale-3);padding-top:var(--gl-spacing-scale-3)}.gl-py-4{padding-bottom:var(--gl-spacing-scale-4);padding-top:var(--gl-spacing-scale-4)}.gl-py-5{padding-bottom:var(--gl-spacing-scale-5);padding-top:var(--gl-spacing-scale-5)}.gl-py-6{padding-bottom:var(--gl-spacing-scale-6);padding-top:var(--gl-spacing-scale-6)}.\!gl-pl-9{padding-left:var(--gl-spacing-scale-9)!important}.\!gl-pr-7{padding-right:var(--gl-spacing-scale-7)!important}.\!gl-pr-9{padding-right:var(--gl-spacing-scale-9)!important}.\!gl-pt-0{padding-top:var(--gl-spacing-scale-0)!important}.gl-pb-2{padding-bottom:var(--gl-spacing-scale-2)}.gl-pb-3{padding-bottom:var(--gl-spacing-scale-3)}.gl-pb-4{padding-bottom:var(--gl-spacing-scale-4)}.gl-pl-0{padding-left:var(--gl-spacing-scale-0)}.gl-pl-2{padding-left:var(--gl-spacing-scale-2)}.gl-pl-3{padding-left:var(--gl-spacing-scale-3)}.gl-pl-4{padding-left:var(--gl-spacing-scale-4)}.gl-pl-5{padding-left:var(--gl-spacing-scale-5)}.gl-pl-6{padding-left:var(--gl-spacing-scale-6)}.gl-pl-7{padding-left:var(--gl-spacing-scale-7)}.gl-pr-2{padding-right:var(--gl-spacing-scale-2)}.gl-pr-3{padding-right:var(--gl-spacing-scale-3)}.gl-pr-5{padding-right:var(--gl-spacing-scale-5)}.gl-pr-6{padding-right:var(--gl-spacing-scale-6)}.gl-pr-7{padding-right:var(--gl-spacing-scale-7)}.gl-pr-8{padding-right:var(--gl-spacing-scale-8)}.gl-pt-1{padding-top:var(--gl-spacing-scale-1)}.gl-pt-2{padding-top:var(--gl-spacing-scale-2)}.gl-pt-3{padding-top:var(--gl-spacing-scale-3)}.gl-pt-4{padding-top:var(--gl-spacing-scale-4)}.gl-pt-6{padding-top:var(--gl-spacing-scale-6)}.gl-pt-8{padding-top:var(--gl-spacing-scale-8)}.\!gl-text-left{text-align:left!important}.gl-text-left{text-align:left}.gl-text-center{text-align:center}.gl-text-right{text-align:right}.gl-align-top{vertical-align:top}.gl-align-middle{vertical-align:middle}.gl-align-bottom{vertical-align:bottom}.\!gl-align-text-bottom{vertical-align:text-bottom!important}.gl-font-monospace{font-family:var(--gl-font-family-monospace)}.gl-font-regular{font-family:var(--gl-font-family-regular)}.\!gl-text-sm{font-size:var(--gl-font-size-sm)!important}.gl-text-\[0\.75rem\]{font-size:.75rem}.gl-text-\[0\.875rem\]{font-size:.875rem}.gl-text-\[3\.5rem\]{font-size:3.5rem}.gl-text-base{font-size:var(--gl-font-size-base)}.gl-text-lg{font-size:var(--gl-font-size-lg)}.gl-text-md{font-size:var(--gl-font-size-md)}.gl-text-size-h-display{font-size:1.75rem}.gl-text-size-h2{font-size:1.1875rem}.gl-text-sm{font-size:var(--gl-font-size-sm)}.gl-text-xs{font-size:var(--gl-font-size-xs)}.gl-font-bold{font-weight:var(--gl-font-weight-bold)}.gl-font-normal{font-weight:var(--gl-font-weight-normal)}.gl-font-semibold{font-weight:var(--gl-font-weight-semibold)}.gl-lowercase{text-transform:lowercase}.gl-italic{font-style:italic}.\!gl-leading-20{line-height:var(--gl-line-height-20)!important}.gl-leading-0{line-height:0}.gl-leading-1{line-height:1}.gl-leading-20{line-height:var(--gl-line-height-20)}.gl-leading-36{line-height:var(--gl-line-height-36)}.gl-leading-normal{line-height:1rem}.\!gl-text-subtle{color:var(--gl-text-color-subtle)!important}.\!gl-text-success{color:var(--gl-text-color-success)!important}.gl-text-blue-100{color:var(--blue-100)}.gl-text-blue-500{color:var(--blue-500)}.gl-text-blue-600{color:var(--blue-600)}.gl-text-blue-700{color:var(--blue-700)}.gl-text-blue-900{color:var(--blue-900)}.gl-text-danger{color:var(--gl-text-color-danger)}.gl-text-default{color:var(--gl-text-color-default)}.gl-text-feedback-info{color:var(--gl-feedback-info-text-color)}.gl-text-gray-500{color:var(--gray-500)}.gl-text-gray-700{color:var(--gray-700)}.gl-text-gray-900{color:var(--gray-900)}.gl-text-green-500{color:var(--green-500)}.gl-text-green-600{color:var(--green-600)}.gl-text-heading{color:var(--gl-text-color-heading)}.gl-text-inherit{color:inherit}.gl-text-neutral-0{color:var(--gl-color-neutral-0)}.gl-text-neutral-950{color:var(--gl-color-neutral-950)}.gl-text-orange-500{color:var(--orange-500)}.gl-text-red-500{color:var(--red-500)}.gl-text-red-600{color:var(--red-600)}.gl-text-strong{color:var(--gl-text-color-strong)}.gl-text-subtle{color:var(--gl-text-color-subtle)}.gl-text-success{color:var(--gl-text-color-success)}.\!gl-opacity-0{opacity:var(--gl-opacity-0)!important}.gl-opacity-0{opacity:var(--gl-opacity-0)}.gl-opacity-10{opacity:var(--gl-opacity-10)}.gl-opacity-7{opacity:var(--gl-opacity-7)}.gl-opacity-\[50\%\]{opacity:50%}.\!gl-shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.gl-shadow-md{--tw-shadow:var(--gl-shadow-md);--tw-shadow-colored:var(--gl-shadow-md)}.gl-shadow-md,.gl-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.gl-shadow-sm{--tw-shadow:var(--gl-shadow-sm);--tw-shadow-colored:var(--gl-shadow-sm)}.gl-outline-none{outline:2px solid #0000;outline-offset:2px}.gl-drop-shadow-md{--tw-drop-shadow:drop-shadow(0 0 0.5px var(--gl-shadow-color-default,#05050629)) drop-shadow(0 0.5px 1px var(--gl-shadow-color-default,#05050629)) drop-shadow(0 1px 3px var(--gl-shadow-color-default,#05050629));filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.gl-transition-all{transition-duration:.2s;transition-property:all;transition-timing-function:ease}.gl-transition-opacity{transition-duration:.2s;transition-property:opacity;transition-timing-function:ease}.gl-font-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}.gl-break-anywhere{overflow-wrap:anywhere;word-break:normal}.gl-border-b-solid{border-bottom-style:solid}.gl-border-t-solid{border-top-style:solid}.gl-focus{box-shadow: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){.forced-colors\:gl-border{border-color:var(--gl-border-color-default);border-style:solid}}.focus-within\:\!gl-shadow-none:focus-within{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.hover\:\!gl-cursor-not-allowed:hover{cursor:not-allowed!important}.hover\:gl-cursor-pointer:hover{cursor:pointer}.hover\:gl-no-underline:hover{text-decoration-line:none}.focus\:\!gl-focus-inset:focus{box-shadow:inset 0 0 0 2px var(--gl-focus-ring-outer-color),inset 0 0 0 3px var(--gl-focus-ring-inner-color),inset 0 0 0 1px var(--gl-focus-ring-inner-color)!important;outline:none!important}@media (min-width:576px){.\@sm\:gl-block{display:block}.\@sm\:gl-flex-nowrap{flex-wrap:nowrap}.\@sm\:gl-gap-3{gap:var(--gl-spacing-scale-3)}.sm\:gl-mt-3{margin-top:var(--gl-spacing-scale-3)}.sm\:\!gl-hidden{display:none!important}.sm\:gl-max-w-1\/2{max-width:50%}}@media (forced-colors:active){.forced-colors\:gl-border{border-width:1px}.forced-colors\:\!gl-border-b-0{border-bottom-width:0!important}.forced-colors\:\!gl-border-l-0{border-left-width:0!important}.forced-colors\:\!gl-border-r-0{border-right-width:0!important}.forced-colors\:gl-border-none{border-style:none}}.\[\&\>button\]\:focus-within\:\!gl-shadow-none:focus-within>button{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}
|
|
2
2
|
/*# sourceMappingURL=tailwind.css.map */
|
package/dist/tailwind.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["tailwind.css"],"names":[],"mappings":"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","file":"tailwind.css","sourcesContent":["@tailwind base;\n@tailwind components;\n@tailwind utilities;\n"]}
|
|
1
|
+
{"version":3,"sources":["tailwind.css"],"names":[],"mappings":"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","file":"tailwind.css","sourcesContent":["@tailwind base;\n@tailwind components;\n@tailwind utilities;\n"]}
|
package/dist/utils/date.js
CHANGED
|
@@ -36,6 +36,18 @@ const formatEnglishDate = (date, formatter) => {
|
|
|
36
36
|
const formattedParts = parts.map(part => part.type === 'day' ? `${part.value}${suffix}` : part.value);
|
|
37
37
|
return formattedParts.join('');
|
|
38
38
|
};
|
|
39
|
+
function compareDates(dateA, dateB) {
|
|
40
|
+
return new Date(dateA) - new Date(dateB);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Strips the time portion from a date, returning a midnight ISO string for use as a grouping key.
|
|
44
|
+
function getDateKey(date) {
|
|
45
|
+
return `${new Date(date).toISOString().split('T')[0]}T00:00:00`;
|
|
46
|
+
}
|
|
47
|
+
function isOlderThanDays(dateStr, days) {
|
|
48
|
+
const MS_PER_DAY = 24 * 60 * 60 * 1000;
|
|
49
|
+
return Date.now() - new Date(dateStr).getTime() > days * MS_PER_DAY;
|
|
50
|
+
}
|
|
39
51
|
function formatLocalizedDate(dateStr, preferredLocale) {
|
|
40
52
|
var _validLocale$;
|
|
41
53
|
if (!isValidDateString(dateStr)) {
|
|
@@ -47,4 +59,4 @@ function formatLocalizedDate(dateStr, preferredLocale) {
|
|
|
47
59
|
return (_validLocale$ = validLocale[0]) !== null && _validLocale$ !== void 0 && _validLocale$.startsWith('en') ? formatEnglishDate(date, formatter) : formatter.format(date);
|
|
48
60
|
}
|
|
49
61
|
|
|
50
|
-
export { formatLocalizedDate, getOrdinalSuffix };
|
|
62
|
+
export { compareDates, formatLocalizedDate, getDateKey, getOrdinalSuffix, isOlderThanDays };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gitlab/duo-ui",
|
|
3
|
-
"version": "15.
|
|
3
|
+
"version": "15.19.1",
|
|
4
4
|
"description": "Duo UI Components",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
"@gitlab/fonts": "^1.3.1",
|
|
106
106
|
"@gitlab/stylelint-config": "6.3.0",
|
|
107
107
|
"@gitlab/svgs": "^3.157.0",
|
|
108
|
-
"@gitlab/ui": "^
|
|
108
|
+
"@gitlab/ui": "^131.0.0",
|
|
109
109
|
"@jest/test-sequencer": "^29.7.0",
|
|
110
110
|
"@rollup/plugin-commonjs": "^11.1.0",
|
|
111
111
|
"@rollup/plugin-node-resolve": "^7.1.3",
|
|
@@ -66,6 +66,7 @@ export default {
|
|
|
66
66
|
* @property {string} text - Display text for button/dropdown
|
|
67
67
|
* @property {boolean} primary - Mark as primary action (exactly one required)
|
|
68
68
|
* @property {boolean} disabled - Disable this option (passed through to GitLab UI)
|
|
69
|
+
* @property {string} [secondaryText] - Secondary text shown below the option (e.g., reason for disabled state)
|
|
69
70
|
*/
|
|
70
71
|
approvalOptions: {
|
|
71
72
|
type: Array,
|
|
@@ -99,6 +100,9 @@ export default {
|
|
|
99
100
|
if (option.primary === true && option.disabled === true) {
|
|
100
101
|
return false;
|
|
101
102
|
}
|
|
103
|
+
if ('secondaryText' in option && typeof option.secondaryText !== 'string') {
|
|
104
|
+
return false;
|
|
105
|
+
}
|
|
102
106
|
return true;
|
|
103
107
|
});
|
|
104
108
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<script>
|
|
2
|
-
import { GlModal, GlButton,
|
|
2
|
+
import { GlModal, GlButton, GlButtonGroup, GlDisclosureDropdown } from '@gitlab/ui';
|
|
3
3
|
import { translate } from '../../../../../utils/i18n';
|
|
4
4
|
import { acceptedApproveToolPayloads } from '../../../../chat/constants';
|
|
5
5
|
|
|
@@ -25,8 +25,8 @@ export default {
|
|
|
25
25
|
components: {
|
|
26
26
|
GlModal,
|
|
27
27
|
GlButton,
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
GlButtonGroup,
|
|
29
|
+
GlDisclosureDropdown,
|
|
30
30
|
},
|
|
31
31
|
props: {
|
|
32
32
|
/**
|
|
@@ -88,6 +88,20 @@ export default {
|
|
|
88
88
|
showSplitButton() {
|
|
89
89
|
return this.safeApprovalOptions.length > 1;
|
|
90
90
|
},
|
|
91
|
+
approvalDropdownItems() {
|
|
92
|
+
return this.additionalApprovalOptions.map((option) => ({
|
|
93
|
+
text: option.text,
|
|
94
|
+
...(option.secondaryText ? { secondaryText: option.secondaryText } : {}),
|
|
95
|
+
extraAttrs: {
|
|
96
|
+
...(option.disabled ? { disabled: true } : {}),
|
|
97
|
+
'data-testid': 'approve-dropdown-item',
|
|
98
|
+
},
|
|
99
|
+
action: () => {
|
|
100
|
+
this.$refs.approvalDropdown?.close();
|
|
101
|
+
this.handleDropdownSelection(option);
|
|
102
|
+
},
|
|
103
|
+
}));
|
|
104
|
+
},
|
|
91
105
|
denyAction() {
|
|
92
106
|
return {
|
|
93
107
|
text: this.$options.i18n.DENY_TEXT,
|
|
@@ -190,26 +204,37 @@ export default {
|
|
|
190
204
|
</gl-button>
|
|
191
205
|
|
|
192
206
|
<!-- Split button when multiple options available -->
|
|
193
|
-
<gl-dropdown
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
207
|
+
<gl-button-group v-if="showSplitButton" data-testid="approve-dropdown">
|
|
208
|
+
<gl-button
|
|
209
|
+
variant="confirm"
|
|
210
|
+
size="small"
|
|
211
|
+
:disabled="primaryApprovalOption.disabled"
|
|
212
|
+
data-testid="approve-dropdown-primary"
|
|
213
|
+
@click="handlePrimaryApprove"
|
|
214
|
+
>
|
|
215
|
+
{{ primaryApprovalOption.text }}
|
|
216
|
+
</gl-button>
|
|
217
|
+
<gl-disclosure-dropdown
|
|
218
|
+
ref="approvalDropdown"
|
|
219
|
+
variant="confirm"
|
|
220
|
+
category="primary"
|
|
221
|
+
size="small"
|
|
222
|
+
no-caret
|
|
223
|
+
icon="chevron-down"
|
|
224
|
+
toggle-text="More approval options"
|
|
225
|
+
text-sr-only
|
|
226
|
+
placement="bottom-end"
|
|
227
|
+
:disabled="primaryApprovalOption.disabled"
|
|
228
|
+
:items="approvalDropdownItems"
|
|
209
229
|
>
|
|
210
|
-
{
|
|
211
|
-
|
|
212
|
-
|
|
230
|
+
<template #list-item="{ item }">
|
|
231
|
+
<span>{{ item.text }}</span>
|
|
232
|
+
<span v-if="item.secondaryText" class="gl-block gl-text-sm gl-text-subtle">
|
|
233
|
+
{{ item.secondaryText }}
|
|
234
|
+
</span>
|
|
235
|
+
</template>
|
|
236
|
+
</gl-disclosure-dropdown>
|
|
237
|
+
</gl-button-group>
|
|
213
238
|
|
|
214
239
|
<!-- Simple button when only one option -->
|
|
215
240
|
<gl-button
|
package/src/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.vue
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<script>
|
|
2
2
|
import {
|
|
3
3
|
GlButton,
|
|
4
|
+
GlButtonGroup,
|
|
4
5
|
GlFormTextarea,
|
|
5
6
|
GlFormGroup,
|
|
6
7
|
GlCard,
|
|
7
8
|
GlBadge,
|
|
8
|
-
|
|
9
|
-
GlDropdownItem,
|
|
9
|
+
GlDisclosureDropdown,
|
|
10
10
|
} from '@gitlab/ui';
|
|
11
11
|
import { startCase, capitalize } from 'lodash-es';
|
|
12
12
|
import { translate } from '../../../../utils/i18n';
|
|
@@ -79,12 +79,12 @@ export default {
|
|
|
79
79
|
name: 'MessageToolApproval',
|
|
80
80
|
components: {
|
|
81
81
|
GlButton,
|
|
82
|
+
GlButtonGroup,
|
|
82
83
|
GlCard,
|
|
83
84
|
GlFormTextarea,
|
|
84
85
|
GlFormGroup,
|
|
85
86
|
GlBadge,
|
|
86
|
-
|
|
87
|
-
GlDropdownItem,
|
|
87
|
+
GlDisclosureDropdown,
|
|
88
88
|
CreateCommitToolParams,
|
|
89
89
|
DefaultToolParams,
|
|
90
90
|
RunCommandToolParams,
|
|
@@ -115,6 +115,7 @@ export default {
|
|
|
115
115
|
* @property {string} text - The display text for the option
|
|
116
116
|
* @property {boolean} primary - Whether this is the primary option (appears as main button)
|
|
117
117
|
* @property {boolean} disabled - Whether this option is disabled
|
|
118
|
+
* @property {string} [secondaryText] - Secondary text shown below the option (e.g., reason for disabled state)
|
|
118
119
|
*/
|
|
119
120
|
approvalOptions: {
|
|
120
121
|
type: Array,
|
|
@@ -129,9 +130,17 @@ export default {
|
|
|
129
130
|
validator(value) {
|
|
130
131
|
if (!Array.isArray(value)) return false;
|
|
131
132
|
// Must have at least one approve-tool-once option
|
|
132
|
-
|
|
133
|
-
(option) => option.type === acceptedApproveToolPayloads.APPROVE_TOOL_ONCE
|
|
134
|
-
)
|
|
133
|
+
if (
|
|
134
|
+
!value.some((option) => option.type === acceptedApproveToolPayloads.APPROVE_TOOL_ONCE)
|
|
135
|
+
) {
|
|
136
|
+
return false;
|
|
137
|
+
}
|
|
138
|
+
return value.every((option) => {
|
|
139
|
+
if ('secondaryText' in option && typeof option.secondaryText !== 'string') {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
return true;
|
|
143
|
+
});
|
|
135
144
|
},
|
|
136
145
|
},
|
|
137
146
|
},
|
|
@@ -231,6 +240,20 @@ export default {
|
|
|
231
240
|
showSplitButton() {
|
|
232
241
|
return this.safeApprovalOptions.length > 1;
|
|
233
242
|
},
|
|
243
|
+
approvalDropdownItems() {
|
|
244
|
+
return this.additionalApprovalOptions.map((option) => ({
|
|
245
|
+
text: option.text,
|
|
246
|
+
...(option.secondaryText ? { secondaryText: option.secondaryText } : {}),
|
|
247
|
+
extraAttrs: {
|
|
248
|
+
...(option.disabled ? { disabled: true } : {}),
|
|
249
|
+
'data-testid': 'approve-dropdown-item',
|
|
250
|
+
},
|
|
251
|
+
action: () => {
|
|
252
|
+
this.$refs.approvalDropdown?.close();
|
|
253
|
+
this.handleDropdownSelection(option);
|
|
254
|
+
},
|
|
255
|
+
}));
|
|
256
|
+
},
|
|
234
257
|
},
|
|
235
258
|
watch: {
|
|
236
259
|
approvalStatus(newVal) {
|
|
@@ -333,27 +356,38 @@ export default {
|
|
|
333
356
|
<template v-if="!isApproved" #footer>
|
|
334
357
|
<div v-if="!showDenialReason" class="gl-flex gl-gap-2">
|
|
335
358
|
<!-- Split button when multiple approval options available -->
|
|
336
|
-
<gl-dropdown
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
<gl-dropdown
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
359
|
+
<gl-button-group v-if="showSplitButton" data-testid="approve-dropdown">
|
|
360
|
+
<gl-button
|
|
361
|
+
variant="confirm"
|
|
362
|
+
size="small"
|
|
363
|
+
:disabled="buttonsDisabled || primaryApprovalOption.disabled"
|
|
364
|
+
:loading="isApproving"
|
|
365
|
+
data-testid="approve-dropdown-primary"
|
|
366
|
+
@click="handlePrimaryApprove"
|
|
367
|
+
>
|
|
368
|
+
{{ primaryApprovalOption.text }}
|
|
369
|
+
</gl-button>
|
|
370
|
+
<gl-disclosure-dropdown
|
|
371
|
+
ref="approvalDropdown"
|
|
372
|
+
variant="confirm"
|
|
373
|
+
category="primary"
|
|
374
|
+
size="small"
|
|
375
|
+
no-caret
|
|
376
|
+
icon="chevron-down"
|
|
377
|
+
toggle-text="More approval options"
|
|
378
|
+
text-sr-only
|
|
379
|
+
placement="bottom-end"
|
|
380
|
+
:disabled="buttonsDisabled || primaryApprovalOption.disabled"
|
|
381
|
+
:items="approvalDropdownItems"
|
|
353
382
|
>
|
|
354
|
-
{
|
|
355
|
-
|
|
356
|
-
|
|
383
|
+
<template #list-item="{ item }">
|
|
384
|
+
<span>{{ item.text }}</span>
|
|
385
|
+
<span v-if="item.secondaryText" class="gl-block gl-text-sm gl-text-subtle">
|
|
386
|
+
{{ item.secondaryText }}
|
|
387
|
+
</span>
|
|
388
|
+
</template>
|
|
389
|
+
</gl-disclosure-dropdown>
|
|
390
|
+
</gl-button-group>
|
|
357
391
|
|
|
358
392
|
<!-- Simple button when only one approval option -->
|
|
359
393
|
<gl-button
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
import { GlIcon } from '@gitlab/ui';
|
|
3
|
+
import { translate } from '../../../../utils/i18n';
|
|
4
|
+
|
|
5
|
+
const i18n = {
|
|
6
|
+
EXPIRED_CHAT_LABEL: translate('DuoChat.expiredChatLabel', 'Expired chat'),
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
name: 'DuoChatThreadTitle',
|
|
11
|
+
|
|
12
|
+
components: {
|
|
13
|
+
GlIcon,
|
|
14
|
+
},
|
|
15
|
+
|
|
16
|
+
props: {
|
|
17
|
+
text: {
|
|
18
|
+
type: String,
|
|
19
|
+
required: true,
|
|
20
|
+
},
|
|
21
|
+
expired: {
|
|
22
|
+
type: Boolean,
|
|
23
|
+
required: false,
|
|
24
|
+
default: false,
|
|
25
|
+
},
|
|
26
|
+
showExpiredIcon: {
|
|
27
|
+
type: Boolean,
|
|
28
|
+
required: false,
|
|
29
|
+
default: false,
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
i18n,
|
|
34
|
+
};
|
|
35
|
+
</script>
|
|
36
|
+
|
|
37
|
+
<template>
|
|
38
|
+
<span class="gl-line-clamp-1" :class="expired ? 'gl-text-subtle' : 'gl-text-default'">
|
|
39
|
+
<gl-icon
|
|
40
|
+
v-if="expired && showExpiredIcon"
|
|
41
|
+
name="archive"
|
|
42
|
+
:size="12"
|
|
43
|
+
:aria-label="$options.i18n.EXPIRED_CHAT_LABEL"
|
|
44
|
+
data-testid="expired-thread-icon"
|
|
45
|
+
/>
|
|
46
|
+
{{ text }}
|
|
47
|
+
</span>
|
|
48
|
+
</template>
|
|
@@ -2,10 +2,16 @@
|
|
|
2
2
|
import { GlButton, GlAvatar, GlSearchBoxByType } from '@gitlab/ui';
|
|
3
3
|
import { debounce } from 'lodash-es';
|
|
4
4
|
import { sprintf, translate } from '../../../../utils/i18n';
|
|
5
|
-
import {
|
|
6
|
-
|
|
5
|
+
import {
|
|
6
|
+
compareDates,
|
|
7
|
+
formatLocalizedDate,
|
|
8
|
+
getDateKey,
|
|
9
|
+
isOlderThanDays,
|
|
10
|
+
} from '../../../../utils/date';
|
|
11
|
+
import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS, EXPIRY_DAYS } from '../../constants';
|
|
7
12
|
import DuoChatThreadsEmpty from './duo_chat_threads_empty.vue';
|
|
8
13
|
import DuoChatThreadsSkeleton from './duo_chat_threads_skeleton_loader.vue';
|
|
14
|
+
import DuoChatThreadTitle from './duo_chat_thread_title.vue';
|
|
9
15
|
|
|
10
16
|
const i18n = {
|
|
11
17
|
CHAT_HISTORY_INFO: translate(
|
|
@@ -29,6 +35,7 @@ export default {
|
|
|
29
35
|
GlSearchBoxByType,
|
|
30
36
|
DuoChatThreadsEmpty,
|
|
31
37
|
DuoChatThreadsSkeleton,
|
|
38
|
+
DuoChatThreadTitle,
|
|
32
39
|
},
|
|
33
40
|
|
|
34
41
|
props: {
|
|
@@ -71,12 +78,12 @@ export default {
|
|
|
71
78
|
}
|
|
72
79
|
|
|
73
80
|
return this.filteredThreads
|
|
74
|
-
.
|
|
75
|
-
.sort((a, b) =>
|
|
76
|
-
.sort((a, b) =>
|
|
81
|
+
.map((thread) => ({ ...thread, expired: this.isExpired(thread) }))
|
|
82
|
+
.sort((a, b) => compareDates(b.updatedAt, a.updatedAt))
|
|
83
|
+
.sort((a, b) => compareDates(b.lastUpdatedAt, a.lastUpdatedAt))
|
|
77
84
|
.reduce((grouped, thread) => {
|
|
78
85
|
const dateField = thread.updatedAt || thread.lastUpdatedAt;
|
|
79
|
-
const dateKey =
|
|
86
|
+
const dateKey = getDateKey(dateField);
|
|
80
87
|
return {
|
|
81
88
|
...grouped,
|
|
82
89
|
[dateKey]: [...(grouped[dateKey] || []), thread],
|
|
@@ -123,12 +130,8 @@ export default {
|
|
|
123
130
|
onClose() {
|
|
124
131
|
this.$emit('close');
|
|
125
132
|
},
|
|
126
|
-
|
|
127
|
-
return
|
|
128
|
-
},
|
|
129
|
-
getDateKey(date) {
|
|
130
|
-
// add 00:00:00 to the date string to make it at midnight local time
|
|
131
|
-
return `${new Date(date).toISOString().split('T')[0]}T00:00:00`;
|
|
133
|
+
isExpired({ lastUpdatedAt, updatedAt }) {
|
|
134
|
+
return isOlderThanDays(lastUpdatedAt || updatedAt, EXPIRY_DAYS);
|
|
132
135
|
},
|
|
133
136
|
sprintf,
|
|
134
137
|
},
|
|
@@ -168,6 +171,7 @@ export default {
|
|
|
168
171
|
v-for="thread in threadsForDate"
|
|
169
172
|
:key="thread.id"
|
|
170
173
|
class="history-item gl-w-full gl-text-base"
|
|
174
|
+
:class="{ 'gl-opacity-7': thread.expired }"
|
|
171
175
|
>
|
|
172
176
|
<gl-button
|
|
173
177
|
class="history-item-name gl-w-full gl-text-base"
|
|
@@ -187,18 +191,25 @@ export default {
|
|
|
187
191
|
/>
|
|
188
192
|
|
|
189
193
|
<div class="gl-grow gl-whitespace-normal gl-break-all">
|
|
190
|
-
<
|
|
194
|
+
<duo-chat-thread-title
|
|
191
195
|
v-if="!thread.title && !thread.goal"
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
196
|
+
:text="$options.i18n.UNTITLED_CHAT_TITLE"
|
|
197
|
+
:expired="thread.expired"
|
|
198
|
+
show-expired-icon
|
|
199
|
+
/>
|
|
195
200
|
<template v-else>
|
|
196
|
-
<
|
|
197
|
-
thread.title
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
201
|
+
<duo-chat-thread-title
|
|
202
|
+
v-if="thread.title"
|
|
203
|
+
:text="thread.title"
|
|
204
|
+
:expired="thread.expired"
|
|
205
|
+
show-expired-icon
|
|
206
|
+
/>
|
|
207
|
+
<duo-chat-thread-title
|
|
208
|
+
v-if="thread.goal"
|
|
209
|
+
:text="thread.goal"
|
|
210
|
+
:expired="thread.expired"
|
|
211
|
+
:show-expired-icon="!thread.title"
|
|
212
|
+
/>
|
|
202
213
|
</template>
|
|
203
214
|
<span v-if="thread.agentName" class="gl-line-clamp-1 gl-text-sm gl-text-subtle">
|
|
204
215
|
{{ thread.agentName }}
|
|
@@ -724,6 +724,18 @@ export const INCLUDE_SLASH_COMMAND = {
|
|
|
724
724
|
description: 'Include additional context in the conversation.',
|
|
725
725
|
};
|
|
726
726
|
|
|
727
|
+
export const FIXED_NOW = new Date('2025-02-01T12:00:00Z').getTime();
|
|
728
|
+
|
|
729
|
+
export const withFixedDate = (fixedTimestamp) => (story) => {
|
|
730
|
+
const originalNow = Date.now;
|
|
731
|
+
Date.now = () => fixedTimestamp;
|
|
732
|
+
const result = story();
|
|
733
|
+
result.destroyed = function destroyed() {
|
|
734
|
+
Date.now = originalNow;
|
|
735
|
+
};
|
|
736
|
+
return result;
|
|
737
|
+
};
|
|
738
|
+
|
|
727
739
|
export const THREADLIST = [
|
|
728
740
|
{
|
|
729
741
|
__typename: 'AiConversationsThread',
|
package/src/utils/date.js
CHANGED
|
@@ -46,6 +46,20 @@ const formatEnglishDate = (date, formatter) => {
|
|
|
46
46
|
return formattedParts.join('');
|
|
47
47
|
};
|
|
48
48
|
|
|
49
|
+
export function compareDates(dateA, dateB) {
|
|
50
|
+
return new Date(dateA) - new Date(dateB);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Strips the time portion from a date, returning a midnight ISO string for use as a grouping key.
|
|
54
|
+
export function getDateKey(date) {
|
|
55
|
+
return `${new Date(date).toISOString().split('T')[0]}T00:00:00`;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function isOlderThanDays(dateStr, days) {
|
|
59
|
+
const MS_PER_DAY = 24 * 60 * 60 * 1000;
|
|
60
|
+
return Date.now() - new Date(dateStr).getTime() > days * MS_PER_DAY;
|
|
61
|
+
}
|
|
62
|
+
|
|
49
63
|
export function formatLocalizedDate(dateStr, preferredLocale) {
|
|
50
64
|
if (!isValidDateString(dateStr)) {
|
|
51
65
|
return 'Invalid Date';
|
package/translations.js
CHANGED
|
@@ -117,6 +117,7 @@ export default {
|
|
|
117
117
|
'Clock icon with circular arrow, indicating chat history or time-based functionality',
|
|
118
118
|
'DuoChat.emptyHistoryCopy': 'Your previous chats will appear here.',
|
|
119
119
|
'DuoChat.emptyHistoryTitle': 'See your chat history',
|
|
120
|
+
'DuoChat.expiredChatLabel': 'Expired chat',
|
|
120
121
|
'DuoChat.loadingThreads': 'Loading chat history...',
|
|
121
122
|
'DuoChat.noSearchResults': 'No results found',
|
|
122
123
|
'DuoChat.openChatLabel': 'Open chat: %{title}',
|