@gitlab/duo-ui 11.2.2 → 11.4.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.
Files changed (23) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/dist/components/agentic_chat/agentic_duo_chat.js +28 -2
  3. package/dist/components/agentic_chat/web_agentic_duo_chat.js +9 -1
  4. package/dist/components/chat/components/duo_chat_header/web_duo_chat_header.js +6 -1
  5. package/dist/components/chat/components/duo_chat_message/message_types/message_tool.js +2 -5
  6. package/dist/components/chat/components/duo_chat_message_tool_approval/components/create_commit_tool_params.js +18 -5
  7. package/dist/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.js +1 -1
  8. package/dist/components.css +1 -1
  9. package/dist/components.css.map +1 -1
  10. package/dist/tailwind.css +1 -1
  11. package/dist/tailwind.css.map +1 -1
  12. package/package.json +2 -1
  13. package/src/components/agentic_chat/agentic_duo_chat.vue +40 -2
  14. package/src/components/agentic_chat/web_agentic_duo_chat.vue +9 -0
  15. package/src/components/chat/components/duo_chat_header/web_duo_chat_header.vue +10 -1
  16. package/src/components/chat/components/duo_chat_message/message_types/message_tool.vue +1 -50
  17. package/src/components/chat/components/duo_chat_message_tool_approval/components/create_commit_tool_params.vue +29 -18
  18. package/src/components/chat/components/duo_chat_message_tool_approval/message_tool_approval.vue +6 -1
  19. package/src/components/chat/duo_chat.scss +9 -0
  20. package/translations.js +0 -2
  21. package/dist/components/chat/components/duo_chat_message_tool_command_output/message_tool_command_output.js +0 -98
  22. package/src/components/chat/components/duo_chat_message_tool_command_output/message_tool_command_output.md +0 -43
  23. package/src/components/chat/components/duo_chat_message_tool_command_output/message_tool_command_output.vue +0 -99
package/CHANGELOG.md CHANGED
@@ -1,3 +1,22 @@
1
+ # [11.4.0](https://gitlab.com/gitlab-org/duo-ui/compare/v11.3.0...v11.4.0) (2025-10-07)
2
+
3
+
4
+ ### Features
5
+
6
+ * Improve commit tool approval output ([bf787f9](https://gitlab.com/gitlab-org/duo-ui/commit/bf787f97b7120dddaaa5797a840a346f7f78ebff))
7
+
8
+ # [11.3.0](https://gitlab.com/gitlab-org/duo-ui/compare/v11.2.2...v11.3.0) (2025-10-03)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **MCP:** Display correct cancelPrompt state after approvals ([d82ae48](https://gitlab.com/gitlab-org/duo-ui/commit/d82ae48267f1689f16680670d18faf5d97dab6f7))
14
+
15
+
16
+ ### Features
17
+
18
+ * **header:** Adden new boolean to hide only part of header ([ec361ad](https://gitlab.com/gitlab-org/duo-ui/commit/ec361adccc4886c292c6a8061718d5bf1ebdbe50))
19
+
1
20
  ## [11.2.2](https://gitlab.com/gitlab-org/duo-ui/compare/v11.2.1...v11.2.2) (2025-10-03)
2
21
 
3
22
 
@@ -377,6 +377,13 @@ var script = {
377
377
  },
378
378
  activeThreadTitleForView() {
379
379
  return this.currentView === VIEW_TYPES.CHAT && this.activeThreadTitle || '';
380
+ },
381
+ isAwaitingToolApproval() {
382
+ if (!this.messages || this.messages.length === 0) {
383
+ return false;
384
+ }
385
+ const lastMessage = this.messages[this.messages.length - 1];
386
+ return Boolean(lastMessage && lastMessage.message_type === 'request' && lastMessage.tool_info !== undefined);
380
387
  }
381
388
  },
382
389
  watch: {
@@ -384,16 +391,28 @@ var script = {
384
391
  this.currentView = newView;
385
392
  },
386
393
  isLoading(loading) {
387
- if (!loading && !this.isStreaming) {
394
+ if (!loading && !this.isStreaming && !this.isToolApprovalProcessing && !this.isAwaitingToolApproval) {
388
395
  this.canSubmit = true; // Re-enable submit button when loading stops
389
396
  }
390
397
  this.isHidden = false;
391
398
  },
392
399
  isStreaming(streaming) {
393
- if (!streaming && !this.isLoading) {
400
+ if (!streaming && !this.isLoading && !this.isToolApprovalProcessing && !this.isAwaitingToolApproval) {
394
401
  this.canSubmit = true; // Re-enable submit button when streaming stops
395
402
  }
396
403
  },
404
+ isToolApprovalProcessing(processing) {
405
+ if (!processing && !this.isLoading && !this.isStreaming && !this.isAwaitingToolApproval) {
406
+ this.canSubmit = true; // Re-enable submit button when tool approval processing stops
407
+ }
408
+ },
409
+ isAwaitingToolApproval(awaiting) {
410
+ if (awaiting) {
411
+ this.canSubmit = false; // Show cancel button when tool approval is needed
412
+ } else if (!this.isLoading && !this.isStreaming && !this.isToolApprovalProcessing) {
413
+ this.canSubmit = true; // Re-enable submit button when tool approval is no longer needed
414
+ }
415
+ },
397
416
  lastMessage(newMessage) {
398
417
  if (this.scrolledToBottom || (newMessage === null || newMessage === void 0 ? void 0 : newMessage.role.toLowerCase()) === MESSAGE_MODEL_ROLES.user) {
399
418
  // only scroll to bottom on new message if the user hasn't explicitly scrolled up to view an earlier message
@@ -412,6 +431,13 @@ var script = {
412
431
  },
413
432
  created() {
414
433
  this.handleScrollingThrottled = throttle(this.handleScrolling, 200); // Assume a 200ms throttle for example
434
+
435
+ // Set initial canSubmit state based on current conditions
436
+ // Note: We don't check isStreaming here because the component should allow
437
+ // the first submission even if it starts with streaming messages
438
+ if (this.isAwaitingToolApproval || this.isLoading || this.isToolApprovalProcessing) {
439
+ this.canSubmit = false;
440
+ }
415
441
  },
416
442
  mounted() {
417
443
  this.scrollToBottom();
@@ -210,6 +210,14 @@ var script = {
210
210
  required: false,
211
211
  default: true
212
212
  },
213
+ /**
214
+ * Whether the studio style header should be displayed.
215
+ */
216
+ showStudioHeader: {
217
+ type: Boolean,
218
+ required: false,
219
+ default: true
220
+ },
213
221
  /**
214
222
  * Override the default empty state title text.
215
223
  */
@@ -681,7 +689,7 @@ var script = {
681
689
  const __vue_script__ = script;
682
690
 
683
691
  /* template */
684
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"markdown-code-block duo-chat gl-bottom-0 gl-flex gl-max-h-full gl-flex-grow gl-flex-col",attrs:{"id":"chat-component","role":"complementary","data-testid":"chat-component"}},[(_vm.showHeader)?_c('web-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,"session-id":_vm.sessionId,"agents":_vm.agents},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('div',{staticClass:"duo-chat-input web-only gl-relative gl-min-h-8 gl-max-w-full gl-grow gl-flex-col gl-rounded-bl-[12px] gl-rounded-br-[18px] gl-rounded-tl-[12px] gl-rounded-tr-[12px] gl-align-top"},[_c('div',{staticClass:"gl-flex gl-justify-between gl-border-0 gl-border-b-1 gl-border-solid gl-border-strong gl-px-4 gl-py-4"},[_c('div',[_vm._v(_vm._s(_vm.$options.i18n.CHAT_MODEL_PLACEHOLDER))]),_vm._v(" "),_c('div',[_vm._t("agentic-switch")],2)]),_vm._v(" "),_c('div',{staticClass:"gl-h-[80px] gl-grow",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":[
692
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"markdown-code-block duo-chat gl-bottom-0 gl-flex gl-max-h-full gl-flex-grow gl-flex-col",attrs:{"id":"chat-component","role":"complementary","data-testid":"chat-component"}},[(_vm.showHeader)?_c('web-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,"session-id":_vm.sessionId,"agents":_vm.agents,"show-studio-header":_vm.showStudioHeader},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('div',{staticClass:"duo-chat-input web-only gl-relative gl-min-h-8 gl-max-w-full gl-grow gl-flex-col gl-rounded-bl-[12px] gl-rounded-br-[18px] gl-rounded-tl-[12px] gl-rounded-tr-[12px] gl-align-top"},[_c('div',{staticClass:"gl-flex gl-justify-between gl-border-0 gl-border-b-1 gl-border-solid gl-border-strong gl-px-4 gl-py-4"},[_c('div',[_vm._v(_vm._s(_vm.$options.i18n.CHAT_MODEL_PLACEHOLDER))]),_vm._v(" "),_c('div',[_vm._t("agentic-switch")],2)]),_vm._v(" "),_c('div',{staticClass:"gl-h-[80px] gl-grow",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":[
685
693
  '!gl-h-full',
686
694
  '!gl-bg-transparent',
687
695
  '!gl-py-4',
@@ -82,6 +82,11 @@ var script = {
82
82
  type: Array,
83
83
  required: false,
84
84
  default: () => []
85
+ },
86
+ showStudioHeader: {
87
+ type: Boolean,
88
+ required: false,
89
+ default: false
85
90
  }
86
91
  },
87
92
  computed: {
@@ -121,7 +126,7 @@ var script = {
121
126
  const __vue_script__ = script;
122
127
 
123
128
  /* template */
124
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:"gl-border-b gl-shrink-0 gl-bg-default gl-p-0",attrs:{"data-testid":"chat-header"}},[_c('div',{staticClass:"gl-border-b gl-flex gl-w-full gl-items-center gl-px-5 gl-py-3"},[(_vm.subtitle)?_c('h4',{staticClass:"gl-mb-0 gl-max-w-17/20 gl-flex-1 gl-shrink-0 gl-overflow-hidden gl-truncate gl-text-ellipsis gl-whitespace-nowrap gl-pr-3 gl-text-sm gl-font-normal gl-text-subtle",attrs:{"data-testid":"chat-subtitle"}},[_vm._v("\n "+_vm._s(_vm.subtitle)+"\n ")]):_vm._e(),_vm._v(" "),_c('gl-button',{staticClass:"gl-ml-auto",attrs:{"category":"tertiary","variant":"default","icon":"close","size":"small","data-testid":"chat-close-button","aria-label":_vm.$options.i18n.CHAT_CLOSE_LABEL},on:{"click":function($event){return _vm.$emit('close')}}})],1),_vm._v(" "),_c('div',{staticClass:"drawer-title gl-flex gl-items-center gl-justify-start gl-p-5"},[_c('div',{staticClass:"gl-flex gl-flex-1 gl-overflow-hidden"},[_c('gl-avatar',{staticClass:"gl-mr-3",attrs:{"size":32,"entity-name":_vm.title,"shape":"circle"}}),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-items-center"},[_c('h3',{staticClass:"gl-my-0 gl-text-[0.875rem]"},[_vm._v(_vm._s(_vm.title))])])],1),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-gap-3"},[(
129
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('header',{staticClass:"gl-border-b gl-shrink-0 gl-bg-default gl-p-0",attrs:{"data-testid":"chat-header"}},[(!_vm.showStudioHeader)?_c('div',{staticClass:"gl-border-b gl-flex gl-w-full gl-items-center gl-px-5 gl-py-3",attrs:{"data-testid":"chat-top-header"}},[(_vm.subtitle)?_c('h4',{staticClass:"gl-mb-0 gl-max-w-17/20 gl-flex-1 gl-shrink-0 gl-overflow-hidden gl-truncate gl-text-ellipsis gl-whitespace-nowrap gl-pr-3 gl-text-sm gl-font-normal gl-text-subtle",attrs:{"data-testid":"chat-subtitle"}},[_vm._v("\n "+_vm._s(_vm.subtitle)+"\n ")]):_vm._e(),_vm._v(" "),_c('gl-button',{staticClass:"gl-ml-auto",attrs:{"category":"tertiary","variant":"default","icon":"close","size":"small","data-testid":"chat-close-button","aria-label":_vm.$options.i18n.CHAT_CLOSE_LABEL},on:{"click":function($event){return _vm.$emit('close')}}})],1):_vm._e(),_vm._v(" "),_c('div',{staticClass:"drawer-title gl-flex gl-items-center gl-justify-start gl-p-5"},[_c('div',{staticClass:"gl-flex gl-flex-1 gl-overflow-hidden"},[_c('gl-avatar',{staticClass:"gl-mr-3",attrs:{"size":32,"entity-name":_vm.title,"shape":"circle"}}),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-items-center"},[_c('h3',{staticClass:"gl-my-0 gl-text-[0.875rem]"},[_vm._v(_vm._s(_vm.title))])])],1),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-gap-3"},[(
125
130
  _vm.isMultithreaded && (_vm.activeThreadId || _vm.currentView === _vm.VIEW_TYPES.LIST || _vm.hasManyAgents)
126
131
  )?[(_vm.hasManyAgents)?_c('gl-disclosure-dropdown',{attrs:{"title":_vm.$options.i18n.CHAT_NEW_TOOLTIP,"toggle-text":_vm.$options.i18n.CHAT_NEW_TOOLTIP,"items":_vm.agents,"data-testid":"chat-new-button","variant":"confirm","category":"tertiary","size":"small","icon":"duo-chat-new","text-sr-only":"","aria-label":_vm.$options.i18n.CHAT_NEW_LABEL,"no-caret":""},on:{"action":_vm.startNewChat},scopedSlots:_vm._u([{key:"list-item",fn:function(ref){
127
132
  var item = ref.item;
@@ -74,9 +74,6 @@ var script = {
74
74
  var _this$message$tool_in3;
75
75
  return ((_this$message$tool_in3 = this.message.tool_info) === null || _this$message$tool_in3 === void 0 ? void 0 : _this$message$tool_in3.args) || {};
76
76
  },
77
- hasActions() {
78
- return this.toolArgs.actions && Array.isArray(this.toolArgs.actions);
79
- },
80
77
  projectId() {
81
78
  return this.toolArgs.project_id;
82
79
  },
@@ -104,7 +101,7 @@ var script = {
104
101
  return this.workingDirectory;
105
102
  },
106
103
  requiresApproval() {
107
- return [APPROVAL_TOOL_NAMES.runCommand, APPROVAL_TOOL_NAMES.runGitCommand, APPROVAL_TOOL_NAMES.createIssue, APPROVAL_TOOL_NAMES.updateIssue, APPROVAL_TOOL_NAMES.createMergeRequest, APPROVAL_TOOL_NAMES.updateMergeRequest, APPROVAL_TOOL_NAMES.createEpic, APPROVAL_TOOL_NAMES.updateEpic].includes(this.toolName);
104
+ return [APPROVAL_TOOL_NAMES.runCommand, APPROVAL_TOOL_NAMES.runGitCommand, APPROVAL_TOOL_NAMES.createIssue, APPROVAL_TOOL_NAMES.updateIssue, APPROVAL_TOOL_NAMES.createMergeRequest, APPROVAL_TOOL_NAMES.updateMergeRequest, APPROVAL_TOOL_NAMES.createEpic, APPROVAL_TOOL_NAMES.updateEpic, APPROVAL_TOOL_NAMES.createCommit].includes(this.toolName);
108
105
  }
109
106
  },
110
107
  methods: {
@@ -123,7 +120,7 @@ const __vue_script__ = script;
123
120
  /* template */
124
121
  var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.requiresApproval)?_c('message-tool-approval',{attrs:{"message":_vm.message,"working-directory":_vm.workingDirectory,"approval-status":"approved"}}):_c('base-message',{attrs:{"message":_vm.message},scopedSlots:_vm._u([{key:"message",fn:function(ref){
125
122
  var content = ref.content;
126
- return [_c('div',{staticClass:"gl-flex gl-items-baseline !gl-text-subtle"},[_c('div',{staticClass:"gl-mr-3 gl-flex-shrink-0"},[_c('gl-icon',{attrs:{"name":_vm.iconName}})],1),_vm._v(" "),_c('div',{staticClass:"gl-flex-1"},[_c('div',{staticClass:"gl-mb-2"},[_c('span',{attrs:{"data-testid":"tool-message-content"}},[_vm._v(_vm._s(content))])]),_vm._v(" "),(_vm.projectId)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-project-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.PROJECT_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-project-id"}},[_vm._v(_vm._s(_vm.projectId))])]):_vm._e(),_vm._v(" "),(_vm.branchName)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-branch-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.BRANCH_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-branch-name"}},[_vm._v(_vm._s(_vm.branchName))])]):_vm._e(),_vm._v(" "),(_vm.startBranch)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-start-branch-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.START_BRANCH_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-start-branch-name"}},[_vm._v(_vm._s(_vm.startBranch))])]):_vm._e(),_vm._v(" "),(_vm.commitMessage)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-commit-message-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.COMMIT_MESSAGE_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-commit-message-text"}},[_vm._v(_vm._s(_vm.commitMessage))])]):_vm._e(),_vm._v(" "),(_vm.hasActions)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-actions-section"}},[_c('div',{staticClass:"gl-mb-2"},[_c('span',{staticClass:"gl-font-weight-bold",attrs:{"data-testid":"tool-message-actions-label"}},[_vm._v(_vm._s(_vm.$options.i18n.ACTION_LABEL)+"s:")])]),_vm._v(" "),_vm._l((_vm.toolArgs.actions),function(action,index){return _c('div',{key:index,staticClass:"gl-rounded gl-border gl-mb-3 gl-ml-4 gl-border-subtle gl-p-3",attrs:{"data-testid":"tool-message-action-item"}},[_c('div',{staticClass:"gl-mb-2"},[_c('span',{staticClass:"gl-font-weight-bold",attrs:{"data-testid":"tool-message-action-type"}},[_vm._v(_vm._s(action.action))])]),_vm._v(" "),(action.file_path)?_c('div',{staticClass:"gl-mb-2"},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.FILE_PATH_LABEL)+":")]),_vm._v(" "),_c('gl-link',{staticClass:"gl-markdown file-path-link gl-ml-2 gl-break-all",attrs:{"data-testid":"tool-message-action-file-path-link"},on:{"click":function($event){$event.preventDefault();return _vm.onOpenFilePath(action.file_path)}}},[_c('code',[_vm._v(_vm._s(action.file_path))])])],1):_vm._e(),_vm._v(" "),(action.content)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-action-content"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.CONTENT_LABEL)+":")]),_vm._v(" "),_c('pre',{staticClass:"gl-rounded gl-mt-2 gl-overflow-auto gl-bg-subtle gl-p-2 gl-text-sm",attrs:{"data-testid":"tool-message-action-content-text"}},[_vm._v(_vm._s(action.content))])]):_vm._e()])})],2):(_vm.messageFilePath)?_c('div',{staticClass:"gl-mb-2"},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.FILE_PATH_LABEL)+":")]),_vm._v(" "),_c('gl-link',{staticClass:"gl-markdown file-path-link gl-ml-2 gl-break-all",attrs:{"data-testid":"tool-message-file-path-link"},on:{"click":function($event){$event.preventDefault();return _vm.onOpenFilePath(_vm.messageFilePath)}}},[_c('code',[_vm._v(_vm._s(_vm.messageFilePath))])])],1):_vm._e()])])]}}])})};
123
+ return [_c('div',{staticClass:"gl-flex gl-items-baseline !gl-text-subtle"},[_c('div',{staticClass:"gl-mr-3 gl-flex-shrink-0"},[_c('gl-icon',{attrs:{"name":_vm.iconName}})],1),_vm._v(" "),_c('div',{staticClass:"gl-flex-1"},[_c('div',{staticClass:"gl-mb-2"},[_c('span',{attrs:{"data-testid":"tool-message-content"}},[_vm._v(_vm._s(content))])]),_vm._v(" "),(_vm.projectId)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-project-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.PROJECT_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-project-id"}},[_vm._v(_vm._s(_vm.projectId))])]):_vm._e(),_vm._v(" "),(_vm.branchName)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-branch-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.BRANCH_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-branch-name"}},[_vm._v(_vm._s(_vm.branchName))])]):_vm._e(),_vm._v(" "),(_vm.startBranch)?_c('div',{staticClass:"gl-mb-2",attrs:{"data-testid":"tool-message-start-branch-info"}},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.START_BRANCH_LABEL)+":")]),_vm._v(" "),_c('span',{staticClass:"gl-ml-2",attrs:{"data-testid":"tool-message-start-branch-name"}},[_vm._v(_vm._s(_vm.startBranch))])]):(_vm.messageFilePath)?_c('div',{staticClass:"gl-mb-2"},[_c('span',{staticClass:"gl-font-weight-bold"},[_vm._v(_vm._s(_vm.$options.i18n.FILE_PATH_LABEL)+":")]),_vm._v(" "),_c('gl-link',{staticClass:"gl-markdown file-path-link gl-ml-2 gl-break-all",attrs:{"data-testid":"tool-message-file-path-link"},on:{"click":function($event){$event.preventDefault();return _vm.onOpenFilePath(_vm.messageFilePath)}}},[_c('code',[_vm._v(_vm._s(_vm.messageFilePath))])])],1):_vm._e()])])]}}])})};
127
124
  var __vue_staticRenderFns__ = [];
