@gitlab/duo-ui 10.17.4 → 10.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # [10.18.0](https://gitlab.com/gitlab-org/duo-ui/compare/v10.17.4...v10.18.0) (2025-08-26)
2
+
3
+
4
+ ### Features
5
+
6
+ * add prompt character count ([3e7977e](https://gitlab.com/gitlab-org/duo-ui/commit/3e7977e7dd19f7f8cf9ad47f6dc76181516d0a0e))
7
+
1
8
  ## [10.17.4](https://gitlab.com/gitlab-org/duo-ui/compare/v10.17.3...v10.17.4) (2025-08-26)
2
9
 
3
10
 
@@ -1,8 +1,8 @@
1
1
  import throttle from 'lodash/throttle';
2
2
  import VueResizable from 'vue-resizable';
3
3
  import { GlButton, GlAlert, GlFormInputGroup, GlFormTextarea, GlForm, GlExperimentBadge, GlCard, GlDropdownItem, GlSafeHtmlDirective } from '@gitlab/ui';
4
- import { translate } from '../../utils/i18n';
5
- import { badgeTypes, badgeTypeValidator, CHAT_RESET_MESSAGE, CHAT_INCLUDE_MESSAGE, MESSAGE_MODEL_ROLES, CHAT_BASE_COMMANDS } from '../chat/constants';
4
+ import { translate, sprintf, translatePlural } from '@gitlab/ui/dist/utils/i18n';
5
+ import { badgeTypes, badgeTypeValidator, MAX_PROMPT_LENGTH, PROMPT_LENGTH_WARNING, CHAT_RESET_MESSAGE, CHAT_INCLUDE_MESSAGE, MESSAGE_MODEL_ROLES, CHAT_BASE_COMMANDS } from '../chat/constants';
6
6
  import { VIEW_TYPES } from '../chat/components/duo_chat_header/constants';
7
7
  import DuoChatLoader from '../chat/components/duo_chat_loader/duo_chat_loader';
8
8
  import DuoChatPredefinedPrompts from '../chat/components/duo_chat_predefined_prompts/duo_chat_predefined_prompts';
@@ -275,10 +275,14 @@ var script = {
275
275
  scrolledToBottom: true,
276
276
  activeCommandIndex: 0,
277
277
  canSubmit: true,
278
+ hasValidPrompt: true,
278
279
  compositionJustEnded: false,
279
280
  contextItemsMenuIsOpen: false,
280
281
  contextItemMenuRef: null,
281
- currentView: this.multiThreadedView
282
+ currentView: this.multiThreadedView,
283
+ maxPromptLength: MAX_PROMPT_LENGTH,
284
+ maxPromptLengthWarning: PROMPT_LENGTH_WARNING,
285
+ promptLengthWarningCount: MAX_PROMPT_LENGTH - PROMPT_LENGTH_WARNING
282
286
  };
283
287
  },
284
288
  computed: {
@@ -388,6 +392,9 @@ var script = {
388
392
  if (shouldShow) {
389
393
  this.onShowSlashCommands();
390
394
  }
395
+ },
396
+ prompt(newPrompt) {
397
+ this.hasValidPrompt = (newPrompt === null || newPrompt === void 0 ? void 0 : newPrompt.length) < MAX_PROMPT_LENGTH + 1;
391
398
  }
392
399
  },
393
400
  created() {
@@ -449,7 +456,6 @@ var script = {
449
456
 
450
457
  // Always clear the prompt after sending, regardless of the command type
451
458
  await this.setPromptAndFocus();
452
-
453
459
  // Check if it was a special command using the stored value (before clearing)
454
460
  if (!CHAT_BASE_COMMANDS.includes(lowerCasePrompt)) {
455
461
  // Wait for all reactive updates to complete before setting canSubmit
@@ -477,10 +483,8 @@ var script = {
477
483
  (_this$$refs$anchor = this.$refs.anchor) === null || _this$$refs$anchor === void 0 ? void 0 : (_this$$refs$anchor$sc = _this$$refs$anchor.scrollIntoView) === null || _this$$refs$anchor$sc === void 0 ? void 0 : _this$$refs$anchor$sc.call(_this$$refs$anchor);
478
484
  },
479
485
  focusChatInput() {
480
- var _this$$refs$prompt, _this$$refs$prompt$$e;
481
- // This method is also called directly by consumers of this component
482
- // https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/dae2d4669ab4da327921492a2962beae8a05c290/webviews/vue2/gitlab_duo_chat/src/App.vue#L109
483
- (_this$$refs$prompt = this.$refs.prompt) === null || _this$$refs$prompt === void 0 ? void 0 : (_this$$refs$prompt$$e = _this$$refs$prompt.$el) === null || _this$$refs$prompt$$e === void 0 ? void 0 : _this$$refs$prompt$$e.focus();
486
+ var _this$$refs$prompt, _this$$refs$prompt$$e, _this$$refs$prompt$$e2, _this$$refs$prompt$$e3;
487
+ (_this$$refs$prompt = this.$refs.prompt) === null || _this$$refs$prompt === void 0 ? void 0 : (_this$$refs$prompt$$e = _this$$refs$prompt.$el) === null || _this$$refs$prompt$$e === void 0 ? void 0 : (_this$$refs$prompt$$e2 = _this$$refs$prompt$$e.querySelector) === null || _this$$refs$prompt$$e2 === void 0 ? void 0 : (_this$$refs$prompt$$e3 = _this$$refs$prompt$$e2.call(_this$$refs$prompt$$e, 'textarea')) === null || _this$$refs$prompt$$e3 === void 0 ? void 0 : _this$$refs$prompt$$e3.focus();
484
488
  },
485
489
  onTrackFeedback(event) {
486
490
  /**
@@ -651,6 +655,16 @@ var script = {
651
655
  var _document$execCommand2, _document2;
652
656
  event.preventDefault();
653
657
  (_document$execCommand2 = (_document2 = document).execCommand) === null || _document$execCommand2 === void 0 ? void 0 : _document$execCommand2.call(_document2, 'redo');
658
+ },
659
+ remainingCharacterCountMessage(count) {
660
+ return sprintf(translatePlural('AgenticDuoChat.remainingCharacterCountMessage', '%{count} character remaining.', '%{count} characters remaining.')(count), {
661
+ count
662
+ });
663
+ },
664
+ overLimitCharacterCountMessage(count) {
665
+ return sprintf(translatePlural('AgenticDuoChat.overLimitCharacterCountMessage', '%{count} character over limit.', '%{count} characters over limit.')(count), {
666
+ count
667
+ });
654
668
  }
655
669
  },
656
670
  i18n
@@ -666,7 +680,22 @@ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=
666
680
  },attrs:{"width":_vm.shouldRenderResizable ? _vm.dimensions.width : null,"height":_vm.shouldRenderResizable ? _vm.dimensions.height : null,"max-width":_vm.shouldRenderResizable ? _vm.dimensions.maxWidth : null,"max-height":_vm.shouldRenderResizable ? _vm.dimensions.maxHeight : null,"min-width":_vm.shouldRenderResizable ? _vm.dimensions.minWidth : null,"left":_vm.shouldRenderResizable ? _vm.dimensions.left : null,"top":_vm.shouldRenderResizable ? _vm.dimensions.top : null,"fit-parent":true,"min-height":_vm.shouldRenderResizable ? _vm.dimensions.minHeight : null,"active":_vm.shouldRenderResizable ? ['l', 't', 'lt'] : null},on:{"resize:end":_vm.updateSize}},[(!_vm.isHidden)?_c('aside',{staticClass:"markdown-code-block duo-chat gl-bottom-0 gl-flex gl-max-h-full gl-flex-col",class:{
667
681
  'resizable-content': _vm.shouldRenderResizable,
668
682
  'duo-chat-drawer': !_vm.shouldRenderResizable,
669
- },attrs:{"id":"chat-component","role":"complementary","data-testid":"chat-component"}},[(_vm.showHeader)?_c('duo-chat-header',{ref:"header",attrs:{"active-thread-id":_vm.activeThreadId,"title":_vm.isMultithreaded && _vm.currentView === 'list' ? _vm.$options.i18n.CHAT_HISTORY_TITLE : _vm.title,"subtitle":_vm.activeThreadTitleForView,"error":_vm.error,"is-multithreaded":_vm.isMultithreaded,"current-view":_vm.currentView,"should-render-resizable":_vm.shouldRenderResizable,"badge-type":_vm.isMultithreaded ? null : _vm.badgeType},on:{"go-back":_vm.onGoBack,"new-chat":_vm.onNewChat,"close":_vm.hideChat},scopedSlots:_vm._u([{key:"subheader",fn:function(){return [_vm._t("subheader")]},proxy:true}],null,true)}):_vm._e(),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-flex-1 gl-flex-grow gl-flex-col gl-overflow-y-auto gl-overscroll-contain gl-bg-inherit",attrs:{"data-testid":"chat-history"},on:{"scroll":_vm.handleScrollingThrottled}},[(_vm.shouldShowThreadList)?_c('duo-chat-threads',{attrs:{"threads":_vm.threadList,"preferred-locale":_vm.preferredLocale},on:{"new-chat":_vm.onNewChat,"select-thread":_vm.onSelectThread,"delete-thread":_vm.onDeleteThread,"close":_vm.hideChat}}):_c('transition-group',{staticClass:"duo-chat-history gl-mt-auto gl-p-5",attrs:{"mode":"out-in","tag":"section","name":"message"}},[_vm._l((_vm.conversations),function(conversation,index){return _c('duo-chat-conversation',{key:("conversation-" + index),attrs:{"enable-code-insertion":_vm.enableCodeInsertion,"messages":conversation,"show-delimiter":index > 0,"with-feedback":_vm.withFeedback,"is-tool-approval-processing":_vm.isToolApprovalProcessing,"working-directory":_vm.workingDirectory},on:{"track-feedback":_vm.onTrackFeedback,"insert-code-snippet":_vm.onInsertCodeSnippet,"copy-code-snippet":_vm.onCopyCodeSnippet,"copy-message":_vm.onCopyMessage,"get-context-item-content":_vm.onGetContextItemContent,"approve-tool":_vm.onApproveToolCall,"deny-tool":_vm.onDenyToolCall,"open-file-path":_vm.onOpenFilePath}})}),_vm._v(" "),(!_vm.hasMessages && !_vm.isLoading)?[_c('div',{key:"empty-state-message",staticClass:"duo-chat-message gl-rounded-bl-none gl-leading-20 gl-text-gray-900 gl-break-anywhere",attrs:{"data-testid":"gl-duo-chat-empty-state"}},[(_vm.emptyStateTitle)?_c('p',{staticClass:"gl-m-0",attrs:{"data-testid":"gl-duo-chat-empty-state-title"}},[_vm._v("\n "+_vm._s(_vm.emptyStateTitle)+"\n ")]):_vm._e(),_vm._v(" "),_c('duo-chat-predefined-prompts',{key:"predefined-prompts",attrs:{"prompts":_vm.predefinedPrompts},on:{"click":_vm.sendPredefinedPrompt}})],1)]:_vm._e(),_vm._v(" "),(_vm.isLoading)?_c('duo-chat-loader',{key:"loader",attrs:{"tool-name":_vm.toolName}}):_vm._e(),_vm._v(" "),_c('div',{key:"anchor",ref:"anchor",staticClass:"scroll-anchor"})],2)],1),_vm._v(" "),(_vm.isChatAvailable && !_vm.shouldShowThreadList)?_c('footer',{staticClass:"duo-chat-drawer-footer gl-relative gl-z-2 gl-shrink-0 gl-border-0 gl-bg-default gl-pb-3",class:{ 'duo-chat-drawer-body-scrim-on-footer': !_vm.scrolledToBottom },attrs:{"data-testid":"chat-footer"}},[_c('gl-form',{attrs:{"data-testid":"chat-prompt-form"},on:{"submit":function($event){$event.stopPropagation();$event.preventDefault();return _vm.sendChatPrompt.apply(null, arguments)}}},[_c('div',{staticClass:"gl-relative gl-max-w-full"},[_vm._t("context-items-menu",null,{"isOpen":_vm.contextItemsMenuIsOpen,"onClose":_vm.closeContextItemsMenuOpen,"setRef":_vm.setContextItemsMenuRef,"focusPrompt":_vm.focusChatInput})],2),_vm._v(" "),_c('gl-form-input-group',{scopedSlots:_vm._u([{key:"append",fn:function(){return [(_vm.canSubmit)?_c('gl-button',{staticClass:"!gl-absolute gl-bottom-2 gl-right-2 !gl-rounded-full",attrs:{"icon":"paper-airplane","category":"primary","variant":"confirm","type":"submit","data-testid":"chat-prompt-submit-button","disabled":_vm.isPromptEmpty,"aria-label":_vm.$options.i18n.CHAT_SUBMIT_LABEL}}):_c('gl-button',{staticClass:"!gl-absolute gl-bottom-2 gl-right-2 !gl-rounded-full",attrs:{"icon":"stop","category":"primary","variant":"default","data-testid":"chat-prompt-cancel-button","aria-label":_vm.$options.i18n.CHAT_CANCEL_LABEL},on:{"click":_vm.cancelPrompt}})]},proxy:true}],null,false,3408770049)},[_c('div',{staticClass:"duo-chat-input gl-min-h-8 gl-max-w-full gl-grow gl-align-top",attrs:{"data-value":_vm.prompt}},[(_vm.shouldShowSlashCommands)?_c('gl-card',{ref:"commands",staticClass:"slash-commands !gl-absolute gl-w-full -gl-translate-y-full gl-list-none gl-pl-0 gl-shadow-md",attrs:{"body-class":"!gl-p-2"}},_vm._l((_vm.filteredSlashCommands),function(command,index){return _c('gl-dropdown-item',{key:command.name,class:{ 'active-command': index === _vm.activeCommandIndex },on:{"click":function($event){return _vm.selectSlashCommand(index)}},nativeOn:{"mouseenter":function($event){_vm.activeCommandIndex = index;}}},[_c('span',{staticClass:"gl-flex gl-justify-between"},[_c('span',{staticClass:"gl-block"},[_vm._v(_vm._s(command.name))]),_vm._v(" "),_c('small',{staticClass:"gl-pl-3 gl-text-right gl-italic gl-text-subtle"},[_vm._v(_vm._s(command.description))])])])}),1):_vm._e(),_vm._v(" "),_c('gl-form-textarea',{ref:"prompt",staticClass:"gl-absolute !gl-h-full gl-rounded-br-none gl-rounded-tr-none !gl-bg-transparent !gl-py-4 !gl-shadow-none",class:{ 'gl-truncate': !_vm.prompt },attrs:{"disabled":!_vm.canSubmit,"data-testid":"chat-prompt-input","placeholder":_vm.inputPlaceholder,"autofocus":""},on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.ctrlKey){ return null; }if($event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.handleUndo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.metaKey){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey){ return null; }return _vm.handleUndo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.ctrlKey){ return null; }if(!$event.shiftKey){ return null; }if($event.altKey||$event.metaKey){ return null; }return _vm.handleRedo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.metaKey){ return null; }if(!$event.shiftKey){ return null; }if($event.ctrlKey||$event.altKey){ return null; }return _vm.handleRedo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"y",undefined,$event.key,undefined)){ return null; }if(!$event.ctrlKey){ return null; }if($event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.handleRedo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"y",undefined,$event.key,undefined)){ return null; }if(!$event.metaKey){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey){ return null; }return _vm.handleRedo.apply(null, arguments)}],"compositionend":_vm.compositionEnd},nativeOn:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();},"keyup":function($event){return _vm.onInputKeyup.apply(null, arguments)}},model:{value:(_vm.prompt),callback:function ($$v) {_vm.prompt=$$v;},expression:"prompt"}})],1)])],1),_vm._v(" "),_vm._t("footer-controls"),_vm._v(" "),_c('p',{staticClass:"gl-mb-0 gl-mt-3 gl-px-4 gl-text-sm gl-text-secondary"},[_vm._v("\n "+_vm._s(_vm.$options.i18n.CHAT_DISCLAMER)+"\n ")])],2):_vm._e()],1):_vm._e()])};
683
+ },attrs:{"id":"chat-component","role":"complementary","data-testid":"chat-component"}},[(_vm.showHeader)?_c('duo-chat-header',{ref:"header",attrs:{"active-thread-id":_vm.activeThreadId,"title":_vm.isMultithreaded && _vm.currentView === 'list' ? _vm.$options.i18n.CHAT_HISTORY_TITLE : _vm.title,"subtitle":_vm.activeThreadTitleForView,"error":_vm.error,"is-multithreaded":_vm.isMultithreaded,"current-view":_vm.currentView,"should-render-resizable":_vm.shouldRenderResizable,"badge-type":_vm.isMultithreaded ? null : _vm.badgeType},on:{"go-back":_vm.onGoBack,"new-chat":_vm.onNewChat,"close":_vm.hideChat},scopedSlots:_vm._u([{key:"subheader",fn:function(){return [_vm._t("subheader")]},proxy:true}],null,true)}):_vm._e(),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-flex-1 gl-flex-grow gl-flex-col gl-overflow-y-auto gl-overscroll-contain gl-bg-inherit",attrs:{"data-testid":"chat-history"},on:{"scroll":_vm.handleScrollingThrottled}},[(_vm.shouldShowThreadList)?_c('duo-chat-threads',{attrs:{"threads":_vm.threadList,"preferred-locale":_vm.preferredLocale},on:{"new-chat":_vm.onNewChat,"select-thread":_vm.onSelectThread,"delete-thread":_vm.onDeleteThread,"close":_vm.hideChat}}):_c('transition-group',{staticClass:"duo-chat-history gl-mt-auto gl-p-5",attrs:{"mode":"out-in","tag":"section","name":"message"}},[_vm._l((_vm.conversations),function(conversation,index){return _c('duo-chat-conversation',{key:("conversation-" + index),attrs:{"enable-code-insertion":_vm.enableCodeInsertion,"messages":conversation,"show-delimiter":index > 0,"with-feedback":_vm.withFeedback,"is-tool-approval-processing":_vm.isToolApprovalProcessing,"working-directory":_vm.workingDirectory},on:{"track-feedback":_vm.onTrackFeedback,"insert-code-snippet":_vm.onInsertCodeSnippet,"copy-code-snippet":_vm.onCopyCodeSnippet,"copy-message":_vm.onCopyMessage,"get-context-item-content":_vm.onGetContextItemContent,"approve-tool":_vm.onApproveToolCall,"deny-tool":_vm.onDenyToolCall,"open-file-path":_vm.onOpenFilePath}})}),_vm._v(" "),(!_vm.hasMessages && !_vm.isLoading)?[_c('div',{key:"empty-state-message",staticClass:"duo-chat-message gl-rounded-bl-none gl-leading-20 gl-text-gray-900 gl-break-anywhere",attrs:{"data-testid":"gl-duo-chat-empty-state"}},[(_vm.emptyStateTitle)?_c('p',{staticClass:"gl-m-0",attrs:{"data-testid":"gl-duo-chat-empty-state-title"}},[_vm._v("\n "+_vm._s(_vm.emptyStateTitle)+"\n ")]):_vm._e(),_vm._v(" "),_c('duo-chat-predefined-prompts',{key:"predefined-prompts",attrs:{"prompts":_vm.predefinedPrompts},on:{"click":_vm.sendPredefinedPrompt}})],1)]:_vm._e(),_vm._v(" "),(_vm.isLoading)?_c('duo-chat-loader',{key:"loader",attrs:{"tool-name":_vm.toolName}}):_vm._e(),_vm._v(" "),_c('div',{key:"anchor",ref:"anchor",staticClass:"scroll-anchor"})],2)],1),_vm._v(" "),(_vm.isChatAvailable && !_vm.shouldShowThreadList)?_c('footer',{staticClass:"duo-chat-drawer-footer gl-relative gl-z-2 gl-shrink-0 gl-border-0 gl-bg-default gl-pb-3",class:{ 'duo-chat-drawer-body-scrim-on-footer': !_vm.scrolledToBottom },attrs:{"data-testid":"chat-footer"}},[_c('gl-form',{attrs:{"data-testid":"chat-prompt-form"},on:{"submit":function($event){$event.stopPropagation();$event.preventDefault();return _vm.sendChatPrompt.apply(null, arguments)}}},[_c('div',{staticClass:"gl-relative gl-max-w-full"},[_vm._t("context-items-menu",null,{"isOpen":_vm.contextItemsMenuIsOpen,"onClose":_vm.closeContextItemsMenuOpen,"setRef":_vm.setContextItemsMenuRef,"focusPrompt":_vm.focusChatInput})],2),_vm._v(" "),_c('gl-form-input-group',{scopedSlots:_vm._u([{key:"append",fn:function(){return [(_vm.canSubmit)?_c('gl-button',{staticClass:"!gl-absolute gl-bottom-2 gl-right-2 !gl-rounded-full",attrs:{"icon":"paper-airplane","category":"primary","variant":"confirm","type":"submit","disabled":_vm.isPromptEmpty || !_vm.hasValidPrompt,"data-testid":"chat-prompt-submit-button","aria-label":_vm.$options.i18n.CHAT_SUBMIT_LABEL}}):_c('gl-button',{staticClass:"!gl-absolute gl-bottom-2 gl-right-2 !gl-rounded-full",attrs:{"icon":"stop","category":"primary","variant":"default","data-testid":"chat-prompt-cancel-button","aria-label":_vm.$options.i18n.CHAT_CANCEL_LABEL},on:{"click":_vm.cancelPrompt}})]},proxy:true}],null,false,2030360392)},[_c('div',{staticClass:"duo-chat-input gl-min-h-8 gl-max-w-full gl-grow gl-align-top",attrs:{"data-value":_vm.prompt}},[(_vm.shouldShowSlashCommands)?_c('gl-card',{ref:"commands",staticClass:"slash-commands !gl-absolute gl-w-full -gl-translate-y-full gl-list-none gl-pl-0 gl-shadow-md",attrs:{"body-class":"!gl-p-2"}},_vm._l((_vm.filteredSlashCommands),function(command,index){return _c('gl-dropdown-item',{key:command.name,class:{ 'active-command': index === _vm.activeCommandIndex },on:{"click":function($event){return _vm.selectSlashCommand(index)}},nativeOn:{"mouseenter":function($event){_vm.activeCommandIndex = index;}}},[_c('span',{staticClass:"gl-flex gl-justify-between"},[_c('span',{staticClass:"gl-block"},[_vm._v(_vm._s(command.name))]),_vm._v(" "),_c('small',{staticClass:"gl-pl-3 gl-text-right gl-italic gl-text-subtle"},[_vm._v(_vm._s(command.description))])])])}),1):_vm._e(),_vm._v(" "),_c('gl-form-textarea',{ref:"prompt",attrs:{"disabled":!_vm.canSubmit,"data-testid":"chat-prompt-input","placeholder":_vm.inputPlaceholder,"character-count-limit":_vm.maxPromptLength,"textarea-classes":[
684
+ 'gl-absolute',
685
+ '!gl-h-full',
686
+ 'gl-rounded-br-none',
687
+ 'gl-rounded-tr-none',
688
+ '!gl-bg-transparent',
689
+ '!gl-py-4',
690
+ '!gl-shadow-none',
691
+ 'form-control',
692
+ 'gl-form-input',
693
+ 'gl-form-textarea',
694
+ { 'gl-truncate': !_vm.prompt } ],"aria-label":"Chat prompt input","autofocus":""},on:{"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.ctrlKey){ return null; }if($event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.handleUndo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.metaKey){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey){ return null; }return _vm.handleUndo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.ctrlKey){ return null; }if(!$event.shiftKey){ return null; }if($event.altKey||$event.metaKey){ return null; }return _vm.handleRedo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"z",undefined,$event.key,undefined)){ return null; }if(!$event.metaKey){ return null; }if(!$event.shiftKey){ return null; }if($event.ctrlKey||$event.altKey){ return null; }return _vm.handleRedo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"y",undefined,$event.key,undefined)){ return null; }if(!$event.ctrlKey){ return null; }if($event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.handleRedo.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"y",undefined,$event.key,undefined)){ return null; }if(!$event.metaKey){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey){ return null; }return _vm.handleRedo.apply(null, arguments)}],"compositionend":_vm.compositionEnd},nativeOn:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();},"keyup":function($event){return _vm.onInputKeyup.apply(null, arguments)}},scopedSlots:_vm._u([{key:"remaining-character-count-text",fn:function(ref){
695
+ var count = ref.count;
696
+ return [(count <= _vm.promptLengthWarningCount)?_c('span',{staticClass:"gl-absolute gl-bottom-[-25px] gl-right-px gl-pr-3"},[_vm._v("\n "+_vm._s(_vm.remainingCharacterCountMessage(count))+"\n ")]):_vm._e()]}},{key:"character-count-over-limit-text",fn:function(ref){
697
+ var count = ref.count;
698
+ return [_c('span',{staticClass:"gl-absolute gl-bottom-[-25px] gl-right-px gl-pr-3"},[_vm._v(_vm._s(_vm.overLimitCharacterCountMessage(count)))])]}}],null,false,578626568),model:{value:(_vm.prompt),callback:function ($$v) {_vm.prompt=$$v;},expression:"prompt"}})],1)])],1),_vm._v(" "),_vm._t("footer-controls"),_vm._v(" "),_c('p',{staticClass:"gl-mb-0 gl-mt-3 gl-px-4 gl-text-sm gl-text-secondary",class:{ 'gl-mt-6 sm:gl-mt-3 sm:gl-max-w-1/2': _vm.prompt.length >= _vm.maxPromptLengthWarning }},[_vm._v("\n "+_vm._s(_vm.$options.i18n.CHAT_DISCLAMER)+"\n ")])],2):_vm._e()],1):_vm._e()])};
670
699
  var __vue_staticRenderFns__ = [];
671
700
 
672
701
  /* style */
@@ -30,4 +30,9 @@ const SELECTED_CONTEXT_ITEMS_DEFAULT_COLLAPSED = true;
30
30
  const badgeTypes = ['experiment', 'beta', null];
31
31
  const badgeTypeValidator = value => badgeTypes.includes(value);
32
32
 
33
- export { CHAT_BASE_COMMANDS, CHAT_CLEAR_MESSAGE, CHAT_INCLUDE_MESSAGE, CHAT_NEW_MESSAGE, CHAT_RESET_MESSAGE, DOCUMENTATION_SOURCE_TYPES, LOADING_TRANSITION_DURATION, MESSAGE_MODEL_ROLES, SELECTED_CONTEXT_ITEMS_DEFAULT_COLLAPSED, badgeTypeValidator, badgeTypes };
33
+ // This value of 16384 is based on the value hardcoded in IDE. This is currently hard limit from the backend.
34
+ // https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/blob/main/packages/webview_duo_workflow_panel/src/app/pages/new/components/duo_workflow_prompt.vue?ref_type=heads#L135
35
+ const MAX_PROMPT_LENGTH = 16384;
36
+ const PROMPT_LENGTH_WARNING = MAX_PROMPT_LENGTH - 100;
37
+
38
+ export { CHAT_BASE_COMMANDS, CHAT_CLEAR_MESSAGE, CHAT_INCLUDE_MESSAGE, CHAT_NEW_MESSAGE, CHAT_RESET_MESSAGE, DOCUMENTATION_SOURCE_TYPES, LOADING_TRANSITION_DURATION, MAX_PROMPT_LENGTH, MESSAGE_MODEL_ROLES, PROMPT_LENGTH_WARNING, SELECTED_CONTEXT_ITEMS_DEFAULT_COLLAPSED, badgeTypeValidator, badgeTypes };
@@ -1,2 +1,2 @@
1
- @charset "UTF-8";.resizable-content{--tw-shadow:0 0 2px var(--gl-shadow-color-default,#05050629),0 0 2px var(--gl-shadow-color-default,#05050629),0 4px 12px var(--gl-shadow-color-default,#05050629);--tw-shadow-colored:0 0 2px var(--tw-shadow-color),0 0 2px var(--tw-shadow-color),0 4px 12px var(--tw-shadow-color);background:var(--gl-background-color-default);border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);font-size:.875rem;height:100%;overflow-y:auto;width:100%}.recents-wrapper .resizable-content{margin-top:0}.resizable-content{display:flex;flex-direction:column;line-height:1rem}.resizable-component .resizable-l,.resizable-component .resizable-t{background-color:initial;border-radius:3px;transition:background-color .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.resizable-component .resizable-l,.resizable-component .resizable-t{transition-delay:0ms!important;transition-duration:.01ms!important}}.resizable-component .resizable-l:hover,.resizable-component .resizable-t:hover{background-color:var(--gl-color-blue-200)}.resizable-component .resizable-t{height:4px!important;left:50%!important;top:2px!important;transform:translateX(-50%);width:95%!important}.resizable-component .resizable-l{height:95%!important;left:2px!important;top:50%!important;transform:translateY(-50%);width:4px!important}.duo-chat{font-family:var(--default-regular-font,"GitLab Sans"),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";z-index:999}.duo-chat .message-enter-active,.duo-chat .message-leave-active{transition:all .5s ease}.duo-chat .message-enter,.duo-chat .message-leave-to{opacity:0;transform:translateY(10px)}.duo-chat .duo-chat-loader.message-leave,.duo-chat .duo-chat-loader.message-leave-to{transition:none}.duo-chat .duo-chat-drawer-body-scrim-on-footer:before{background:linear-gradient(180deg,#fbfafd00,#fbfafd)}.duo-chat-drawer{--tw-shadow:0 0 2px var(--gl-shadow-color-default,#05050629),0 0 2px var(--gl-shadow-color-default,#05050629),0 4px 12px var(--gl-shadow-color-default,#05050629);--tw-shadow-colored:0 0 2px var(--tw-shadow-color),0 0 2px var(--tw-shadow-color),0 4px 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);font-size:.875rem;height:100%;overflow-y:auto;position:fixed;right:0;transition-duration:.2s;transition-property:all;transition-timing-function:ease;width:100%}.recents-wrapper .duo-chat-drawer{margin-top:0}.duo-chat-drawer{display:flex;flex-direction:column;line-height:1rem}.duo-chat-drawer-footer{border-top:1px solid var(--gl-border-color-default);padding:1rem}.duo-chat-drawer-body-scrim-on-footer:before{--tw-translate-y:-100%;background:linear-gradient(180deg,#fbfafd00,#fbfafd);content:"";height:1rem;left:0;pointer-events:none;position:absolute;top:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:100%}.duo-chat-history{scroll-behavior:smooth}.duo-chat-history *{overflow-anchor:none}.duo-chat-history .scroll-anchor{height:1px;margin-top:-1px;overflow-anchor:auto}.duo-chat-input{background:var(--gl-control-background-color-default);border-radius:1.25rem;box-shadow:inset 0 0 0 1px var(--gl-control-border-color-default);display:flex;flex-direction:column;max-height:240px;overflow:hidden}.duo-chat-input:focus-within{box-shadow:inset 0 0 0 1px var(--gl-control-border-color-focus),0 0 0 1px var(--gl-focus-ring-inner-color),0 0 0 3px var(--gl-focus-ring-outer-color);outline:none}@media (forced-colors:active){.duo-chat-input:focus-within{outline:2px solid LinkText}}.duo-chat-input .gl-form-textarea.form-control{border-radius:1.25rem;flex:1;max-height:240px;padding-right:40px;resize:none}.duo-chat-input:after{content:attr(data-value) " ";font-family:var(--default-regular-font,"GitLab Sans"),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:.75rem 40px .75rem .75rem;visibility:hidden;word-break:break-word}.duo-chat .duo-chat-suggestion-button{border-radius:1.25rem}.slash-commands{margin-top:-.25rem}.slash-commands .active-command{background-color:var(--gl-background-color-strong,var(--gl-color-neutral-50,#ececef));border-radius:.25rem}.slash-commands .gl-dropdown-item button.dropdown-item{background-color:initial;font-size:.75rem;padding-left:.5rem;padding-right:.5rem}.slash-commands .gl-dropdown-item button.dropdown-item:hover{background-color:initial}.duo-chat-markdown{color:#28272d;font-family:var(--default-regular-font,"GitLab Sans"),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5rem}.duo-chat-markdown :first-child{margin-top:0}.duo-chat-markdown .gl-h1,.duo-chat-markdown h1{font-size:clamp(1.5rem,.8333333333rem + 1.3888888889vw,1.875rem);margin-top:2rem}.duo-chat-markdown .gl-h1,.duo-chat-markdown .gl-h2,.duo-chat-markdown h1,.duo-chat-markdown h2{color:var(--gl-text-color-heading);font-weight:600;letter-spacing:-.01em;line-height:1.25;margin-bottom:1rem}.duo-chat-markdown .gl-h2,.duo-chat-markdown h2{font-size:clamp(1.3125rem,.8680555556rem + .9259259259vw,1.5625rem);margin-top:1.5rem}.duo-chat-markdown .gl-h3,.duo-chat-markdown h3{font-size:clamp(1.125rem,.9027777778rem + .462962963vw,1.25rem);margin-top:1.5rem}.duo-chat-markdown .gl-h3,.duo-chat-markdown .gl-h4,.duo-chat-markdown h3,.duo-chat-markdown h4{color:var(--gl-text-color-heading);font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem}.duo-chat-markdown .gl-h4,.duo-chat-markdown h4{font-size:1rem;margin-top:1rem}.duo-chat-markdown .gl-h5,.duo-chat-markdown h5{font-size:.875rem}.duo-chat-markdown .gl-h5,.duo-chat-markdown .gl-h6,.duo-chat-markdown h5,.duo-chat-markdown h6{color:var(--gl-text-color-heading);font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:1rem}.duo-chat-markdown .gl-h6,.duo-chat-markdown h6{font-size:.8125rem}.duo-chat-markdown .gl-paragraph,.duo-chat-markdown p{margin-bottom:0;margin-top:0}.duo-chat-markdown .gl-paragraph+.gl-paragraph,.duo-chat-markdown .gl-paragraph+p,.duo-chat-markdown p+.gl-paragraph,.duo-chat-markdown p+p{margin-top:1rem}.duo-chat-markdown .gl-paragraph.sm,.duo-chat-markdown .sm,.duo-chat-markdown p.sm{font-size:.875rem;line-height:1.25rem}.duo-chat-markdown .monospace,.duo-chat-markdown code{font-family:var(--default-mono-font,"GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace;font-variant-ligatures:none}.duo-chat-markdown blockquote{box-shadow:inset 4px 0 0 0 #dcdcde;color:var(--gray-700,#4c4b51);margin:.5rem 0;padding-bottom:.5rem;padding-left:1.5rem;padding-top:.5rem}.duo-chat-markdown .idiff{border-radius:.25rem;display:inline-flex;padding-left:.25rem;padding-right:.25rem}.duo-chat-markdown .deletion{background-color:var(--red-100,#fdd4cd)}.duo-chat-markdown .addition{background-color:var(--green-100,#c3e6cd)}.duo-chat-markdown code{background-color:var(--gray-50,#ececef);border-radius:.25rem;color:var(--gray-950,#18171d);padding:.125rem .25rem}.duo-chat-markdown pre{border-radius:.25rem;box-shadow:inset 0 0 0 1px #dcdcde;margin-bottom:2rem;margin-top:2rem;overflow:auto;padding:.5rem .75rem}.duo-chat-markdown pre code{background-color:var(--white,#fff);border-radius:0;color:var(--gray-900,#28272d);padding:0}.duo-chat-markdown .audio-container{display:inline-flex;flex-direction:column;width:100%}.duo-chat-markdown .audio-container audio{width:100%}.duo-chat-markdown .audio-container a{margin-top:.5rem}.duo-chat-markdown .audio-container a:before{-webkit-font-smoothing:antialiased;content:"📎";margin-right:.25rem;text-rendering:auto}.duo-chat-markdown table{margin-bottom:2rem;margin-top:2rem}.duo-chat-markdown table td,.duo-chat-markdown table th{box-shadow:inset 0 -1px 0 0 #dcdcde;padding:.75rem .5rem;vertical-align:top}.duo-chat-markdown table th{box-shadow:inset 0 1px 0 0 #dcdcde,inset 0 -1px 0 0 #dcdcde;font-weight:600}.duo-chat-markdown table thead{background-color:var(--gray-50,#ececef)}.duo-chat-markdown table tr:nth-child(2n){background-color:var(--gray-10,#fbfafd)}.duo-chat-compact-markdown{font-size:.875rem}.recents-wrapper .duo-chat-compact-markdown{margin-top:0}.duo-chat-compact-markdown{line-height:1.25rem}.duo-chat-compact-markdown .gl-h1,.duo-chat-compact-markdown h1{color:var(--gl-text-color-heading);font-size:1.5rem;font-weight:600;letter-spacing:-.01em;line-height:1.25;margin-bottom:1rem;margin-top:2rem}.duo-chat-compact-markdown .gl-h2,.duo-chat-compact-markdown h2{color:var(--gl-text-color-heading);font-size:1.3125rem;font-weight:600;letter-spacing:-.01em;line-height:1.25;margin-bottom:1rem;margin-top:1.5rem}.duo-chat-compact-markdown .gl-h3,.duo-chat-compact-markdown h3{color:var(--gl-text-color-heading);font-size:1.125rem;font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:1.5rem}.duo-chat-compact-markdown .gl-h4,.duo-chat-compact-markdown h4{color:var(--gl-text-color-heading);font-size:1rem;font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:1rem}.duo-chat-compact-markdown .gl-h5,.duo-chat-compact-markdown h5{color:var(--gl-text-color-heading);font-size:.875rem;font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:1rem}.duo-chat-compact-markdown .gl-h6,.duo-chat-compact-markdown h6{color:var(--gl-text-color-heading);font-size:.8125rem;font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:1rem}.duo-chat-compact-markdown .sm{font-size:.75rem}.duo-chat-compact-markdown .monospace,.duo-chat-compact-markdown code{font-family:var(--default-mono-font,"GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace;font-variant-ligatures:none}.duo-chat-compact-markdown table td,.duo-chat-compact-markdown table th{padding-bottom:.5rem;padding-top:.5rem}.duo-chat-loader{display:flex}.duo-chat-loader .transition{transition:width .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .transition{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-enter{opacity:0}.duo-chat-loader .text-enter-active{transition:opacity .4s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .text-enter-active{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-enter-to,.duo-chat-loader .text-leave{opacity:1}.duo-chat-loader .text-leave-active{transition:opacity .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .text-leave-active{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-leave-to{opacity:0}.duo-chat-message{--gl-text-color-heading:var(--duo-chat-message-heading-color,inherit)!important;border-radius:1rem;color:var(--duo-chat-message-color,inherit)!important;position:relative}.duo-chat-message code{background-color:var(--gl-status-neutral-background-color,var(--gl-color-neutral-100,#dcdcde))}.duo-chat-message pre{border-color:var(--gl-border-color-default);border-style:solid;border-width:1px;box-shadow:none!important;color:var(--duo-chat-message-pre-color,inherit)!important;color:inherit;max-height:60vh;padding:.5rem .75rem}.duo-chat-message pre:after,.duo-chat-message pre:before{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;content:"";height:2rem;left:1px;pointer-events:none;position:absolute;width:calc(100% - 2px)}.duo-chat-message pre.scrim-top:before{--tw-rotate:-180deg;background:linear-gradient(180deg,#fbfafd00,#fbfafd);top:1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.duo-chat-message pre.scrim-bottom:after{background:linear-gradient(180deg,#fbfafd00,#fbfafd);bottom:1px}.duo-chat-message pre code{background-color:initial;font-size:.75rem;line-height:1;white-space:inherit}.duo-chat-message p:last-of-type{margin-bottom:0}.duo-chat-message copy-code,.duo-chat-message insert-code-snippet{opacity:0;position:absolute;right:.5rem;top:.5rem;transition-duration:.2s;transition-property:all;transition-timing-function:ease}.duo-chat-message copy-code [role=tooltip],.duo-chat-message insert-code-snippet [role=tooltip]{background-color:var(--gray-100,#dcdcde);border-radius:.25rem;display:none;left:0;position:absolute;top:0;width:max-content}.duo-chat-message copy-code [role=tooltip] .arrow,.duo-chat-message insert-code-snippet [role=tooltip] .arrow{background:inherit;height:.5rem;position:absolute;transform:rotate(45deg);width:.5rem}.duo-chat-message copy-code{margin-right:2.5rem}.duo-chat-message .js-markdown-code.markdown-code-block:hover copy-code,.duo-chat-message .js-markdown-code.markdown-code-block:hover copy-code:focus-within,.duo-chat-message .js-markdown-code.markdown-code-block:hover insert-code-snippet,.duo-chat-message .js-markdown-code.markdown-code-block:hover insert-code-snippet:focus-within{opacity:1}.duo-chat-message-container:not(:last-child),.message-map-item:not(:last-child){margin-bottom:.75rem}.insert-code-hidden insert-code-snippet{display:none}.insert-code-hidden copy-code{margin-right:0}.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:active,.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:focus,.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:focus:active{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.duo-chat-message-actions-enter{opacity:0;transform:translateX(-100%)}.duo-chat-message-actions-enter-active{transition:transform .3s ease-out,opacity .15s ease-out .15s}.duo-chat-message-actions-enter-to,.duo-chat-message-actions-leave{opacity:1;transform:translateX(0)}.duo-chat-message-actions-leave-active{transition:transform .2s ease-out,opacity .1s ease-out}.duo-chat-message-actions-leave-to{opacity:0;transform:translateX(-100%)}.recents-wrapper .gl-accordion-item-header .gl-button.gl-button.btn-link{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border-radius:0;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:block;font-size:.75rem;font-weight:600;padding-bottom:.25rem;padding-left:.5rem;padding-top:.25rem;text-decoration-line:none;text-transform:uppercase;width:100%}.recents-wrapper .gl-accordion-item-header>.collapse{margin-left:0}.recents-wrapper .gl-text-base{margin-top:0}
1
+ @charset "UTF-8";.resizable-content{--tw-shadow:0 0 2px var(--gl-shadow-color-default,#05050629),0 0 2px var(--gl-shadow-color-default,#05050629),0 4px 12px var(--gl-shadow-color-default,#05050629);--tw-shadow-colored:0 0 2px var(--tw-shadow-color),0 0 2px var(--tw-shadow-color),0 4px 12px var(--tw-shadow-color);background:var(--gl-background-color-default);border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);font-size:.875rem;height:100%;overflow-y:auto;width:100%}.recents-wrapper .resizable-content{margin-top:0}.resizable-content{display:flex;flex-direction:column;line-height:1rem}.resizable-component .resizable-l,.resizable-component .resizable-t{background-color:initial;border-radius:3px;transition:background-color .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.resizable-component .resizable-l,.resizable-component .resizable-t{transition-delay:0ms!important;transition-duration:.01ms!important}}.resizable-component .resizable-l:hover,.resizable-component .resizable-t:hover{background-color:var(--gl-color-blue-200)}.resizable-component .resizable-t{height:4px!important;left:50%!important;top:2px!important;transform:translateX(-50%);width:95%!important}.resizable-component .resizable-l{height:95%!important;left:2px!important;top:50%!important;transform:translateY(-50%);width:4px!important}.duo-chat{font-family:var(--default-regular-font,"GitLab Sans"),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";z-index:999}.duo-chat .message-enter-active,.duo-chat .message-leave-active{transition:all .5s ease}.duo-chat .message-enter,.duo-chat .message-leave-to{opacity:0;transform:translateY(10px)}.duo-chat .duo-chat-loader.message-leave,.duo-chat .duo-chat-loader.message-leave-to{transition:none}.duo-chat .duo-chat-drawer-body-scrim-on-footer:before{background:linear-gradient(180deg,#fbfafd00,#fbfafd)}.duo-chat-drawer{--tw-shadow:0 0 2px var(--gl-shadow-color-default,#05050629),0 0 2px var(--gl-shadow-color-default,#05050629),0 4px 12px var(--gl-shadow-color-default,#05050629);--tw-shadow-colored:0 0 2px var(--tw-shadow-color),0 0 2px var(--tw-shadow-color),0 4px 12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);font-size:.875rem;height:100%;overflow-y:auto;position:fixed;right:0;transition-duration:.2s;transition-property:all;transition-timing-function:ease;width:100%}.recents-wrapper .duo-chat-drawer{margin-top:0}.duo-chat-drawer{display:flex;flex-direction:column;line-height:1rem}.duo-chat-drawer-footer{border-top:1px solid var(--gl-border-color-default);padding:1rem}.duo-chat-drawer-body-scrim-on-footer:before{--tw-translate-y:-100%;background:linear-gradient(180deg,#fbfafd00,#fbfafd);content:"";height:1rem;left:0;pointer-events:none;position:absolute;top:0;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));width:100%}.duo-chat-history{scroll-behavior:smooth}.duo-chat-history *{overflow-anchor:none}.duo-chat-history .scroll-anchor{height:1px;margin-top:-1px;overflow-anchor:auto}.duo-chat-input{background:var(--gl-control-background-color-default);border-radius:1.25rem;box-shadow:inset 0 0 0 1px var(--gl-control-border-color-default);display:flex;flex-direction:column;max-height:240px;overflow:hidden}.duo-chat-input:focus-within{box-shadow:inset 0 0 0 1px var(--gl-control-border-color-focus),0 0 0 1px var(--gl-focus-ring-inner-color),0 0 0 3px var(--gl-focus-ring-outer-color);outline:none}@media (forced-colors:active){.duo-chat-input:focus-within{outline:2px solid LinkText}}.duo-chat-input .gl-form-textarea.form-control{border-radius:1.25rem;flex:1;max-height:240px;padding-right:40px;resize:none}.duo-chat-input:after{content:attr(data-value) " ";font-family:var(--default-regular-font,"GitLab Sans"),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";padding:.75rem 40px .75rem .75rem;visibility:hidden;word-break:break-word}.duo-chat .duo-chat-suggestion-button{border-radius:1.25rem}.slash-commands{margin-top:-.25rem}.slash-commands .active-command{background-color:var(--gl-background-color-strong,var(--gl-color-neutral-50,#ececef));border-radius:.25rem}.slash-commands .gl-dropdown-item button.dropdown-item{background-color:initial;font-size:.75rem;padding-left:.5rem;padding-right:.5rem}.slash-commands .gl-dropdown-item button.dropdown-item:hover{background-color:initial}.duo-chat-markdown{color:#3a383f;font-family:var(--default-regular-font,"GitLab Sans"),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5rem}.duo-chat-markdown :first-child{margin-top:0}.duo-chat-markdown .gl-h1,.duo-chat-markdown h1{font-size:clamp(1.5rem,.8333333333rem + 1.3888888889vw,1.875rem);margin-top:2rem}.duo-chat-markdown .gl-h1,.duo-chat-markdown .gl-h2,.duo-chat-markdown h1,.duo-chat-markdown h2{color:var(--gl-text-color-heading);font-weight:600;letter-spacing:-.01em;line-height:1.25;margin-bottom:1rem}.duo-chat-markdown .gl-h2,.duo-chat-markdown h2{font-size:clamp(1.3125rem,.8680555556rem + .9259259259vw,1.5625rem);margin-top:1.5rem}.duo-chat-markdown .gl-h3,.duo-chat-markdown h3{font-size:clamp(1.125rem,.9027777778rem + .462962963vw,1.25rem);margin-top:1.5rem}.duo-chat-markdown .gl-h3,.duo-chat-markdown .gl-h4,.duo-chat-markdown h3,.duo-chat-markdown h4{color:var(--gl-text-color-heading);font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem}.duo-chat-markdown .gl-h4,.duo-chat-markdown h4{font-size:1rem;margin-top:1rem}.duo-chat-markdown .gl-h5,.duo-chat-markdown h5{font-size:.875rem}.duo-chat-markdown .gl-h5,.duo-chat-markdown .gl-h6,.duo-chat-markdown h5,.duo-chat-markdown h6{color:var(--gl-text-color-heading);font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:1rem}.duo-chat-markdown .gl-h6,.duo-chat-markdown h6{font-size:.8125rem}.duo-chat-markdown .gl-paragraph,.duo-chat-markdown p{margin-bottom:0;margin-top:0}.duo-chat-markdown .gl-paragraph+.gl-paragraph,.duo-chat-markdown .gl-paragraph+p,.duo-chat-markdown p+.gl-paragraph,.duo-chat-markdown p+p{margin-top:1rem}.duo-chat-markdown .gl-paragraph.sm,.duo-chat-markdown .sm,.duo-chat-markdown p.sm{font-size:.875rem;line-height:1.25rem}.duo-chat-markdown .monospace,.duo-chat-markdown code{font-family:var(--default-mono-font,"GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace;font-variant-ligatures:none}.duo-chat-markdown blockquote{box-shadow:inset 4px 0 0 0 #dcdcde;color:var(--gray-700,#4c4b51);margin:.5rem 0;padding-bottom:.5rem;padding-left:1.5rem;padding-top:.5rem}.duo-chat-markdown .idiff{border-radius:.25rem;display:inline-flex;padding-left:.25rem;padding-right:.25rem}.duo-chat-markdown .deletion{background-color:var(--red-100,#fdd4cd)}.duo-chat-markdown .addition{background-color:var(--green-100,#c3e6cd)}.duo-chat-markdown code{background-color:var(--gray-50,#ececef);border-radius:.25rem;color:var(--gray-950,#18171d);padding:.125rem .25rem}.duo-chat-markdown pre{border-radius:.25rem;box-shadow:inset 0 0 0 1px #dcdcde;margin-bottom:2rem;margin-top:2rem;overflow:auto;padding:.5rem .75rem}.duo-chat-markdown pre code{background-color:var(--white,#fff);border-radius:0;color:var(--gray-900,#28272d);padding:0}.duo-chat-markdown .audio-container{display:inline-flex;flex-direction:column;width:100%}.duo-chat-markdown .audio-container audio{width:100%}.duo-chat-markdown .audio-container a{margin-top:.5rem}.duo-chat-markdown .audio-container a:before{-webkit-font-smoothing:antialiased;content:"📎";margin-right:.25rem;text-rendering:auto}.duo-chat-markdown table{margin-bottom:2rem;margin-top:2rem}.duo-chat-markdown table td,.duo-chat-markdown table th{box-shadow:inset 0 -1px 0 0 #dcdcde;padding:.75rem .5rem;vertical-align:top}.duo-chat-markdown table th{box-shadow:inset 0 1px 0 0 #dcdcde,inset 0 -1px 0 0 #dcdcde;font-weight:600}.duo-chat-markdown table thead{background-color:var(--gray-50,#ececef)}.duo-chat-markdown table tr:nth-child(2n){background-color:var(--gray-10,#fbfafd)}.duo-chat-compact-markdown{font-size:.875rem}.recents-wrapper .duo-chat-compact-markdown{margin-top:0}.duo-chat-compact-markdown{line-height:1.25rem}.duo-chat-compact-markdown .gl-h1,.duo-chat-compact-markdown h1{color:var(--gl-text-color-heading);font-size:1.5rem;font-weight:600;letter-spacing:-.01em;line-height:1.25;margin-bottom:1rem;margin-top:2rem}.duo-chat-compact-markdown .gl-h2,.duo-chat-compact-markdown h2{color:var(--gl-text-color-heading);font-size:1.3125rem;font-weight:600;letter-spacing:-.01em;line-height:1.25;margin-bottom:1rem;margin-top:1.5rem}.duo-chat-compact-markdown .gl-h3,.duo-chat-compact-markdown h3{color:var(--gl-text-color-heading);font-size:1.125rem;font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:1.5rem}.duo-chat-compact-markdown .gl-h4,.duo-chat-compact-markdown h4{color:var(--gl-text-color-heading);font-size:1rem;font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:1rem}.duo-chat-compact-markdown .gl-h5,.duo-chat-compact-markdown h5{color:var(--gl-text-color-heading);font-size:.875rem;font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:1rem}.duo-chat-compact-markdown .gl-h6,.duo-chat-compact-markdown h6{color:var(--gl-text-color-heading);font-size:.8125rem;font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:1rem}.duo-chat-compact-markdown .sm{font-size:.75rem}.duo-chat-compact-markdown .monospace,.duo-chat-compact-markdown code{font-family:var(--default-mono-font,"GitLab Mono"),"JetBrains Mono","Menlo","DejaVu Sans Mono","Liberation Mono","Consolas","Ubuntu Mono","Courier New","andale mono","lucida console",monospace;font-variant-ligatures:none}.duo-chat-compact-markdown table td,.duo-chat-compact-markdown table th{padding-bottom:.5rem;padding-top:.5rem}.duo-chat-loader{display:flex}.duo-chat-loader .transition{transition:width .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .transition{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-enter{opacity:0}.duo-chat-loader .text-enter-active{transition:opacity .4s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .text-enter-active{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-enter-to,.duo-chat-loader .text-leave{opacity:1}.duo-chat-loader .text-leave-active{transition:opacity .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .text-leave-active{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-leave-to{opacity:0}.duo-chat-message{--gl-text-color-heading:var(--duo-chat-message-heading-color,inherit)!important;border-radius:1rem;color:var(--duo-chat-message-color,inherit)!important;position:relative}.duo-chat-message code{background-color:var(--gl-status-neutral-background-color,var(--gl-color-neutral-100,#dcdcde))}.duo-chat-message pre{border-color:var(--gl-border-color-default);border-style:solid;border-width:1px;box-shadow:none!important;color:var(--duo-chat-message-pre-color,inherit)!important;color:inherit;max-height:60vh;padding:.5rem .75rem}.duo-chat-message pre:after,.duo-chat-message pre:before{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;content:"";height:2rem;left:1px;pointer-events:none;position:absolute;width:calc(100% - 2px)}.duo-chat-message pre.scrim-top:before{--tw-rotate:-180deg;background:linear-gradient(180deg,#fbfafd00,#fbfafd);top:1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.duo-chat-message pre.scrim-bottom:after{background:linear-gradient(180deg,#fbfafd00,#fbfafd);bottom:1px}.duo-chat-message pre code{background-color:initial;font-size:.75rem;line-height:1;white-space:inherit}.duo-chat-message p:last-of-type{margin-bottom:0}.duo-chat-message copy-code,.duo-chat-message insert-code-snippet{opacity:0;position:absolute;right:.5rem;top:.5rem;transition-duration:.2s;transition-property:all;transition-timing-function:ease}.duo-chat-message copy-code [role=tooltip],.duo-chat-message insert-code-snippet [role=tooltip]{background-color:var(--gray-100,#dcdcde);border-radius:.25rem;display:none;left:0;position:absolute;top:0;width:max-content}.duo-chat-message copy-code [role=tooltip] .arrow,.duo-chat-message insert-code-snippet [role=tooltip] .arrow{background:inherit;height:.5rem;position:absolute;transform:rotate(45deg);width:.5rem}.duo-chat-message copy-code{margin-right:2.5rem}.duo-chat-message .js-markdown-code.markdown-code-block:hover copy-code,.duo-chat-message .js-markdown-code.markdown-code-block:hover copy-code:focus-within,.duo-chat-message .js-markdown-code.markdown-code-block:hover insert-code-snippet,.duo-chat-message .js-markdown-code.markdown-code-block:hover insert-code-snippet:focus-within{opacity:1}.duo-chat-message-container:not(:last-child),.message-map-item:not(:last-child){margin-bottom:.75rem}.insert-code-hidden insert-code-snippet{display:none}.insert-code-hidden copy-code{margin-right:0}.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:active,.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:focus,.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:focus:active{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.duo-chat-message-actions-enter{opacity:0;transform:translateX(-100%)}.duo-chat-message-actions-enter-active{transition:transform .3s ease-out,opacity .15s ease-out .15s}.duo-chat-message-actions-enter-to,.duo-chat-message-actions-leave{opacity:1;transform:translateX(0)}.duo-chat-message-actions-leave-active{transition:transform .2s ease-out,opacity .1s ease-out}.duo-chat-message-actions-leave-to{opacity:0;transform:translateX(-100%)}.recents-wrapper .gl-accordion-item-header .gl-button.gl-button.btn-link{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;border-radius:0;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);display:block;font-size:.75rem;font-weight:600;padding-bottom:.25rem;padding-left:.5rem;padding-top:.25rem;text-decoration-line:none;text-transform:uppercase;width:100%}.recents-wrapper .gl-accordion-item-header>.collapse{margin-left:0}.recents-wrapper .gl-text-base{margin-top:0}
2
2
  /*# sourceMappingURL=components.css.map */
@@ -1 +1 @@
1
- {"version":3,"sources":["components.scss"],"names":[],"mappings":"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","file":"components.css","sourcesContent":["@charset \"UTF-8\";\n/*\n* SASS preserves units in arithmetic operations. For example:\n* 12em * 0 = 0em. This function return the unit of a numeric value.\n*\n* For more examples, see: https://codepen.io/paulgv/pen/XWrqMgQ\n*/\n/**\n* Declares a property with a fluid value that decreases or\n* rises depending on the viewport’s size. The property type\n* should be numeric.\n*\n* Values are expected in rem units.\n* Fluid range: between 48rem (768px) – 75rem (1200px).\n*\n* @param $property Property name, i.e. line-height, font-size, width, height, etc.\n* @param $min Property value lower bound.\n* @param $max Property value upper bound.\n*/\n/**\n* Helper function for :focus\n*\n* @param $size is deprecated and should not be used anymore\n*/\n/**\n* Helper function for @media of at least the minimum\n* breakpoint width.\n*\n* @param $name Breakpoint name, such as `sm` or `md`.\n*/\n/**\n* Helper function for @media of at most the maximum\n* breakpoint width.\n*\n* Note: Before using, consider using a mobile-first\n* approach, and define @media for larger breakpoints\n* using `gl-media-breakpoint-up` while using this rule as\n* the starting point instead.\n*\n* @param $name Breakpoint, such as `sm` or `md`. `xs` is not valid\n*/\n/**\n* Helper function to resolve font-size value from $gl-font-sizes and\n* $gl-font-sizes-fixed maps.\n*\n* @param $size Number font-size scale\n* @param $fixed Boolean toggle default and fixed font size scales\n*/\n.resizable-content {\n height: 100%;\n width: 100%;\n background: var(--gl-background-color-default);\n border-radius: 0.5rem;\n @apply gl-overflow-y-auto;\n @apply gl-shadow-lg;\n @apply gl-text-base;\n @apply gl-leading-normal;\n @apply gl-flex;\n @apply gl-flex-col;\n}\n\n.resizable-component .resizable-t,\n.resizable-component .resizable-l {\n background-color: transparent;\n border-radius: 3px;\n transition: background-color 0.2s cubic-bezier(0.22, 0.61, 0.36, 1);\n}\n@media (prefers-reduced-motion) {\n .resizable-component .resizable-t,\n.resizable-component .resizable-l {\n transition-duration: 0.01ms !important;\n transition-delay: 0ms !important;\n }\n}\n.resizable-component .resizable-t:hover,\n.resizable-component .resizable-l:hover {\n background-color: var(--gl-color-blue-200);\n}\n.resizable-component .resizable-t {\n width: 95% !important;\n transform: translateX(-50%);\n left: 50% !important;\n height: 4px !important;\n top: 2px !important;\n}\n.resizable-component .resizable-l {\n height: 95% !important;\n transform: translateY(-50%);\n top: 50% !important;\n width: 4px !important;\n left: 2px !important;\n}\n\n.duo-chat {\n z-index: 999;\n @apply gl-font-regular;\n}\n.duo-chat .message-enter-active,\n.duo-chat .message-leave-active {\n transition: all 0.5s ease;\n}\n.duo-chat .message-enter,\n.duo-chat .message-leave-to {\n @apply gl-opacity-0;\n transform: translateY(10px);\n}\n.duo-chat .duo-chat-loader.message-leave,\n.duo-chat .duo-chat-loader.message-leave-to {\n transition: none;\n}\n.duo-chat .duo-chat-drawer-body-scrim-on-footer::before {\n background: linear-gradient(to bottom, rgba(251, 250, 253, 0), #fbfafd);\n}\n\n.duo-chat-drawer {\n right: 0;\n @apply gl-transition-all;\n position: fixed;\n @apply gl-h-full;\n @apply gl-w-full;\n @apply gl-overflow-y-auto;\n @apply gl-shadow-lg;\n @apply gl-text-base;\n @apply gl-leading-normal;\n @apply gl-flex;\n @apply gl-flex-col;\n}\n\n.duo-chat-drawer-footer {\n @apply gl-border-t;\n @apply gl-p-5;\n}\n\n.duo-chat-drawer-body-scrim-on-footer::before {\n background: linear-gradient(to bottom, rgba(251, 250, 253, 0), #fbfafd);\n top: 0;\n @apply -gl-translate-y-full;\n content: \"\";\n left: 0;\n position: absolute;\n @apply gl-pointer-events-none;\n @apply gl-w-full;\n @apply gl-h-5;\n}\n\n.duo-chat-history {\n scroll-behavior: smooth;\n /*\n Browsers a are pretty good at keeping the focus on an element while\n the parent element grows in size. With this we mark all child elements\n of the chat history as \"non\" anchors.\n https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-anchor\n */\n /*\n Right at the bottom of the chat history we add a scroll-anchor element.\n This scroll-anchor element is the only \"possible\" anchor. The beauty of it:\n It only will be used as an anchor _if_ it is currently inside the view port.\n So if the user manually scrolls up while a chunked message is coming in,\n it won't stick to the bottom while the message still loads.\n */\n}\n.duo-chat-history * {\n overflow-anchor: none;\n}\n.duo-chat-history .scroll-anchor {\n overflow-anchor: auto;\n height: 1px;\n margin-top: -1px;\n}\n\n.duo-chat-input {\n @apply gl-flex;\n @apply gl-flex-col;\n max-height: 240px;\n overflow: hidden;\n background: var(--gl-control-background-color-default);\n box-shadow: inset 0 0 0 1px var(--gl-control-border-color-default);\n border-radius: 1.25rem;\n}\n.duo-chat-input:focus-within {\n box-shadow: inset 0 0 0 1px var(--gl-control-border-color-focus), 0 0 0 1px var(--gl-focus-ring-inner-color), 0 0 0 3px var(--gl-focus-ring-outer-color);\n outline: none;\n}\n@media (forced-colors: active) {\n .duo-chat-input:focus-within {\n outline: 2px solid LinkText;\n }\n}\n.duo-chat-input .gl-form-textarea.form-control {\n flex: 1;\n resize: none;\n max-height: 240px;\n padding-right: 40px;\n border-radius: 1.25rem;\n}\n.duo-chat-input::after {\n content: attr(data-value) \" \";\n @apply gl-invisible;\n @apply gl-p-4;\n @apply gl-font-regular;\n padding-right: 40px;\n word-break: break-word;\n}\n\n.duo-chat .duo-chat-suggestion-button {\n border-radius: 1.25rem;\n}\n\n.slash-commands {\n @apply -gl-mt-2;\n}\n.slash-commands .active-command {\n @apply gl-bg-strong;\n @apply gl-rounded-base;\n}\n.slash-commands .gl-dropdown-item button.dropdown-item {\n @apply gl-text-sm;\n @apply gl-px-3;\n @apply gl-bg-transparent;\n}\n.slash-commands .gl-dropdown-item button.dropdown-item:hover {\n @apply gl-bg-transparent;\n}\n\n.duo-chat-markdown {\n @apply gl-text-lg;\n @apply gl-leading-24;\n color: #28272d;\n @apply gl-font-regular;\n @apply gl-font-normal;\n}\n.duo-chat-markdown :first-child {\n @apply gl-mt-0;\n}\n.duo-chat-markdown h1,\n.duo-chat-markdown .gl-h1 {\n @apply gl-heading-1;\n @apply gl-mt-7;\n}\n.duo-chat-markdown h2,\n.duo-chat-markdown .gl-h2 {\n @apply gl-heading-2;\n @apply gl-mt-6;\n}\n.duo-chat-markdown h3,\n.duo-chat-markdown .gl-h3 {\n @apply gl-heading-3;\n @apply gl-mt-6;\n}\n.duo-chat-markdown h4,\n.duo-chat-markdown .gl-h4 {\n @apply gl-heading-4;\n @apply gl-mt-5;\n}\n.duo-chat-markdown h5,\n.duo-chat-markdown .gl-h5 {\n @apply gl-heading-5;\n @apply gl-mt-5;\n}\n.duo-chat-markdown h6,\n.duo-chat-markdown .gl-h6 {\n @apply gl-heading-6;\n @apply gl-mt-5;\n}\n.duo-chat-markdown p,\n.duo-chat-markdown .gl-paragraph {\n @apply gl-mt-0;\n @apply gl-mb-0;\n}\n.duo-chat-markdown p + p,\n.duo-chat-markdown p + .gl-paragraph,\n.duo-chat-markdown .gl-paragraph + p,\n.duo-chat-markdown .gl-paragraph + .gl-paragraph {\n @apply gl-mt-5;\n}\n.duo-chat-markdown p.sm,\n.duo-chat-markdown .gl-paragraph.sm {\n font-size: 0.875rem;\n @apply gl-leading-20;\n}\n.duo-chat-markdown .sm {\n font-size: 0.875rem;\n @apply gl-leading-20;\n}\n.duo-chat-markdown .monospace,\n.duo-chat-markdown code {\n @apply gl-font-monospace;\n}\n.duo-chat-markdown blockquote {\n @apply gl-text-gray-700;\n @apply gl-py-3;\n @apply gl-pl-6;\n @apply gl-my-3;\n @apply gl-mx-0;\n box-shadow: inset 4px 0 0 0 #dcdcde;\n}\n.duo-chat-markdown .idiff {\n @apply gl-rounded-base;\n @apply gl-inline-flex;\n @apply gl-px-2;\n}\n.duo-chat-markdown .deletion {\n @apply gl-bg-red-100;\n}\n.duo-chat-markdown .addition {\n @apply gl-bg-green-100;\n}\n.duo-chat-markdown code {\n @apply gl-rounded-base;\n @apply gl-bg-gray-50;\n @apply gl-text-gray-950;\n @apply gl-px-2;\n @apply gl-py-1;\n}\n.duo-chat-markdown pre {\n @apply gl-rounded-base;\n @apply gl-py-3;\n @apply gl-px-4;\n box-shadow: inset 0 0 0 1px #dcdcde;\n @apply gl-my-7;\n @apply gl-overflow-auto;\n}\n.duo-chat-markdown pre code {\n @apply gl-bg-white;\n @apply gl-rounded-none;\n @apply gl-text-gray-900;\n @apply gl-p-0;\n}\n.duo-chat-markdown .audio-container {\n @apply gl-inline-flex;\n @apply gl-flex-col;\n @apply gl-w-full;\n}\n.duo-chat-markdown .audio-container audio {\n @apply gl-w-full;\n}\n.duo-chat-markdown .audio-container a {\n @apply gl-mt-3;\n}\n.duo-chat-markdown .audio-container a::before {\n @apply gl-mr-2;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n content: \"📎\";\n}\n.duo-chat-markdown table {\n @apply gl-my-7;\n}\n.duo-chat-markdown table th,\n.duo-chat-markdown table td {\n @apply gl-px-3;\n @apply gl-py-4;\n box-shadow: inset 0 -1px 0 0 #dcdcde;\n @apply gl-align-top;\n}\n.duo-chat-markdown table th {\n box-shadow: inset 0 1px 0 0 #dcdcde, inset 0 -1px 0 0 #dcdcde;\n @apply gl-font-bold;\n}\n.duo-chat-markdown table thead {\n @apply gl-bg-gray-50;\n}\n.duo-chat-markdown table tr:nth-child(even) {\n @apply gl-bg-gray-10;\n}\n\n.duo-chat-compact-markdown {\n @apply gl-text-base;\n @apply gl-leading-20;\n}\n.duo-chat-compact-markdown h1,\n.duo-chat-compact-markdown .gl-h1 {\n @apply gl-heading-1-fixed;\n @apply gl-mt-7;\n}\n.duo-chat-compact-markdown h2,\n.duo-chat-compact-markdown .gl-h2 {\n @apply gl-heading-2-fixed;\n @apply gl-mt-6;\n}\n.duo-chat-compact-markdown h3,\n.duo-chat-compact-markdown .gl-h3 {\n @apply gl-heading-3-fixed;\n @apply gl-mt-6;\n}\n.duo-chat-compact-markdown h4,\n.duo-chat-compact-markdown .gl-h4 {\n @apply gl-heading-4-fixed;\n @apply gl-mt-5;\n}\n.duo-chat-compact-markdown h5,\n.duo-chat-compact-markdown .gl-h5 {\n @apply gl-heading-5-fixed;\n @apply gl-mt-5;\n}\n.duo-chat-compact-markdown h6,\n.duo-chat-compact-markdown .gl-h6 {\n @apply gl-heading-6-fixed;\n @apply gl-mt-5;\n}\n.duo-chat-compact-markdown .sm {\n @apply gl-text-sm;\n}\n.duo-chat-compact-markdown .monospace,\n.duo-chat-compact-markdown code {\n @apply gl-font-monospace;\n}\n.duo-chat-compact-markdown table th,\n.duo-chat-compact-markdown table td {\n @apply gl-py-3;\n}\n\n.duo-chat-loader {\n @apply gl-flex;\n}\n.duo-chat-loader .transition {\n transition: width 200ms cubic-bezier(0.22, 0.61, 0.36, 1);\n}\n@media (prefers-reduced-motion) {\n .duo-chat-loader .transition {\n transition-duration: 0.01ms !important;\n transition-delay: 0ms !important;\n }\n}\n.duo-chat-loader .text-enter {\n @apply gl-opacity-0;\n}\n.duo-chat-loader .text-enter-active {\n transition: opacity 400ms cubic-bezier(0.22, 0.61, 0.36, 1);\n}\n@media (prefers-reduced-motion) {\n .duo-chat-loader .text-enter-active {\n transition-duration: 0.01ms !important;\n transition-delay: 0ms !important;\n }\n}\n.duo-chat-loader .text-enter-to {\n @apply gl-opacity-10;\n}\n.duo-chat-loader .text-leave {\n @apply gl-opacity-10;\n}\n.duo-chat-loader .text-leave-active {\n transition: opacity 200ms cubic-bezier(0.22, 0.61, 0.36, 1);\n}\n@media (prefers-reduced-motion) {\n .duo-chat-loader .text-leave-active {\n transition-duration: 0.01ms !important;\n transition-delay: 0ms !important;\n }\n}\n.duo-chat-loader .text-leave-to {\n @apply gl-opacity-0;\n}\n\n.duo-chat-message {\n position: relative;\n border-radius: 1rem;\n color: var(--duo-chat-message-color, inherit) !important;\n --gl-text-color-heading: var(--duo-chat-message-heading-color, inherit) !important;\n}\n.duo-chat-message code {\n @apply gl-bg-status-neutral;\n}\n.duo-chat-message pre {\n box-shadow: none !important;\n color: var(--duo-chat-message-pre-color, inherit) !important;\n @apply gl-border gl-max-h-[60vh] gl-px-4 gl-py-3 gl-text-inherit;\n}\n.duo-chat-message pre::before, .duo-chat-message pre::after {\n content: \"\";\n left: 1px;\n width: calc(100% - 2px);\n position: absolute;\n @apply gl-pointer-events-none gl-h-7 gl-rounded-b-base;\n}\n.duo-chat-message pre.scrim-top::before {\n background: linear-gradient(to bottom, rgba(251, 250, 253, 0), #fbfafd);\n top: 1px;\n @apply -gl-rotate-180;\n}\n.duo-chat-message pre.scrim-bottom::after {\n background: linear-gradient(to bottom, rgba(251, 250, 253, 0), #fbfafd);\n bottom: 1px;\n}\n.duo-chat-message pre code {\n @apply gl-text-sm;\n @apply gl-leading-1;\n @apply gl-bg-transparent;\n white-space: inherit;\n}\n.duo-chat-message p:last-of-type {\n @apply gl-mb-0;\n}\n.duo-chat-message copy-code,\n.duo-chat-message insert-code-snippet {\n position: absolute;\n @apply gl-transition-all;\n @apply gl-opacity-0;\n right: 0.5rem;\n top: 0.5rem;\n}\n.duo-chat-message copy-code [role=tooltip],\n.duo-chat-message insert-code-snippet [role=tooltip] {\n display: none;\n @apply gl-bg-gray-100;\n width: max-content;\n position: absolute;\n top: 0;\n left: 0;\n @apply gl-rounded-base;\n}\n.duo-chat-message copy-code [role=tooltip] .arrow,\n.duo-chat-message insert-code-snippet [role=tooltip] .arrow {\n position: absolute;\n background: inherit;\n @apply gl-h-3 gl-w-3;\n transform: rotate(45deg);\n}\n.duo-chat-message copy-code {\n margin-right: 2.5rem;\n}\n.duo-chat-message .js-markdown-code.markdown-code-block:hover copy-code,\n.duo-chat-message .js-markdown-code.markdown-code-block:hover copy-code:focus-within,\n.duo-chat-message .js-markdown-code.markdown-code-block:hover insert-code-snippet,\n.duo-chat-message .js-markdown-code.markdown-code-block:hover insert-code-snippet:focus-within {\n @apply gl-opacity-10;\n}\n\n.duo-chat-message-container:not(:last-child),\n.message-map-item:not(:last-child) {\n @apply gl-mb-4;\n}\n\n.insert-code-hidden insert-code-snippet {\n display: none;\n}\n.insert-code-hidden copy-code {\n margin-right: 0;\n}\n\n.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:first-child {\n @apply gl-rounded-tl-none;\n @apply gl-rounded-bl-none;\n}\n.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:active,\n.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:focus,\n.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:focus:active {\n @apply gl-shadow-none;\n}\n\n/* Starting state: behind/to the left and invisible */\n.duo-chat-message-actions-enter {\n transform: translateX(-100%);\n opacity: 0;\n}\n\n/* Transition definitions (the actual animation runs here).\n - transform: 0.3s, no delay, so it starts sliding immediately.\n - opacity: 0.15s, 0.15s delay, so it stays at 0 for the first 0.15s,\n then fades in during the last 0.15s of the slide. */\n.duo-chat-message-actions-enter-active {\n transition: transform 0.3s ease-out, opacity 0.15s ease-out 0.15s;\n}\n\n/* Ending state: fully in place, fully visible */\n.duo-chat-message-actions-enter-to {\n transform: translateX(0);\n opacity: 1;\n}\n\n/* Starting state (visible, in place) */\n.duo-chat-message-actions-leave {\n transform: translateX(0);\n opacity: 1;\n}\n\n/* Transition definitions:\n - transform: 0.2s, ease-out,\n - opacity: 0.1s, ease-out, no delay => fades out right away.\n For the second half of the transform, it's fully transparent. */\n.duo-chat-message-actions-leave-active {\n transition: transform 0.2s ease-out, opacity 0.1s ease-out;\n}\n\n/* Ending state (moved left, invisible) */\n.duo-chat-message-actions-leave-to {\n transform: translateX(-100%);\n opacity: 0;\n}\n\n.recents-wrapper .gl-accordion-item-header .gl-button.gl-button.btn-link {\n @apply gl-block;\n @apply gl-w-full;\n @apply gl-pl-3;\n @apply gl-py-2;\n @apply gl-rounded-none;\n @apply gl-shadow-none;\n @apply gl-no-underline;\n @apply gl-uppercase;\n @apply gl-font-bold;\n @apply gl-text-sm;\n}\n.recents-wrapper .gl-accordion-item-header > .collapse {\n @apply gl-ml-0;\n}\n.recents-wrapper .gl-text-base {\n @apply gl-mt-0;\n}"]}
1
+ {"version":3,"sources":["components.scss"],"names":[],"mappings":"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","file":"components.css","sourcesContent":["@charset \"UTF-8\";\n/*\n* SASS preserves units in arithmetic operations. For example:\n* 12em * 0 = 0em. This function return the unit of a numeric value.\n*\n* For more examples, see: https://codepen.io/paulgv/pen/XWrqMgQ\n*/\n/* stylelint-disable @gitlab/no-gl-deprecated-design-tokens */\n/* stylelint-enable @gitlab/no-gl-deprecated-design-tokens */\n/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */\n/* stylelint-disable-next-line @gitlab/no-gl-deprecated-design-tokens */\n/**\n* Declares a property with a fluid value that decreases or\n* rises depending on the viewport’s size. The property type\n* should be numeric.\n*\n* Values are expected in rem units.\n* Fluid range: between 48rem (768px) – 75rem (1200px).\n*\n* @param $property Property name, i.e. line-height, font-size, width, height, etc.\n* @param $min Property value lower bound.\n* @param $max Property value upper bound.\n*/\n/**\n* Helper function for :focus\n*\n* @param $size is deprecated and should not be used anymore\n*/\n/**\n* Helper function for @media of at least the minimum\n* breakpoint width.\n*\n* @param $name Breakpoint name, such as `sm` or `md`.\n*/\n/**\n* Helper function for @media of at most the maximum\n* breakpoint width.\n*\n* Note: Before using, consider using a mobile-first\n* approach, and define @media for larger breakpoints\n* using `gl-media-breakpoint-up` while using this rule as\n* the starting point instead.\n*\n* @param $name Breakpoint, such as `sm` or `md`. `xs` is not valid\n*/\n/**\n* Helper function to resolve font-size value from $gl-font-sizes and\n* $gl-font-sizes-fixed maps.\n*\n* @param $size Number font-size scale\n* @param $fixed Boolean toggle default and fixed font size scales\n*/\n.resizable-content {\n height: 100%;\n width: 100%;\n background: var(--gl-background-color-default);\n border-radius: 0.5rem;\n @apply gl-overflow-y-auto;\n @apply gl-shadow-lg;\n @apply gl-text-base;\n @apply gl-leading-normal;\n @apply gl-flex;\n @apply gl-flex-col;\n}\n\n.resizable-component .resizable-t,\n.resizable-component .resizable-l {\n background-color: transparent;\n border-radius: 3px;\n transition: background-color 0.2s cubic-bezier(0.22, 0.61, 0.36, 1);\n}\n@media (prefers-reduced-motion) {\n .resizable-component .resizable-t,\n.resizable-component .resizable-l {\n transition-duration: 0.01ms !important;\n transition-delay: 0ms !important;\n }\n}\n.resizable-component .resizable-t:hover,\n.resizable-component .resizable-l:hover {\n background-color: var(--gl-color-blue-200);\n}\n.resizable-component .resizable-t {\n width: 95% !important;\n transform: translateX(-50%);\n left: 50% !important;\n height: 4px !important;\n top: 2px !important;\n}\n.resizable-component .resizable-l {\n height: 95% !important;\n transform: translateY(-50%);\n top: 50% !important;\n width: 4px !important;\n left: 2px !important;\n}\n\n.duo-chat {\n z-index: 999;\n @apply gl-font-regular;\n}\n.duo-chat .message-enter-active,\n.duo-chat .message-leave-active {\n transition: all 0.5s ease;\n}\n.duo-chat .message-enter,\n.duo-chat .message-leave-to {\n @apply gl-opacity-0;\n transform: translateY(10px);\n}\n.duo-chat .duo-chat-loader.message-leave,\n.duo-chat .duo-chat-loader.message-leave-to {\n transition: none;\n}\n.duo-chat .duo-chat-drawer-body-scrim-on-footer::before {\n background: linear-gradient(to bottom, rgba(251, 250, 253, 0), #fbfafd);\n}\n\n.duo-chat-drawer {\n right: 0;\n @apply gl-transition-all;\n position: fixed;\n @apply gl-h-full;\n @apply gl-w-full;\n @apply gl-overflow-y-auto;\n @apply gl-shadow-lg;\n @apply gl-text-base;\n @apply gl-leading-normal;\n @apply gl-flex;\n @apply gl-flex-col;\n}\n\n.duo-chat-drawer-footer {\n @apply gl-border-t;\n @apply gl-p-5;\n}\n\n.duo-chat-drawer-body-scrim-on-footer::before {\n background: linear-gradient(to bottom, rgba(251, 250, 253, 0), #fbfafd);\n top: 0;\n @apply -gl-translate-y-full;\n content: \"\";\n left: 0;\n position: absolute;\n @apply gl-pointer-events-none;\n @apply gl-w-full;\n @apply gl-h-5;\n}\n\n.duo-chat-history {\n scroll-behavior: smooth;\n /*\n Browsers a are pretty good at keeping the focus on an element while\n the parent element grows in size. With this we mark all child elements\n of the chat history as \"non\" anchors.\n https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-anchor\n */\n /*\n Right at the bottom of the chat history we add a scroll-anchor element.\n This scroll-anchor element is the only \"possible\" anchor. The beauty of it:\n It only will be used as an anchor _if_ it is currently inside the view port.\n So if the user manually scrolls up while a chunked message is coming in,\n it won't stick to the bottom while the message still loads.\n */\n}\n.duo-chat-history * {\n overflow-anchor: none;\n}\n.duo-chat-history .scroll-anchor {\n overflow-anchor: auto;\n height: 1px;\n margin-top: -1px;\n}\n\n.duo-chat-input {\n @apply gl-flex;\n @apply gl-flex-col;\n max-height: 240px;\n overflow: hidden;\n background: var(--gl-control-background-color-default);\n box-shadow: inset 0 0 0 1px var(--gl-control-border-color-default);\n border-radius: 1.25rem;\n}\n.duo-chat-input:focus-within {\n box-shadow: inset 0 0 0 1px var(--gl-control-border-color-focus), 0 0 0 1px var(--gl-focus-ring-inner-color), 0 0 0 3px var(--gl-focus-ring-outer-color);\n outline: none;\n}\n@media (forced-colors: active) {\n .duo-chat-input:focus-within {\n outline: 2px solid LinkText;\n }\n}\n.duo-chat-input .gl-form-textarea.form-control {\n flex: 1;\n resize: none;\n max-height: 240px;\n padding-right: 40px;\n border-radius: 1.25rem;\n}\n.duo-chat-input::after {\n content: attr(data-value) \" \";\n @apply gl-invisible;\n @apply gl-p-4;\n @apply gl-font-regular;\n padding-right: 40px;\n word-break: break-word;\n}\n\n.duo-chat .duo-chat-suggestion-button {\n border-radius: 1.25rem;\n}\n\n.slash-commands {\n @apply -gl-mt-2;\n}\n.slash-commands .active-command {\n @apply gl-bg-strong;\n @apply gl-rounded-base;\n}\n.slash-commands .gl-dropdown-item button.dropdown-item {\n @apply gl-text-sm;\n @apply gl-px-3;\n @apply gl-bg-transparent;\n}\n.slash-commands .gl-dropdown-item button.dropdown-item:hover {\n @apply gl-bg-transparent;\n}\n\n.duo-chat-markdown {\n @apply gl-text-lg;\n @apply gl-leading-24;\n color: #3a383f;\n @apply gl-font-regular;\n @apply gl-font-normal;\n}\n.duo-chat-markdown :first-child {\n @apply gl-mt-0;\n}\n.duo-chat-markdown h1,\n.duo-chat-markdown .gl-h1 {\n @apply gl-heading-1;\n @apply gl-mt-7;\n}\n.duo-chat-markdown h2,\n.duo-chat-markdown .gl-h2 {\n @apply gl-heading-2;\n @apply gl-mt-6;\n}\n.duo-chat-markdown h3,\n.duo-chat-markdown .gl-h3 {\n @apply gl-heading-3;\n @apply gl-mt-6;\n}\n.duo-chat-markdown h4,\n.duo-chat-markdown .gl-h4 {\n @apply gl-heading-4;\n @apply gl-mt-5;\n}\n.duo-chat-markdown h5,\n.duo-chat-markdown .gl-h5 {\n @apply gl-heading-5;\n @apply gl-mt-5;\n}\n.duo-chat-markdown h6,\n.duo-chat-markdown .gl-h6 {\n @apply gl-heading-6;\n @apply gl-mt-5;\n}\n.duo-chat-markdown p,\n.duo-chat-markdown .gl-paragraph {\n @apply gl-mt-0;\n @apply gl-mb-0;\n}\n.duo-chat-markdown p + p,\n.duo-chat-markdown p + .gl-paragraph,\n.duo-chat-markdown .gl-paragraph + p,\n.duo-chat-markdown .gl-paragraph + .gl-paragraph {\n @apply gl-mt-5;\n}\n.duo-chat-markdown p.sm,\n.duo-chat-markdown .gl-paragraph.sm {\n font-size: 0.875rem;\n @apply gl-leading-20;\n}\n.duo-chat-markdown .sm {\n font-size: 0.875rem;\n @apply gl-leading-20;\n}\n.duo-chat-markdown .monospace,\n.duo-chat-markdown code {\n @apply gl-font-monospace;\n}\n.duo-chat-markdown blockquote {\n @apply gl-text-gray-700;\n @apply gl-py-3;\n @apply gl-pl-6;\n @apply gl-my-3;\n @apply gl-mx-0;\n box-shadow: inset 4px 0 0 0 #dcdcde;\n}\n.duo-chat-markdown .idiff {\n @apply gl-rounded-base;\n @apply gl-inline-flex;\n @apply gl-px-2;\n}\n.duo-chat-markdown .deletion {\n @apply gl-bg-red-100;\n}\n.duo-chat-markdown .addition {\n @apply gl-bg-green-100;\n}\n.duo-chat-markdown code {\n @apply gl-rounded-base;\n @apply gl-bg-gray-50;\n @apply gl-text-gray-950;\n @apply gl-px-2;\n @apply gl-py-1;\n}\n.duo-chat-markdown pre {\n @apply gl-rounded-base;\n @apply gl-py-3;\n @apply gl-px-4;\n box-shadow: inset 0 0 0 1px #dcdcde;\n @apply gl-my-7;\n @apply gl-overflow-auto;\n}\n.duo-chat-markdown pre code {\n @apply gl-bg-white;\n @apply gl-rounded-none;\n @apply gl-text-gray-900;\n @apply gl-p-0;\n}\n.duo-chat-markdown .audio-container {\n @apply gl-inline-flex;\n @apply gl-flex-col;\n @apply gl-w-full;\n}\n.duo-chat-markdown .audio-container audio {\n @apply gl-w-full;\n}\n.duo-chat-markdown .audio-container a {\n @apply gl-mt-3;\n}\n.duo-chat-markdown .audio-container a::before {\n @apply gl-mr-2;\n text-rendering: auto;\n -webkit-font-smoothing: antialiased;\n content: \"📎\";\n}\n.duo-chat-markdown table {\n @apply gl-my-7;\n}\n.duo-chat-markdown table th,\n.duo-chat-markdown table td {\n @apply gl-px-3;\n @apply gl-py-4;\n box-shadow: inset 0 -1px 0 0 #dcdcde;\n @apply gl-align-top;\n}\n.duo-chat-markdown table th {\n box-shadow: inset 0 1px 0 0 #dcdcde, inset 0 -1px 0 0 #dcdcde;\n @apply gl-font-bold;\n}\n.duo-chat-markdown table thead {\n @apply gl-bg-gray-50;\n}\n.duo-chat-markdown table tr:nth-child(even) {\n @apply gl-bg-gray-10;\n}\n\n.duo-chat-compact-markdown {\n @apply gl-text-base;\n @apply gl-leading-20;\n}\n.duo-chat-compact-markdown h1,\n.duo-chat-compact-markdown .gl-h1 {\n @apply gl-heading-1-fixed;\n @apply gl-mt-7;\n}\n.duo-chat-compact-markdown h2,\n.duo-chat-compact-markdown .gl-h2 {\n @apply gl-heading-2-fixed;\n @apply gl-mt-6;\n}\n.duo-chat-compact-markdown h3,\n.duo-chat-compact-markdown .gl-h3 {\n @apply gl-heading-3-fixed;\n @apply gl-mt-6;\n}\n.duo-chat-compact-markdown h4,\n.duo-chat-compact-markdown .gl-h4 {\n @apply gl-heading-4-fixed;\n @apply gl-mt-5;\n}\n.duo-chat-compact-markdown h5,\n.duo-chat-compact-markdown .gl-h5 {\n @apply gl-heading-5-fixed;\n @apply gl-mt-5;\n}\n.duo-chat-compact-markdown h6,\n.duo-chat-compact-markdown .gl-h6 {\n @apply gl-heading-6-fixed;\n @apply gl-mt-5;\n}\n.duo-chat-compact-markdown .sm {\n @apply gl-text-sm;\n}\n.duo-chat-compact-markdown .monospace,\n.duo-chat-compact-markdown code {\n @apply gl-font-monospace;\n}\n.duo-chat-compact-markdown table th,\n.duo-chat-compact-markdown table td {\n @apply gl-py-3;\n}\n\n.duo-chat-loader {\n @apply gl-flex;\n}\n.duo-chat-loader .transition {\n transition: width 200ms cubic-bezier(0.22, 0.61, 0.36, 1);\n}\n@media (prefers-reduced-motion) {\n .duo-chat-loader .transition {\n transition-duration: 0.01ms !important;\n transition-delay: 0ms !important;\n }\n}\n.duo-chat-loader .text-enter {\n @apply gl-opacity-0;\n}\n.duo-chat-loader .text-enter-active {\n transition: opacity 400ms cubic-bezier(0.22, 0.61, 0.36, 1);\n}\n@media (prefers-reduced-motion) {\n .duo-chat-loader .text-enter-active {\n transition-duration: 0.01ms !important;\n transition-delay: 0ms !important;\n }\n}\n.duo-chat-loader .text-enter-to {\n @apply gl-opacity-10;\n}\n.duo-chat-loader .text-leave {\n @apply gl-opacity-10;\n}\n.duo-chat-loader .text-leave-active {\n transition: opacity 200ms cubic-bezier(0.22, 0.61, 0.36, 1);\n}\n@media (prefers-reduced-motion) {\n .duo-chat-loader .text-leave-active {\n transition-duration: 0.01ms !important;\n transition-delay: 0ms !important;\n }\n}\n.duo-chat-loader .text-leave-to {\n @apply gl-opacity-0;\n}\n\n.duo-chat-message {\n position: relative;\n border-radius: 1rem;\n color: var(--duo-chat-message-color, inherit) !important;\n --gl-text-color-heading: var(--duo-chat-message-heading-color, inherit) !important;\n}\n.duo-chat-message code {\n @apply gl-bg-status-neutral;\n}\n.duo-chat-message pre {\n box-shadow: none !important;\n color: var(--duo-chat-message-pre-color, inherit) !important;\n @apply gl-border gl-max-h-[60vh] gl-px-4 gl-py-3 gl-text-inherit;\n}\n.duo-chat-message pre::before, .duo-chat-message pre::after {\n content: \"\";\n left: 1px;\n width: calc(100% - 2px);\n position: absolute;\n @apply gl-pointer-events-none gl-h-7 gl-rounded-b-base;\n}\n.duo-chat-message pre.scrim-top::before {\n background: linear-gradient(to bottom, rgba(251, 250, 253, 0), #fbfafd);\n top: 1px;\n @apply -gl-rotate-180;\n}\n.duo-chat-message pre.scrim-bottom::after {\n background: linear-gradient(to bottom, rgba(251, 250, 253, 0), #fbfafd);\n bottom: 1px;\n}\n.duo-chat-message pre code {\n @apply gl-text-sm;\n @apply gl-leading-1;\n @apply gl-bg-transparent;\n white-space: inherit;\n}\n.duo-chat-message p:last-of-type {\n @apply gl-mb-0;\n}\n.duo-chat-message copy-code,\n.duo-chat-message insert-code-snippet {\n position: absolute;\n @apply gl-transition-all;\n @apply gl-opacity-0;\n right: 0.5rem;\n top: 0.5rem;\n}\n.duo-chat-message copy-code [role=tooltip],\n.duo-chat-message insert-code-snippet [role=tooltip] {\n display: none;\n @apply gl-bg-gray-100;\n width: max-content;\n position: absolute;\n top: 0;\n left: 0;\n @apply gl-rounded-base;\n}\n.duo-chat-message copy-code [role=tooltip] .arrow,\n.duo-chat-message insert-code-snippet [role=tooltip] .arrow {\n position: absolute;\n background: inherit;\n @apply gl-h-3 gl-w-3;\n transform: rotate(45deg);\n}\n.duo-chat-message copy-code {\n margin-right: 2.5rem;\n}\n.duo-chat-message .js-markdown-code.markdown-code-block:hover copy-code,\n.duo-chat-message .js-markdown-code.markdown-code-block:hover copy-code:focus-within,\n.duo-chat-message .js-markdown-code.markdown-code-block:hover insert-code-snippet,\n.duo-chat-message .js-markdown-code.markdown-code-block:hover insert-code-snippet:focus-within {\n @apply gl-opacity-10;\n}\n\n.duo-chat-message-container:not(:last-child),\n.message-map-item:not(:last-child) {\n @apply gl-mb-4;\n}\n\n.insert-code-hidden insert-code-snippet {\n display: none;\n}\n.insert-code-hidden copy-code {\n margin-right: 0;\n}\n\n.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:first-child {\n @apply gl-rounded-tl-none;\n @apply gl-rounded-bl-none;\n}\n.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:active,\n.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:focus,\n.duo-chat-message-actions .gl-button.gl-button.btn-default-tertiary:focus:active {\n @apply gl-shadow-none;\n}\n\n/* Starting state: behind/to the left and invisible */\n.duo-chat-message-actions-enter {\n transform: translateX(-100%);\n opacity: 0;\n}\n\n/* Transition definitions (the actual animation runs here).\n - transform: 0.3s, no delay, so it starts sliding immediately.\n - opacity: 0.15s, 0.15s delay, so it stays at 0 for the first 0.15s,\n then fades in during the last 0.15s of the slide. */\n.duo-chat-message-actions-enter-active {\n transition: transform 0.3s ease-out, opacity 0.15s ease-out 0.15s;\n}\n\n/* Ending state: fully in place, fully visible */\n.duo-chat-message-actions-enter-to {\n transform: translateX(0);\n opacity: 1;\n}\n\n/* Starting state (visible, in place) */\n.duo-chat-message-actions-leave {\n transform: translateX(0);\n opacity: 1;\n}\n\n/* Transition definitions:\n - transform: 0.2s, ease-out,\n - opacity: 0.1s, ease-out, no delay => fades out right away.\n For the second half of the transform, it's fully transparent. */\n.duo-chat-message-actions-leave-active {\n transition: transform 0.2s ease-out, opacity 0.1s ease-out;\n}\n\n/* Ending state (moved left, invisible) */\n.duo-chat-message-actions-leave-to {\n transform: translateX(-100%);\n opacity: 0;\n}\n\n.recents-wrapper .gl-accordion-item-header .gl-button.gl-button.btn-link {\n @apply gl-block;\n @apply gl-w-full;\n @apply gl-pl-3;\n @apply gl-py-2;\n @apply gl-rounded-none;\n @apply gl-shadow-none;\n @apply gl-no-underline;\n @apply gl-uppercase;\n @apply gl-font-bold;\n @apply gl-text-sm;\n}\n.recents-wrapper .gl-accordion-item-header > .collapse {\n @apply gl-ml-0;\n}\n.recents-wrapper .gl-text-base {\n @apply gl-mt-0;\n}"]}
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-b{border-bottom-color:var(--gl-border-color-default);border-bottom-style:solid}.gl-heading-4{font-size:1rem}.gl-heading-3,.gl-heading-4{color:var(--gl-text-color-heading);font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:0}.gl-heading-3{font-size:clamp(1.125rem,.9027777778rem + .462962963vw,1.25rem)}.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-none{pointer-events:none}.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}.gl-sticky{position:sticky}.gl-bottom-0{bottom:0}.gl-bottom-2{bottom:.25rem}.gl-left-0{left:0}.gl-right-0{right:0}.gl-right-2{right:.25rem}.gl-right-3{right:.5rem}.gl-top-0{top:0}.\!gl-z-9999{z-index:9999!important}.gl-z-2{z-index:2}.gl-z-9999{z-index:9999}.gl-float-right{float:right}.\!gl-m-0{margin:0!important}.gl-m-0{margin:0}.gl-m-3{margin:.5rem}.gl-m-auto{margin:auto}.\!gl-mx-2{margin-left:.25rem!important;margin-right:.25rem!important}.-gl-mx-1{margin-left:-.125rem;margin-right:-.125rem}.-gl-mx-4{margin-left:-.75rem;margin-right:-.75rem}.-gl-my-1{margin-bottom:-.125rem;margin-top:-.125rem}.-gl-my-3{margin-bottom:-.5rem;margin-top:-.5rem}.gl-mx-2{margin-left:.25rem;margin-right:.25rem}.gl-mx-3{margin-left:.5rem;margin-right:.5rem}.gl-mx-4{margin-left:.75rem;margin-right:.75rem}.gl-mx-auto{margin-left:auto;margin-right:auto}.gl-my-0{margin-bottom:0;margin-top:0}.gl-my-3{margin-bottom:.5rem;margin-top:.5rem}.gl-my-4{margin-bottom:.75rem;margin-top:.75rem}.gl-my-5{margin-bottom:1rem;margin-top:1rem}.\!gl-mb-0{margin-bottom:0!important}.\!gl-mb-4{margin-bottom:.75rem!important}.\!gl-mt-1{margin-top:.125rem!important}.-gl-ml-2{margin-left:-.25rem}.-gl-mr-3{margin-right:-.5rem}.-gl-mt-2{margin-top:-.25rem}.gl-mb-0{margin-bottom:0}.gl-mb-1{margin-bottom:.125rem}.gl-mb-2{margin-bottom:.25rem}.gl-mb-3{margin-bottom:.5rem}.gl-mb-4{margin-bottom:.75rem}.gl-mb-5{margin-bottom:1rem}.gl-ml-1{margin-left:.125rem}.gl-ml-2{margin-left:.25rem}.gl-ml-3{margin-left:.5rem}.gl-ml-4{margin-left:.75rem}.gl-ml-5{margin-left:1rem}.gl-ml-6{margin-left:1.5rem}.gl-ml-auto{margin-left:auto}.gl-mr-1{margin-right:.125rem}.gl-mr-2{margin-right:.25rem}.gl-mr-3{margin-right:.5rem}.gl-mr-auto{margin-right:auto}.gl-mt-0{margin-top:0}.gl-mt-1{margin-top:.125rem}.gl-mt-2{margin-top:.25rem}.gl-mt-3{margin-top:.5rem}.gl-mt-4{margin-top:.75rem}.gl-mt-5{margin-top:1rem}.gl-mt-auto{margin-top:auto}.\!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-hidden{display:none}.\!gl-h-full{height:100%!important}.gl-h-0{height:0}.gl-h-4{height:.75rem}.gl-h-5{height:1rem}.gl-h-auto{height:auto}.gl-h-full{height:100%}.gl-max-h-13{max-height:6rem}.gl-max-h-31{max-height:15.5rem}.gl-max-h-full{max-height:100%}.gl-min-h-8{min-height:2.5rem}.\!gl-w-31{width:15.5rem!important}.\!gl-w-auto{width:auto!important}.gl-w-1\/2{width:50%}.gl-w-3\/4{width:75%}.gl-w-4\/10{width:40%}.gl-w-5{width:1rem}.gl-w-auto{width:auto}.gl-w-full{width:100%}.gl-min-w-0{min-width:0}.gl-min-w-\[33\%\]{min-width:33%}.gl-max-w-1\/2{max-width:50%}.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: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-not-allowed{cursor:not-allowed!important}.\!gl-cursor-text{cursor:text!important}.gl-cursor-default{cursor:default}.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:.125rem}.gl-gap-2{gap:.25rem}.gl-gap-3{gap:.5rem}.gl-gap-4{gap:.75rem}.gl-gap-5{gap:1rem}.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!important}.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!important}.gl-whitespace-normal{white-space:normal}.gl-whitespace-nowrap{white-space:nowrap}.gl-whitespace-pre-wrap{white-space:pre-wrap}.gl-break-words{overflow-wrap:break-word}.gl-break-all{word-break:break-all}.\!gl-rounded-base{border-radius:.25rem!important}.\!gl-rounded-full{border-radius:50%!important}.\!gl-rounded-none{border-radius:0!important}.gl-rounded-base{border-radius:.25rem}.gl-rounded-full{border-radius:50%}.gl-rounded-t-base{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.gl-rounded-bl-none{border-bottom-left-radius:0}.gl-rounded-br-lg{border-bottom-right-radius:.5rem}.gl-rounded-br-none{border-bottom-right-radius:0}.gl-rounded-tr-lg{border-top-right-radius:.5rem}.gl-rounded-tr-none{border-top-right-radius:0}.gl-border{border-width:1px}.gl-border-0{border-width:0}.gl-border-1{border-width:1px}.\!gl-border-b-0{border-bottom-width:0!important}.gl-border-b,.gl-border-b-1{border-bottom-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-dropdown{border-color:var(--gl-dropdown-border-color,var(--gl-border-color-strong,#bfbfc3))}.gl-border-gray-100{border-color:var(--gray-100,#dcdcde)}.gl-border-gray-200{border-color:var(--gray-200,#bfbfc3)}.gl-border-gray-500{border-color:var(--gray-500,#737278)}.gl-border-neutral-600{border-color:var(--gl-color-neutral-600,#626168)}.gl-border-red-500{border-color:var(--red-500,#dd2b0e)}.gl-border-subtle{border-color:var(--gl-border-color-subtle,var(--gl-color-neutral-50,#ececef))}.gl-border-transparent{border-color:var(--gl-border-color-transparent,var(--gl-color-alpha-0,#0000))}.gl-border-b-dropdown-divider{border-bottom-color:var(--gl-dropdown-divider-color,var(--gl-border-color-default,#dcdcde))}.gl-border-t-dropdown-divider{border-top-color:var(--gl-dropdown-divider-color,var(--gl-border-color-default,#dcdcde))}.\!gl-bg-gray-10{background-color:var(--gray-10,#fbfafd)!important}.\!gl-bg-transparent{background-color:initial!important}.gl-bg-black{background-color:var(--black,#050506)}.gl-bg-blue-100{background-color:var(--blue-100,#cbe2f9)}.gl-bg-blue-50{background-color:var(--blue-50,#e9f3fc)}.gl-bg-default{background-color:var(--gl-background-color-default,var(--gl-color-neutral-0,#fff))}.gl-bg-dropdown{background-color:var(--gl-dropdown-background-color,var(--gl-background-color-overlap,#fff))}.gl-bg-feedback-danger{background-color:var(--gl-feedback-danger-background-color,var(--gl-color-red-50,#fcf1ef))}.gl-bg-feedback-info{background-color:var(--gl-feedback-info-background-color,var(--gl-color-blue-50,#e9f3fc))}.gl-bg-gray-10{background-color:var(--gray-10,#fbfafd)}.gl-bg-gray-50{background-color:var(--gray-50,#ececef)}.gl-bg-inherit{background-color:inherit}.gl-bg-status-neutral{background-color:var(--gl-status-neutral-background-color,var(--gl-color-neutral-100,#dcdcde))}.gl-bg-subtle{background-color:var(--gl-background-color-subtle,var(--gl-color-neutral-10,#fbfafd))}.gl-bg-transparent{background-color:initial}.gl-bg-white{background-color:var(--white,#fff)}.gl-fill-current{fill:currentColor}.gl-fill-gray-100{fill:var(--gray-100,#dcdcde)}.gl-fill-icon-danger{fill:var(--gl-icon-color-danger,var(--gl-text-color-danger,#c02f12))}.gl-fill-icon-default{fill:var(--gl-icon-color-default,var(--gl-text-color-default,#3a383f))}.gl-fill-icon-disabled{fill:var(--gl-icon-color-disabled,var(--gl-text-color-disabled,#89888d))}.gl-fill-icon-info{fill:var(--gl-icon-color-info,var(--gl-color-blue-700,#2f5ca0))}.gl-fill-icon-link{fill:var(--gl-icon-color-link,var(--gl-text-color-link,#2f5ca0))}.gl-fill-icon-strong{fill:var(--gl-icon-color-strong,var(--gl-text-color-strong,#18171d))}.gl-fill-icon-subtle{fill:var(--gl-icon-color-subtle,var(--gl-text-color-subtle,#626168))}.gl-fill-icon-success{fill:var(--gl-icon-color-success,var(--gl-text-color-success,#2f7549))}.gl-fill-icon-warning{fill:var(--gl-icon-color-warning,var(--gl-text-color-warning,#995715))}.\!gl-p-0{padding:0!important}.\!gl-p-2{padding:.25rem!important}.\!gl-p-4{padding:.75rem!important}.gl-p-0{padding:0}.gl-p-1{padding:.125rem}.gl-p-2{padding:.25rem}.gl-p-3{padding:.5rem}.gl-p-4{padding:.75rem}.gl-p-5{padding:1rem}.\!gl-px-2{padding-left:.25rem!important;padding-right:.25rem!important}.\!gl-px-3{padding-left:.5rem!important;padding-right:.5rem!important}.\!gl-py-2{padding-bottom:.25rem!important;padding-top:.25rem!important}.\!gl-py-4{padding-bottom:.75rem!important;padding-top:.75rem!important}.gl-px-1{padding-left:.125rem;padding-right:.125rem}.gl-px-2{padding-left:.25rem;padding-right:.25rem}.gl-px-3{padding-left:.5rem;padding-right:.5rem}.gl-px-4{padding-left:.75rem;padding-right:.75rem}.gl-px-5{padding-left:1rem;padding-right:1rem}.gl-py-2{padding-bottom:.25rem;padding-top:.25rem}.gl-py-3{padding-bottom:.5rem;padding-top:.5rem}.gl-py-5{padding-bottom:1rem;padding-top:1rem}.gl-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.\!gl-pl-9{padding-left:3rem!important}.\!gl-pr-7{padding-right:2rem!important}.\!gl-pr-9{padding-right:3rem!important}.\!gl-pt-0{padding-top:0!important}.gl-pb-2{padding-bottom:.25rem}.gl-pb-3{padding-bottom:.5rem}.gl-pl-0{padding-left:0}.gl-pl-2{padding-left:.25rem}.gl-pl-3{padding-left:.5rem}.gl-pl-4{padding-left:.75rem}.gl-pl-5{padding-left:1rem}.gl-pl-6{padding-left:1.5rem}.gl-pl-7{padding-left:2rem}.gl-pr-2{padding-right:.25rem}.gl-pr-3{padding-right:.5rem}.gl-pr-5{padding-right:1rem}.gl-pr-6{padding-right:1.5rem}.gl-pr-7{padding-right:2rem}.gl-pr-8{padding-right:2.5rem}.gl-pt-1{padding-top:.125rem}.gl-pt-2{padding-top:.25rem}.gl-pt-3{padding-top:.5rem}.gl-pt-4{padding-top:.75rem}.\!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-regular{font-family:var(--default-regular-font,"GitLab Sans"),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.\!gl-text-sm{font-size:.75rem!important}.gl-text-base{font-size:.875rem}.gl-text-size-h-display{font-size:1.75rem}.gl-text-size-h2{font-size:1.1875rem}.gl-text-sm{font-size:.75rem}.gl-text-xs{font-size:.625rem}.gl-font-bold{font-weight:600}.gl-font-normal{font-weight:400}.gl-lowercase{text-transform:lowercase}.gl-italic{font-style:italic}.gl-leading-1{line-height:1}.gl-leading-20{line-height:1.25rem}.gl-leading-36{line-height:2.25rem}.gl-leading-normal{line-height:1rem}.\!gl-text-default{color:var(--gl-text-color-default,var(--gl-color-neutral-800,#3a383f))!important}.\!gl-text-subtle{color:var(--gl-text-color-subtle,var(--gl-color-neutral-600,#626168))!important}.\!gl-text-success{color:var(--gl-text-color-success,var(--gl-color-green-600,#2f7549))!important}.gl-text-blue-100{color:var(--blue-100,#cbe2f9)}.gl-text-blue-500{color:var(--blue-500,#1f75cb)}.gl-text-blue-600{color:var(--blue-600,#2f68b4)}.gl-text-blue-700{color:var(--blue-700,#2f5ca0)}.gl-text-blue-900{color:var(--blue-900,#213454)}.gl-text-danger{color:var(--gl-text-color-danger,var(--gl-color-red-600,#c02f12))}.gl-text-default{color:var(--gl-text-color-default,var(--gl-color-neutral-800,#3a383f))}.gl-text-feedback-info{color:var(--gl-feedback-info-text-color,var(--gl-color-blue-700,#2f5ca0))}.gl-text-gray-500{color:var(--gray-500,#737278)}.gl-text-gray-700{color:var(--gray-700,#4c4b51)}.gl-text-gray-900{color:var(--gray-900,#28272d)}.gl-text-gray-950{color:var(--gray-950,#18171d)}.gl-text-green-500{color:var(--green-500,#108548)}.gl-text-inherit{color:inherit}.gl-text-orange-500{color:var(--orange-500,#ab6100)}.gl-text-red-500{color:var(--red-500,#dd2b0e)}.gl-text-red-600{color:var(--red-600,#c02f12)}.gl-text-secondary{color:var(--gl-text-secondary,#737278)}.gl-text-strong{color:var(--gl-text-color-strong,var(--gl-color-neutral-950,#18171d))}.gl-text-subtle{color:var(--gl-text-color-subtle,var(--gl-color-neutral-600,#626168))}.gl-text-white{color:var(--white,#fff)}.\!gl-opacity-0{opacity:0!important}.gl-opacity-10{opacity:1}.\!gl-shadow-inner-1-gray-100{--tw-shadow:inset 0 0 0 1px var(--gray-100,#dcdcde)!important;--tw-shadow-colored:inset 0 0 0 1px var(--tw-shadow-color)!important}.\!gl-shadow-inner-1-gray-100,.\!gl-shadow-none{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.\!gl-shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important}.gl-shadow-md{--tw-shadow:0 0 1px var(--gl-shadow-color-default,#05050629),0 0 2px var(--gl-shadow-color-default,#05050629),0 2px 8px var(--gl-shadow-color-default,#05050629);--tw-shadow-colored:0 0 1px var(--tw-shadow-color),0 0 2px var(--tw-shadow-color),0 2px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.gl-outline-none{outline:2px solid #0000;outline-offset:2px}.gl-transition-all{transition-duration:.2s;transition-property:all;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}.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-bg-gray-50:hover{background-color:var(--gray-50,#ececef)}.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-hidden{display:none!important}.sm\:gl-flex-nowrap{flex-wrap:nowrap}.sm\:gl-gap-3{gap:.5rem}}.\[\&\>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-b{border-bottom-color:var(--gl-border-color-default);border-bottom-style:solid}.gl-heading-4{font-size:1rem}.gl-heading-3,.gl-heading-4{color:var(--gl-text-color-heading);font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:0}.gl-heading-3{font-size:clamp(1.125rem,.9027777778rem + .462962963vw,1.25rem)}.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}.gl-sticky{position:sticky}.gl-bottom-0{bottom:0}.gl-bottom-2{bottom:.25rem}.gl-bottom-\[-25px\]{bottom:-25px}.gl-left-0{left:0}.gl-right-0{right:0}.gl-right-2{right:.25rem}.gl-right-3{right:.5rem}.gl-right-px{right:1px}.gl-top-0{top:0}.\!gl-z-9999{z-index:9999!important}.gl-z-2{z-index:2}.gl-z-9999{z-index:9999}.gl-float-right{float:right}.\!gl-m-0{margin:0!important}.gl-m-0{margin:0}.gl-m-3{margin:.5rem}.gl-m-auto{margin:auto}.\!gl-mx-2{margin-left:.25rem!important;margin-right:.25rem!important}.-gl-mx-1{margin-left:-.125rem;margin-right:-.125rem}.-gl-mx-3{margin-left:-.5rem;margin-right:-.5rem}.-gl-mx-4{margin-left:-.75rem;margin-right:-.75rem}.-gl-my-1{margin-bottom:-.125rem;margin-top:-.125rem}.-gl-my-3{margin-bottom:-.5rem;margin-top:-.5rem}.gl-mx-2{margin-left:.25rem;margin-right:.25rem}.gl-mx-3{margin-left:.5rem;margin-right:.5rem}.gl-mx-4{margin-left:.75rem;margin-right:.75rem}.gl-mx-auto{margin-left:auto;margin-right:auto}.gl-my-0{margin-bottom:0;margin-top:0}.gl-my-3{margin-bottom:.5rem;margin-top:.5rem}.gl-my-4{margin-bottom:.75rem;margin-top:.75rem}.gl-my-5{margin-bottom:1rem;margin-top:1rem}.\!gl-mb-0{margin-bottom:0!important}.\!gl-mb-4{margin-bottom:.75rem!important}.\!gl-mt-1{margin-top:.125rem!important}.-gl-ml-2{margin-left:-.25rem}.-gl-mr-3{margin-right:-.5rem}.-gl-mt-2{margin-top:-.25rem}.gl-mb-0{margin-bottom:0}.gl-mb-1{margin-bottom:.125rem}.gl-mb-2{margin-bottom:.25rem}.gl-mb-3{margin-bottom:.5rem}.gl-mb-4{margin-bottom:.75rem}.gl-mb-5{margin-bottom:1rem}.gl-ml-1{margin-left:.125rem}.gl-ml-2{margin-left:.25rem}.gl-ml-3{margin-left:.5rem}.gl-ml-4{margin-left:.75rem}.gl-ml-5{margin-left:1rem}.gl-ml-auto{margin-left:auto}.gl-mr-1{margin-right:.125rem}.gl-mr-2{margin-right:.25rem}.gl-mr-3{margin-right:.5rem}.gl-mr-auto{margin-right:auto}.gl-mt-0{margin-top:0}.gl-mt-1{margin-top:.125rem}.gl-mt-2{margin-top:.25rem}.gl-mt-3{margin-top:.5rem}.gl-mt-4{margin-top:.75rem}.gl-mt-5{margin-top:1rem}.gl-mt-6{margin-top:1.5rem}.gl-mt-auto{margin-top:auto}.\!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-hidden{display:none}.\!gl-h-full{height:100%!important}.gl-h-0{height:0}.gl-h-4{height:.75rem}.gl-h-5{height:1rem}.gl-h-auto{height:auto}.gl-h-full{height:100%}.gl-max-h-13{max-height:6rem}.gl-max-h-31{max-height:15.5rem}.gl-max-h-full{max-height:100%}.gl-min-h-8{min-height:2.5rem}.\!gl-w-31{width:15.5rem!important}.\!gl-w-auto{width:auto!important}.gl-w-1\/2{width:50%}.gl-w-3\/4{width:75%}.gl-w-4\/10{width:40%}.gl-w-5{width:1rem}.gl-w-auto{width:auto}.gl-w-full{width:100%}.gl-min-w-0{min-width:0}.gl-min-w-\[33\%\]{min-width:33%}.gl-max-w-1\/2{max-width:50%}.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: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-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:.125rem}.gl-gap-2{gap:.25rem}.gl-gap-3{gap:.5rem}.gl-gap-4{gap:.75rem}.gl-gap-5{gap:1rem}.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!important}.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!important}.gl-whitespace-normal{white-space:normal}.gl-whitespace-nowrap{white-space:nowrap}.gl-whitespace-pre-wrap{white-space:pre-wrap}.gl-break-words{overflow-wrap:break-word}.gl-break-all{word-break:break-all}.\!gl-rounded-base{border-radius:.25rem!important}.\!gl-rounded-full{border-radius:50%!important}.\!gl-rounded-none{border-radius:0!important}.gl-rounded-base{border-radius:.25rem}.gl-rounded-full{border-radius:50%}.gl-rounded-lg{border-radius:.5rem}.gl-rounded-t-base{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.gl-rounded-bl-none{border-bottom-left-radius:0}.gl-rounded-br-lg{border-bottom-right-radius:.5rem}.gl-rounded-br-none{border-bottom-right-radius:0}.gl-rounded-tr-lg{border-top-right-radius:.5rem}.gl-rounded-tr-none{border-top-right-radius:0}.gl-border{border-width:1px}.gl-border-0{border-width:0}.gl-border-1{border-width:1px}.\!gl-border-b-0{border-bottom-width:0!important}.gl-border-b,.gl-border-b-1{border-bottom-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-dropdown{border-color:var(--gl-dropdown-border-color,var(--gl-border-color-strong,#bfbfc3))}.gl-border-gray-100{border-color:var(--gray-100,#dcdcde)}.gl-border-gray-200{border-color:var(--gray-200,#bfbfc3)}.gl-border-gray-500{border-color:var(--gray-500,#737278)}.gl-border-neutral-600{border-color:var(--gl-color-neutral-600,#626168)}.gl-border-red-500{border-color:var(--red-500,#dd2b0e)}.gl-border-subtle{border-color:var(--gl-border-color-subtle,var(--gl-color-neutral-50,#ececef))}.gl-border-transparent{border-color:var(--gl-border-color-transparent,var(--gl-color-alpha-0,#0000))}.gl-border-b-dropdown-divider{border-bottom-color:var(--gl-dropdown-divider-color,var(--gl-border-color-default,#dcdcde))}.gl-border-t-dropdown-divider{border-top-color:var(--gl-dropdown-divider-color,var(--gl-border-color-default,#dcdcde))}.\!gl-bg-transparent{background-color:initial!important}.gl-bg-black{background-color:var(--black,#050506)}.gl-bg-blue-100{background-color:var(--blue-100,#cbe2f9)}.gl-bg-blue-50{background-color:var(--blue-50,#e9f3fc)}.gl-bg-default{background-color:var(--gl-background-color-default,var(--gl-color-neutral-0,#fff))}.gl-bg-dropdown{background-color:var(--gl-dropdown-background-color,var(--gl-background-color-overlap,#fff))}.gl-bg-feedback-danger{background-color:var(--gl-feedback-danger-background-color,var(--gl-color-red-50,#fcf1ef))}.gl-bg-feedback-info{background-color:var(--gl-feedback-info-background-color,var(--gl-color-blue-50,#e9f3fc))}.gl-bg-gray-10{background-color:var(--gray-10,#fbfafd)}.gl-bg-gray-50{background-color:var(--gray-50,#ececef)}.gl-bg-inherit{background-color:inherit}.gl-bg-status-neutral{background-color:var(--gl-status-neutral-background-color,var(--gl-color-neutral-100,#dcdcde))}.gl-bg-subtle{background-color:var(--gl-background-color-subtle,var(--gl-color-neutral-10,#fbfafd))}.gl-bg-transparent{background-color:initial}.gl-bg-white{background-color:var(--white,#fff)}.gl-fill-current{fill:currentColor}.gl-fill-icon-danger{fill:var(--gl-icon-color-danger,var(--gl-text-color-danger,#c02f12))}.gl-fill-icon-default{fill:var(--gl-icon-color-default,var(--gl-text-color-default,#3a383f))}.gl-fill-icon-disabled{fill:var(--gl-icon-color-disabled,var(--gl-text-color-disabled,#89888d))}.gl-fill-icon-info{fill:var(--gl-icon-color-info,var(--gl-color-blue-700,#2f5ca0))}.gl-fill-icon-link{fill:var(--gl-icon-color-link,var(--gl-text-color-link,#2f5ca0))}.gl-fill-icon-strong{fill:var(--gl-icon-color-strong,var(--gl-text-color-strong,#18171d))}.gl-fill-icon-subtle{fill:var(--gl-icon-color-subtle,var(--gl-text-color-subtle,#626168))}.gl-fill-icon-success{fill:var(--gl-icon-color-success,var(--gl-text-color-success,#2f7549))}.gl-fill-icon-warning{fill:var(--gl-icon-color-warning,var(--gl-text-color-warning,#995715))}.\!gl-p-0{padding:0!important}.\!gl-p-2{padding:.25rem!important}.\!gl-p-4{padding:.75rem!important}.gl-p-0{padding:0}.gl-p-1{padding:.125rem}.gl-p-2{padding:.25rem}.gl-p-3{padding:.5rem}.gl-p-4{padding:.75rem}.gl-p-5{padding:1rem}.\!gl-px-2{padding-left:.25rem!important;padding-right:.25rem!important}.\!gl-px-3{padding-left:.5rem!important;padding-right:.5rem!important}.\!gl-py-2{padding-bottom:.25rem!important;padding-top:.25rem!important}.\!gl-py-4{padding-bottom:.75rem!important;padding-top:.75rem!important}.gl-px-1{padding-left:.125rem;padding-right:.125rem}.gl-px-2{padding-left:.25rem;padding-right:.25rem}.gl-px-3{padding-left:.5rem;padding-right:.5rem}.gl-px-4{padding-left:.75rem;padding-right:.75rem}.gl-px-5{padding-left:1rem;padding-right:1rem}.gl-py-2{padding-bottom:.25rem;padding-top:.25rem}.gl-py-3{padding-bottom:.5rem;padding-top:.5rem}.gl-py-5{padding-bottom:1rem;padding-top:1rem}.gl-py-6{padding-bottom:1.5rem;padding-top:1.5rem}.\!gl-pl-9{padding-left:3rem!important}.\!gl-pr-7{padding-right:2rem!important}.\!gl-pr-9{padding-right:3rem!important}.\!gl-pt-0{padding-top:0!important}.gl-pb-2{padding-bottom:.25rem}.gl-pb-3{padding-bottom:.5rem}.gl-pl-0{padding-left:0}.gl-pl-2{padding-left:.25rem}.gl-pl-3{padding-left:.5rem}.gl-pl-4{padding-left:.75rem}.gl-pl-5{padding-left:1rem}.gl-pl-6{padding-left:1.5rem}.gl-pl-7{padding-left:2rem}.gl-pr-2{padding-right:.25rem}.gl-pr-3{padding-right:.5rem}.gl-pr-5{padding-right:1rem}.gl-pr-6{padding-right:1.5rem}.gl-pr-7{padding-right:2rem}.gl-pr-8{padding-right:2.5rem}.gl-pt-1{padding-top:.125rem}.gl-pt-2{padding-top:.25rem}.gl-pt-3{padding-top:.5rem}.gl-pt-4{padding-top:.75rem}.\!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-regular{font-family:var(--default-regular-font,"GitLab Sans"),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}.\!gl-text-sm{font-size:.75rem!important}.gl-text-base{font-size:.875rem}.gl-text-size-h-display{font-size:1.75rem}.gl-text-size-h2{font-size:1.1875rem}.gl-text-sm{font-size:.75rem}.gl-text-xs{font-size:.625rem}.gl-font-bold{font-weight:600}.gl-font-normal{font-weight:400}.gl-lowercase{text-transform:lowercase}.gl-italic{font-style:italic}.gl-leading-1{line-height:1}.gl-leading-20{line-height:1.25rem}.gl-leading-36{line-height:2.25rem}.gl-leading-normal{line-height:1rem}.\!gl-text-default{color:var(--gl-text-color-default,var(--gl-color-neutral-800,#3a383f))!important}.\!gl-text-subtle{color:var(--gl-text-color-subtle,var(--gl-color-neutral-600,#626168))!important}.\!gl-text-success{color:var(--gl-text-color-success,var(--gl-color-green-600,#2f7549))!important}.gl-text-blue-100{color:var(--blue-100,#cbe2f9)}.gl-text-blue-500{color:var(--blue-500,#1f75cb)}.gl-text-blue-600{color:var(--blue-600,#2f68b4)}.gl-text-blue-700{color:var(--blue-700,#2f5ca0)}.gl-text-blue-900{color:var(--blue-900,#213454)}.gl-text-danger{color:var(--gl-text-color-danger,var(--gl-color-red-600,#c02f12))}.gl-text-default{color:var(--gl-text-color-default,var(--gl-color-neutral-800,#3a383f))}.gl-text-feedback-info{color:var(--gl-feedback-info-text-color,var(--gl-color-blue-700,#2f5ca0))}.gl-text-gray-500{color:var(--gray-500,#737278)}.gl-text-gray-700{color:var(--gray-700,#4c4b51)}.gl-text-gray-900{color:var(--gray-900,#28272d)}.gl-text-green-500{color:var(--green-500,#108548)}.gl-text-inherit{color:inherit}.gl-text-neutral-0{color:var(--gl-color-neutral-0,#fff)}.gl-text-neutral-950{color:var(--gl-color-neutral-950,#18171d)}.gl-text-orange-500{color:var(--orange-500,#ab6100)}.gl-text-red-500{color:var(--red-500,#dd2b0e)}.gl-text-red-600{color:var(--red-600,#c02f12)}.gl-text-secondary{color:var(--gl-text-secondary,#737278)}.gl-text-strong{color:var(--gl-text-color-strong,var(--gl-color-neutral-950,#18171d))}.gl-text-subtle{color:var(--gl-text-color-subtle,var(--gl-color-neutral-600,#626168))}.\!gl-opacity-0{opacity:0!important}.gl-opacity-10{opacity:1}.\!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:0 0 1px var(--gl-shadow-color-default,#05050629),0 0 2px var(--gl-shadow-color-default,#05050629),0 2px 8px var(--gl-shadow-color-default,#05050629);--tw-shadow-colored:0 0 1px var(--tw-shadow-color),0 0 2px var(--tw-shadow-color),0 2px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.gl-outline-none{outline:2px solid #0000;outline-offset:2px}.gl-transition-all{transition-duration:.2s;transition-property:all;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}.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-bg-gray-50:hover{background-color:var(--gray-50,#ececef)}.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:.5rem}.sm\:gl-mt-3{margin-top:.5rem}.sm\:\!gl-hidden{display:none!important}.sm\:gl-max-w-1\/2{max-width:50%}}.\[\&\>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 */
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitlab/duo-ui",
3
- "version": "10.17.4",
3
+ "version": "10.18.0",
4
4
  "description": "Duo UI Components",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -102,7 +102,7 @@
102
102
  "@gitlab/fonts": "^1.3.1",
103
103
  "@gitlab/stylelint-config": "6.2.2",
104
104
  "@gitlab/svgs": "^3.146.0",
105
- "@gitlab/ui": "latest",
105
+ "@gitlab/ui": "^119.0.0",
106
106
  "@jest/test-sequencer": "^29.7.0",
107
107
  "@rollup/plugin-commonjs": "^11.1.0",
108
108
  "@rollup/plugin-node-resolve": "^7.1.3",
@@ -14,7 +14,7 @@ import {
14
14
  GlSafeHtmlDirective as SafeHtml,
15
15
  } from '@gitlab/ui';
16
16
 
17
- import { translate } from '../../utils/i18n';
17
+ import { sprintf, translate, translatePlural } from '@gitlab/ui/dist/utils/i18n';
18
18
 
19
19
  import {
20
20
  badgeTypes,
@@ -23,6 +23,8 @@ import {
23
23
  CHAT_INCLUDE_MESSAGE,
24
24
  CHAT_BASE_COMMANDS,
25
25
  MESSAGE_MODEL_ROLES,
26
+ MAX_PROMPT_LENGTH,
27
+ PROMPT_LENGTH_WARNING,
26
28
  } from '../chat/constants';
27
29
  import { VIEW_TYPES } from '../chat/components/duo_chat_header/constants';
28
30
  import DuoChatLoader from '../chat/components/duo_chat_loader/duo_chat_loader.vue';
@@ -332,10 +334,14 @@ export default {
332
334
  scrolledToBottom: true,
333
335
  activeCommandIndex: 0,
334
336
  canSubmit: true,
337
+ hasValidPrompt: true,
335
338
  compositionJustEnded: false,
336
339
  contextItemsMenuIsOpen: false,
337
340
  contextItemMenuRef: null,
338
341
  currentView: this.multiThreadedView,
342
+ maxPromptLength: MAX_PROMPT_LENGTH,
343
+ maxPromptLengthWarning: PROMPT_LENGTH_WARNING,
344
+ promptLengthWarningCount: MAX_PROMPT_LENGTH - PROMPT_LENGTH_WARNING,
339
345
  };
340
346
  },
341
347
  computed: {
@@ -460,6 +466,9 @@ export default {
460
466
  this.onShowSlashCommands();
461
467
  }
462
468
  },
469
+ prompt(newPrompt) {
470
+ this.hasValidPrompt = newPrompt?.length < MAX_PROMPT_LENGTH + 1;
471
+ },
463
472
  },
464
473
  created() {
465
474
  this.handleScrollingThrottled = throttle(this.handleScrolling, 200); // Assume a 200ms throttle for example
@@ -504,6 +513,7 @@ export default {
504
513
  if (!this.canSubmit || this.contextItemsMenuIsOpen) {
505
514
  return;
506
515
  }
516
+
507
517
  if (this.prompt) {
508
518
  // Store these before any async operations that might clear the prompt
509
519
  const trimmedPrompt = this.prompt.trim();
@@ -523,7 +533,6 @@ export default {
523
533
 
524
534
  // Always clear the prompt after sending, regardless of the command type
525
535
  await this.setPromptAndFocus();
526
-
527
536
  // Check if it was a special command using the stored value (before clearing)
528
537
  if (!CHAT_BASE_COMMANDS.includes(lowerCasePrompt)) {
529
538
  // Wait for all reactive updates to complete before setting canSubmit
@@ -547,9 +556,7 @@ export default {
547
556
  this.$refs.anchor?.scrollIntoView?.();
548
557
  },
549
558
  focusChatInput() {
550
- // This method is also called directly by consumers of this component
551
- // https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/dae2d4669ab4da327921492a2962beae8a05c290/webviews/vue2/gitlab_duo_chat/src/App.vue#L109
552
- this.$refs.prompt?.$el?.focus();
559
+ this.$refs.prompt?.$el?.querySelector?.('textarea')?.focus();
553
560
  },
554
561
  onTrackFeedback(event) {
555
562
  /**
@@ -715,6 +722,30 @@ export default {
715
722
  event.preventDefault();
716
723
  document.execCommand?.('redo');
717
724
  },
725
+ remainingCharacterCountMessage(count) {
726
+ return sprintf(
727
+ translatePlural(
728
+ 'AgenticDuoChat.remainingCharacterCountMessage',
729
+ '%{count} character remaining.',
730
+ '%{count} characters remaining.'
731
+ )(count),
732
+ {
733
+ count,
734
+ }
735
+ );
736
+ },
737
+ overLimitCharacterCountMessage(count) {
738
+ return sprintf(
739
+ translatePlural(
740
+ 'AgenticDuoChat.overLimitCharacterCountMessage',
741
+ '%{count} character over limit.',
742
+ '%{count} characters over limit.'
743
+ )(count),
744
+ {
745
+ count,
746
+ }
747
+ );
748
+ },
718
749
  },
719
750
  i18n,
720
751
  };
@@ -839,8 +870,8 @@ export default {
839
870
  <gl-form data-testid="chat-prompt-form" @submit.stop.prevent="sendChatPrompt">
840
871
  <div class="gl-relative gl-max-w-full">
841
872
  <!--
842
- @slot For integrating `<gl-context-items-menu>` component if pinned-context should be available. The following scopedSlot properties are provided: `isOpen`, `onClose`, `setRef`, `focusPrompt`, which should be passed to the `<gl-context-items-menu>` component when rendering, e.g. `<template #context-items-menu="{ isOpen, onClose, setRef, focusPrompt }">` `<duo-chat-context-item-menu :ref="setRef" :open="isOpen" @close="onClose" @focus-prompt="focusPrompt" ...`
843
- -->
873
+ @slot For integrating `<gl-context-items-menu>` component if pinned-context should be available. The following scopedSlot properties are provided: `isOpen`, `onClose`, `setRef`, `focusPrompt`, which should be passed to the `<gl-context-items-menu>` component when rendering, e.g. `<template #context-items-menu="{ isOpen, onClose, setRef, focusPrompt }">` `<duo-chat-context-item-menu :ref="setRef" :open="isOpen" @close="onClose" @focus-prompt="focusPrompt" ...`
874
+ -->
844
875
  <slot
845
876
  name="context-items-menu"
846
877
  :is-open="contextItemsMenuIsOpen"
@@ -882,9 +913,22 @@ export default {
882
913
  v-model="prompt"
883
914
  :disabled="!canSubmit"
884
915
  data-testid="chat-prompt-input"
885
- class="gl-absolute !gl-h-full gl-rounded-br-none gl-rounded-tr-none !gl-bg-transparent !gl-py-4 !gl-shadow-none"
886
- :class="{ 'gl-truncate': !prompt }"
887
916
  :placeholder="inputPlaceholder"
917
+ :character-count-limit="maxPromptLength"
918
+ :textarea-classes="[
919
+ 'gl-absolute',
920
+ '!gl-h-full',
921
+ 'gl-rounded-br-none',
922
+ 'gl-rounded-tr-none',
923
+ '!gl-bg-transparent',
924
+ '!gl-py-4',
925
+ '!gl-shadow-none',
926
+ 'form-control',
927
+ 'gl-form-input',
928
+ 'gl-form-textarea',
929
+ { 'gl-truncate': !prompt },
930
+ ]"
931
+ aria-label="Chat prompt input"
888
932
  autofocus
889
933
  @keydown.enter.exact.native.prevent
890
934
  @keydown.ctrl.z.exact="handleUndo"
@@ -895,7 +939,21 @@ export default {
895
939
  @keydown.meta.y.exact="handleRedo"
896
940
  @keyup.native="onInputKeyup"
897
941
  @compositionend="compositionEnd"
898
- />
942
+ >
943
+ <template #remaining-character-count-text="{ count }">
944
+ <span
945
+ v-if="count <= promptLengthWarningCount"
946
+ class="gl-absolute gl-bottom-[-25px] gl-right-px gl-pr-3"
947
+ >
948
+ {{ remainingCharacterCountMessage(count) }}
949
+ </span>
950
+ </template>
951
+ <template #character-count-over-limit-text="{ count }">
952
+ <span class="gl-absolute gl-bottom-[-25px] gl-right-px gl-pr-3">{{
953
+ overLimitCharacterCountMessage(count)
954
+ }}</span>
955
+ </template>
956
+ </gl-form-textarea>
899
957
  </div>
900
958
  <template #append>
901
959
  <gl-button
@@ -905,8 +963,8 @@ export default {
905
963
  variant="confirm"
906
964
  class="!gl-absolute gl-bottom-2 gl-right-2 !gl-rounded-full"
907
965
  type="submit"
966
+ :disabled="isPromptEmpty || !hasValidPrompt"
908
967
  data-testid="chat-prompt-submit-button"
909
- :disabled="isPromptEmpty"
910
968
  :aria-label="$options.i18n.CHAT_SUBMIT_LABEL"
911
969
  />
912
970
  <gl-button
@@ -923,7 +981,10 @@ export default {
923
981
  </gl-form-input-group>
924
982
  </gl-form>
925
983
  <slot name="footer-controls"></slot>
926
- <p class="gl-mb-0 gl-mt-3 gl-px-4 gl-text-sm gl-text-secondary">
984
+ <p
985
+ class="gl-mb-0 gl-mt-3 gl-px-4 gl-text-sm gl-text-secondary"
986
+ :class="{ 'gl-mt-6 sm:gl-mt-3 sm:gl-max-w-1/2': prompt.length >= maxPromptLengthWarning }"
987
+ >
927
988
  {{ $options.i18n.CHAT_DISCLAMER }}
928
989
  </p>
929
990
  </footer>
@@ -34,3 +34,8 @@ export const SELECTED_CONTEXT_ITEMS_DEFAULT_COLLAPSED = true;
34
34
  // TODO this should be a shared util in GitLab UI
35
35
  export const badgeTypes = ['experiment', 'beta', null];
36
36
  export const badgeTypeValidator = (value) => badgeTypes.includes(value);
37
+
38
+ // This value of 16384 is based on the value hardcoded in IDE. This is currently hard limit from the backend.
39
+ // https://gitlab.com/gitlab-org/editor-extensions/gitlab-lsp/-/blob/main/packages/webview_duo_workflow_panel/src/app/pages/new/components/duo_workflow_prompt.vue?ref_type=heads#L135
40
+ export const MAX_PROMPT_LENGTH = 16384;
41
+ export const PROMPT_LENGTH_WARNING = MAX_PROMPT_LENGTH - 100;
package/translations.js CHANGED
@@ -15,6 +15,8 @@ export default {
15
15
  'AgenticDuoChat.chatPromptPlaceholderDefault': 'GitLab Duo Agentic Chat',
16
16
  'AgenticDuoChat.chatPromptPlaceholderWithCommands': 'Type /help to learn more',
17
17
  'AgenticDuoChat.chatSubmitLabel': 'Send chat message.',
18
+ 'AgenticDuoChat.overLimitCharacterCountMessage': null,
19
+ 'AgenticDuoChat.remainingCharacterCountMessage': null,
18
20
  'AgenticToolApprovalFlow.defaultDescription':
19
21
  'GitLab Duo Agentic Chat wants to execute a tool. Do you want to proceed?',
20
22
  'AgenticToolApprovalModal.approveText': 'Approve',