@gitlab/ui 107.0.1 → 107.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.
Files changed (45) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js +2 -2
  3. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js +25 -4
  4. package/dist/components/base/new_dropdowns/disclosure/mock_data.js +1 -1
  5. package/dist/components/base/new_dropdowns/listbox/listbox.js +2 -2
  6. package/dist/components/base/search_box_by_click/search_box_by_click.js +1 -1
  7. package/dist/index.css +2 -2
  8. package/dist/index.css.map +1 -1
  9. package/dist/tailwind.css +1 -1
  10. package/dist/tailwind.css.map +1 -1
  11. package/dist/tokens/build/js/tokens.dark.js +7 -5
  12. package/dist/tokens/build/js/tokens.js +3 -1
  13. package/dist/tokens/css/tokens.css +4 -2
  14. package/dist/tokens/css/tokens.dark.css +7 -5
  15. package/dist/tokens/js/tokens.dark.js +6 -4
  16. package/dist/tokens/js/tokens.js +2 -0
  17. package/dist/tokens/json/tokens.dark.json +57 -22
  18. package/dist/tokens/json/tokens.json +53 -18
  19. package/dist/tokens/scss/_tokens.dark.scss +7 -5
  20. package/dist/tokens/scss/_tokens.scss +4 -2
  21. package/dist/tokens/scss/_tokens_custom_properties.scss +2 -0
  22. package/dist/tokens/tailwind/tokens.cjs +2 -1
  23. package/dist/utils/constants.js +5 -1
  24. package/package.json +3 -1
  25. package/src/components/base/dropdown/dropdown.scss +3 -3
  26. package/src/components/base/dropdown/dropdown_divider.scss +1 -1
  27. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.vue +2 -2
  28. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.vue +27 -3
  29. package/src/components/base/new_dropdowns/disclosure/mock_data.js +1 -1
  30. package/src/components/base/new_dropdowns/dropdown_item.scss +29 -0
  31. package/src/components/base/new_dropdowns/listbox/listbox.scss +1 -0
  32. package/src/components/base/new_dropdowns/listbox/listbox.vue +12 -2
  33. package/src/components/base/search_box_by_click/search_box_by_click.vue +2 -2
  34. package/src/tokens/build/css/tokens.css +4 -2
  35. package/src/tokens/build/css/tokens.dark.css +7 -5
  36. package/src/tokens/build/js/tokens.dark.js +6 -4
  37. package/src/tokens/build/js/tokens.js +2 -0
  38. package/src/tokens/build/json/tokens.dark.json +57 -22
  39. package/src/tokens/build/json/tokens.json +53 -18
  40. package/src/tokens/build/scss/_tokens.dark.scss +7 -5
  41. package/src/tokens/build/scss/_tokens.scss +4 -2
  42. package/src/tokens/build/scss/_tokens_custom_properties.scss +2 -0
  43. package/src/tokens/build/tailwind/tokens.cjs +2 -1
  44. package/src/tokens/contextual/dropdown.tokens.json +26 -18
  45. package/src/utils/constants.js +5 -0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # [107.1.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v107.0.1...v107.1.0) (2025-01-16)