128
125
 
129
126
  /* style */
@@ -1,8 +1,10 @@
1
1
  import { GlSprintf, GlAccordion, GlAccordionItem } from '@gitlab/ui';
2
+ import { createPatch } from 'diff';
2
3
  import { sprintf, translatePlural, translate } from '../../../../../utils/i18n';
3
4
  import PreBlock from './pre_block';
4
5
  import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
5
6
 
7
+ const NO_NEW_LINE_SIGNAL = '\';
6
8
  var script = {
7
9
  name: 'CreateCommitToolParams',
8
10
  components: {
@@ -87,12 +89,25 @@ var script = {
87
89
  let {
88
90
  action,
89
91
  content,
90
- encoding
92
+ encoding,
93
+ old_str: oldContent,
94
+ new_str: newContent,
95
+ file_path: filePath
91
96
  } = _ref2;
92
97
  if (!['create', 'update'].includes(action)) {
93
98
  return this.$options.i18n.ACTION_WITH_NO_CONTENT;
94
99
  }
95
- return (!encoding || encoding === 'text') && content ? content : '';
100
+ if (encoding && encoding !== 'text') {
101
+ return '';
102
+ }
103
+ if (oldContent && newContent) {
104
+ const patch = createPatch(filePath, oldContent, newContent, undefined, undefined, {
105
+ context: 50
106
+ });
107
+ const patchAsLines = (patch === null || patch === void 0 ? void 0 : patch.split('\n')) || [];
108
+ return patchAsLines.filter(line => line !== NO_NEW_LINE_SIGNAL).slice(2).join('\n');
109
+ }
110
+ return content;
96
111
  }
97
112
  },
98
113
  i18n: {
@@ -105,8 +120,6 @@ var script = {
105
120
  CHMOD_FILE_ACTION_LABEL: translate('CreateCommitToolParams.chmodFileActionLabel', 'Change permissions for file %{filePath}'),
106
121
  UNKNOWN_FILE_ACTION_LABEL: translate('CreateCommitToolParams.unknownFileActionLabel', 'Modify file %{filePath}'),
107
122
  ACTION_WITH_NO_CONTENT: translate('CreateCommitToolParams.actionWithNoContent', 'This action does not have any content.'),
108
- PREVIOUS_CONTENT_LABEL: translate('CreateCommitToolParams.previousContentLabel', 'Previous content'),
109
- NEW_CONTENT_LABEL: translate('CreateCommitToolParams.newContentLabel', 'New content'),
110
123
  EXPAND_CHANGES: translate('CreateCommitToolParams.expandFileChanges', 'Expand file changes')
111
124
  }
112
125
  };
@@ -115,7 +128,7 @@ var script = {
115
128
  const __vue_script__ = script;
116
129
 
117
130
  /* template */
118
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-flex gl-flex-col"},[_c('div',[_c('gl-sprintf',{attrs:{"message":_vm.$options.i18n.COMMIT_SUMMARY_MESSAGE},scopedSlots:_vm._u([{key:"project",fn:function(){return [_c('code',[_vm._v(_vm._s(_vm.projectPath || _vm.projectId))])]},proxy:true},{key:"branch",fn:function(){return [_c('code',[_vm._v(_vm._s(_vm.branch))])]},proxy:true}])}),_vm._v("\n "+_vm._s(_vm.actionsCountMessage)+"\n ")],1),_vm._v(" "),_c('gl-accordion',{staticClass:"-gl-ml-2 gl-mt-3",attrs:{"header-level":3}},[_c('gl-accordion-item',{attrs:{"title":_vm.$options.i18n.READ_COMMIT_MESSAGE}},[_c('pre-block',[_vm._v(_vm._s(_vm.commitMessage))])],1),_vm._v(" "),_c('gl-accordion-item',{attrs:{"title":_vm.$options.i18n.EXPAND_CHANGES}},[_c('gl-accordion',{attrs:{"header-level":4}},_vm._l((_vm.actions),function(action,index){return _c('gl-accordion-item',{key:index,attrs:{"title":_vm.getActionTitle(action)}},[(action.old_str && action.new_str)?[_c('div',{staticClass:"gl-flex gl-flex-col gl-gap-2"},[_c('strong',[_vm._v(_vm._s(_vm.$options.i18n.PREVIOUS_CONTENT_LABEL))]),_vm._v(" "),_c('pre-block',[_vm._v(_vm._s(action.old_str))]),_vm._v(" "),_c('strong',[_vm._v(_vm._s(_vm.$options.i18n.NEW_CONTENT_LABEL))]),_vm._v(" "),_c('pre-block',[_vm._v(_vm._s(action.new_str))])],1)]:[_c('pre-block',[_vm._v(_vm._s(_vm.getActionContent(action)))])]],2)}),1)],1)],1)],1)};
131
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-flex gl-flex-col"},[_c('div',[_c('gl-sprintf',{attrs:{"message":_vm.$options.i18n.COMMIT_SUMMARY_MESSAGE},scopedSlots:_vm._u([{key:"project",fn:function(){return [_c('code',[_vm._v(_vm._s(_vm.projectPath || _vm.projectId))])]},proxy:true},{key:"branch",fn:function(){return [_c('code',[_vm._v(_vm._s(_vm.branch))])]},proxy:true}])}),_vm._v("\n "+_vm._s(_vm.actionsCountMessage)+"\n ")],1),_vm._v(" "),_c('gl-accordion',{staticClass:"-gl-ml-2 gl-mt-3",attrs:{"header-level":3}},[_c('gl-accordion-item',{attrs:{"title":_vm.$options.i18n.READ_COMMIT_MESSAGE}},[_c('pre-block',[_vm._v(_vm._s(_vm.commitMessage))])],1),_vm._v(" "),_c('gl-accordion-item',{attrs:{"title":_vm.$options.i18n.EXPAND_CHANGES}},[_c('gl-accordion',{attrs:{"header-level":4}},_vm._l((_vm.actions),function(action,index){return _c('gl-accordion-item',{key:index,attrs:{"title":_vm.getActionTitle(action)}},[_c('pre-block',[_vm._v(_vm._s(_vm.getActionContent(action)))])],1)}),1)],1)],1)],1)};
119
132
  var __vue_staticRenderFns__ = [];
120
133
 
121
134
  /* style */
@@ -260,7 +260,7 @@ var script = {
260
260
  const __vue_script__ = script;
261
261
 
262
262
  /* template */
263
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-card',{staticClass:"gl-w-full",attrs:{"body-class":{ 'gl-hidden': _vm.collapsed }},scopedSlots:_vm._u([{key:"header",fn:function(){return [_c('div',{staticClass:"gl-flex gl-items-center gl-justify-between gl-gap-3"},[_c('span',[(_vm.collapsible)?_c('gl-button',_vm._b({attrs:{"variant":"default","category":"tertiary","size":"small","data-testid":"toggle-details-button"},on:{"click":function($event){_vm.collapsed = !_vm.collapsed;}}},'gl-button',_vm.collapseButtonProps,false)):_vm._e(),_vm._v(" "),_c('span',[_vm._v("\n "+_vm._s(_vm.toolApprovalTitle)+"\n ")])],1),_vm._v(" "),_c('gl-badge',{attrs:{"variant":_vm.toolStatusVariant}},[_vm._v("\n "+_vm._s(_vm.toolStatusLabel)+"\n ")])],1)]},proxy:true},(!_vm.isApproved)?{key:"footer",fn:function(){return [(!_vm.showDenialReason)?_c('div',{staticClass:"gl-flex gl-gap-2"},[(_vm.showSplitButton)?_c('gl-dropdown',{attrs:{"variant":"confirm","size":"small","split":"","text":_vm.primaryApprovalOption.text,"disabled":_vm.buttonsDisabled || _vm.primaryApprovalOption.disabled,"loading":_vm.isApproving,"data-testid":"approve-dropdown"},on:{"click":_vm.handlePrimaryApprove}},_vm._l((_vm.additionalApprovalOptions),function(option){return _c('gl-dropdown-item',{key:option.type,attrs:{"disabled":option.disabled,"data-testid":"approve-dropdown-item"},on:{"click":function($event){return _vm.handleDropdownSelection(option)}}},[_vm._v("\n "+_vm._s(option.text)+"\n ")])}),1):_c('gl-button',{attrs:{"variant":"confirm","size":"small","data-testid":"approve-tool-inline","disabled":_vm.buttonsDisabled || _vm.primaryApprovalOption.disabled,"loading":_vm.isApproving},on:{"click":_vm.handlePrimaryApprove}},[_vm._v("\n "+_vm._s(_vm.primaryApprovalOption.text)+"\n ")]),_vm._v(" "),_c('gl-button',{attrs:{"size":"small","data-testid":"deny-tool-inline","disabled":_vm.buttonsDisabled,"loading":_vm.isDenying},on:{"click":_vm.handleDeny}},[_vm._v("\n "+_vm._s(_vm.denyButtonText)+"\n ")])],1):_c('div',[_c('gl-form-group',{staticClass:"gl-mb-3",attrs:{"label":_vm.$options.i18n.DENIAL_REASON_LABEL,"label-for":"inline-rejection-reason","optional":true}},[_c('gl-form-textarea',{attrs:{"id":"inline-rejection-reason","placeholder":_vm.$options.i18n.DENIAL_REASON_PLACEHOLDER,"rows":2,"no-resize":true,"submit-on-enter":false,"disabled":_vm.buttonsDisabled,"data-testid":"denial-reason-textarea","autofocus":""},on:{"submit":_vm.submitDenial},model:{value:(_vm.denialReason),callback:function ($$v) {_vm.denialReason=$$v;},expression:"denialReason"}})],1),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-gap-3"},[_c('gl-button',{attrs:{"size":"small","data-testid":"submit-denial","variant":"confirm","disabled":_vm.buttonsDisabled,"loading":_vm.isDenying},on:{"click":_vm.submitDenial}},[_vm._v("\n "+_vm._s(_vm.denyButtonText)+"\n ")]),_vm._v(" "),_c('gl-button',{attrs:{"size":"small","data-testid":"cancel-denial","disabled":_vm.buttonsDisabled},on:{"click":_vm.cancelDenial}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.CANCEL_TEXT)+"\n ")])],1)],1)]},proxy:true}:null],null,true)},[_vm._v(" "),(_vm.toolParamsViewComponent)?_c(_vm.toolParamsViewComponent,_vm._b({tag:"component",staticClass:"gl-leading-20",attrs:{"tool-name":_vm.toolName,"tool-params":_vm.camelCaseToolParameters,"tool-response":_vm.toolResponse,"working-directory":_vm.workingDirectory}},'component',_vm.camelCaseToolParameters,false)):_c('div',{staticClass:"md gl-border gl-rounded-bl-none gl-border-1 gl-border-solid gl-border-transparent gl-bg-subtle gl-p-4 gl-leading-20 gl-text-default gl-break-anywhere"},[_c('div',{staticClass:"gl-border gl-mb-4 gl-rounded-base gl-border-gray-200 gl-bg-gray-50 gl-p-3"},[_c('p',{staticClass:"gl-mb-1 gl-text-sm gl-text-gray-500"},[_vm._v("\n "+_vm._s(_vm.$options.i18n.REQUEST_TEXT)+"\n ")]),_vm._v(" "),(_vm.hasToolParameters)?_c('code',{staticClass:"gl-whitespace-pre-wrap gl-text-sm gl-text-default gl-font-monospace",attrs:{"data-testid":"tool-parameters"}},[_vm._v(_vm._s(JSON.stringify(_vm.toolParameters, null, 2)))]):_c('span',{staticClass:"gl-text-sm gl-text-gray-500",attrs:{"data-testid":"no-parameters-message"}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.NO_PARAMETERS_TEXT)+"\n ")])])])],1)};
263
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-card',{staticClass:"gl-w-full",class:{ 'message-tool-approval-collapsed': _vm.collapsed },attrs:{"header-class":{ 'message-tool-approval-collapsed-header': _vm.collapsed },"body-class":{ 'gl-hidden': _vm.collapsed }},scopedSlots:_vm._u([{key:"header",fn:function(){return [_c('div',{staticClass:"gl-flex gl-items-center gl-justify-between gl-gap-3"},[_c('span',[(_vm.collapsible)?_c('gl-button',_vm._b({attrs:{"variant":"default","category":"tertiary","size":"small","data-testid":"toggle-details-button"},on:{"click":function($event){_vm.collapsed = !_vm.collapsed;}}},'gl-button',_vm.collapseButtonProps,false)):_vm._e(),_vm._v(" "),_c('span',[_vm._v("\n "+_vm._s(_vm.toolApprovalTitle)+"\n ")])],1),_vm._v(" "),_c('gl-badge',{attrs:{"variant":_vm.toolStatusVariant}},[_vm._v("\n "+_vm._s(_vm.toolStatusLabel)+"\n ")])],1)]},proxy:true},(!_vm.isApproved)?{key:"footer",fn:function(){return [(!_vm.showDenialReason)?_c('div',{staticClass:"gl-flex gl-gap-2"},[(_vm.showSplitButton)?_c('gl-dropdown',{attrs:{"variant":"confirm","size":"small","split":"","text":_vm.primaryApprovalOption.text,"disabled":_vm.buttonsDisabled || _vm.primaryApprovalOption.disabled,"loading":_vm.isApproving,"data-testid":"approve-dropdown"},on:{"click":_vm.handlePrimaryApprove}},_vm._l((_vm.additionalApprovalOptions),function(option){return _c('gl-dropdown-item',{key:option.type,attrs:{"disabled":option.disabled,"data-testid":"approve-dropdown-item"},on:{"click":function($event){return _vm.handleDropdownSelection(option)}}},[_vm._v("\n "+_vm._s(option.text)+"\n ")])}),1):_c('gl-button',{attrs:{"variant":"confirm","size":"small","data-testid":"approve-tool-inline","disabled":_vm.buttonsDisabled || _vm.primaryApprovalOption.disabled,"loading":_vm.isApproving},on:{"click":_vm.handlePrimaryApprove}},[_vm._v("\n "+_vm._s(_vm.primaryApprovalOption.text)+"\n ")]),_vm._v(" "),_c('gl-button',{attrs:{"size":"small","data-testid":"deny-tool-inline","disabled":_vm.buttonsDisabled,"loading":_vm.isDenying},on:{"click":_vm.handleDeny}},[_vm._v("\n "+_vm._s(_vm.denyButtonText)+"\n ")])],1):_c('div',[_c('gl-form-group',{staticClass:"gl-mb-3",attrs:{"label":_vm.$options.i18n.DENIAL_REASON_LABEL,"label-for":"inline-rejection-reason","optional":true}},[_c('gl-form-textarea',{attrs:{"id":"inline-rejection-reason","placeholder":_vm.$options.i18n.DENIAL_REASON_PLACEHOLDER,"rows":2,"no-resize":true,"submit-on-enter":false,"disabled":_vm.buttonsDisabled,"data-testid":"denial-reason-textarea","autofocus":""},on:{"submit":_vm.submitDenial},model:{value:(_vm.denialReason),callback:function ($$v) {_vm.denialReason=$$v;},expression:"denialReason"}})],1),_vm._v(" "),_c('div',{staticClass:"gl-flex gl-gap-3"},[_c('gl-button',{attrs:{"size":"small","data-testid":"submit-denial","variant":"confirm","disabled":_vm.buttonsDisabled,"loading":_vm.isDenying},on:{"click":_vm.submitDenial}},[_vm._v("\n "+_vm._s(_vm.denyButtonText)+"\n ")]),_vm._v(" "),_c('gl-button',{attrs:{"size":"small","data-testid":"cancel-denial","disabled":_vm.buttonsDisabled},on:{"click":_vm.cancelDenial}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.CANCEL_TEXT)+"\n ")])],1)],1)]},proxy:true}:null],null,true)},[_vm._v(" "),(_vm.toolParamsViewComponent)?_c(_vm.toolParamsViewComponent,_vm._b({tag:"component",staticClass:"gl-leading-20",attrs:{"tool-name":_vm.toolName,"tool-params":_vm.camelCaseToolParameters,"tool-response":_vm.toolResponse,"working-directory":_vm.workingDirectory}},'component',_vm.camelCaseToolParameters,false)):_c('div',{staticClass:"md gl-border gl-rounded-bl-none gl-border-1 gl-border-solid gl-border-transparent gl-bg-subtle gl-p-4 gl-leading-20 gl-text-default gl-break-anywhere"},[_c('div',{staticClass:"gl-border gl-mb-4 gl-rounded-base gl-border-gray-200 gl-bg-gray-50 gl-p-3"},[_c('p',{staticClass:"gl-mb-1 gl-text-sm gl-text-gray-500"},[_vm._v("\n "+_vm._s(_vm.$options.i18n.REQUEST_TEXT)+"\n ")]),_vm._v(" "),(_vm.hasToolParameters)?_c('code',{staticClass:"gl-whitespace-pre-wrap gl-text-sm gl-text-default gl-font-monospace",attrs:{"data-testid":"tool-parameters"}},[_vm._v(_vm._s(JSON.stringify(_vm.toolParameters, null, 2)))]):_c('span',{staticClass:"gl-text-sm gl-text-gray-500",attrs:{"data-testid":"no-parameters-message"}},[_vm._v("\n "+_vm._s(_vm.$options.i18n.NO_PARAMETERS_TEXT)+"\n ")])])])],1)};
264
264
  var __vue_staticRenderFns__ = [];
265
265
 
266
266
  /* style */
@@ -1,2 +1,2 @@
1
- @charset "UTF-8";.resizable-content{--tw-shadow:var(--gl-shadow-lg);--tw-shadow-colored:var(--gl-shadow-lg);background:var(--gl-background-color-default);border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);font-size:.875rem;height:100%;overflow-y:auto;width:100%}.recents-wrapper .resizable-content{margin-top:var(--gl-spacing-scale-0,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:var(--gl-opacity-0,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:var(--gl-shadow-lg);--tw-shadow-colored:var(--gl-shadow-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);font-size:.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:var(--gl-spacing-scale-0,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:var(--gl-spacing-scale-5,1rem)}.duo-chat-drawer-body-scrim-on-footer:before{--tw-translate-y:-100%;background:linear-gradient(180deg,#fbfafd00,#fbfafd);content:"";height:var(--gl-spacing-scale-5,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:var(--gl-spacing-scale-4,.75rem);padding-right:40px;visibility:hidden;word-break:break-word}.duo-chat .duo-chat-suggestion-button{border-radius:1.25rem}.slash-commands{margin-top:calc(var(--gl-spacing-scale-2, .25rem)*-1)}.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:var(--gl-spacing-scale-3,.5rem);padding-right:var(--gl-spacing-scale-3,.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:var(--gl-spacing-scale-0,0)}.duo-chat-markdown .gl-h1,.duo-chat-markdown h1{font-size:clamp(1.5rem,.8333333333rem + 1.3888888889vw,1.875rem);margin-top:0;margin-top:var(--gl-spacing-scale-7,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:0;margin-top:var(--gl-spacing-scale-6,1.5rem)}.duo-chat-markdown .gl-h3,.duo-chat-markdown h3{font-size:clamp(1.125rem,.9027777778rem + .462962963vw,1.25rem);margin-top:0;margin-top:var(--gl-spacing-scale-6,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:0;margin-top:var(--gl-spacing-scale-5,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:0;margin-top:var(--gl-spacing-scale-5,1rem)}.duo-chat-markdown .gl-h6,.duo-chat-markdown h6{font-size:.8125rem}.duo-chat-markdown .gl-paragraph,.duo-chat-markdown p{margin-bottom:var(--gl-spacing-scale-0,0);margin-top:var(--gl-spacing-scale-0,0)}.duo-chat-markdown .gl-paragraph+.gl-paragraph,.duo-chat-markdown .gl-paragraph+p,.duo-chat-markdown p+.gl-paragraph,.duo-chat-markdown p+p{margin-top:var(--gl-spacing-scale-5,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:var(--gl-spacing-scale-3,.5rem) var(--gl-spacing-scale-0,0);padding-bottom:var(--gl-spacing-scale-3,.5rem);padding-left:var(--gl-spacing-scale-6,1.5rem);padding-top:var(--gl-spacing-scale-3,.5rem)}.duo-chat-markdown .idiff{border-radius:.25rem;display:inline-flex;padding-left:var(--gl-spacing-scale-2,.25rem);padding-right:var(--gl-spacing-scale-2,.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:var(--gl-spacing-scale-1,.125rem) var(--gl-spacing-scale-2,.25rem)}.duo-chat-markdown pre{border-radius:.25rem;box-shadow:inset 0 0 0 1px #dcdcde;margin-bottom:var(--gl-spacing-scale-7,2rem);margin-top:var(--gl-spacing-scale-7,2rem);overflow:auto;padding:var(--gl-spacing-scale-3,.5rem) var(--gl-spacing-scale-4,.75rem)}.duo-chat-markdown pre code{background-color:var(--white,#fff);border-radius:var(--gl-border-radius-none,var(--gl-spacing-scale-0,0));color:var(--gray-900,#28272d);padding:var(--gl-spacing-scale-0,0)}.duo-chat-markdown .audio-container{display:inline-flex;flex-direction:column;width:100%}.duo-chat-markdown .audio-container audio{width:100%}.duo-chat-markdown .audio-container a{margin-top:var(--gl-spacing-scale-3,.5rem)}.duo-chat-markdown .audio-container a:before{-webkit-font-smoothing:antialiased;content:"📎";margin-right:var(--gl-spacing-scale-2,.25rem);text-rendering:auto}.duo-chat-markdown table{margin-bottom:var(--gl-spacing-scale-7,2rem);margin-top:var(--gl-spacing-scale-7,2rem)}.duo-chat-markdown table td,.duo-chat-markdown table th{box-shadow:inset 0 -1px 0 0 #dcdcde;padding:var(--gl-spacing-scale-4,.75rem) var(--gl-spacing-scale-3,.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:var(--gl-spacing-scale-0,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:0;margin-top:var(--gl-spacing-scale-7,2rem)}.duo-chat-compact-markdown .gl-h2,.duo-chat-compact-markdown h2{font-size:1.3125rem;letter-spacing:-.01em}.duo-chat-compact-markdown .gl-h2,.duo-chat-compact-markdown .gl-h3,.duo-chat-compact-markdown h2,.duo-chat-compact-markdown h3{color:var(--gl-text-color-heading);font-weight:600;line-height:1.25;margin-bottom:1rem;margin-top:0;margin-top:var(--gl-spacing-scale-6,1.5rem)}.duo-chat-compact-markdown .gl-h3,.duo-chat-compact-markdown h3{font-size:1.125rem;letter-spacing:inherit}.duo-chat-compact-markdown .gl-h4,.duo-chat-compact-markdown h4{font-size:1rem}.duo-chat-compact-markdown .gl-h4,.duo-chat-compact-markdown .gl-h5,.duo-chat-compact-markdown h4,.duo-chat-compact-markdown h5{color:var(--gl-text-color-heading);font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:0;margin-top:var(--gl-spacing-scale-5,1rem)}.duo-chat-compact-markdown .gl-h5,.duo-chat-compact-markdown h5{font-size:.875rem}.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:0;margin-top:var(--gl-spacing-scale-5,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:var(--gl-spacing-scale-3,.5rem);padding-top:var(--gl-spacing-scale-3,.5rem)}.duo-chat-input.web-only{overflow:visible;position:relative}.duo-chat-input.web-only:after{padding:var(--gl-spacing-scale-2,.25rem)}.duo-chat-loader{display:flex}.duo-chat-loader .transition{transition:width .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .transition{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-enter{opacity:var(--gl-opacity-0,0)}.duo-chat-loader .text-enter-active{transition:opacity .4s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .text-enter-active{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-enter-to,.duo-chat-loader .text-leave{opacity:var(--gl-opacity-10,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:var(--gl-opacity-0,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:var(--gl-spacing-scale-3,.5rem) var(--gl-spacing-scale-4,.75rem)}.duo-chat-message pre:after,.duo-chat-message pre:before{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;content:"";height:var(--gl-spacing-scale-7,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:var(--gl-spacing-scale-0,0)}.duo-chat-message copy-code,.duo-chat-message insert-code-snippet{opacity:var(--gl-opacity-0,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:var(--gl-spacing-scale-3,.5rem);position:absolute;transform:rotate(45deg);width:var(--gl-spacing-scale-3,.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:var(--gl-opacity-10,1)}.duo-chat-message-container:not(:last-child),.message-map-item:not(:last-child){margin-bottom:var(--gl-spacing-scale-4,.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:var(--gl-border-radius-none,var(--gl-spacing-scale-0,0));border-top-left-radius:var(--gl-border-radius-none,var(--gl-spacing-scale-0,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:var(--gl-border-radius-none,var(--gl-spacing-scale-0,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:var(--gl-spacing-scale-2,.25rem);padding-left:var(--gl-spacing-scale-3,.5rem);padding-top:var(--gl-spacing-scale-2,.25rem);text-decoration-line:none;text-transform:uppercase;width:100%}.recents-wrapper .gl-accordion-item-header>.collapse{margin-left:var(--gl-spacing-scale-0,0)}.recents-wrapper .gl-text-base{margin-top:var(--gl-spacing-scale-0,0)}
1
+ @charset "UTF-8";.resizable-content{--tw-shadow:var(--gl-shadow-lg);--tw-shadow-colored:var(--gl-shadow-lg);background:var(--gl-background-color-default);border-radius:.5rem;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);font-size:.875rem;height:100%;overflow-y:auto;width:100%}.recents-wrapper .resizable-content{margin-top:var(--gl-spacing-scale-0,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:var(--gl-opacity-0,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:var(--gl-shadow-lg);--tw-shadow-colored:var(--gl-shadow-lg);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);font-size:.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:var(--gl-spacing-scale-0,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:var(--gl-spacing-scale-5,1rem)}.duo-chat-drawer-body-scrim-on-footer:before{--tw-translate-y:-100%;background:linear-gradient(180deg,#fbfafd00,#fbfafd);content:"";height:var(--gl-spacing-scale-5,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:var(--gl-spacing-scale-4,.75rem);padding-right:40px;visibility:hidden;word-break:break-word}.duo-chat .duo-chat-suggestion-button{border-radius:1.25rem}.slash-commands{margin-top:calc(var(--gl-spacing-scale-2, .25rem)*-1)}.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:var(--gl-spacing-scale-3,.5rem);padding-right:var(--gl-spacing-scale-3,.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:var(--gl-spacing-scale-0,0)}.duo-chat-markdown .gl-h1,.duo-chat-markdown h1{font-size:clamp(1.5rem,.8333333333rem + 1.3888888889vw,1.875rem);margin-top:0;margin-top:var(--gl-spacing-scale-7,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:0;margin-top:var(--gl-spacing-scale-6,1.5rem)}.duo-chat-markdown .gl-h3,.duo-chat-markdown h3{font-size:clamp(1.125rem,.9027777778rem + .462962963vw,1.25rem);margin-top:0;margin-top:var(--gl-spacing-scale-6,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:0;margin-top:var(--gl-spacing-scale-5,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:0;margin-top:var(--gl-spacing-scale-5,1rem)}.duo-chat-markdown .gl-h6,.duo-chat-markdown h6{font-size:.8125rem}.duo-chat-markdown .gl-paragraph,.duo-chat-markdown p{margin-bottom:var(--gl-spacing-scale-0,0);margin-top:var(--gl-spacing-scale-0,0)}.duo-chat-markdown .gl-paragraph+.gl-paragraph,.duo-chat-markdown .gl-paragraph+p,.duo-chat-markdown p+.gl-paragraph,.duo-chat-markdown p+p{margin-top:var(--gl-spacing-scale-5,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:var(--gl-spacing-scale-3,.5rem) var(--gl-spacing-scale-0,0);padding-bottom:var(--gl-spacing-scale-3,.5rem);padding-left:var(--gl-spacing-scale-6,1.5rem);padding-top:var(--gl-spacing-scale-3,.5rem)}.duo-chat-markdown .idiff{border-radius:.25rem;display:inline-flex;padding-left:var(--gl-spacing-scale-2,.25rem);padding-right:var(--gl-spacing-scale-2,.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:var(--gl-spacing-scale-1,.125rem) var(--gl-spacing-scale-2,.25rem)}.duo-chat-markdown pre{border-radius:.25rem;box-shadow:inset 0 0 0 1px #dcdcde;margin-bottom:var(--gl-spacing-scale-7,2rem);margin-top:var(--gl-spacing-scale-7,2rem);overflow:auto;padding:var(--gl-spacing-scale-3,.5rem) var(--gl-spacing-scale-4,.75rem)}.duo-chat-markdown pre code{background-color:var(--white,#fff);border-radius:var(--gl-border-radius-none,var(--gl-spacing-scale-0,0));color:var(--gray-900,#28272d);padding:var(--gl-spacing-scale-0,0)}.duo-chat-markdown .audio-container{display:inline-flex;flex-direction:column;width:100%}.duo-chat-markdown .audio-container audio{width:100%}.duo-chat-markdown .audio-container a{margin-top:var(--gl-spacing-scale-3,.5rem)}.duo-chat-markdown .audio-container a:before{-webkit-font-smoothing:antialiased;content:"📎";margin-right:var(--gl-spacing-scale-2,.25rem);text-rendering:auto}.duo-chat-markdown table{margin-bottom:var(--gl-spacing-scale-7,2rem);margin-top:var(--gl-spacing-scale-7,2rem)}.duo-chat-markdown table td,.duo-chat-markdown table th{box-shadow:inset 0 -1px 0 0 #dcdcde;padding:var(--gl-spacing-scale-4,.75rem) var(--gl-spacing-scale-3,.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:var(--gl-spacing-scale-0,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:0;margin-top:var(--gl-spacing-scale-7,2rem)}.duo-chat-compact-markdown .gl-h2,.duo-chat-compact-markdown h2{font-size:1.3125rem;letter-spacing:-.01em}.duo-chat-compact-markdown .gl-h2,.duo-chat-compact-markdown .gl-h3,.duo-chat-compact-markdown h2,.duo-chat-compact-markdown h3{color:var(--gl-text-color-heading);font-weight:600;line-height:1.25;margin-bottom:1rem;margin-top:0;margin-top:var(--gl-spacing-scale-6,1.5rem)}.duo-chat-compact-markdown .gl-h3,.duo-chat-compact-markdown h3{font-size:1.125rem;letter-spacing:inherit}.duo-chat-compact-markdown .gl-h4,.duo-chat-compact-markdown h4{font-size:1rem}.duo-chat-compact-markdown .gl-h4,.duo-chat-compact-markdown .gl-h5,.duo-chat-compact-markdown h4,.duo-chat-compact-markdown h5{color:var(--gl-text-color-heading);font-weight:600;letter-spacing:inherit;line-height:1.25;margin-bottom:1rem;margin-top:0;margin-top:var(--gl-spacing-scale-5,1rem)}.duo-chat-compact-markdown .gl-h5,.duo-chat-compact-markdown h5{font-size:.875rem}.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:0;margin-top:var(--gl-spacing-scale-5,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:var(--gl-spacing-scale-3,.5rem);padding-top:var(--gl-spacing-scale-3,.5rem)}.message-tool-approval-collapsed{border-bottom:0}.message-tool-approval-collapsed-header{border-bottom-left-radius:calc(var(--gl-card-border-radius) - 1px);border-bottom-right-radius:calc(var(--gl-card-border-radius) - 1px)}.duo-chat-input.web-only{overflow:visible;position:relative}.duo-chat-input.web-only:after{padding:var(--gl-spacing-scale-2,.25rem)}.duo-chat-loader{display:flex}.duo-chat-loader .transition{transition:width .2s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .transition{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-enter{opacity:var(--gl-opacity-0,0)}.duo-chat-loader .text-enter-active{transition:opacity .4s cubic-bezier(.22,.61,.36,1)}@media (prefers-reduced-motion){.duo-chat-loader .text-enter-active{transition-delay:0ms!important;transition-duration:.01ms!important}}.duo-chat-loader .text-enter-to,.duo-chat-loader .text-leave{opacity:var(--gl-opacity-10,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:var(--gl-opacity-0,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:var(--gl-spacing-scale-3,.5rem) var(--gl-spacing-scale-4,.75rem)}.duo-chat-message pre:after,.duo-chat-message pre:before{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem;content:"";height:var(--gl-spacing-scale-7,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:var(--gl-spacing-scale-0,0)}.duo-chat-message copy-code,.duo-chat-message insert-code-snippet{opacity:var(--gl-opacity-0,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:var(--gl-spacing-scale-3,.5rem);position:absolute;transform:rotate(45deg);width:var(--gl-spacing-scale-3,.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:var(--gl-opacity-10,1)}.duo-chat-message-container:not(:last-child),.message-map-item:not(:last-child){margin-bottom:var(--gl-spacing-scale-4,.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:var(--gl-border-radius-none,var(--gl-spacing-scale-0,0));border-top-left-radius:var(--gl-border-radius-none,var(--gl-spacing-scale-0,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:var(--gl-border-radius-none,var(--gl-spacing-scale-0,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:var(--gl-spacing-scale-2,.25rem);padding-left:var(--gl-spacing-scale-3,.5rem);padding-top:var(--gl-spacing-scale-2,.25rem);text-decoration-line:none;text-transform:uppercase;width:100%}.recents-wrapper .gl-accordion-item-header>.collapse{margin-left:var(--gl-spacing-scale-0,0)}.recents-wrapper .gl-text-base{margin-top:var(--gl-spacing-scale-0,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/* 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-input.web-only {\n position: relative;\n overflow: visible;\n}\n.duo-chat-input.web-only::after {\n @apply gl-p-2;\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.message-tool-approval-collapsed {\n border-bottom: 0;\n}\n\n.message-tool-approval-collapsed-header {\n border-bottom-left-radius: calc(var(--gl-card-border-radius) - 1px);\n border-bottom-right-radius: calc(var(--gl-card-border-radius) - 1px);\n}\n\n.duo-chat-input.web-only {\n position: relative;\n overflow: visible;\n}\n.duo-chat-input.web-only::after {\n @apply gl-p-2;\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-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:var(--gl-spacing-scale-0,0)}.gl-bottom-2{bottom:var(--gl-spacing-scale-2,.25rem)}.gl-bottom-\[-1\.6rem\]{bottom:-1.6rem}.gl-bottom-\[-25px\]{bottom:-25px}.gl-bottom-\[-5rem\]{bottom:-5rem}.gl-left-0{left:var(--gl-spacing-scale-0,0)}.gl-right-0{right:var(--gl-spacing-scale-0,0)}.gl-right-2{right:var(--gl-spacing-scale-2,.25rem)}.gl-right-3{right:var(--gl-spacing-scale-3,.5rem)}.gl-right-px{right:var(--gl-spacing-scale-px,1px)}.gl-top-0{top:var(--gl-spacing-scale-0,0)}.\!gl-z-9999{z-index:var(--gl-zindex-9999,9999)!important}.gl-z-2{z-index:var(--gl-zindex-2,2)}.gl-z-9999{z-index:var(--gl-zindex-9999,9999)}.gl-float-right{float:right}.\!gl-m-0{margin:var(--gl-spacing-scale-0,0)!important}.gl-m-0{margin:var(--gl-spacing-scale-0,0)}.gl-m-3{margin:var(--gl-spacing-scale-3,.5rem)}.gl-m-auto{margin:auto}.\!gl-mx-2{margin-left:var(--gl-spacing-scale-2,.25rem)!important;margin-right:var(--gl-spacing-scale-2,.25rem)!important}.-gl-mx-1{margin-left:calc(var(--gl-spacing-scale-1, .125rem)*-1);margin-right:calc(var(--gl-spacing-scale-1, .125rem)*-1)}.-gl-mx-3{margin-left:calc(var(--gl-spacing-scale-3, .5rem)*-1);margin-right:calc(var(--gl-spacing-scale-3, .5rem)*-1)}.-gl-mx-4{margin-left:calc(var(--gl-spacing-scale-4, .75rem)*-1);margin-right:calc(var(--gl-spacing-scale-4, .75rem)*-1)}.-gl-my-1{margin-bottom:calc(var(--gl-spacing-scale-1, .125rem)*-1);margin-top:calc(var(--gl-spacing-scale-1, .125rem)*-1)}.-gl-my-3{margin-bottom:calc(var(--gl-spacing-scale-3, .5rem)*-1);margin-top:calc(var(--gl-spacing-scale-3, .5rem)*-1)}.gl-mx-2{margin-left:var(--gl-spacing-scale-2,.25rem);margin-right:var(--gl-spacing-scale-2,.25rem)}.gl-mx-3{margin-left:var(--gl-spacing-scale-3,.5rem);margin-right:var(--gl-spacing-scale-3,.5rem)}.gl-mx-4{margin-left:var(--gl-spacing-scale-4,.75rem);margin-right:var(--gl-spacing-scale-4,.75rem)}.gl-mx-auto{margin-left:auto;margin-right:auto}.gl-my-0{margin-bottom:var(--gl-spacing-scale-0,0);margin-top:var(--gl-spacing-scale-0,0)}.gl-my-3{margin-bottom:var(--gl-spacing-scale-3,.5rem);margin-top:var(--gl-spacing-scale-3,.5rem)}.gl-my-4{margin-bottom:var(--gl-spacing-scale-4,.75rem);margin-top:var(--gl-spacing-scale-4,.75rem)}.gl-my-5{margin-bottom:var(--gl-spacing-scale-5,1rem);margin-top:var(--gl-spacing-scale-5,1rem)}.\!gl-mb-0{margin-bottom:var(--gl-spacing-scale-0,0)!important}.\!gl-mb-4{margin-bottom:var(--gl-spacing-scale-4,.75rem)!important}.\!gl-mt-1{margin-top:var(--gl-spacing-scale-1,.125rem)!important}.-gl-ml-2{margin-left:calc(var(--gl-spacing-scale-2, .25rem)*-1)}.-gl-mr-3{margin-right:calc(var(--gl-spacing-scale-3, .5rem)*-1)}.-gl-mt-2{margin-top:calc(var(--gl-spacing-scale-2, .25rem)*-1)}.gl-mb-0{margin-bottom:var(--gl-spacing-scale-0,0)}.gl-mb-1{margin-bottom:var(--gl-spacing-scale-1,.125rem)}.gl-mb-2{margin-bottom:var(--gl-spacing-scale-2,.25rem)}.gl-mb-3{margin-bottom:var(--gl-spacing-scale-3,.5rem)}.gl-mb-4{margin-bottom:var(--gl-spacing-scale-4,.75rem)}.gl-mb-5{margin-bottom:var(--gl-spacing-scale-5,1rem)}.gl-mb-8{margin-bottom:var(--gl-spacing-scale-8,2.5rem)}.gl-ml-1{margin-left:var(--gl-spacing-scale-1,.125rem)}.gl-ml-2{margin-left:var(--gl-spacing-scale-2,.25rem)}.gl-ml-3{margin-left:var(--gl-spacing-scale-3,.5rem)}.gl-ml-4{margin-left:var(--gl-spacing-scale-4,.75rem)}.gl-ml-5{margin-left:var(--gl-spacing-scale-5,1rem)}.gl-ml-auto{margin-left:auto}.gl-mr-1{margin-right:var(--gl-spacing-scale-1,.125rem)}.gl-mr-2{margin-right:var(--gl-spacing-scale-2,.25rem)}.gl-mr-3{margin-right:var(--gl-spacing-scale-3,.5rem)}.gl-mr-auto{margin-right:auto}.gl-mt-0{margin-top:var(--gl-spacing-scale-0,0)}.gl-mt-1{margin-top:var(--gl-spacing-scale-1,.125rem)}.gl-mt-2{margin-top:var(--gl-spacing-scale-2,.25rem)}.gl-mt-3{margin-top:var(--gl-spacing-scale-3,.5rem)}.gl-mt-4{margin-top:var(--gl-spacing-scale-4,.75rem)}.gl-mt-5{margin-top:var(--gl-spacing-scale-5,1rem)}.gl-mt-6{margin-top:var(--gl-spacing-scale-6,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-grid{display:grid}.gl-hidden{display:none}.\!gl-h-full{height:100%!important}.gl-h-0{height:var(--gl-spacing-scale-0,0)}.gl-h-1{height:var(--gl-spacing-scale-1,.125rem)}.gl-h-4{height:var(--gl-spacing-scale-4,.75rem)}.gl-h-5{height:var(--gl-spacing-scale-5,1rem)}.gl-h-\[80px\]{height:80px}.gl-h-auto{height:auto}.gl-h-full{height:100%}.gl-max-h-13{max-height:var(--gl-spacing-scale-13,6rem)}.gl-max-h-31{max-height:var(--gl-spacing-scale-31,15.5rem)}.gl-max-h-full{max-height:100%}.gl-min-h-8{min-height:var(--gl-spacing-scale-8,2.5rem)}.gl-min-h-full{min-height:100%}.\!gl-w-31{width:var(--gl-spacing-scale-31,15.5rem)!important}.\!gl-w-auto{width:auto!important}.gl-w-1\/2{width:50%}.gl-w-1\/3{width:33.333333%}.gl-w-2\/3{width:66.666667%}.gl-w-3\/4{width:75%}.gl-w-4\/10{width:40%}.gl-w-5{width:var(--gl-spacing-scale-5,1rem)}.gl-w-auto{width:auto}.gl-w-full{width:100%}.gl-min-w-0{min-width:var(--gl-spacing-scale-0,0)}.gl-min-w-5{min-width:var(--gl-spacing-scale-5,1rem)}.gl-min-w-\[33\%\]{min-width:33%}.gl-max-w-1\/2{max-width:50%}.gl-max-w-12{max-width:var(--gl-spacing-scale-12,5rem)}.gl-max-w-17\/20{max-width:85%}.gl-max-w-full{max-width:100%}.gl-flex-1{flex:1 1 0%}.gl-flex-auto{flex:1 1 auto}.gl-flex-shrink{flex-shrink:1}.gl-flex-shrink-0,.gl-shrink-0{flex-shrink:0}.gl-flex-grow,.gl-grow{flex-grow:1}.gl-basis-0{flex-basis:var(--gl-spacing-scale-0,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:var(--gl-spacing-scale-1,.125rem)}.gl-gap-2{gap:var(--gl-spacing-scale-2,.25rem)}.gl-gap-3{gap:var(--gl-spacing-scale-3,.5rem)}.gl-gap-4{gap:var(--gl-spacing-scale-4,.75rem)}.gl-gap-5{gap:var(--gl-spacing-scale-5,1rem)}.gl-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(var(--gl-spacing-scale-1, .125rem)*var(--tw-space-y-reverse));margin-top:calc(var(--gl-spacing-scale-1, .125rem)*(1 - var(--tw-space-y-reverse)))}.gl-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(var(--gl-spacing-scale-2, .25rem)*var(--tw-space-y-reverse));margin-top:calc(var(--gl-spacing-scale-2, .25rem)*(1 - var(--tw-space-y-reverse)))}.gl-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(var(--gl-spacing-scale-3, .5rem)*var(--tw-space-y-reverse));margin-top:calc(var(--gl-spacing-scale-3, .5rem)*(1 - var(--tw-space-y-reverse)))}.gl-self-start{align-self:flex-start}.gl-self-center{align-self:center}.gl-overflow-auto{overflow:auto}.gl-overflow-hidden{overflow:hidden}.\!gl-overflow-visible{overflow:visible!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-text-pretty{text-wrap:pretty}.gl-break-words{overflow-wrap:break-word}.gl-break-all{word-break:break-all}.\!gl-rounded-control{border-radius:var(--gl-control-border-radius,var(--gl-border-radius-default,.25rem))!important}.\!gl-rounded-default{border-radius:var(--gl-border-radius-default,var(--gl-border-radius-md,.25rem))!important}.\!gl-rounded-full{border-radius:var(--gl-border-radius-full,9999px)!important}.\!gl-rounded-none{border-radius:var(--gl-border-radius-none,var(--gl-spacing-scale-0,0))!important}.gl-rounded-\[1rem\]{border-radius:1rem}.gl-rounded-base{border-radius:.25rem}.gl-rounded-full{border-radius:var(--gl-border-radius-full,9999px)}.gl-rounded-lg{border-radius:var(--gl-border-radius-lg,var(--gl-spacing-scale-3,.5rem))}.gl-rounded-t-default{border-top-left-radius:var(--gl-border-radius-default,var(--gl-border-radius-md,.25rem));border-top-right-radius:var(--gl-border-radius-default,var(--gl-border-radius-md,.25rem))}.gl-rounded-bl-\[12px\]{border-bottom-left-radius:12px}.gl-rounded-bl-none{border-bottom-left-radius:var(--gl-border-radius-none,var(--gl-spacing-scale-0,0))}.gl-rounded-br-\[18px\]{border-bottom-right-radius:18px}.gl-rounded-br-lg{border-bottom-right-radius:var(--gl-border-radius-lg,var(--gl-spacing-scale-3,.5rem))}.gl-rounded-br-none{border-bottom-right-radius:var(--gl-border-radius-none,var(--gl-spacing-scale-0,0))}.gl-rounded-tl-\[12px\]{border-top-left-radius:12px}.gl-rounded-tr-\[12px\]{border-top-right-radius:12px}.gl-rounded-tr-lg{border-top-right-radius:var(--gl-border-radius-lg,var(--gl-spacing-scale-3,.5rem))}.gl-rounded-tr-none{border-top-right-radius:var(--gl-border-radius-none,var(--gl-spacing-scale-0,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-\[\#7759C233\]{border-color:#7759c233}.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-strong{border-color:var(--gl-border-color-strong,var(--gl-color-neutral-200,#bfbfc3))}.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-strong{background-color:var(--gl-background-color-strong,var(--gl-color-neutral-50,#ececef))}.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:var(--gl-spacing-scale-0,0)!important}.\!gl-p-2{padding:var(--gl-spacing-scale-2,.25rem)!important}.\!gl-p-4{padding:var(--gl-spacing-scale-4,.75rem)!important}.gl-p-0{padding:var(--gl-spacing-scale-0,0)}.gl-p-1{padding:var(--gl-spacing-scale-1,.125rem)}.gl-p-2{padding:var(--gl-spacing-scale-2,.25rem)}.gl-p-3{padding:var(--gl-spacing-scale-3,.5rem)}.gl-p-4{padding:var(--gl-spacing-scale-4,.75rem)}.gl-p-5{padding:var(--gl-spacing-scale-5,1rem)}.\!gl-px-2{padding-left:var(--gl-spacing-scale-2,.25rem)!important;padding-right:var(--gl-spacing-scale-2,.25rem)!important}.\!gl-px-3{padding-left:var(--gl-spacing-scale-3,.5rem)!important;padding-right:var(--gl-spacing-scale-3,.5rem)!important}.\!gl-py-2{padding-bottom:var(--gl-spacing-scale-2,.25rem)!important;padding-top:var(--gl-spacing-scale-2,.25rem)!important}.\!gl-py-4{padding-bottom:var(--gl-spacing-scale-4,.75rem)!important;padding-top:var(--gl-spacing-scale-4,.75rem)!important}.gl-px-0{padding-left:var(--gl-spacing-scale-0,0);padding-right:var(--gl-spacing-scale-0,0)}.gl-px-1{padding-left:var(--gl-spacing-scale-1,.125rem);padding-right:var(--gl-spacing-scale-1,.125rem)}.gl-px-2{padding-left:var(--gl-spacing-scale-2,.25rem);padding-right:var(--gl-spacing-scale-2,.25rem)}.gl-px-3{padding-left:var(--gl-spacing-scale-3,.5rem);padding-right:var(--gl-spacing-scale-3,.5rem)}.gl-px-4{padding-left:var(--gl-spacing-scale-4,.75rem);padding-right:var(--gl-spacing-scale-4,.75rem)}.gl-px-5{padding-left:var(--gl-spacing-scale-5,1rem);padding-right:var(--gl-spacing-scale-5,1rem)}.gl-py-0{padding-bottom:var(--gl-spacing-scale-0,0);padding-top:var(--gl-spacing-scale-0,0)}.gl-py-2{padding-bottom:var(--gl-spacing-scale-2,.25rem);padding-top:var(--gl-spacing-scale-2,.25rem)}.gl-py-3{padding-bottom:var(--gl-spacing-scale-3,.5rem);padding-top:var(--gl-spacing-scale-3,.5rem)}.gl-py-4{padding-bottom:var(--gl-spacing-scale-4,.75rem);padding-top:var(--gl-spacing-scale-4,.75rem)}.gl-py-5{padding-bottom:var(--gl-spacing-scale-5,1rem);padding-top:var(--gl-spacing-scale-5,1rem)}.gl-py-6{padding-bottom:var(--gl-spacing-scale-6,1.5rem);padding-top:var(--gl-spacing-scale-6,1.5rem)}.\!gl-pl-9{padding-left:var(--gl-spacing-scale-9,3rem)!important}.\!gl-pr-7{padding-right:var(--gl-spacing-scale-7,2rem)!important}.\!gl-pr-9{padding-right:var(--gl-spacing-scale-9,3rem)!important}.\!gl-pt-0{padding-top:var(--gl-spacing-scale-0,0)!important}.gl-pb-2{padding-bottom:var(--gl-spacing-scale-2,.25rem)}.gl-pb-3{padding-bottom:var(--gl-spacing-scale-3,.5rem)}.gl-pl-0{padding-left:var(--gl-spacing-scale-0,0)}.gl-pl-2{padding-left:var(--gl-spacing-scale-2,.25rem)}.gl-pl-3{padding-left:var(--gl-spacing-scale-3,.5rem)}.gl-pl-4{padding-left:var(--gl-spacing-scale-4,.75rem)}.gl-pl-5{padding-left:var(--gl-spacing-scale-5,1rem)}.gl-pl-6{padding-left:var(--gl-spacing-scale-6,1.5rem)}.gl-pl-7{padding-left:var(--gl-spacing-scale-7,2rem)}.gl-pr-2{padding-right:var(--gl-spacing-scale-2,.25rem)}.gl-pr-3{padding-right:var(--gl-spacing-scale-3,.5rem)}.gl-pr-5{padding-right:var(--gl-spacing-scale-5,1rem)}.gl-pr-6{padding-right:var(--gl-spacing-scale-6,1.5rem)}.gl-pr-7{padding-right:var(--gl-spacing-scale-7,2rem)}.gl-pr-8{padding-right:var(--gl-spacing-scale-8,2.5rem)}.gl-pt-1{padding-top:var(--gl-spacing-scale-1,.125rem)}.gl-pt-2{padding-top:var(--gl-spacing-scale-2,.25rem)}.gl-pt-3{padding-top:var(--gl-spacing-scale-3,.5rem)}.gl-pt-4{padding-top:var(--gl-spacing-scale-4,.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-\[0\.875rem\],.gl-text-base{font-size:.875rem}.gl-text-lg{font-size:1rem}.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-font-semibold{font-weight:500}.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-green-600{color:var(--green-600,#2f7549)}.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:var(--gl-opacity-0,0)!important}.gl-opacity-10{opacity:var(--gl-opacity-10,1)}.gl-opacity-\[50\%\]{opacity:50%}.\!gl-shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.gl-shadow-md{--tw-shadow:var(--gl-shadow-md);--tw-shadow-colored:var(--gl-shadow-md);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:var(--gl-spacing-scale-3,.5rem)}.sm\:gl-mt-3{margin-top:var(--gl-spacing-scale-3,.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}
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:var(--gl-spacing-scale-0,0)}.gl-bottom-2{bottom:var(--gl-spacing-scale-2,.25rem)}.gl-bottom-\[-1\.6rem\]{bottom:-1.6rem}.gl-bottom-\[-25px\]{bottom:-25px}.gl-bottom-\[-5rem\]{bottom:-5rem}.gl-left-0{left:var(--gl-spacing-scale-0,0)}.gl-right-0{right:var(--gl-spacing-scale-0,0)}.gl-right-2{right:var(--gl-spacing-scale-2,.25rem)}.gl-right-3{right:var(--gl-spacing-scale-3,.5rem)}.gl-right-px{right:var(--gl-spacing-scale-px,1px)}.gl-top-0{top:var(--gl-spacing-scale-0,0)}.\!gl-z-9999{z-index:var(--gl-zindex-9999,9999)!important}.gl-z-2{z-index:var(--gl-zindex-2,2)}.gl-z-9999{z-index:var(--gl-zindex-9999,9999)}.gl-float-right{float:right}.\!gl-m-0{margin:var(--gl-spacing-scale-0,0)!important}.gl-m-0{margin:var(--gl-spacing-scale-0,0)}.gl-m-3{margin:var(--gl-spacing-scale-3,.5rem)}.gl-m-auto{margin:auto}.\!gl-mx-2{margin-left:var(--gl-spacing-scale-2,.25rem)!important;margin-right:var(--gl-spacing-scale-2,.25rem)!important}.-gl-mx-1{margin-left:calc(var(--gl-spacing-scale-1, .125rem)*-1);margin-right:calc(var(--gl-spacing-scale-1, .125rem)*-1)}.-gl-mx-3{margin-left:calc(var(--gl-spacing-scale-3, .5rem)*-1);margin-right:calc(var(--gl-spacing-scale-3, .5rem)*-1)}.-gl-mx-4{margin-left:calc(var(--gl-spacing-scale-4, .75rem)*-1);margin-right:calc(var(--gl-spacing-scale-4, .75rem)*-1)}.-gl-my-1{margin-bottom:calc(var(--gl-spacing-scale-1, .125rem)*-1);margin-top:calc(var(--gl-spacing-scale-1, .125rem)*-1)}.-gl-my-3{margin-bottom:calc(var(--gl-spacing-scale-3, .5rem)*-1);margin-top:calc(var(--gl-spacing-scale-3, .5rem)*-1)}.gl-mx-2{margin-left:var(--gl-spacing-scale-2,.25rem);margin-right:var(--gl-spacing-scale-2,.25rem)}.gl-mx-3{margin-left:var(--gl-spacing-scale-3,.5rem);margin-right:var(--gl-spacing-scale-3,.5rem)}.gl-mx-4{margin-left:var(--gl-spacing-scale-4,.75rem);margin-right:var(--gl-spacing-scale-4,.75rem)}.gl-mx-auto{margin-left:auto;margin-right:auto}.gl-my-0{margin-bottom:var(--gl-spacing-scale-0,0);margin-top:var(--gl-spacing-scale-0,0)}.gl-my-3{margin-bottom:var(--gl-spacing-scale-3,.5rem);margin-top:var(--gl-spacing-scale-3,.5rem)}.gl-my-4{margin-bottom:var(--gl-spacing-scale-4,.75rem);margin-top:var(--gl-spacing-scale-4,.75rem)}.gl-my-5{margin-bottom:var(--gl-spacing-scale-5,1rem);margin-top:var(--gl-spacing-scale-5,1rem)}.\!gl-mb-0{margin-bottom:var(--gl-spacing-scale-0,0)!important}.\!gl-mb-4{margin-bottom:var(--gl-spacing-scale-4,.75rem)!important}.\!gl-mt-1{margin-top:var(--gl-spacing-scale-1,.125rem)!important}.-gl-ml-2{margin-left:calc(var(--gl-spacing-scale-2, .25rem)*-1)}.-gl-mr-3{margin-right:calc(var(--gl-spacing-scale-3, .5rem)*-1)}.-gl-mt-2{margin-top:calc(var(--gl-spacing-scale-2, .25rem)*-1)}.gl-mb-0{margin-bottom:var(--gl-spacing-scale-0,0)}.gl-mb-1{margin-bottom:var(--gl-spacing-scale-1,.125rem)}.gl-mb-2{margin-bottom:var(--gl-spacing-scale-2,.25rem)}.gl-mb-3{margin-bottom:var(--gl-spacing-scale-3,.5rem)}.gl-mb-4{margin-bottom:var(--gl-spacing-scale-4,.75rem)}.gl-mb-5{margin-bottom:var(--gl-spacing-scale-5,1rem)}.gl-mb-8{margin-bottom:var(--gl-spacing-scale-8,2.5rem)}.gl-ml-1{margin-left:var(--gl-spacing-scale-1,.125rem)}.gl-ml-2{margin-left:var(--gl-spacing-scale-2,.25rem)}.gl-ml-3{margin-left:var(--gl-spacing-scale-3,.5rem)}.gl-ml-5{margin-left:var(--gl-spacing-scale-5,1rem)}.gl-ml-auto{margin-left:auto}.gl-mr-1{margin-right:var(--gl-spacing-scale-1,.125rem)}.gl-mr-2{margin-right:var(--gl-spacing-scale-2,.25rem)}.gl-mr-3{margin-right:var(--gl-spacing-scale-3,.5rem)}.gl-mr-auto{margin-right:auto}.gl-mt-0{margin-top:var(--gl-spacing-scale-0,0)}.gl-mt-1{margin-top:var(--gl-spacing-scale-1,.125rem)}.gl-mt-2{margin-top:var(--gl-spacing-scale-2,.25rem)}.gl-mt-3{margin-top:var(--gl-spacing-scale-3,.5rem)}.gl-mt-4{margin-top:var(--gl-spacing-scale-4,.75rem)}.gl-mt-5{margin-top:var(--gl-spacing-scale-5,1rem)}.gl-mt-6{margin-top:var(--gl-spacing-scale-6,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-grid{display:grid}.gl-hidden{display:none}.\!gl-h-full{height:100%!important}.gl-h-0{height:var(--gl-spacing-scale-0,0)}.gl-h-1{height:var(--gl-spacing-scale-1,.125rem)}.gl-h-4{height:var(--gl-spacing-scale-4,.75rem)}.gl-h-5{height:var(--gl-spacing-scale-5,1rem)}.gl-h-\[80px\]{height:80px}.gl-h-auto{height:auto}.gl-h-full{height:100%}.gl-max-h-13{max-height:var(--gl-spacing-scale-13,6rem)}.gl-max-h-31{max-height:var(--gl-spacing-scale-31,15.5rem)}.gl-max-h-full{max-height:100%}.gl-min-h-8{min-height:var(--gl-spacing-scale-8,2.5rem)}.gl-min-h-full{min-height:100%}.\!gl-w-31{width:var(--gl-spacing-scale-31,15.5rem)!important}.\!gl-w-auto{width:auto!important}.gl-w-1\/2{width:50%}.gl-w-1\/3{width:33.333333%}.gl-w-2\/3{width:66.666667%}.gl-w-3\/4{width:75%}.gl-w-4\/10{width:40%}.gl-w-5{width:var(--gl-spacing-scale-5,1rem)}.gl-w-auto{width:auto}.gl-w-full{width:100%}.gl-min-w-0{min-width:var(--gl-spacing-scale-0,0)}.gl-min-w-5{min-width:var(--gl-spacing-scale-5,1rem)}.gl-min-w-\[33\%\]{min-width:33%}.gl-max-w-1\/2{max-width:50%}.gl-max-w-12{max-width:var(--gl-spacing-scale-12,5rem)}.gl-max-w-17\/20{max-width:85%}.gl-max-w-full{max-width:100%}.gl-flex-1{flex:1 1 0%}.gl-flex-auto{flex:1 1 auto}.gl-flex-shrink{flex-shrink:1}.gl-flex-shrink-0,.gl-shrink-0{flex-shrink:0}.gl-flex-grow,.gl-grow{flex-grow:1}.gl-basis-0{flex-basis:var(--gl-spacing-scale-0,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:var(--gl-spacing-scale-1,.125rem)}.gl-gap-2{gap:var(--gl-spacing-scale-2,.25rem)}.gl-gap-3{gap:var(--gl-spacing-scale-3,.5rem)}.gl-gap-4{gap:var(--gl-spacing-scale-4,.75rem)}.gl-gap-5{gap:var(--gl-spacing-scale-5,1rem)}.gl-space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(var(--gl-spacing-scale-1, .125rem)*var(--tw-space-y-reverse));margin-top:calc(var(--gl-spacing-scale-1, .125rem)*(1 - var(--tw-space-y-reverse)))}.gl-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(var(--gl-spacing-scale-2, .25rem)*var(--tw-space-y-reverse));margin-top:calc(var(--gl-spacing-scale-2, .25rem)*(1 - var(--tw-space-y-reverse)))}.gl-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(var(--gl-spacing-scale-3, .5rem)*var(--tw-space-y-reverse));margin-top:calc(var(--gl-spacing-scale-3, .5rem)*(1 - var(--tw-space-y-reverse)))}.gl-self-start{align-self:flex-start}.gl-self-center{align-self:center}.gl-overflow-auto{overflow:auto}.gl-overflow-hidden{overflow:hidden}.\!gl-overflow-visible{overflow:visible!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-text-pretty{text-wrap:pretty}.gl-break-words{overflow-wrap:break-word}.gl-break-all{word-break:break-all}.\!gl-rounded-control{border-radius:var(--gl-control-border-radius,var(--gl-border-radius-default,.25rem))!important}.\!gl-rounded-default{border-radius:var(--gl-border-radius-default,var(--gl-border-radius-md,.25rem))!important}.\!gl-rounded-full{border-radius:var(--gl-border-radius-full,9999px)!important}.\!gl-rounded-none{border-radius:var(--gl-border-radius-none,var(--gl-spacing-scale-0,0))!important}.gl-rounded-\[1rem\]{border-radius:1rem}.gl-rounded-base{border-radius:.25rem}.gl-rounded-full{border-radius:var(--gl-border-radius-full,9999px)}.gl-rounded-lg{border-radius:var(--gl-border-radius-lg,var(--gl-spacing-scale-3,.5rem))}.gl-rounded-t-default{border-top-left-radius:var(--gl-border-radius-default,var(--gl-border-radius-md,.25rem));border-top-right-radius:var(--gl-border-radius-default,var(--gl-border-radius-md,.25rem))}.gl-rounded-bl-\[12px\]{border-bottom-left-radius:12px}.gl-rounded-bl-none{border-bottom-left-radius:var(--gl-border-radius-none,var(--gl-spacing-scale-0,0))}.gl-rounded-br-\[18px\]{border-bottom-right-radius:18px}.gl-rounded-br-lg{border-bottom-right-radius:var(--gl-border-radius-lg,var(--gl-spacing-scale-3,.5rem))}.gl-rounded-br-none{border-bottom-right-radius:var(--gl-border-radius-none,var(--gl-spacing-scale-0,0))}.gl-rounded-tl-\[12px\]{border-top-left-radius:12px}.gl-rounded-tr-\[12px\]{border-top-right-radius:12px}.gl-rounded-tr-lg{border-top-right-radius:var(--gl-border-radius-lg,var(--gl-spacing-scale-3,.5rem))}.gl-rounded-tr-none{border-top-right-radius:var(--gl-border-radius-none,var(--gl-spacing-scale-0,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-\[\#7759C233\]{border-color:#7759c233}.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-red-500{border-color:var(--red-500,#dd2b0e)}.gl-border-strong{border-color:var(--gl-border-color-strong,var(--gl-color-neutral-200,#bfbfc3))}.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-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-strong{background-color:var(--gl-background-color-strong,var(--gl-color-neutral-50,#ececef))}.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:var(--gl-spacing-scale-0,0)!important}.\!gl-p-2{padding:var(--gl-spacing-scale-2,.25rem)!important}.\!gl-p-4{padding:var(--gl-spacing-scale-4,.75rem)!important}.gl-p-0{padding:var(--gl-spacing-scale-0,0)}.gl-p-1{padding:var(--gl-spacing-scale-1,.125rem)}.gl-p-2{padding:var(--gl-spacing-scale-2,.25rem)}.gl-p-3{padding:var(--gl-spacing-scale-3,.5rem)}.gl-p-4{padding:var(--gl-spacing-scale-4,.75rem)}.gl-p-5{padding:var(--gl-spacing-scale-5,1rem)}.\!gl-px-2{padding-left:var(--gl-spacing-scale-2,.25rem)!important;padding-right:var(--gl-spacing-scale-2,.25rem)!important}.\!gl-px-3{padding-left:var(--gl-spacing-scale-3,.5rem)!important;padding-right:var(--gl-spacing-scale-3,.5rem)!important}.\!gl-py-2{padding-bottom:var(--gl-spacing-scale-2,.25rem)!important;padding-top:var(--gl-spacing-scale-2,.25rem)!important}.\!gl-py-4{padding-bottom:var(--gl-spacing-scale-4,.75rem)!important;padding-top:var(--gl-spacing-scale-4,.75rem)!important}.gl-px-0{padding-left:var(--gl-spacing-scale-0,0);padding-right:var(--gl-spacing-scale-0,0)}.gl-px-1{padding-left:var(--gl-spacing-scale-1,.125rem);padding-right:var(--gl-spacing-scale-1,.125rem)}.gl-px-2{padding-left:var(--gl-spacing-scale-2,.25rem);padding-right:var(--gl-spacing-scale-2,.25rem)}.gl-px-3{padding-left:var(--gl-spacing-scale-3,.5rem);padding-right:var(--gl-spacing-scale-3,.5rem)}.gl-px-4{padding-left:var(--gl-spacing-scale-4,.75rem);padding-right:var(--gl-spacing-scale-4,.75rem)}.gl-px-5{padding-left:var(--gl-spacing-scale-5,1rem);padding-right:var(--gl-spacing-scale-5,1rem)}.gl-py-0{padding-bottom:var(--gl-spacing-scale-0,0);padding-top:var(--gl-spacing-scale-0,0)}.gl-py-2{padding-bottom:var(--gl-spacing-scale-2,.25rem);padding-top:var(--gl-spacing-scale-2,.25rem)}.gl-py-3{padding-bottom:var(--gl-spacing-scale-3,.5rem);padding-top:var(--gl-spacing-scale-3,.5rem)}.gl-py-4{padding-bottom:var(--gl-spacing-scale-4,.75rem);padding-top:var(--gl-spacing-scale-4,.75rem)}.gl-py-5{padding-bottom:var(--gl-spacing-scale-5,1rem);padding-top:var(--gl-spacing-scale-5,1rem)}.gl-py-6{padding-bottom:var(--gl-spacing-scale-6,1.5rem);padding-top:var(--gl-spacing-scale-6,1.5rem)}.\!gl-pl-9{padding-left:var(--gl-spacing-scale-9,3rem)!important}.\!gl-pr-7{padding-right:var(--gl-spacing-scale-7,2rem)!important}.\!gl-pr-9{padding-right:var(--gl-spacing-scale-9,3rem)!important}.\!gl-pt-0{padding-top:var(--gl-spacing-scale-0,0)!important}.gl-pb-2{padding-bottom:var(--gl-spacing-scale-2,.25rem)}.gl-pb-3{padding-bottom:var(--gl-spacing-scale-3,.5rem)}.gl-pl-0{padding-left:var(--gl-spacing-scale-0,0)}.gl-pl-2{padding-left:var(--gl-spacing-scale-2,.25rem)}.gl-pl-3{padding-left:var(--gl-spacing-scale-3,.5rem)}.gl-pl-4{padding-left:var(--gl-spacing-scale-4,.75rem)}.gl-pl-5{padding-left:var(--gl-spacing-scale-5,1rem)}.gl-pl-6{padding-left:var(--gl-spacing-scale-6,1.5rem)}.gl-pl-7{padding-left:var(--gl-spacing-scale-7,2rem)}.gl-pr-2{padding-right:var(--gl-spacing-scale-2,.25rem)}.gl-pr-3{padding-right:var(--gl-spacing-scale-3,.5rem)}.gl-pr-5{padding-right:var(--gl-spacing-scale-5,1rem)}.gl-pr-6{padding-right:var(--gl-spacing-scale-6,1.5rem)}.gl-pr-7{padding-right:var(--gl-spacing-scale-7,2rem)}.gl-pr-8{padding-right:var(--gl-spacing-scale-8,2.5rem)}.gl-pt-1{padding-top:var(--gl-spacing-scale-1,.125rem)}.gl-pt-2{padding-top:var(--gl-spacing-scale-2,.25rem)}.gl-pt-3{padding-top:var(--gl-spacing-scale-3,.5rem)}.gl-pt-4{padding-top:var(--gl-spacing-scale-4,.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-\[0\.875rem\],.gl-text-base{font-size:.875rem}.gl-text-lg{font-size:1rem}.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-font-semibold{font-weight:500}.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-green-600{color:var(--green-600,#2f7549)}.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:var(--gl-opacity-0,0)!important}.gl-opacity-10{opacity:var(--gl-opacity-10,1)}.gl-opacity-\[50\%\]{opacity:50%}.\!gl-shadow-none{--tw-shadow:0 0 #0000!important;--tw-shadow-colored:0 0 #0000!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.gl-shadow-md{--tw-shadow:var(--gl-shadow-md);--tw-shadow-colored:var(--gl-shadow-md);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:var(--gl-spacing-scale-3,.5rem)}.sm\:gl-mt-3{margin-top:var(--gl-spacing-scale-3,.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": "11.2.2",
3
+ "version": "11.4.0",
4
4
  "description": "Duo UI Components",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -64,6 +64,7 @@
64
64
  },
65
65
  "dependencies": {
66
66
  "@floating-ui/dom": "1.7.4",
67
+ "diff": "^8.0.2",
67
68
  "echarts": "^5.3.2",
68
69
  "iframe-resizer": "^4.3.2",
69
70
  "lodash": "^4.17.20",
@@ -453,22 +453,53 @@ export default {
453
453
  activeThreadTitleForView() {
454
454
  return (this.currentView === VIEW_TYPES.CHAT && this.activeThreadTitle) || '';
455
455
  },
456
+ isAwaitingToolApproval() {
457
+ if (!this.messages || this.messages.length === 0) {
458
+ return false;
459
+ }
460
+ const lastMessage = this.messages[this.messages.length - 1];
461
+ return Boolean(
462
+ lastMessage && lastMessage.message_type === 'request' && lastMessage.tool_info !== undefined
463
+ );
464
+ },
456
465
  },
457
466
  watch: {
458
467
  multiThreadedView(newView) {
459
468
  this.currentView = newView;
460
469
  },
461
470
  isLoading(loading) {
462
- if (!loading && !this.isStreaming) {
471
+ if (
472
+ !loading &&
473
+ !this.isStreaming &&
474
+ !this.isToolApprovalProcessing &&
475
+ !this.isAwaitingToolApproval
476
+ ) {
463
477
  this.canSubmit = true; // Re-enable submit button when loading stops
464
478
  }
465
479
  this.isHidden = false;
466
480
  },
467
481
  isStreaming(streaming) {
468
- if (!streaming && !this.isLoading) {
482
+ if (
483
+ !streaming &&
484
+ !this.isLoading &&
485
+ !this.isToolApprovalProcessing &&
486
+ !this.isAwaitingToolApproval
487
+ ) {
469
488
  this.canSubmit = true; // Re-enable submit button when streaming stops
470
489
  }
471
490
  },
491
+ isToolApprovalProcessing(processing) {
492
+ if (!processing && !this.isLoading && !this.isStreaming && !this.isAwaitingToolApproval) {
493
+ this.canSubmit = true; // Re-enable submit button when tool approval processing stops
494
+ }
495
+ },
496
+ isAwaitingToolApproval(awaiting) {
497
+ if (awaiting) {
498
+ this.canSubmit = false; // Show cancel button when tool approval is needed
499
+ } else if (!this.isLoading && !this.isStreaming && !this.isToolApprovalProcessing) {
500
+ this.canSubmit = true; // Re-enable submit button when tool approval is no longer needed
501
+ }
502
+ },
472
503
  lastMessage(newMessage) {
473
504
  if (this.scrolledToBottom || newMessage?.role.toLowerCase() === MESSAGE_MODEL_ROLES.user) {
474
505
  // only scroll to bottom on new message if the user hasn't explicitly scrolled up to view an earlier message
@@ -487,6 +518,13 @@ export default {
487
518
  },
488
519
  created() {
489
520
  this.handleScrollingThrottled = throttle(this.handleScrolling, 200); // Assume a 200ms throttle for example
521
+
522
+ // Set initial canSubmit state based on current conditions
523
+ // Note: We don't check isStreaming here because the component should allow
524
+ // the first submission even if it starts with streaming messages
525
+ if (this.isAwaitingToolApproval || this.isLoading || this.isToolApprovalProcessing) {
526
+ this.canSubmit = false;
527
+ }
490
528
  },
491
529
  mounted() {
492
530
  this.scrollToBottom();
@@ -273,6 +273,14 @@ export default {
273
273
  required: false,
274
274
  default: true,
275
275
  },
276
+ /**
277
+ * Whether the studio style header should be displayed.
278
+ */
279
+ showStudioHeader: {
280
+ type: Boolean,
281
+ required: false,
282
+ default: true,
283
+ },
276
284
  /**
277
285
  * Override the default empty state title text.
278
286
  */
@@ -784,6 +792,7 @@ export default {
784
792
  :badge-type="isMultithreaded ? null : badgeType"
785
793
  :session-id="sessionId"
786
794
  :agents="agents"
795
+ :show-studio-header="showStudioHeader"
787
796
  @go-back="onGoBack"
788
797
  @new-chat="onNewChat"
789
798
  @close="hideChat"
@@ -103,6 +103,11 @@ export default {
103
103
  required: false,
104
104
  default: () => [],
105
105
  },
106
+ showStudioHeader: {
107
+ type: Boolean,
108
+ required: false,
109
+ default: false,
110
+ },
106
111
  },
107
112
  computed: {
108
113
  VIEW_TYPES() {
@@ -140,7 +145,11 @@ export default {
140
145
 
141
146
  <template>
142
147
  <header data-testid="chat-header" class="gl-border-b gl-shrink-0 gl-bg-default gl-p-0">
143
- <div class="gl-border-b gl-flex gl-w-full gl-items-center gl-px-5 gl-py-3">
148
+ <div
149
+ v-if="!showStudioHeader"
150
+ class="gl-border-b gl-flex gl-w-full gl-items-center gl-px-5 gl-py-3"
151
+ data-testid="chat-top-header"
152
+ >
144
153
  <h4
145
154
  v-if="subtitle"
146
155
  class="gl-mb-0 gl-max-w-17/20 gl-flex-1 gl-shrink-0 gl-overflow-hidden gl-truncate gl-text-ellipsis gl-whitespace-nowrap gl-pr-3 gl-text-sm gl-font-normal gl-text-subtle"
@@ -73,9 +73,6 @@ export default {
73
73
  toolArgs() {
74
74
  return this.message.tool_info?.args || {};
75
75
  },
76
- hasActions() {
77
- return this.toolArgs.actions && Array.isArray(this.toolArgs.actions);
78
- },
79
76
  projectId() {
80
77
  return this.toolArgs.project_id;
81
78
  },
@@ -110,6 +107,7 @@ export default {
110
107
  APPROVAL_TOOL_NAMES.updateMergeRequest,
111
108
  APPROVAL_TOOL_NAMES.createEpic,
112
109
  APPROVAL_TOOL_NAMES.updateEpic,
110
+ APPROVAL_TOOL_NAMES.createCommit,
113
111
  ].includes(this.toolName);
114
112
  },
115
113
  },
@@ -158,53 +156,6 @@ export default {
158
156
  }}</span>
159
157
  </div>
160
158
 
161
- <div v-if="commitMessage" class="gl-mb-2" data-testid="tool-message-commit-message-info">
162
- <span class="gl-font-weight-bold">{{ $options.i18n.COMMIT_MESSAGE_LABEL }}:</span>
163
- <span class="gl-ml-2" data-testid="tool-message-commit-message-text">{{
164
- commitMessage
165
- }}</span>
166
- </div>
167
-
168
- <div v-if="hasActions" class="gl-mb-2" data-testid="tool-message-actions-section">
169
- <div class="gl-mb-2">
170
- <span class="gl-font-weight-bold" data-testid="tool-message-actions-label"
171
- >{{ $options.i18n.ACTION_LABEL }}s:</span
172
- >
173
- </div>
174
- <div
175
- v-for="(action, index) in toolArgs.actions"
176
- :key="index"
177
- class="gl-rounded gl-border gl-mb-3 gl-ml-4 gl-border-subtle gl-p-3"
178
- data-testid="tool-message-action-item"
179
- >
180
- <div class="gl-mb-2">
181
- <span class="gl-font-weight-bold" data-testid="tool-message-action-type">{{
182
- action.action
183
- }}</span>
184
- </div>
185
-
186
- <div v-if="action.file_path" class="gl-mb-2">
187
- <span class="gl-font-weight-bold">{{ $options.i18n.FILE_PATH_LABEL }}:</span>
188
- <gl-link
189
- class="gl-markdown file-path-link gl-ml-2 gl-break-all"
190
- data-testid="tool-message-action-file-path-link"
191
- @click.prevent="onOpenFilePath(action.file_path)"
192
- >
193
- <code>{{ action.file_path }}</code>
194
- </gl-link>
195
- </div>
196
-
197
- <div v-if="action.content" class="gl-mb-2" data-testid="tool-message-action-content">
198
- <span class="gl-font-weight-bold">{{ $options.i18n.CONTENT_LABEL }}:</span>
199
- <pre
200
- class="gl-rounded gl-mt-2 gl-overflow-auto gl-bg-subtle gl-p-2 gl-text-sm"
201
- data-testid="tool-message-action-content-text"
202
- >{{ action.content }}</pre
203
- >
204
- </div>
205
- </div>
206
- </div>
207
-
208
159
  <div v-else-if="messageFilePath" class="gl-mb-2">
209
160
  <span class="gl-font-weight-bold">{{ $options.i18n.FILE_PATH_LABEL }}:</span>
210
161
  <gl-link
@@ -1,8 +1,11 @@
1
1
  <script>
2
2
  import { GlSprintf, GlAccordion, GlAccordionItem } from '@gitlab/ui';
3
+ import { createPatch } from 'diff';
3
4
  import { translate, translatePlural, sprintf } from '../../../../../utils/i18n';
4
5
  import PreBlock from './pre_block.vue';
5
6
 
7
+ const NO_NEW_LINE_SIGNAL = '\';
8
+
6
9
  export default {
7
10
  name: 'CreateCommitToolParams',
8
11
  components: {
@@ -73,12 +76,35 @@ export default {
73
76
  return sprintf(this.$options.i18n.UNKNOWN_FILE_ACTION_LABEL, { filePath });
74
77
  }
75
78
  },
76
- getActionContent({ action, content, encoding }) {
79
+ getActionContent({
80
+ action,
81
+ content,
82
+ encoding,
83
+ old_str: oldContent,
84
+ new_str: newContent,
85
+ file_path: filePath,
86
+ }) {
77
87
  if (!['create', 'update'].includes(action)) {
78
88
  return this.$options.i18n.ACTION_WITH_NO_CONTENT;
79
89
  }
80
90
 
81
- return (!encoding || encoding === 'text') && content ? content : '';
91
+ if (encoding && encoding !== 'text') {
92
+ return '';
93
+ }
94
+
95
+ if (oldContent && newContent) {
96
+ const patch = createPatch(filePath, oldContent, newContent, undefined, undefined, {
97
+ context: 50,
98
+ });
99
+ const patchAsLines = patch?.split('\n') || [];
100
+
101
+ return patchAsLines
102
+ .filter((line) => line !== NO_NEW_LINE_SIGNAL)
103
+ .slice(2)
104
+ .join('\n');
105
+ }
106
+
107
+ return content;
82
108
  },
83
109
  },
84
110
  i18n: {
@@ -118,11 +144,6 @@ export default {
118
144
  'CreateCommitToolParams.actionWithNoContent',
119
145
  'This action does not have any content.'
120
146
  ),
121
- PREVIOUS_CONTENT_LABEL: translate(
122
- 'CreateCommitToolParams.previousContentLabel',
123
- 'Previous content'
124
- ),
125
- NEW_CONTENT_LABEL: translate('CreateCommitToolParams.newContentLabel', 'New content'),
126
147
  EXPAND_CHANGES: translate('CreateCommitToolParams.expandFileChanges', 'Expand file changes'),
127
148
  },
128
149
  };
@@ -151,17 +172,7 @@ export default {
151
172
  :key="index"
152
173
  :title="getActionTitle(action)"
153
174
  >
154
- <template v-if="action.old_str && action.new_str">
155
- <div class="gl-flex gl-flex-col gl-gap-2">
156
- <strong>{{ $options.i18n.PREVIOUS_CONTENT_LABEL }}</strong>
157
- <pre-block>{{ action.old_str }}</pre-block>
158
- <strong>{{ $options.i18n.NEW_CONTENT_LABEL }}</strong>
159
- <pre-block>{{ action.new_str }}</pre-block>
160
- </div>
161
- </template>
162
- <template v-else>
163
- <pre-block>{{ getActionContent(action) }}</pre-block>
164
- </template>
175
+ <pre-block>{{ getActionContent(action) }}</pre-block>
165
176
  </gl-accordion-item>
166
177
  </gl-accordion>
167
178
  </gl-accordion-item>
@@ -307,7 +307,12 @@ export default {
307
307
  </script>
308
308
 
309
309
  <template>
310
- <gl-card class="gl-w-full" :body-class="{ 'gl-hidden': collapsed }">
310
+ <gl-card
311
+ class="gl-w-full"
312
+ :class="{ 'message-tool-approval-collapsed': collapsed }"
313
+ :header-class="{ 'message-tool-approval-collapsed-header': collapsed }"
314
+ :body-class="{ 'gl-hidden': collapsed }"
315
+ >
311
316
  <template #header>
312
317
  <div class="gl-flex gl-items-center gl-justify-between gl-gap-3">
313
318
  <span>
@@ -415,3 +415,12 @@ $drawer-width: 400px;
415
415
  }
416
416
  }
417
417
  }
418
+
419
+ .message-tool-approval-collapsed {
420
+ border-bottom: 0;
421
+ }
422
+
423
+ .message-tool-approval-collapsed-header {
424
+ border-bottom-left-radius: calc(var(--gl-card-border-radius) - 1px);
425
+ border-bottom-right-radius: calc(var(--gl-card-border-radius) - 1px);
426
+ }
package/translations.js CHANGED
@@ -45,8 +45,6 @@ export default {
45
45
  'CreateCommitToolParams.deleteFileActionLabel': 'Delete file %{filePath}',
46
46
  'CreateCommitToolParams.expandFileChanges': 'Expand file changes',
47
47
  'CreateCommitToolParams.moveFileActionLabel': 'Move file %{filePath}',
48
- 'CreateCommitToolParams.newContentLabel': 'New content',
49
- 'CreateCommitToolParams.previousContentLabel': 'Previous content',
50
48
  'CreateCommitToolParams.readCommitMessage': 'Read commit message',
51
49
  'CreateCommitToolParams.unknownFileActionLabel': 'Modify file %{filePath}',
52
50
  'CreateCommitToolParams.updateFileActionLabel': 'Update file %{filePath}',
@@ -1,98 +0,0 @@
1
- import { GlCollapse, GlButton, GlIcon } from '@gitlab/ui';
2
- import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
3
-
4
- var script = {
5
- name: 'MessageToolCommandOutput',
6
- components: {
7
- GlCollapse,
8
- GlButton,
9
- GlIcon
10
- },
11
- props: {
12
- /**
13
- * The terminal command header
14
- */
15
- commandHeader: {
16
- type: String,
17
- required: true
18
- },
19
- /**
20
- * The suggested terminal action
21
- */
22
- commandAction: {
23
- type: String,
24
- required: true
25
- },
26
- /**
27
- * The terminal command output
28
- */
29
- commandOutput: {
30
- type: String,
31
- required: false,
32
- default: ''
33
- },
34
- /**
35
- * The current working directory
36
- */
37
- workingDirectory: {
38
- type: String,
39
- required: true
40
- }
41
- },
42
- data() {
43
- return {
44
- isVisible: true
45
- };
46
- },
47
- computed: {
48
- isCommandOutputAvailable() {
49
- return this.commandOutput && this.commandOutput.length > 0;
50
- },
51
- toggleIcon() {
52
- return this.isVisible ? 'collapse' : 'expand';
53
- }
54
- },
55
- methods: {
56
- toggleVisibility() {
57
- this.isVisible = !this.isVisible;
58
- }
59
- }
60
- };
61
-
62
- /* script */
63
- const __vue_script__ = script;
64
-
65
- /* template */
66
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"terminal-command-output gl-border-solid gl-border-neutral-600"},[_c('div',{staticClass:"gl-flex gl-w-full gl-items-center gl-justify-between gl-px-3 gl-py-2"},[_c('span',{staticClass:"gl-flex gl-items-center",attrs:{"data-testid":"terminal-command-header"}},[_c('gl-icon',{staticClass:"gl-mr-3",attrs:{"name":"terminal"}}),_vm._v("\n "+_vm._s(_vm.commandHeader)+"\n ")],1),_vm._v(" "),(_vm.isCommandOutputAvailable)?_c('gl-button',{attrs:{"text":"Toggle visibility","icon":_vm.toggleIcon,"data-testid":"toggle-visibility-button","category":"tertiary"},on:{"click":_vm.toggleVisibility}}):_vm._e()],1),_vm._v(" "),_c('div',{staticClass:"gl-leading-22 gl-border-t gl-flex gl-flex-col gl-p-3"},[(_vm.workingDirectory)?_c('code',{staticClass:"!gl-bg-transparent gl-text-subtle",attrs:{"data-testid":"terminal-working-directory"}},[_vm._v(_vm._s(_vm.workingDirectory)+" >")]):_vm._e(),_vm._v(" "),_c('code',{staticClass:"!gl-bg-transparent gl-text-default",attrs:{"data-testid":"terminal-command-action"}},[_vm._v(_vm._s(_vm.commandAction))])]),_vm._v(" "),(_vm.isCommandOutputAvailable)?_c('gl-collapse',{attrs:{"visible":_vm.isVisible}},[_c('div',{staticClass:"gl-bg-black gl-p-3"},[_c('code',{staticClass:"!gl-bg-transparent"},[_vm._v(_vm._s(_vm.commandOutput))])])]):_vm._e(),_vm._v(" "),(_vm.$scopedSlots.actions)?_c('div',{staticClass:"gl-border-t gl-p-3"},[_vm._t("actions")],2):_vm._e()],1)};
67
- var __vue_staticRenderFns__ = [];
68
-
69
- /* style */
70
- const __vue_inject_styles__ = undefined;
71
- /* scoped */
72
- const __vue_scope_id__ = undefined;
73
- /* module identifier */
74
- const __vue_module_identifier__ = undefined;
75
- /* functional template */
76
- const __vue_is_functional_template__ = false;
77
- /* style inject */
78
-
79
- /* style inject SSR */
80
-
81
- /* style inject shadow dom */
82
-
83
-
84
-
85
- const __vue_component__ = __vue_normalize__(
86
- { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
87
- __vue_inject_styles__,
88
- __vue_script__,
89
- __vue_scope_id__,
90
- __vue_is_functional_template__,
91
- __vue_module_identifier__,
92
- false,
93
- undefined,
94
- undefined,
95
- undefined
96
- );
97
-
98
- export default __vue_component__;
@@ -1,43 +0,0 @@
1
- This is a UI component that displays a terminal command with its output in a collapsable section.
2
-
3
- ## Usage
4
-
5
- To use this component, import it and be sure to set the following props:
6
-
7
- * `commandHeader`: the header text displayed at the top of the component
8
- * `commandAction`: the command that was executed
9
- * `workingDirectory`: the directory path where the command was executed
10
-
11
- Optionally you can pass in the following prop:
12
-
13
- * `commandOutput`: the output of the command execution
14
-
15
- And you can also pass in the following slot:
16
-
17
- * `actions`: optional slot for adding actions at the bottom of the component
18
-
19
- ### Basic Usage
20
-
21
- ```vue
22
- <message-tool-command-output
23
- command-header="Ran terminal command"
24
- command-action="npm install"
25
- command-output="added 1256 packages, and audited 1257 packages in 30s"
26
- working-directory="~/projects/my-project"
27
- />
28
- ```
29
-
30
- ### With Custom Actions
31
-
32
- ```vue
33
- <message-tool-command-output
34
- command-header="Ran terminal command"
35
- command-action="npm install"
36
- command-output="added 1256 packages, and audited 1257 packages in 30s"
37
- working-directory="~/projects/my-project"
38
- >
39
- <template #actions>
40
- <gl-button category="tertiary" @click="runCommand">Open terminal</gl-button>
41
- </template>
42
- </message-tool-command-output>
43
- ```
@@ -1,99 +0,0 @@
1
- <script>
2
- import { GlCollapse, GlButton, GlIcon } from '@gitlab/ui';
3
-
4
- export default {
5
- name: 'MessageToolCommandOutput',
6
- components: {
7
- GlCollapse,
8
- GlButton,
9
- GlIcon,
10
- },
11
- props: {
12
- /**
13
- * The terminal command header
14
- */
15
- commandHeader: {
16
- type: String,
17
- required: true,
18
- },
19
- /**
20
- * The suggested terminal action
21
- */
22
- commandAction: {
23
- type: String,
24
- required: true,
25
- },
26
- /**
27
- * The terminal command output
28
- */
29
- commandOutput: {
30
- type: String,
31
- required: false,
32
- default: '',
33
- },
34
- /**
35
- * The current working directory
36
- */
37
- workingDirectory: {
38
- type: String,
39
- required: true,
40
- },
41
- },
42
- data() {
43
- return {
44
- isVisible: true,
45
- };
46
- },
47
- computed: {
48
- isCommandOutputAvailable() {
49
- return this.commandOutput && this.commandOutput.length > 0;
50
- },
51
- toggleIcon() {
52
- return this.isVisible ? 'collapse' : 'expand';
53
- },
54
- },
55
- methods: {
56
- toggleVisibility() {
57
- this.isVisible = !this.isVisible;
58
- },
59
- },
60
- };
61
- </script>
62
-
63
- <template>
64
- <div class="terminal-command-output gl-border-solid gl-border-neutral-600">
65
- <div class="gl-flex gl-w-full gl-items-center gl-justify-between gl-px-3 gl-py-2">
66
- <span class="gl-flex gl-items-center" data-testid="terminal-command-header">
67
- <gl-icon name="terminal" class="gl-mr-3" />
68
- {{ commandHeader }}
69
- </span>
70
- <gl-button
71
- v-if="isCommandOutputAvailable"
72
- text="Toggle visibility"
73
- :icon="toggleIcon"
74
- data-testid="toggle-visibility-button"
75
- category="tertiary"
76
- @click="toggleVisibility"
77
- />
78
- </div>
79
- <div class="gl-leading-22 gl-border-t gl-flex gl-flex-col gl-p-3">
80
- <code
81
- v-if="workingDirectory"
82
- class="!gl-bg-transparent gl-text-subtle"
83
- data-testid="terminal-working-directory"
84
- >{{ workingDirectory }} ></code
85
- >
86
- <code class="!gl-bg-transparent gl-text-default" data-testid="terminal-command-action">{{
87
- commandAction
88
- }}</code>
89
- </div>
90
- <gl-collapse v-if="isCommandOutputAvailable" :visible="isVisible">
91
- <div class="gl-bg-black gl-p-3">
92
- <code class="!gl-bg-transparent">{{ commandOutput }}</code>
93
- </div>
94
- </gl-collapse>
95
- <div v-if="$scopedSlots.actions" class="gl-border-t gl-p-3">
96
- <slot name="actions"></slot>
97
- </div>
98
- </div>
99
- </template>