@gitlab/ui 62.12.1 → 63.1.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 +27 -0
- package/dist/components/base/new_dropdowns/listbox/listbox.js +62 -2
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/utility_classes.css +1 -1
- package/dist/utility_classes.css.map +1 -1
- package/package.json +1 -1
- package/src/components/base/new_dropdowns/dropdown.scss +66 -0
- package/src/components/base/new_dropdowns/dropdown_item.scss +7 -2
- package/src/components/base/new_dropdowns/listbox/listbox.vue +80 -2
- package/src/scss/utilities.scss +0 -52
- package/src/scss/utility-mixins/display.scss +0 -7
- package/src/scss/utility-mixins/spacing.scss +0 -28
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
# [63.1.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v63.0.0...v63.1.0) (2023-05-18)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **GlCollapsibleListbox:** Add overflow scrim ([55ef395](https://gitlab.com/gitlab-org/gitlab-ui/commit/55ef395c7f0c6960cee9b51bc436a0c3b339d2cc))
|
|
7
|
+
|
|
8
|
+
# [63.0.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v62.12.1...v63.0.0) (2023-05-17)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* remove desktop-first CSS utils ([34f70fc](https://gitlab.com/gitlab-org/gitlab-ui/commit/34f70fc71dedde3405f07392f51ab9157f079567))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### BREAKING CHANGES
|
|
17
|
+
|
|
18
|
+
* This removes a few desktop-first CSS utils. If you were
|
|
19
|
+
relying on the following utils, make sure you migrate to mobile-first
|
|
20
|
+
alternatives:
|
|
21
|
+
|
|
22
|
+
* `gl-xs-display-none`
|
|
23
|
+
* `gl-xs-mb-4`
|
|
24
|
+
* `gl-sm-pr-3`
|
|
25
|
+
* `gl-sm-pr-5`
|
|
26
|
+
* `gl-sm-pl-5`
|
|
27
|
+
|
|
1
28
|
## [62.12.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v62.12.0...v62.12.1) (2023-05-17)
|
|
2
29
|
|
|
3
30
|
|
|
@@ -300,7 +300,9 @@ var script = {
|
|
|
300
300
|
toggleId: uniqueId('dropdown-toggle-btn-'),
|
|
301
301
|
listboxId: uniqueId('listbox-'),
|
|
302
302
|
nextFocusedItemIndex: null,
|
|
303
|
-
searchStr: ''
|
|
303
|
+
searchStr: '',
|
|
304
|
+
topBoundaryVisible: true,
|
|
305
|
+
bottomBoundaryVisible: true
|
|
304
306
|
};
|
|
305
307
|
},
|
|
306
308
|
computed: {
|
|
@@ -308,6 +310,15 @@ var script = {
|
|
|
308
310
|
if (this.items.length === 0 || isOption(this.items[0])) return 'ul';
|
|
309
311
|
return 'div';
|
|
310
312
|
},
|
|
313
|
+
listboxClasses() {
|
|
314
|
+
return {
|
|
315
|
+
'top-scrim-visible': !this.topBoundaryVisible,
|
|
316
|
+
'bottom-scrim-visible': !this.bottomBoundaryVisible
|
|
317
|
+
};
|
|
318
|
+
},
|
|
319
|
+
itemTag() {
|
|
320
|
+
return this.listboxTag === 'ul' ? 'li' : 'div';
|
|
321
|
+
},
|
|
311
322
|
flattenedOptions() {
|
|
312
323
|
return flattenedOptions(this.items);
|
|
313
324
|
},
|
|
@@ -370,6 +381,12 @@ var script = {
|
|
|
370
381
|
toggleClasses.push('gl-text-gray-500!');
|
|
371
382
|
}
|
|
372
383
|
return toggleClasses;
|
|
384
|
+
},
|
|
385
|
+
hasHeader() {
|
|
386
|
+
return this.headerText || this.searchable;
|
|
387
|
+
},
|
|
388
|
+
hasFooter() {
|
|
389
|
+
return Boolean(this.$scopedSlots.footer);
|
|
373
390
|
}
|
|
374
391
|
},
|
|
375
392
|
watch: {
|
|
@@ -386,6 +403,15 @@ var script = {
|
|
|
386
403
|
}
|
|
387
404
|
}
|
|
388
405
|
},
|
|
406
|
+
items: {
|
|
407
|
+
handler() {
|
|
408
|
+
this.$nextTick(() => {
|
|
409
|
+
/* Every time the list of items changes (on search),
|
|
410
|
+
* the observed elements are recreated, thus we need to start obesrving them again */
|
|
411
|
+
this.observeScroll();
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
},
|
|
389
415
|
...(process.env.NODE_ENV !== 'production' ? {
|
|
390
416
|
resetButtonLabel: {
|
|
391
417
|
immediate: true,
|
|
@@ -405,6 +431,13 @@ var script = {
|
|
|
405
431
|
}
|
|
406
432
|
} : {})
|
|
407
433
|
},
|
|
434
|
+
mounted() {
|
|
435
|
+
this.observeScroll();
|
|
436
|
+
},
|
|
437
|
+
beforeDestroy() {
|
|
438
|
+
var _this$scrollObserver;
|
|
439
|
+
(_this$scrollObserver = this.scrollObserver) === null || _this$scrollObserver === void 0 ? void 0 : _this$scrollObserver.disconnect();
|
|
440
|
+
},
|
|
408
441
|
methods: {
|
|
409
442
|
open() {
|
|
410
443
|
this.$refs.baseDropdown.open();
|
|
@@ -564,6 +597,33 @@ var script = {
|
|
|
564
597
|
'aria-posinset': index + 1
|
|
565
598
|
};
|
|
566
599
|
},
|
|
600
|
+
observeScroll() {
|
|
601
|
+
var _this$scrollObserver2;
|
|
602
|
+
const root = this.$refs.list;
|
|
603
|
+
const options = {
|
|
604
|
+
rootMargin: '8px',
|
|
605
|
+
root,
|
|
606
|
+
threshold: 1.0
|
|
607
|
+
};
|
|
608
|
+
(_this$scrollObserver2 = this.scrollObserver) === null || _this$scrollObserver2 === void 0 ? void 0 : _this$scrollObserver2.disconnect();
|
|
609
|
+
const observer = new IntersectionObserver(entries => {
|
|
610
|
+
entries.forEach(entry => {
|
|
611
|
+
var _entry$target;
|
|
612
|
+
this[(_entry$target = entry.target) === null || _entry$target === void 0 ? void 0 : _entry$target.$__visibilityProp] = entry.isIntersecting;
|
|
613
|
+
});
|
|
614
|
+
}, options);
|
|
615
|
+
const topBoundary = this.$refs['top-boundary'];
|
|
616
|
+
const bottomBoundary = this.$refs['bottom-boundary'];
|
|
617
|
+
if (topBoundary) {
|
|
618
|
+
topBoundary.$__visibilityProp = 'topBoundaryVisible';
|
|
619
|
+
observer.observe(topBoundary);
|
|
620
|
+
}
|
|
621
|
+
if (bottomBoundary) {
|
|
622
|
+
bottomBoundary.$__visibilityProp = 'bottomBoundaryVisible';
|
|
623
|
+
observer.observe(bottomBoundary);
|
|
624
|
+
}
|
|
625
|
+
this.scrollObserver = observer;
|
|
626
|
+
},
|
|
567
627
|
isOption
|
|
568
628
|
}
|
|
569
629
|
};
|
|
@@ -572,7 +632,7 @@ var script = {
|
|
|
572
632
|
const __vue_script__ = script;
|
|
573
633
|
|
|
574
634
|
/* template */
|
|
575
|
-
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-base-dropdown',{ref:"baseDropdown",attrs:{"aria-haspopup":"listbox","aria-labelledby":_vm.toggleAriaLabelledBy,"block":_vm.block,"toggle-id":_vm.toggleId,"toggle-text":_vm.listboxToggleText,"toggle-class":_vm.toggleButtonClasses,"text-sr-only":_vm.textSrOnly,"category":_vm.category,"variant":_vm.variant,"size":_vm.size,"icon":_vm.icon,"disabled":_vm.disabled,"loading":_vm.loading,"no-caret":_vm.noCaret,"placement":_vm.placement,"popper-options":_vm.popperOptions,"fluid-width":_vm.fluidWidth},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:"toggle",fn:function(){return [_vm._t("toggle")]},proxy:true}:null],null,true)},[_vm._v(" "),(_vm.headerText)?_c('div',{staticClass:"gl-display-flex gl-align-items-center gl-p-4! gl-min-h-8",class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('div',{staticClass:"gl-flex-grow-1 gl-font-weight-bold gl-font-sm gl-pr-2",attrs:{"id":_vm.headerId,"data-testid":"listbox-header-text"}},[_vm._v("\n "+_vm._s(_vm.headerText)+"\n ")]),_vm._v(" "),(_vm.showResetButton)?_c('gl-button',{staticClass:"gl-focus-inset-border-2-blue-400! gl-flex-shrink-0 gl-font-sm! gl-px-2! gl-py-2! gl-w-auto! gl-m-0!",attrs:{"category":"tertiary","data-testid":"listbox-reset-button"},on:{"click":_vm.onResetButtonClicked}},[_vm._v("\n "+_vm._s(_vm.resetButtonLabel)+"\n ")]):_vm._e()],1):_vm._e(),_vm._v(" "),(_vm.searchable)?_c('div',{class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('gl-listbox-search-input',{ref:"searchBox",attrs:{"aria-owns":_vm.listboxId,"data-testid":"listbox-search-input","placeholder":_vm.searchPlaceholder},on:{"input":_vm.search,"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.preventDefault();},_vm.onKeydown]},model:{value:(_vm.searchStr),callback:function ($$v) {_vm.searchStr=$$v;},expression:"searchStr"}}),_vm._v(" "),(_vm.searching)?_c('gl-loading-icon',{staticClass:"gl-my-3",attrs:{"data-testid":"listbox-search-loader","size":"md"}}):_vm._e()],1):_vm._e(),_vm._v(" "),(_vm.showList)?_c(_vm.listboxTag,{ref:"list",tag:"component",staticClass:"gl-new-dropdown-contents",attrs:{"id":_vm.listboxId,"aria-labelledby":_vm.listAriaLabelledBy || _vm.headerId || _vm.toggleId,"role":"listbox","tabindex":"-1"},on:{"keydown":_vm.onKeydown}},[_vm._l((_vm.items),function(item,index){return [(_vm.isOption(item))?[_c('gl-listbox-item',_vm._b({key:item.value,attrs:{"data-testid":("listbox-item-" + (item.value)),"is-selected":_vm.isSelected(item),"is-focused":_vm.isFocused(item),"is-check-centered":_vm.isCheckCentered},on:{"select":function($event){return _vm.onSelect(item, $event)}}},'gl-listbox-item',_vm.listboxItemMoreItemsAriaAttributes(index),false),[_vm._t("list-item",function(){return [_vm._v("\n "+_vm._s(item.text)+"\n ")]},{"item":item})],2)]:[_c('gl-listbox-group',{key:item.text,class:_vm.groupClasses(index),attrs:{"name":item.text,"text-sr-only":item.textSrOnly},scopedSlots:_vm._u([(_vm.$scopedSlots['group-label'])?{key:"group-label",fn:function(){return [_vm._t("group-label",null,{"group":item})]},proxy:true}:null],null,true)},[_vm._v(" "),_vm._l((item.options),function(option){return _c('gl-listbox-item',{key:option.value,attrs:{"data-testid":("listbox-item-" + (option.value)),"is-selected":_vm.isSelected(option),"is-focused":_vm.isFocused(option),"is-check-centered":_vm.isCheckCentered},on:{"select":function($event){return _vm.onSelect(option, $event)}}},[_vm._t("list-item",function(){return [_vm._v("\n "+_vm._s(option.text)+"\n ")]},{"item":option})],2)})],2)]]}),_vm._v(" "),(_vm.infiniteScrollLoading)?_c(_vm.
|
|
635
|
+
var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-base-dropdown',{ref:"baseDropdown",attrs:{"aria-haspopup":"listbox","aria-labelledby":_vm.toggleAriaLabelledBy,"block":_vm.block,"toggle-id":_vm.toggleId,"toggle-text":_vm.listboxToggleText,"toggle-class":_vm.toggleButtonClasses,"text-sr-only":_vm.textSrOnly,"category":_vm.category,"variant":_vm.variant,"size":_vm.size,"icon":_vm.icon,"disabled":_vm.disabled,"loading":_vm.loading,"no-caret":_vm.noCaret,"placement":_vm.placement,"popper-options":_vm.popperOptions,"fluid-width":_vm.fluidWidth},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:"toggle",fn:function(){return [_vm._t("toggle")]},proxy:true}:null],null,true)},[_vm._v(" "),(_vm.headerText)?_c('div',{staticClass:"gl-display-flex gl-align-items-center gl-p-4! gl-min-h-8",class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('div',{staticClass:"gl-flex-grow-1 gl-font-weight-bold gl-font-sm gl-pr-2",attrs:{"id":_vm.headerId,"data-testid":"listbox-header-text"}},[_vm._v("\n "+_vm._s(_vm.headerText)+"\n ")]),_vm._v(" "),(_vm.showResetButton)?_c('gl-button',{staticClass:"gl-focus-inset-border-2-blue-400! gl-flex-shrink-0 gl-font-sm! gl-px-2! gl-py-2! gl-w-auto! gl-m-0!",attrs:{"category":"tertiary","data-testid":"listbox-reset-button"},on:{"click":_vm.onResetButtonClicked}},[_vm._v("\n "+_vm._s(_vm.resetButtonLabel)+"\n ")]):_vm._e()],1):_vm._e(),_vm._v(" "),(_vm.searchable)?_c('div',{class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('gl-listbox-search-input',{ref:"searchBox",attrs:{"aria-owns":_vm.listboxId,"data-testid":"listbox-search-input","placeholder":_vm.searchPlaceholder},on:{"input":_vm.search,"keydown":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }$event.preventDefault();},_vm.onKeydown]},model:{value:(_vm.searchStr),callback:function ($$v) {_vm.searchStr=$$v;},expression:"searchStr"}}),_vm._v(" "),(_vm.searching)?_c('gl-loading-icon',{staticClass:"gl-my-3",attrs:{"data-testid":"listbox-search-loader","size":"md"}}):_vm._e()],1):_vm._e(),_vm._v(" "),(_vm.showList)?_c(_vm.listboxTag,{ref:"list",tag:"component",staticClass:"gl-new-dropdown-contents gl-new-dropdown-contents-with-scrim-overlay",class:_vm.listboxClasses,attrs:{"id":_vm.listboxId,"aria-labelledby":_vm.listAriaLabelledBy || _vm.headerId || _vm.toggleId,"role":"listbox","tabindex":"-1"},on:{"keydown":_vm.onKeydown}},[_c(_vm.itemTag,{tag:"component",staticClass:"top-scrim-wrapper",attrs:{"aria-hidden":"true","data-testid":"top-scrim"}},[_c('div',{staticClass:"top-scrim",class:{ 'top-scrim-light': !_vm.hasHeader, 'top-scrim-dark': _vm.hasHeader }})]),_vm._v(" "),_c(_vm.itemTag,{ref:"top-boundary",tag:"component",attrs:{"aria-hidden":"true"}}),_vm._v(" "),_vm._l((_vm.items),function(item,index){return [(_vm.isOption(item))?[_c('gl-listbox-item',_vm._b({key:item.value,attrs:{"data-testid":("listbox-item-" + (item.value)),"is-selected":_vm.isSelected(item),"is-focused":_vm.isFocused(item),"is-check-centered":_vm.isCheckCentered},on:{"select":function($event){return _vm.onSelect(item, $event)}}},'gl-listbox-item',_vm.listboxItemMoreItemsAriaAttributes(index),false),[_vm._t("list-item",function(){return [_vm._v("\n "+_vm._s(item.text)+"\n ")]},{"item":item})],2)]:[_c('gl-listbox-group',{key:item.text,class:_vm.groupClasses(index),attrs:{"name":item.text,"text-sr-only":item.textSrOnly},scopedSlots:_vm._u([(_vm.$scopedSlots['group-label'])?{key:"group-label",fn:function(){return [_vm._t("group-label",null,{"group":item})]},proxy:true}:null],null,true)},[_vm._v(" "),_vm._l((item.options),function(option){return _c('gl-listbox-item',{key:option.value,attrs:{"data-testid":("listbox-item-" + (option.value)),"is-selected":_vm.isSelected(option),"is-focused":_vm.isFocused(option),"is-check-centered":_vm.isCheckCentered},on:{"select":function($event){return _vm.onSelect(option, $event)}}},[_vm._t("list-item",function(){return [_vm._v("\n "+_vm._s(option.text)+"\n ")]},{"item":option})],2)})],2)]]}),_vm._v(" "),(_vm.infiniteScrollLoading)?_c(_vm.itemTag,{tag:"component"},[_c('gl-loading-icon',{staticClass:"gl-my-3",attrs:{"data-testid":"listbox-infinite-scroll-loader","size":"md"}})],1):_vm._e(),_vm._v(" "),(_vm.showIntersectionObserver)?_c('gl-intersection-observer',{on:{"appear":_vm.onIntersectionObserverAppear}}):_vm._e(),_vm._v(" "),_c(_vm.itemTag,{ref:"bottom-boundary",tag:"component",attrs:{"aria-hidden":"true"}}),_vm._v(" "),_c(_vm.itemTag,{tag:"component",staticClass:"bottom-scrim-wrapper",attrs:{"aria-hidden":"true","data-testid":"bottom-scrim"}},[_c('div',{staticClass:"bottom-scrim",class:{ 'gl-rounded-0!': _vm.hasFooter }})])],2):_vm._e(),_vm._v(" "),(_vm.announceSRSearchResults)?_c('span',{staticClass:"gl-sr-only",attrs:{"data-testid":"listbox-number-of-results","aria-live":"assertive"}},[_vm._t("search-summary-sr-only")],2):(_vm.showNoResultsText)?_c('div',{staticClass:"gl-pl-7 gl-pr-5 gl-py-3 gl-font-base gl-text-gray-600",attrs:{"aria-live":"assertive","data-testid":"listbox-no-results-text"}},[_vm._v("\n "+_vm._s(_vm.noResultsText)+"\n ")]):_vm._e(),_vm._v(" "),_vm._t("footer")],2)};
|
|
576
636
|
var __vue_staticRenderFns__ = [];
|
|
577
637
|
|
|
578
638
|
/* style */
|