2
+
3
+
4
+ ### Features
5
+
6
+ * **Dropdown:** Update design tokens ([c8663b6](https://gitlab.com/gitlab-org/gitlab-ui/commit/c8663b6c2eb08c65d33b6ec66b519d2ec0c7de69))
7
+
1
8
  ## [107.0.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v107.0.0...v107.0.1) (2025-01-15)
2
9
 
3
10
 
@@ -5,8 +5,8 @@ import { DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS, DISCLOSURE_DROPDOWN_GROUP_N
5
5
  import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
6
6
 
7
7
  const BORDER_CLASSES = {
8
- [DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top]: 'gl-border-t gl-border-t-dropdown gl-pt-2 gl-mt-2',
9
- [DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.bottom]: 'gl-border-b gl-border-b-dropdown gl-pb-2 gl-mb-2'
8
+ [DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top]: 'gl-border-t gl-border-t-dropdown-divider gl-pt-2 gl-mt-2',
9
+ [DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.bottom]: 'gl-border-b gl-border-b-dropdown-divider gl-pb-2 gl-mb-2'
10
10
  };
11
11
  var script = {
12
12
  name: DISCLOSURE_DROPDOWN_GROUP_NAME,
@@ -1,6 +1,7 @@
1
1
  import { BLink } from '../../../../vendor/bootstrap-vue/src/components/link/link';
2
2
  import { ENTER, SPACE } from '../constants';
3
3
  import { stopEvent } from '../../../../utils/utils';
4
+ import { dropdownItemVariantOptions } from '../../../../utils/constants';
4
5
  import { isItem } from './utils';
5
6
  import { DISCLOSURE_DROPDOWN_ITEM_NAME } from './constants';
6
7
  import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
@@ -18,6 +19,17 @@ var script = {
18
19
  required: false,
19
20
  default: null,
20
21
  validator: isItem
22
+ },
23
+ /**
24
+ * The variant of the dropdown item.
25
+ */
26
+ variant: {
27
+ type: String,
28
+ default: null,
29
+ validator(value) {
30
+ return dropdownItemVariantOptions[value] !== undefined;
31
+ },
32
+ required: false
21
33
  }
22
34
  },
23
35
  computed: {
@@ -66,9 +78,18 @@ var script = {
66
78
  var _this$item4, _this$item4$extraAttr;
67
79
  return (_this$item4 = this.item) !== null && _this$item4 !== void 0 && (_this$item4$extraAttr = _this$item4.extraAttrs) !== null && _this$item4$extraAttr !== void 0 && _this$item4$extraAttr.disabled ? null : -1;
68
80
  },
69
- wrapperClass() {
70
- var _this$item$wrapperCla, _this$item5;
71
- return (_this$item$wrapperCla = (_this$item5 = this.item) === null || _this$item5 === void 0 ? void 0 : _this$item5.wrapperClass) !== null && _this$item$wrapperCla !== void 0 ? _this$item$wrapperCla : '';
81
+ itemVariant() {
82
+ var _this$item5;
83
+ return this.variant || ((_this$item5 = this.item) === null || _this$item5 === void 0 ? void 0 : _this$item5.variant);
84
+ },
85
+ classes() {
86
+ var _this$item$wrapperCla, _this$item6;
87
+ return [this.$options.ITEM_CLASS, (_this$item$wrapperCla = (_this$item6 = this.item) === null || _this$item6 === void 0 ? void 0 : _this$item6.wrapperClass) !== null && _this$item$wrapperCla !== void 0 ? _this$item$wrapperCla : '',
88
+ // This isn't a Tailwind class, so this lint rule isn't relevant.
89
+ // It just so happens this class has the same prefix `gl-`.
90
+ this.itemVariant && this.itemVariant !== 'default' ?
91
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation
92
+ `gl-new-dropdown-item-${this.itemVariant}` : ''];
72
93
  },
73
94
  wrapperListeners() {
74
95
  const listeners = {
@@ -117,7 +138,7 @@ var script = {
117
138
  const __vue_script__ = script;
118
139
 
119
140
  /* template */
120
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',_vm._g({class:[_vm.$options.ITEM_CLASS, _vm.wrapperClass],attrs:{"tabindex":_vm.listIndex,"data-testid":"disclosure-dropdown-item"}},_vm.wrapperListeners),[_vm._t("default",function(){return [_c(_vm.itemComponent.is,_vm._g(_vm._b({ref:"item",tag:"component",staticClass:"gl-new-dropdown-item-content",attrs:{"tabindex":_vm.componentIndex}},'component',_vm.itemComponent.attrs,false),_vm.itemComponent.listeners),[_c('span',{staticClass:"gl-new-dropdown-item-text-wrapper"},[_vm._t("list-item",function(){return [_vm._v("\n "+_vm._s(_vm.item.text)+"\n ")]})],2)])]})],2)};
141
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',_vm._g({class:_vm.classes,attrs:{"tabindex":_vm.listIndex,"data-testid":"disclosure-dropdown-item"}},_vm.wrapperListeners),[_vm._t("default",function(){return [_c(_vm.itemComponent.is,_vm._g(_vm._b({ref:"item",tag:"component",staticClass:"gl-new-dropdown-item-content",attrs:{"tabindex":_vm.componentIndex}},'component',_vm.itemComponent.attrs,false),_vm.itemComponent.listeners),[_c('span',{staticClass:"gl-new-dropdown-item-text-wrapper"},[_vm._t("list-item",function(){return [_vm._v("\n "+_vm._s(_vm.item.text)+"\n ")]})],2)])]})],2)};
121
142
  var __vue_staticRenderFns__ = [];
122
143
 
123
144
  /* style */
@@ -21,12 +21,12 @@ const mockItems = [{
21
21
  }
22
22
  }, {
23
23
  text: 'Close merge request',
24
+ variant: 'danger',
24
25
  action: () => {
25
26
  // eslint-disable-next-line no-console
26
27
  console.log('CLOSED');
27
28
  },
28
29
  extraAttrs: {
29
- class: '!gl-text-red-500',
30
30
  rel: 'nofollow',
31
31
  'data-method': 'put'
32
32
  }
@@ -18,8 +18,8 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
18
18
 
19
19
  //
20
20
  const ITEM_SELECTOR = '[role="option"]';
21
- const HEADER_ITEMS_BORDER_CLASSES = ['gl-border-b-1', 'gl-border-b-solid', 'gl-border-b-dropdown'];
22
- const GROUP_TOP_BORDER_CLASSES = ['gl-border-t', 'gl-border-t-dropdown', 'gl-pt-1', 'gl-mt-2'];
21
+ const HEADER_ITEMS_BORDER_CLASSES = ['gl-border-b-1', 'gl-border-b-solid', 'gl-border-b-dropdown-divider'];
22
+ const GROUP_TOP_BORDER_CLASSES = ['gl-border-t-1', 'gl-border-t-solid', 'gl-border-t-dropdown-divider', 'gl-pt-1', 'gl-mt-2'];
23
23
  const SEARCH_INPUT_SELECTOR = '.gl-listbox-search-input';
24
24
  var script = {
25
25
  name: 'GlCollapsibleListbox',
@@ -202,7 +202,7 @@ var script = {
202
202
  const __vue_script__ = script;
203
203
 
204
204
  /* template */
205
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-form-input-group',{staticClass:"gl-search-box-by-click",class:{ 'gl-search-box-by-click-with-search-button': _vm.showSearchButton },scopedSlots:_vm._u([(_vm.historyItems)?{key:"prepend",fn:function(){return [_c('gl-disclosure-dropdown',{ref:"historyDropdown",staticClass:"gl-search-box-by-click-history",attrs:{"icon":"history","category":"tertiary","toggle-text":"Toggle history","text-sr-only":"","fluid-width":"","disabled":_vm.disabled},scopedSlots:_vm._u([{key:"header",fn:function(){return [_c('div',{staticClass:"gl-search-box-by-click-history-header gl-flex gl-min-h-8 gl-grow gl-items-center gl-border-b-1 gl-border-b-dropdown !gl-p-4 gl-text-sm gl-font-bold gl-border-b-solid"},[_vm._v("\n "+_vm._s(_vm.recentSearchesHeader)+"\n ")])]},proxy:true},(_vm.historyItems.length)?{key:"footer",fn:function(){return [_c('div',{staticClass:"gl-flex gl-flex-col gl-border-t-1 gl-border-t-dropdown gl-p-2 gl-border-t-solid"},[_c('gl-button',{ref:"clearHistory",staticClass:"!gl-justify-start",attrs:{"category":"tertiary"},on:{"click":_vm.emitClearHistory}},[_vm._v("\n "+_vm._s(_vm.clearRecentSearchesText)+"\n ")])],1)]},proxy:true}:null],null,true)},[_vm._v(" "),(_vm.historyItems.length)?_vm._l((_vm.historyItems),function(item,idx){return _c('gl-disclosure-dropdown-item',{key:idx,staticClass:"gl-search-box-by-click-history-item",on:{"action":function($event){return _vm.selectHistoryItem(item)}},scopedSlots:_vm._u([{key:"list-item",fn:function(){return [_vm._t("history-item",function(){return [_vm._v(_vm._s(item))]},{"historyItem":item})]},proxy:true}],null,true)})}):_c('div',{staticClass:"gl-px-4 gl-py-2 gl-text-sm gl-text-subtle"},[_vm._v("\n "+_vm._s(_vm.noRecentSearchesText)+"\n ")])],2)]},proxy:true}:null,(_vm.showSearchButton)?{key:"append",fn:function(){return [_c('gl-button',_vm._b({ref:"searchButton",staticClass:"gl-search-box-by-click-search-button",attrs:{"category":"tertiary","icon":"search","disabled":_vm.disabled,"aria-label":"Search","data-testid":"search-button"},on:{"click":function($event){return _vm.search(_vm.currentValue)}}},'gl-button',_vm.searchButtonAttributes,false))]},proxy:true}:null],null,true)},[_vm._v(" "),_vm._t("input",function(){return [_c('gl-form-input',_vm._b({ref:"input",staticClass:"gl-search-box-by-click-input",class:{ '!gl-rounded-base': !_vm.showSearchButton },attrs:{"disabled":_vm.disabled},on:{"focus":function($event){_vm.isFocused = true;},"blur":function($event){_vm.isFocused = false;}},nativeOn:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.search(_vm.currentValue)}},model:{value:(_vm.currentValue),callback:function ($$v) {_vm.currentValue=$$v;},expression:"currentValue"}},'gl-form-input',_vm.inputAttributes,false))]}),_vm._v(" "),(_vm.clearable && _vm.hasValue && !_vm.disabled)?_c('gl-clear-icon-button',{staticClass:"gl-search-box-by-click-icon-button gl-search-box-by-click-clear-button gl-clear-icon-button",attrs:{"title":_vm.clearButtonTitle,"tooltip-container":_vm.tooltipContainer,"data-testid":"filtered-search-clear-button"},on:{"click":_vm.clearInput}}):_vm._e()],2)};
205
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-form-input-group',{staticClass:"gl-search-box-by-click",class:{ 'gl-search-box-by-click-with-search-button': _vm.showSearchButton },scopedSlots:_vm._u([(_vm.historyItems)?{key:"prepend",fn:function(){return [_c('gl-disclosure-dropdown',{ref:"historyDropdown",staticClass:"gl-search-box-by-click-history",attrs:{"icon":"history","category":"tertiary","toggle-text":"Toggle history","text-sr-only":"","fluid-width":"","disabled":_vm.disabled},scopedSlots:_vm._u([{key:"header",fn:function(){return [_c('div',{staticClass:"gl-search-box-by-click-history-header gl-flex gl-min-h-8 gl-grow gl-items-center gl-border-b-1 gl-border-b-dropdown-divider !gl-p-4 gl-text-sm gl-font-bold gl-border-b-solid"},[_vm._v("\n "+_vm._s(_vm.recentSearchesHeader)+"\n ")])]},proxy:true},(_vm.historyItems.length)?{key:"footer",fn:function(){return [_c('div',{staticClass:"gl-flex gl-flex-col gl-border-t-1 gl-border-t-dropdown-divider gl-p-2 gl-border-t-solid"},[_c('gl-button',{ref:"clearHistory",staticClass:"!gl-justify-start",attrs:{"category":"tertiary"},on:{"click":_vm.emitClearHistory}},[_vm._v("\n "+_vm._s(_vm.clearRecentSearchesText)+"\n ")])],1)]},proxy:true}:null],null,true)},[_vm._v(" "),(_vm.historyItems.length)?_vm._l((_vm.historyItems),function(item,idx){return _c('gl-disclosure-dropdown-item',{key:idx,staticClass:"gl-search-box-by-click-history-item",on:{"action":function($event){return _vm.selectHistoryItem(item)}},scopedSlots:_vm._u([{key:"list-item",fn:function(){return [_vm._t("history-item",function(){return [_vm._v(_vm._s(item))]},{"historyItem":item})]},proxy:true}],null,true)})}):_c('div',{staticClass:"gl-px-4 gl-py-2 gl-text-sm gl-text-subtle"},[_vm._v("\n "+_vm._s(_vm.noRecentSearchesText)+"\n ")])],2)]},proxy:true}:null,(_vm.showSearchButton)?{key:"append",fn:function(){return [_c('gl-button',_vm._b({ref:"searchButton",staticClass:"gl-search-box-by-click-search-button",attrs:{"category":"tertiary","icon":"search","disabled":_vm.disabled,"aria-label":"Search","data-testid":"search-button"},on:{"click":function($event){return _vm.search(_vm.currentValue)}}},'gl-button',_vm.searchButtonAttributes,false))]},proxy:true}:null],null,true)},[_vm._v(" "),_vm._t("input",function(){return [_c('gl-form-input',_vm._b({ref:"input",staticClass:"gl-search-box-by-click-input",class:{ '!gl-rounded-base': !_vm.showSearchButton },attrs:{"disabled":_vm.disabled},on:{"focus":function($event){_vm.isFocused = true;},"blur":function($event){_vm.isFocused = false;}},nativeOn:{"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.search(_vm.currentValue)}},model:{value:(_vm.currentValue),callback:function ($$v) {_vm.currentValue=$$v;},expression:"currentValue"}},'gl-form-input',_vm.inputAttributes,false))]}),_vm._v(" "),(_vm.clearable && _vm.hasValue && !_vm.disabled)?_c('gl-clear-icon-button',{staticClass:"gl-search-box-by-click-icon-button gl-search-box-by-click-clear-button gl-clear-icon-button",attrs:{"title":_vm.clearButtonTitle,"tooltip-container":_vm.tooltipContainer,"data-testid":"filtered-search-clear-button"},on:{"click":_vm.clearInput}}):_vm._e()],2)};
206
206
  var __vue_staticRenderFns__ = [];
207
207
 
208
208
  /* style */