@gitlab/ui 79.1.1 → 79.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js +9 -6
- package/dist/components/base/new_dropdowns/constants.js +2 -2
- package/dist/components/base/pagination/pagination.js +3 -3
- package/dist/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.js +17 -8
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/tokens/css/tokens.css +12 -4
- package/dist/tokens/css/tokens.dark.css +10 -4
- package/dist/tokens/js/tokens.dark.js +10 -4
- package/dist/tokens/js/tokens.js +12 -4
- package/dist/tokens/json/tokens.dark.grouped.json +9 -1
- package/dist/tokens/json/tokens.dark.json +182 -0
- package/dist/tokens/json/tokens.grouped.json +9 -1
- package/dist/tokens/json/tokens.json +182 -0
- package/dist/tokens/scss/_tokens.dark.scss +10 -4
- package/dist/tokens/scss/_tokens.scss +12 -4
- package/dist/tokens/tokens_story.js +7 -1
- package/dist/utils/utils.js +19 -1
- package/package.json +1 -1
- package/src/components/base/new_dropdowns/base_dropdown/base_dropdown.spec.js +31 -26
- package/src/components/base/new_dropdowns/base_dropdown/base_dropdown.vue +16 -6
- package/src/components/base/new_dropdowns/constants.js +1 -1
- package/src/components/base/pagination/pagination.vue +6 -0
- package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.scss +15 -1
- package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.spec.js +51 -45
- package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.stories.js +8 -0
- package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.vue +52 -28
- package/src/tokens/text.dark.tokens.json +44 -0
- package/src/tokens/text.dark.tokens.stories.js +6 -1
- package/src/tokens/text.tokens.json +56 -0
- package/src/tokens/text.tokens.stories.js +6 -1
- package/src/tokens/tokens_story.vue +12 -1
- package/src/utils/utils.js +18 -0
- package/src/utils/utils.spec.js +52 -0
- package/tailwind.defaults.js +10 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,22 @@
|
|
|
1
|
+
# [79.3.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v79.2.0...v79.3.0) (2024-04-25)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **DesignTokens:** add new text colors and deprecate pilot text colors ([818f109](https://gitlab.com/gitlab-org/gitlab-ui/commit/818f109b4151319a7d51025a8eae9bcf2a6e37e4))
|
|
7
|
+
|
|
8
|
+
# [79.2.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v79.1.1...v79.2.0) (2024-04-24)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **dropdowns:** ignore vertical boundaries ([3fec816](https://gitlab.com/gitlab-org/gitlab-ui/commit/3fec81641a0f625810a89a05129737767792df13))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* **GlDuoChatMessage:** output errors ([f4c804a](https://gitlab.com/gitlab-org/gitlab-ui/commit/f4c804abc033a7b23823366d2b1fa1e065abf056))
|
|
19
|
+
|
|
1
20
|
## [79.1.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v79.1.0...v79.1.1) (2024-04-24)
|
|
2
21
|
|
|
3
22
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import uniqueId from 'lodash/uniqueId';
|
|
2
2
|
import { offset, autoPlacement, shift, size, autoUpdate, computePosition } from '@floating-ui/dom';
|
|
3
3
|
import { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements, dropdownAllowedAutoPlacements } from '../../../../utils/constants';
|
|
4
|
-
import { POSITION_ABSOLUTE, POSITION_FIXED,
|
|
5
|
-
import { logWarning, isElementFocusable, isElementTabbable } from '../../../../utils/utils';
|
|
4
|
+
import { POSITION_ABSOLUTE, POSITION_FIXED, GL_DROPDOWN_HORIZONTAL_BOUNDARY_SELECTOR, GL_DROPDOWN_CONTENTS_CLASS, GL_DROPDOWN_BEFORE_CLOSE, GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, ENTER, SPACE, ARROW_DOWN, GL_DROPDOWN_FOCUS_CONTENT } from '../constants';
|
|
5
|
+
import { logWarning, getHorizontalBoundingClientRect, isElementFocusable, isElementTabbable } from '../../../../utils/utils';
|
|
6
6
|
import GlButton from '../../button/button';
|
|
7
7
|
import GlIcon from '../../icon/icon';
|
|
8
8
|
import { OutsideDirective } from '../../../../directives/outside/outside';
|
|
@@ -250,10 +250,13 @@ var script = {
|
|
|
250
250
|
return {
|
|
251
251
|
placement,
|
|
252
252
|
strategy: this.positioningStrategy,
|
|
253
|
-
middleware: [offset(this.offset), autoPlacement({
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
253
|
+
middleware: [offset(this.offset), autoPlacement(() => {
|
|
254
|
+
const autoHorizontalBoundary = getHorizontalBoundingClientRect(this.$el.closest(GL_DROPDOWN_HORIZONTAL_BOUNDARY_SELECTOR));
|
|
255
|
+
return {
|
|
256
|
+
alignment,
|
|
257
|
+
boundary: autoHorizontalBoundary || 'clippingAncestors',
|
|
258
|
+
allowedPlacements: dropdownAllowedAutoPlacements[this.placement]
|
|
259
|
+
};
|
|
257
260
|
}), shift(), size({
|
|
258
261
|
apply: _ref => {
|
|
259
262
|
var _this$nonScrollableCo;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// base dropdown events
|
|
2
|
-
const
|
|
2
|
+
const GL_DROPDOWN_HORIZONTAL_BOUNDARY_SELECTOR = 'main';
|
|
3
3
|
const GL_DROPDOWN_SHOWN = 'shown';
|
|
4
4
|
const GL_DROPDOWN_HIDDEN = 'hidden';
|
|
5
5
|
const GL_DROPDOWN_BEFORE_CLOSE = 'beforeClose';
|
|
@@ -19,4 +19,4 @@ const POSITION_ABSOLUTE = 'absolute';
|
|
|
19
19
|
const POSITION_FIXED = 'fixed';
|
|
20
20
|
const GL_DROPDOWN_CONTENTS_CLASS = 'gl-new-dropdown-contents';
|
|
21
21
|
|
|
22
|
-
export { ARROW_DOWN, ARROW_UP, END, ENTER, GL_DROPDOWN_BEFORE_CLOSE,
|
|
22
|
+
export { ARROW_DOWN, ARROW_UP, END, ENTER, GL_DROPDOWN_BEFORE_CLOSE, GL_DROPDOWN_CONTENTS_CLASS, GL_DROPDOWN_FOCUS_CONTENT, GL_DROPDOWN_HIDDEN, GL_DROPDOWN_HORIZONTAL_BOUNDARY_SELECTOR, GL_DROPDOWN_SHOWN, HOME, POSITION_ABSOLUTE, POSITION_FIXED, SPACE };
|
|
@@ -358,13 +358,13 @@ const __vue_script__ = script;
|
|
|
358
358
|
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isVisible)?_c('nav',{staticClass:"gl-pagination text-nowrap",attrs:{"aria-label":"Pagination"}},[_c('ul',{staticClass:"pagination",class:_vm.wrapperClasses},[_c('li',{staticClass:"page-item",class:{
|
|
359
359
|
disabled: _vm.prevPageIsDisabled,
|
|
360
360
|
'flex-fill': _vm.isFillAlign,
|
|
361
|
-
},attrs:{"aria-hidden":_vm.prevPageIsDisabled}},[_c(_vm.prevPageIsDisabled ? 'span' : 'a',{tag:"component",staticClass:"gl-link page-link prev-page-item gl-display-flex",attrs:{"aria-label":_vm.prevPageAriaLabel,"href":_vm.prevPageHref},on:{"click":function($event){return _vm.handlePrevious($event, _vm.value - 1)}}},[_vm._t("previous",function(){return [_c('gl-icon',{attrs:{"name":"chevron-left"}}),_vm._v(" "),_c('span',[_vm._v(_vm._s(_vm.prevText))])]},null,{ page: _vm.value - 1, disabled: _vm.prevPageIsDisabled })],2)],1),_vm._v(" "),_vm._l((_vm.visibleItems),function(item){return _c('li',{key:item.key,staticClass:"page-item",class:{
|
|
361
|
+
},attrs:{"data-testid":"page-item","aria-hidden":_vm.prevPageIsDisabled}},[_c(_vm.prevPageIsDisabled ? 'span' : 'a',{tag:"component",staticClass:"gl-link page-link prev-page-item gl-display-flex",attrs:{"data-testid":"page-link","aria-label":_vm.prevPageAriaLabel,"href":_vm.prevPageHref},on:{"click":function($event){return _vm.handlePrevious($event, _vm.value - 1)}}},[_vm._t("previous",function(){return [_c('gl-icon',{attrs:{"name":"chevron-left"}}),_vm._v(" "),_c('span',[_vm._v(_vm._s(_vm.prevText))])]},null,{ page: _vm.value - 1, disabled: _vm.prevPageIsDisabled })],2)],1),_vm._v(" "),_vm._l((_vm.visibleItems),function(item){return _c('li',{key:item.key,staticClass:"page-item",class:{
|
|
362
362
|
disabled: item.disabled,
|
|
363
363
|
'flex-fill': _vm.isFillAlign,
|
|
364
|
-
}},[_c(item.component,_vm._g(_vm._b({tag:"component",staticClass:"page-link",attrs:{"size":"md","aria-disabled":item.disabled}},'component',item.attrs,false),item.listeners),[_vm._t(item.slot,function(){return [_vm._v(_vm._s(item.content))]},null,item.slotData)],2)],1)}),_vm._v(" "),_c('li',{staticClass:"page-item",class:{
|
|
364
|
+
},attrs:{"data-testid":"page-item"}},[_c(item.component,_vm._g(_vm._b({tag:"component",staticClass:"page-link",attrs:{"data-testid":"page-link","size":"md","aria-disabled":item.disabled}},'component',item.attrs,false),item.listeners),[_vm._t(item.slot,function(){return [_vm._v(_vm._s(item.content))]},null,item.slotData)],2)],1)}),_vm._v(" "),_c('li',{staticClass:"page-item",class:{
|
|
365
365
|
disabled: _vm.nextPageIsDisabled,
|
|
366
366
|
'flex-fill': _vm.isFillAlign,
|
|
367
|
-
},attrs:{"aria-hidden":_vm.nextPageIsDisabled}},[_c(_vm.nextPageIsDisabled ? 'span' : 'a',{tag:"component",staticClass:"gl-link page-link next-page-item gl-display-flex",attrs:{"aria-label":_vm.nextPageAriaLabel,"href":_vm.nextPageHref},on:{"click":function($event){return _vm.handleNext($event, _vm.value + 1)}}},[_vm._t("next",function(){return [_c('span',[_vm._v(_vm._s(_vm.nextText))]),_vm._v(" "),_c('gl-icon',{attrs:{"name":"chevron-right"}})]},null,{ page: _vm.value + 1, disabled: _vm.nextPageIsDisabled })],2)],1)],2)]):_vm._e()};
|
|
367
|
+
},attrs:{"data-testid":"page-item","aria-hidden":_vm.nextPageIsDisabled}},[_c(_vm.nextPageIsDisabled ? 'span' : 'a',{tag:"component",staticClass:"gl-link page-link next-page-item gl-display-flex",attrs:{"data-testid":"page-link","aria-label":_vm.nextPageAriaLabel,"href":_vm.nextPageHref},on:{"click":function($event){return _vm.handleNext($event, _vm.value + 1)}}},[_vm._t("next",function(){return [_c('span',[_vm._v(_vm._s(_vm.nextText))]),_vm._v(" "),_c('gl-icon',{attrs:{"name":"chevron-right"}})]},null,{ page: _vm.value + 1, disabled: _vm.nextPageIsDisabled })],2)],1)],2)]):_vm._e()};
|
|
368
368
|
var __vue_staticRenderFns__ = [];
|
|
369
369
|
|
|
370
370
|
/* style */
|
package/dist/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import GlIcon from '../../../../../base/icon/icon';
|
|
2
|
+
import { GlTooltipDirective } from '../../../../../../directives/tooltip';
|
|
1
3
|
import GlDuoUserFeedback from '../../../user_feedback/user_feedback';
|
|
2
4
|
import GlFormGroup from '../../../../../base/form/form_group/form_group';
|
|
3
5
|
import GlFormTextarea from '../../../../../base/form/form_textarea/form_textarea';
|
|
@@ -16,11 +18,13 @@ const i18n = {
|
|
|
16
18
|
DID_WHAT: 'What were you doing?',
|
|
17
19
|
INTERACTION: 'The situation in which you interacted with GitLab Duo Chat.',
|
|
18
20
|
IMPROVE_WHAT: 'How could the response be improved?',
|
|
19
|
-
BETTER_RESPONSE: 'How the response might better meet your needs.'
|
|
21
|
+
BETTER_RESPONSE: 'How the response might better meet your needs.',
|
|
22
|
+
MESSAGE_ERROR: 'Error sending the message'
|
|
20
23
|
}
|
|
21
24
|
};
|
|
22
25
|
var script = {
|
|
23
26
|
name: 'GlDuoChatMessage',
|
|
27
|
+
i18n,
|
|
24
28
|
safeHtmlConfigExtension: {
|
|
25
29
|
ADD_TAGS: ['copy-code']
|
|
26
30
|
},
|
|
@@ -28,10 +32,12 @@ var script = {
|
|
|
28
32
|
DocumentationSources,
|
|
29
33
|
GlDuoUserFeedback,
|
|
30
34
|
GlFormGroup,
|
|
31
|
-
GlFormTextarea
|
|
35
|
+
GlFormTextarea,
|
|
36
|
+
GlIcon
|
|
32
37
|
},
|
|
33
38
|
directives: {
|
|
34
|
-
SafeHtml: SafeHtmlDirective
|
|
39
|
+
SafeHtml: SafeHtmlDirective,
|
|
40
|
+
GlTooltip: GlTooltipDirective
|
|
35
41
|
},
|
|
36
42
|
provide() {
|
|
37
43
|
return {
|
|
@@ -92,7 +98,6 @@ var script = {
|
|
|
92
98
|
return (_this$message$extras2 = this.message.extras) === null || _this$message$extras2 === void 0 ? void 0 : _this$message$extras2.hasFeedback;
|
|
93
99
|
},
|
|
94
100
|
defaultContent() {
|
|
95
|
-
if (this.message.errors.length > 0) return this.renderMarkdown(this.message.errors.join('; '));
|
|
96
101
|
if (this.message.contentHtml) {
|
|
97
102
|
return this.message.contentHtml;
|
|
98
103
|
}
|
|
@@ -103,6 +108,10 @@ var script = {
|
|
|
103
108
|
return this.renderMarkdown(concatUntilEmpty(this.messageChunks));
|
|
104
109
|
}
|
|
105
110
|
return this.defaultContent || this.renderMarkdown(concatUntilEmpty(this.message.chunks));
|
|
111
|
+
},
|
|
112
|
+
error() {
|
|
113
|
+
var _this$message, _this$message$errors;
|
|
114
|
+
return Boolean((_this$message = this.message) === null || _this$message === void 0 ? void 0 : (_this$message$errors = _this$message.errors) === null || _this$message$errors === void 0 ? void 0 : _this$message$errors.length) && this.message.errors.join('; ');
|
|
106
115
|
}
|
|
107
116
|
},
|
|
108
117
|
beforeCreate() {
|
|
@@ -142,7 +151,7 @@ var script = {
|
|
|
142
151
|
}
|
|
143
152
|
},
|
|
144
153
|
hydrateContentWithGFM() {
|
|
145
|
-
if (!this.isChunk) {
|
|
154
|
+
if (!this.isChunk && this.$refs.content) {
|
|
146
155
|
this.$nextTick(this.renderGFM(this.$refs.content));
|
|
147
156
|
}
|
|
148
157
|
},
|
|
@@ -160,8 +169,7 @@ var script = {
|
|
|
160
169
|
this.stopWatchingMessage();
|
|
161
170
|
}
|
|
162
171
|
}
|
|
163
|
-
}
|
|
164
|
-
i18n
|
|
172
|
+
}
|
|
165
173
|
};
|
|
166
174
|
|
|
167
175
|
/* script */
|
|
@@ -172,7 +180,8 @@ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=
|
|
|
172
180
|
'gl-ml-auto gl-bg-blue-100 gl-text-blue-900 gl-rounded-bottom-right-none': _vm.isUserMessage,
|
|
173
181
|
'gl-rounded-bottom-left-none gl-text-gray-900 gl-bg-white gl-border-1 gl-border-solid gl-border-gray-50':
|
|
174
182
|
_vm.isAssistantMessage,
|
|
175
|
-
|
|
183
|
+
'gl-bg-red-50 gl-border-none!': _vm.error,
|
|
184
|
+
}},[(_vm.error)?_c('gl-icon',{staticClass:"gl-text-red-600 gl-border gl-border-red-500 gl-rounded-full gl-mr-3 gl-flex-shrink-0 error-icon",attrs:{"aria-label":_vm.$options.i18n.MESSAGE_ERROR,"name":"status_warning_borderless","size":16,"data-testid":"error"}}):_vm._e(),_vm._v(" "),_c('div',{ref:"content-wrapper",class:{ 'has-error': _vm.error }},[(_vm.error)?_c('div',{ref:"error-message",staticClass:"error-message"},[_vm._v(_vm._s(_vm.error))]):_c('div',[_c('div',{directives:[{name:"safe-html",rawName:"v-safe-html:[$options.safeHtmlConfigExtension]",value:(_vm.messageContent),expression:"messageContent",arg:_vm.$options.safeHtmlConfigExtension}],ref:"content"}),_vm._v(" "),(_vm.isAssistantMessage)?[(_vm.sources)?_c('documentation-sources',{attrs:{"sources":_vm.sources}}):_vm._e(),_vm._v(" "),_c('div',{staticClass:"gl-display-flex gl-align-items-flex-end gl-mt-4 duo-chat-message-feedback"},[_c('gl-duo-user-feedback',{attrs:{"feedback-received":_vm.hasFeedback,"modal-title":_vm.$options.i18n.MODAL.TITLE,"modal-alert":_vm.$options.i18n.MODAL.ALERT_TEXT},on:{"feedback":_vm.logEvent},scopedSlots:_vm._u([{key:"feedback-extra-fields",fn:function(){return [_c('gl-form-group',{attrs:{"label":_vm.$options.i18n.MODAL.DID_WHAT,"optional":""}},[_c('gl-form-textarea',{attrs:{"placeholder":_vm.$options.i18n.MODAL.INTERACTION},model:{value:(_vm.didWhat),callback:function ($$v) {_vm.didWhat=$$v;},expression:"didWhat"}})],1),_vm._v(" "),_c('gl-form-group',{attrs:{"label":_vm.$options.i18n.MODAL.IMPROVE_WHAT,"optional":""}},[_c('gl-form-textarea',{attrs:{"placeholder":_vm.$options.i18n.MODAL.BETTER_RESPONSE},model:{value:(_vm.improveWhat),callback:function ($$v) {_vm.improveWhat=$$v;},expression:"improveWhat"}})],1)]},proxy:true}],null,false,419229417)})],1)]:_vm._e()],2)])],1)};
|
|
176
185
|
var __vue_staticRenderFns__ = [];
|
|
177
186
|
|
|
178
187
|
/* style */
|