@gitlab/ui 78.2.0 → 78.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [78.2.2](https://gitlab.com/gitlab-org/gitlab-ui/compare/v78.2.1...v78.2.2) (2024-03-20)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * Show sort icon on hover in table header ([ab36e49](https://gitlab.com/gitlab-org/gitlab-ui/commit/ab36e4913769ac4fab2f96c667bd884f968f6893))
7
+
8
+ ## [78.2.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v78.2.0...v78.2.1) (2024-03-19)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **GlDuoChat:** clear prompt after /clean ([d3fcd9f](https://gitlab.com/gitlab-org/gitlab-ui/commit/d3fcd9f5aa20db65162cebf5ce0f52445725c87c))
14
+
1
15
  # [78.2.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v78.1.2...v78.2.0) (2024-03-14)
2
16
 
3
17
 
package/README.md CHANGED
@@ -46,6 +46,11 @@ GitLab UI provides component styles, a utility-class library, and SCSS utilities
46
46
 
47
47
  ## Quick start - development
48
48
 
49
+ **Note:** GitLab UI isn't designed to be built on Windows natively. Either
50
+ [WSL](https://learn.microsoft.com/en-us/windows/wsl/) or
51
+ [GitPod](https://www.gitpod.io/docs/configure/authentication/gitlab) can be used to set up a
52
+ UNIX-like environment in which to build it.
53
+
49
54
  Make sure you have [Node](https://nodejs.org/en/) 16.x (LTS) and [Yarn](https://yarnpkg.com/) 1.22
50
55
  or newer.
51
56
 
@@ -74,14 +74,28 @@ var script = {
74
74
  } = _ref2;
75
75
  return field === null || field === void 0 ? void 0 : field.sortable;
76
76
  },
77
- getSortingIcon(_ref3) {
77
+ activeSortingColumn(_ref3) {
78
78
  let {
79
79
  field
80
80
  } = _ref3;
81
- if (this.localSortBy !== (field === null || field === void 0 ? void 0 : field.key)) {
82
- return null;
81
+ return this.localSortBy === (field === null || field === void 0 ? void 0 : field.key);
82
+ },
83
+ getSortingIcon(_ref4) {
84
+ let {
85
+ field
86
+ } = _ref4;
87
+ if (this.activeSortingColumn({
88
+ field
89
+ })) {
90
+ if (this.localSortDesc) {
91
+ return '↓';
92
+ }
93
+ return '↑';
94
+ }
95
+ if (this.$attrs['sort-direction'] === 'desc') {
96
+ return '↓';
83
97
  }
84
- return this.localSortDesc ? 'arrow-down' : 'arrow-up';
98
+ return '';
85
99
  }
86
100
  }
87
101
  };
@@ -90,7 +104,7 @@ var script = {
90
104
  const __vue_script__ = script;
91
105
 
92
106
  /* template */
93
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-table',_vm._g(_vm._b({attrs:{"table-class":_vm.localTableClass,"fields":_vm.fields,"sort-by":_vm.localSortBy,"sort-desc":_vm.localSortDesc},on:{"update:sortBy":function($event){_vm.localSortBy=$event;},"update:sort-by":function($event){_vm.localSortBy=$event;},"update:sortDesc":function($event){_vm.localSortDesc=$event;},"update:sort-desc":function($event){_vm.localSortDesc=$event;}},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$scopedSlots)),function(slotName){return {key:slotName,fn:function(scope){return [_vm._t(slotName,null,null,scope)]}}}),_vm._l((_vm.headSlots),function(headSlotName){return {key:headSlotName,fn:function(scope){return [_c('span',{key:headSlotName},[_vm._t(headSlotName,function(){return [_c('span',[_vm._v(_vm._s(scope.label))])]},null,scope),(_vm.isSortable(scope))?[(_vm.getSortingIcon(scope) && _vm.getSortingIcon(scope) === 'arrow-up')?_c('span',{staticClass:"gl-ml-3 gl-min-w-5 gl-text-gray-900 gl-text-center",attrs:{"name":"sort-icon"}},[_vm._v("\n ↑\n ")]):(_vm.getSortingIcon(scope) && _vm.getSortingIcon(scope) === 'arrow-down')?_c('span',{staticClass:"gl-ml-3 gl-min-w-5 gl-text-gray-900 gl-text-center",attrs:{"name":"sort-icon"}},[_vm._v("\n ↓\n ")]):_c('span',{staticClass:"gl-display-inline-block gl-w-5 gl-h-3 gl-ml-3"})]:_vm._e()],2)]}}})],null,true)},'b-table',_vm.$attrs,false),_vm.$listeners))};
107
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-table',_vm._g(_vm._b({attrs:{"table-class":_vm.localTableClass,"fields":_vm.fields,"sort-by":_vm.localSortBy,"sort-desc":_vm.localSortDesc},on:{"update:sortBy":function($event){_vm.localSortBy=$event;},"update:sort-by":function($event){_vm.localSortBy=$event;},"update:sortDesc":function($event){_vm.localSortDesc=$event;},"update:sort-desc":function($event){_vm.localSortDesc=$event;}},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$scopedSlots)),function(slotName){return {key:slotName,fn:function(scope){return [_vm._t(slotName,null,null,scope)]}}}),_vm._l((_vm.headSlots),function(headSlotName){return {key:headSlotName,fn:function(scope){return [_c('div',{key:headSlotName,staticClass:"gl-display-flex"},[_vm._t(headSlotName,function(){return [_c('span',[_vm._v(_vm._s(scope.label))])]},null,scope),(_vm.isSortable(scope))?[_c('div',{staticClass:"gl-ml-2 gl-w-5 gl-text-gray-900 gl-display-flex gl-justify-content-center"},[_c('span',{class:{ 'gl-display-none': !_vm.activeSortingColumn(scope) },attrs:{"name":"sort-icon","data-testid":"sort-icon"}},[_vm._v("\n "+_vm._s(_vm.getSortingIcon(scope))+"\n ")])])]:_vm._e()],2)]}}})],null,true)},'b-table',_vm.$attrs,false),_vm.$listeners))};
94
108
  var __vue_staticRenderFns__ = [];
95
109
 
96
110
  /* style */
@@ -1,4 +1,5 @@
1
1
  const CHAT_RESET_MESSAGE = '/reset';
2
+ const CHAT_CLEAN_MESSAGE = '/clean';
2
3
  const LOADING_TRANSITION_DURATION = 7500;
3
4
  const DOCUMENTATION_SOURCE_TYPES = {
4
5
  HANDBOOK: {
@@ -20,4 +21,4 @@ const MESSAGE_MODEL_ROLES = {
20
21
  assistant: 'assistant'
21
22
  };
22
23
 
23
- export { CHAT_RESET_MESSAGE, DOCUMENTATION_SOURCE_TYPES, LOADING_TRANSITION_DURATION, MESSAGE_MODEL_ROLES };
24
+ export { CHAT_CLEAN_MESSAGE, CHAT_RESET_MESSAGE, DOCUMENTATION_SOURCE_TYPES, LOADING_TRANSITION_DURATION, MESSAGE_MODEL_ROLES };
@@ -237,13 +237,9 @@ var script = {
237
237
  }
238
238
  },
239
239
  watch: {
240
- isLoading(newVal) {
240
+ isLoading() {
241
241
  this.isHidden = false;
242
242
  this.scrollToBottom();
243
- if (newVal) {
244
- // We reset the prompt when we start getting the response and focus in the prompt field
245
- this.setPromptAndFocus();
246
- }
247
243
  }
248
244
  },
249
245
  created() {
@@ -274,6 +270,7 @@ var script = {
274
270
  * @param {String} prompt The user prompt to send.
275
271
  */
276
272
  this.$emit('send-chat-prompt', this.prompt);
273
+ this.setPromptAndFocus();
277
274
  }
278
275
  },
279
276
  sendPredefinedPrompt(prompt) {
@@ -1,5 +1,5 @@
1
1
  import { setStoryTimeout } from '../../../../utils/test_utils';
2
- import { DOCUMENTATION_SOURCE_TYPES, MESSAGE_MODEL_ROLES } from './constants';
2
+ import { DOCUMENTATION_SOURCE_TYPES, MESSAGE_MODEL_ROLES, CHAT_RESET_MESSAGE, CHAT_CLEAN_MESSAGE } from './constants';
3
3
 
4
4
  const MOCK_SOURCES = [{
5
5
  title: 'GitLab Handbook',
@@ -116,5 +116,23 @@ const renderGFM = el => {
116
116
  block === null || block === void 0 ? void 0 : block.classList.add('gl-markdown', 'gl-compact-markdown');
117
117
  });
118
118
  };
119
+ const SLASH_COMMANDS = [{
120
+ name: CHAT_RESET_MESSAGE,
121
+ shouldSubmit: true,
122
+ description: 'Reset conversation, ignore the previous messages.'
123
+ }, {
124
+ name: CHAT_CLEAN_MESSAGE,
125
+ shouldSubmit: true,
126
+ description: 'Delete all messages in this conversation.'
127
+ }, {
128
+ name: '/tests',
129
+ description: 'Write tests for the selected snippet.'
130
+ }, {
131
+ name: '/refactor',
132
+ description: 'Refactor the selected snippet.'
133
+ }, {
134
+ name: '/explain',
135
+ description: 'Explain the selected snippet.'
136
+ }];
119
137
 
120
- export { MOCK_RESPONSE_MESSAGE, MOCK_RESPONSE_MESSAGE_FOR_STREAMING, MOCK_USER_PROMPT_MESSAGE, generateMockResponseChunks, renderGFM, renderMarkdown };
138
+ export { MOCK_RESPONSE_MESSAGE, MOCK_RESPONSE_MESSAGE_FOR_STREAMING, MOCK_USER_PROMPT_MESSAGE, SLASH_COMMANDS, generateMockResponseChunks, renderGFM, renderMarkdown };