@gitlab/ui 108.3.0 → 108.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.
- package/CHANGELOG.md +14 -0
- package/dist/components/base/avatar_labeled/avatar_labeled.js +1 -1
- package/dist/components/base/avatar_link/avatar_link.js +1 -1
- package/dist/components/base/daterange_picker/daterange_picker.js +18 -1
- package/dist/components/base/link/link.js +33 -2
- package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js +1 -1
- package/dist/directives/safe_link/safe_link.js +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/utils/constants.js +7 -1
- package/package.json +4 -4
- package/src/components/base/avatar_labeled/avatar_labeled.vue +8 -2
- package/src/components/base/avatar_link/avatar_link.vue +1 -1
- package/src/components/base/daterange_picker/daterange_picker.vue +23 -2
- package/src/components/base/link/link.md +24 -1
- package/src/components/base/link/link.scss +78 -1
- package/src/components/base/link/link.vue +39 -1
- package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.vue +0 -1
- package/src/directives/safe_link/safe_link.js +1 -1
- package/src/utils/constants.js +7 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,17 @@
|
|
|
1
|
+
# [108.4.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v108.3.1...v108.4.0) (2025-02-21)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **GlLink:** Add variants and use design tokens in GlLink ([ec6b16d](https://gitlab.com/gitlab-org/gitlab-ui/commit/ec6b16d5142e07a3abe6b6e11fc61f58cb7c2baa))
|
|
7
|
+
|
|
8
|
+
## [108.3.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v108.3.0...v108.3.1) (2025-02-14)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* **GlDisclosureDropdownItem:** remove improper aria-hidden ([37977f8](https://gitlab.com/gitlab-org/gitlab-ui/commit/37977f861dee1f84dcdd6ca1ed9702c6d8a19752))
|
|
14
|
+
|
|
1
15
|
# [108.3.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v108.2.0...v108.3.0) (2025-02-12)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -72,7 +72,7 @@ var script = {
|
|
|
72
72
|
const __vue_script__ = script;
|
|
73
73
|
|
|
74
74
|
/* template */
|
|
75
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-avatar-labeled"},[_c('gl-avatar',_vm._g(_vm._b({class:_vm.avatarCssClasses,attrs:{"alt":""}},'gl-avatar',_vm.$attrs,false),_vm.avatarListeners)),_vm._v(" "),_c('div',{staticClass:"gl-avatar-labeled-labels !gl-text-left",class:_vm.avatarRowLayoutClass},[_c('div',{staticClass:"-gl-mx-1 -gl-my-1 gl-flex gl-flex-wrap gl-items-center !gl-text-left"},[(_vm.hasLabelLink)?_c('gl-link',{ref:"labelLink",staticClass:"gl-avatar-link",attrs:{"href":_vm.labelLink}},[_c('span',{staticClass:"gl-avatar-labeled-label"},[_vm._v(_vm._s(_vm.label))])]):_c('span',{staticClass:"gl-avatar-labeled-label"},[_vm._v(_vm._s(_vm.label))]),_vm._v(" "),_vm._t("meta")],2),_vm._v(" "),(_vm.hasSubLabelLink)?_c('gl-link',{staticClass:"gl-avatar-link",attrs:{"href":_vm.subLabelLink}},[_c('span',{staticClass:"gl-avatar-labeled-sublabel"},[_vm._v(_vm._s(_vm.subLabel))])]):_c('span',{staticClass:"gl-avatar-labeled-sublabel"},[_vm._v(_vm._s(_vm.subLabel))]),_vm._v(" "),_vm._t("default")],2)],1)};
|
|
75
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-avatar-labeled"},[_c('gl-avatar',_vm._g(_vm._b({class:_vm.avatarCssClasses,attrs:{"alt":""}},'gl-avatar',_vm.$attrs,false),_vm.avatarListeners)),_vm._v(" "),_c('div',{staticClass:"gl-avatar-labeled-labels !gl-text-left",class:_vm.avatarRowLayoutClass},[_c('div',{staticClass:"-gl-mx-1 -gl-my-1 gl-flex gl-flex-wrap gl-items-center !gl-text-left"},[(_vm.hasLabelLink)?_c('gl-link',{ref:"labelLink",staticClass:"gl-avatar-link",attrs:{"href":_vm.labelLink,"variant":"meta"}},[_c('span',{staticClass:"gl-avatar-labeled-label"},[_vm._v(_vm._s(_vm.label))])]):_c('span',{staticClass:"gl-avatar-labeled-label"},[_vm._v(_vm._s(_vm.label))]),_vm._v(" "),_vm._t("meta")],2),_vm._v(" "),(_vm.hasSubLabelLink)?_c('gl-link',{staticClass:"gl-avatar-link",attrs:{"href":_vm.subLabelLink,"variant":"meta"}},[_c('span',{staticClass:"gl-avatar-labeled-sublabel"},[_vm._v(_vm._s(_vm.subLabel))])]):_c('span',{staticClass:"gl-avatar-labeled-sublabel"},[_vm._v(_vm._s(_vm.subLabel))]),_vm._v(" "),_vm._t("default")],2)],1)};
|
|
76
76
|
var __vue_staticRenderFns__ = [];
|
|
77
77
|
|
|
78
78
|
/* style */
|
|
@@ -12,7 +12,7 @@ var script = {
|
|
|
12
12
|
const __vue_script__ = script;
|
|
13
13
|
|
|
14
14
|
/* template */
|
|
15
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-link',_vm._g(_vm._b({staticClass:"gl-avatar-link"},'gl-link',_vm.$attrs,false),_vm.$listeners),[_vm._t("default")],2)};
|
|
15
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-link',_vm._g(_vm._b({staticClass:"gl-avatar-link",attrs:{"variant":"meta"}},'gl-link',_vm.$attrs,false),_vm.$listeners),[_vm._t("default")],2)};
|
|
16
16
|
var __vue_staticRenderFns__ = [];
|
|
17
17
|
|
|
18
18
|
/* style */
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import uniqueId from 'lodash/uniqueId';
|
|
1
2
|
import { GlTooltipDirective } from '../../../directives/tooltip';
|
|
2
3
|
import { getDateInPast, getDateInFuture, getDayDifference } from '../../../utils/datetime_utility';
|
|
3
4
|
import GlDatepicker from '../datepicker/datepicker';
|
|
@@ -26,6 +27,16 @@ var script = {
|
|
|
26
27
|
required: false,
|
|
27
28
|
default: 'To'
|
|
28
29
|
},
|
|
30
|
+
fromAriaLabel: {
|
|
31
|
+
type: String,
|
|
32
|
+
required: false,
|
|
33
|
+
default: 'From date'
|
|
34
|
+
},
|
|
35
|
+
toAriaLabel: {
|
|
36
|
+
type: String,
|
|
37
|
+
required: false,
|
|
38
|
+
default: 'To date'
|
|
39
|
+
},
|
|
29
40
|
value: {
|
|
30
41
|
type: Object,
|
|
31
42
|
required: false,
|
|
@@ -198,6 +209,12 @@ var script = {
|
|
|
198
209
|
},
|
|
199
210
|
showIndicator() {
|
|
200
211
|
return Boolean(this.$scopedSlots.default || this.tooltip);
|
|
212
|
+
},
|
|
213
|
+
fromId() {
|
|
214
|
+
return uniqueId('date-from-field-');
|
|
215
|
+
},
|
|
216
|
+
toId() {
|
|
217
|
+
return uniqueId('date-to-field-');
|
|
201
218
|
}
|
|
202
219
|
},
|
|
203
220
|
watch: {
|
|
@@ -273,7 +290,7 @@ var script = {
|
|
|
273
290
|
const __vue_script__ = script;
|
|
274
291
|
|
|
275
292
|
/* template */
|
|
276
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-daterange-picker gl-flex gl-gap-5"},[_c('div',{class:_vm.startContainerClasses,attrs:{"data-testid":"daterange-picker-start-container"}},[_c('label',{class:_vm.labelClass},[_vm._v(_vm._s(_vm.fromLabel))]),_vm._v(" "),_c('gl-datepicker',{attrs:{"min-date":_vm.defaultMinDate,"max-date":_vm.fromCalendarMaxDate,"start-range":_vm.defaultMinDate,"end-range":_vm.fromCalendarMaxDate,"theme":_vm.theme,"i18n":_vm.i18n,"target":_vm.startPickerTarget,"container":_vm.startPickerContainer,"start-opened":_vm.startOpened,"state":_vm.startPickerState,"width":_vm.width},on:{"input":_vm.onStartDateSelected,"open":_vm.onStartPickerOpen,"close":_vm.onStartPickerClose},scopedSlots:_vm._u([{key:"after",fn:function(){return [_vm._t("after-start")]},proxy:true}],null,true),model:{value:(_vm.startDate),callback:function ($$v) {_vm.startDate=$$v;},expression:"startDate"}})],1),_vm._v(" "),_c('div',{class:_vm.endContainerClasses,attrs:{"data-testid":"daterange-picker-end-container"}},[_c('label',{class:_vm.labelClass},[_vm._v(_vm._s(_vm.toLabel))]),_vm._v(" "),_c('gl-datepicker',{key:_vm.numericStartTime,attrs:{"min-date":_vm.toCalendarMinDate,"max-date":_vm.toCalendarMaxDate,"start-range":_vm.toCalendarMinDate,"end-range":_vm.toCalendarMaxDate,"theme":_vm.theme,"i18n":_vm.i18n,"target":_vm.endPickerTarget,"container":_vm.endPickerContainer,"start-opened":_vm.openToCalendar,"default-date":_vm.toCalendarDefaultDate,"width":_vm.width,"state":_vm.endPickerState},on:{"input":_vm.onEndDateSelected,"open":_vm.onEndPickerOpen,"close":_vm.onEndPickerClose},scopedSlots:_vm._u([{key:"after",fn:function(){return [_vm._t("after-end")]},proxy:true}],null,true),model:{value:(_vm.endDate),callback:function ($$v) {_vm.endDate=$$v;},expression:"endDate"}})],1),_vm._v(" "),(_vm.showIndicator)?_c('div',{staticClass:"gl-daterange-picker-indicator",class:_vm.dateRangeIndicatorClass,attrs:{"data-testid":"daterange-picker-indicator"}},[_vm._t("default",null,null,{ daysSelected: _vm.numberOfDays }),_vm._v(" "),(_vm.tooltip)?_c('gl-icon',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],attrs:{"name":"information-o","title":_vm.tooltip,"size":16,"variant":"info"}}):_vm._e()],2):_vm._e()])};
|
|
293
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-daterange-picker gl-flex gl-gap-5"},[_c('div',{class:_vm.startContainerClasses,attrs:{"data-testid":"daterange-picker-start-container"}},[_c('label',{class:_vm.labelClass,attrs:{"for":_vm.fromId}},[_vm._v(_vm._s(_vm.fromLabel))]),_vm._v(" "),_c('gl-datepicker',{attrs:{"input-id":_vm.fromId,"input-label":_vm.fromAriaLabel,"min-date":_vm.defaultMinDate,"max-date":_vm.fromCalendarMaxDate,"start-range":_vm.defaultMinDate,"end-range":_vm.fromCalendarMaxDate,"theme":_vm.theme,"i18n":_vm.i18n,"target":_vm.startPickerTarget,"container":_vm.startPickerContainer,"start-opened":_vm.startOpened,"state":_vm.startPickerState,"width":_vm.width},on:{"input":_vm.onStartDateSelected,"open":_vm.onStartPickerOpen,"close":_vm.onStartPickerClose},scopedSlots:_vm._u([{key:"after",fn:function(){return [_vm._t("after-start")]},proxy:true}],null,true),model:{value:(_vm.startDate),callback:function ($$v) {_vm.startDate=$$v;},expression:"startDate"}})],1),_vm._v(" "),_c('div',{class:_vm.endContainerClasses,attrs:{"data-testid":"daterange-picker-end-container"}},[_c('label',{class:_vm.labelClass,attrs:{"for":_vm.toId}},[_vm._v(_vm._s(_vm.toLabel))]),_vm._v(" "),_c('gl-datepicker',{key:_vm.numericStartTime,attrs:{"input-id":_vm.toId,"input-label":_vm.toAriaLabel,"min-date":_vm.toCalendarMinDate,"max-date":_vm.toCalendarMaxDate,"start-range":_vm.toCalendarMinDate,"end-range":_vm.toCalendarMaxDate,"theme":_vm.theme,"i18n":_vm.i18n,"target":_vm.endPickerTarget,"container":_vm.endPickerContainer,"start-opened":_vm.openToCalendar,"default-date":_vm.toCalendarDefaultDate,"width":_vm.width,"state":_vm.endPickerState},on:{"input":_vm.onEndDateSelected,"open":_vm.onEndPickerOpen,"close":_vm.onEndPickerClose},scopedSlots:_vm._u([{key:"after",fn:function(){return [_vm._t("after-end")]},proxy:true}],null,true),model:{value:(_vm.endDate),callback:function ($$v) {_vm.endDate=$$v;},expression:"endDate"}})],1),_vm._v(" "),(_vm.showIndicator)?_c('div',{staticClass:"gl-daterange-picker-indicator",class:_vm.dateRangeIndicatorClass,attrs:{"data-testid":"daterange-picker-indicator"}},[_vm._t("default",null,null,{ daysSelected: _vm.numberOfDays }),_vm._v(" "),(_vm.tooltip)?_c('gl-icon',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],attrs:{"name":"information-o","title":_vm.tooltip,"size":16,"variant":"info"}}):_vm._e()],2):_vm._e()])};
|
|
277
294
|
var __vue_staticRenderFns__ = [];
|
|
278
295
|
|
|
279
296
|
/* style */
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { BLink } from '../../../vendor/bootstrap-vue/src/components/link/link';
|
|
2
2
|
import { SafeLinkMixin } from '../../mixins/safe_link_mixin';
|
|
3
|
+
import { isExternalURL } from '../../../directives/safe_link/safe_link';
|
|
4
|
+
import { linkVariantOptions } from '../../../utils/constants';
|
|
3
5
|
import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
|
|
4
6
|
|
|
5
7
|
//
|
|
@@ -8,14 +10,43 @@ var script = {
|
|
|
8
10
|
components: {
|
|
9
11
|
BLink
|
|
10
12
|
},
|
|
11
|
-
mixins: [SafeLinkMixin]
|
|
13
|
+
mixins: [SafeLinkMixin],
|
|
14
|
+
props: {
|
|
15
|
+
/**
|
|
16
|
+
* If inline variant, controls ↗ character visibility
|
|
17
|
+
*/
|
|
18
|
+
showExternalIcon: {
|
|
19
|
+
type: Boolean,
|
|
20
|
+
required: false,
|
|
21
|
+
default: false
|
|
22
|
+
},
|
|
23
|
+
/**
|
|
24
|
+
* Link variant
|
|
25
|
+
*/
|
|
26
|
+
variant: {
|
|
27
|
+
type: String,
|
|
28
|
+
required: false,
|
|
29
|
+
default: null,
|
|
30
|
+
validator: value => value && Object.hasOwn(linkVariantOptions, value)
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
computed: {
|
|
34
|
+
isInlineAndHasExternalIcon() {
|
|
35
|
+
return this.showExternalIcon && this.variant === 'inline' && this.$attrs.href && isExternalURL(this.target, this.$attrs.href);
|
|
36
|
+
},
|
|
37
|
+
linkClasses() {
|
|
38
|
+
return ['gl-link', linkVariantOptions[this.variant], {
|
|
39
|
+
'gl-link-inline-external': this.isInlineAndHasExternalIcon
|
|
40
|
+
}];
|
|
41
|
+
}
|
|
42
|
+
}
|
|
12
43
|
};
|
|
13
44
|
|
|
14
45
|
/* script */
|
|
15
46
|
const __vue_script__ = script;
|
|
16
47
|
|
|
17
48
|
/* template */
|
|
18
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-link',_vm._g(_vm._b({directives:[{name:"safe-link",rawName:"v-safe-link:[safeLinkConfig]",arg:_vm.safeLinkConfig}],
|
|
49
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-link',_vm._g(_vm._b({directives:[{name:"safe-link",rawName:"v-safe-link:[safeLinkConfig]",arg:_vm.safeLinkConfig}],class:_vm.linkClasses,attrs:{"target":_vm.target}},'b-link',_vm.$attrs,false),_vm.$listeners),[_vm._t("default")],2)};
|
|
19
50
|
var __vue_staticRenderFns__ = [];
|
|
20
51
|
|
|
21
52
|
/* style */
|
|
@@ -74,7 +74,7 @@ var script = {
|
|
|
74
74
|
const __vue_script__ = script;
|
|
75
75
|
|
|
76
76
|
/* template */
|
|
77
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:_vm.borderClass},[(_vm.showHeader)?_c('div',{staticClass:"gl-py-2 gl-pl-4 gl-text-sm gl-font-bold gl-text-strong",attrs:{"id":_vm.nameId
|
|
77
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:_vm.borderClass},[(_vm.showHeader)?_c('div',{staticClass:"gl-py-2 gl-pl-4 gl-text-sm gl-font-bold gl-text-strong",attrs:{"id":_vm.nameId}},[_vm._t("group-label",function(){return [_vm._v(_vm._s(_vm.group.name))]})],2):_vm._e(),_vm._v(" "),_c('ul',{staticClass:"gl-mb-0 gl-list-none gl-pl-0",attrs:{"aria-labelledby":_vm.groupLabeledBy}},[_vm._t("default",function(){return _vm._l((_vm.group.items),function(item){return _c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{"item":item},on:{"action":_vm.handleAction},scopedSlots:_vm._u([{key:"list-item",fn:function(){return [_vm._t("list-item",null,{"item":item})]},proxy:true}],null,true)})})})],2)])};
|
|
78
78
|
var __vue_staticRenderFns__ = [];
|
|
79
79
|
|
|
80
80
|
/* style */
|