@gitlab/ui 96.2.0 → 97.0.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 (76) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/components/base/alert/alert.js +1 -1
  3. package/dist/components/base/avatar/avatar.js +4 -4
  4. package/dist/components/base/datepicker/datepicker.js +1 -1
  5. package/dist/components/base/drawer/drawer.js +1 -1
  6. package/dist/components/base/form/form_input/form_input.js +3 -3
  7. package/dist/components/base/form/form_select/form_select.js +3 -3
  8. package/dist/components/base/progress_bar/progress_bar.js +47 -5
  9. package/dist/components/base/search_box_by_click/search_box_by_click.js +1 -1
  10. package/dist/components/base/toast/toast.js +1 -1
  11. package/dist/components/base/token/token.js +1 -1
  12. package/dist/index.css +1 -1
  13. package/dist/index.css.map +1 -1
  14. package/dist/tailwind.css +1 -1
  15. package/dist/tailwind.css.map +1 -1
  16. package/dist/utils/number_utils.js +9 -1
  17. package/dist/vendor/bootstrap-vue/src/constants/components.js +1 -3
  18. package/dist/vendor/bootstrap-vue/src/index.js +0 -2
  19. package/package.json +7 -7
  20. package/src/components/base/alert/alert.vue +1 -1
  21. package/src/components/base/avatar/avatar.vue +4 -4
  22. package/src/components/base/datepicker/datepicker.vue +1 -1
  23. package/src/components/base/drawer/drawer.vue +1 -1
  24. package/src/components/base/form/form_input/form_input.vue +3 -3
  25. package/src/components/base/form/form_select/form_select.vue +3 -3
  26. package/src/components/base/modal/modal.scss +1 -2
  27. package/src/components/base/progress_bar/progress_bar.md +25 -0
  28. package/src/components/base/progress_bar/progress_bar.scss +11 -0
  29. package/src/components/base/progress_bar/progress_bar.vue +54 -5
  30. package/src/components/base/search_box_by_click/search_box_by_click.scss +15 -9
  31. package/src/components/base/search_box_by_click/search_box_by_click.vue +5 -3
  32. package/src/components/base/toast/toast.js +1 -1
  33. package/src/components/base/token/token.vue +1 -1
  34. package/src/utils/number_utils.js +7 -0
  35. package/src/vendor/bootstrap-vue/package.json +3 -42
  36. package/src/vendor/bootstrap-vue/src/components/badge/README.md +2 -2
  37. package/src/vendor/bootstrap-vue/src/components/breadcrumb/README.md +2 -2
  38. package/src/vendor/bootstrap-vue/src/components/button/README.md +7 -9
  39. package/src/vendor/bootstrap-vue/src/components/button-group/README.md +0 -5
  40. package/src/vendor/bootstrap-vue/src/components/collapse/README.md +2 -2
  41. package/src/vendor/bootstrap-vue/src/components/dropdown/README.md +5 -5
  42. package/src/vendor/bootstrap-vue/src/components/form/README.md +21 -26
  43. package/src/vendor/bootstrap-vue/src/components/form-checkbox/README.md +6 -6
  44. package/src/vendor/bootstrap-vue/src/components/form-group/README.md +6 -4
  45. package/src/vendor/bootstrap-vue/src/components/form-input/README.md +4 -4
  46. package/src/vendor/bootstrap-vue/src/components/form-radio/README.md +1 -1
  47. package/src/vendor/bootstrap-vue/src/components/index.d.ts +0 -1
  48. package/src/vendor/bootstrap-vue/src/components/input-group/README.md +4 -9
  49. package/src/vendor/bootstrap-vue/src/components/layout/README.md +3 -3
  50. package/src/vendor/bootstrap-vue/src/components/link/README.md +1 -1
  51. package/src/vendor/bootstrap-vue/src/components/modal/README.md +2 -2
  52. package/src/vendor/bootstrap-vue/src/components/nav/README.md +13 -14
  53. package/src/vendor/bootstrap-vue/src/components/navbar/README.md +5 -6
  54. package/src/vendor/bootstrap-vue/src/components/popover/README.md +4 -4
  55. package/src/vendor/bootstrap-vue/src/components/table/README.md +5 -5
  56. package/src/vendor/bootstrap-vue/src/components/tabs/README.md +2 -2
  57. package/src/vendor/bootstrap-vue/src/components/toast/README.md +5 -5
  58. package/src/vendor/bootstrap-vue/src/components/tooltip/README.md +4 -4
  59. package/src/vendor/bootstrap-vue/src/constants/components.js +0 -2
  60. package/src/vendor/bootstrap-vue/src/directives/toggle/README.md +5 -6
  61. package/src/vendor/bootstrap-vue/src/directives/tooltip/README.md +2 -2
  62. package/src/vendor/bootstrap-vue/src/index.js +0 -4
  63. package/dist/vendor/bootstrap-vue/src/components/progress/index.js +0 -2
  64. package/dist/vendor/bootstrap-vue/src/components/progress/progress-bar.js +0 -128
  65. package/dist/vendor/bootstrap-vue/src/components/progress/progress.js +0 -56
  66. package/src/vendor/bootstrap-vue/nuxt/index.js +0 -164
  67. package/src/vendor/bootstrap-vue/nuxt/plugin.template.js +0 -29
  68. package/src/vendor/bootstrap-vue/src/components/progress/MODIFICATIONS.md +0 -23
  69. package/src/vendor/bootstrap-vue/src/components/progress/README.md +0 -363
  70. package/src/vendor/bootstrap-vue/src/components/progress/index.d.ts +0 -10
  71. package/src/vendor/bootstrap-vue/src/components/progress/index.js +0 -4
  72. package/src/vendor/bootstrap-vue/src/components/progress/package.json +0 -109
  73. package/src/vendor/bootstrap-vue/src/components/progress/progress-bar.js +0 -133
  74. package/src/vendor/bootstrap-vue/src/components/progress/progress-bar.spec.js +0 -270
  75. package/src/vendor/bootstrap-vue/src/components/progress/progress.js +0 -57
  76. package/src/vendor/bootstrap-vue/src/components/progress/progress.spec.js +0 -71
package/CHANGELOG.md CHANGED
@@ -1,3 +1,31 @@
1
+ # [97.0.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v96.3.0...v97.0.0) (2024-10-16)
2
+
3
+
4
+ ### Features
5
+
6
+ * migrate GlProgressBar component ([c58a6c8](https://gitlab.com/gitlab-org/gitlab-ui/commit/c58a6c8197388cd97e44c7b87a6ec87e5bf23b4a))
7
+
8
+
9
+ ### BREAKING CHANGES
10
+
11
+ * Remove GlProgressBar's `animated`, `precision`,
12
+ `showValue`, `showProgress`, `striped` props, and functionality to use
13
+ the default slot.
14
+
15
+ * Migrate GlProgressBar component so it does not depend
16
+ on Bootstrap Vue's BProgress and BProgressBar components anymore
17
+ * Remove Bootstrap Vue's BProgress, BProgressBar, styling, and docs
18
+ * Include documentation for GlProgressBar
19
+ * Update stories to include `height` and `max`
20
+ * Update toast docs to remove mention of progress bar styling
21
+
22
+ # [96.3.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v96.2.0...v96.3.0) (2024-10-11)
23
+
24
+
25
+ ### Features
26
+
27
+ * **GlSearchBoxByClick:** use design tokens in GlSearchBoxByClick ([23606cf](https://gitlab.com/gitlab-org/gitlab-ui/commit/23606cf83e91486e153ea8de23d9dd33a59e3497))
28
+
1
29
  # [96.2.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v96.1.0...v96.2.0) (2024-10-10)
2
30
 
3
31
 
@@ -144,7 +144,7 @@ var script = {
144
144
  }, []);
145
145
  },
146
146
  variantClass() {
147
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
147
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
148
148
  return `gl-alert-${this.variant}`;
149
149
  }
150
150
  },
@@ -67,7 +67,7 @@ var script = {
67
67
  computed: {
68
68
  sizeClasses() {
69
69
  if (isNumber(this.size)) {
70
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
70
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
71
71
  return `gl-avatar-s${this.size}`;
72
72
  }
73
73
  const {
@@ -75,9 +75,9 @@ var script = {
75
75
  ...nonDefaultSizes
76
76
  } = this.size;
77
77
  return [
78
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
78
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
79
79
  `gl-avatar-s${defaultSize || avatarSizeOptions[1]}`, ...Object.entries(nonDefaultSizes).map(
80
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
80
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
81
81
  _ref => {
82
82
  let [breakpoint, size] = _ref;
83
83
  return `gl-${breakpoint}-avatar-s${size}`;
@@ -92,7 +92,7 @@ var script = {
92
92
  * Gets the remainder after dividing the 'entityId' by the number of available backgrounds.
93
93
  */
94
94
  const type = this.entityId % IDENTICON_BG_COUNT + 1;
95
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
95
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
96
96
  return `gl-avatar-identicon-bg${type}`;
97
97
  },
98
98
  identiconText() {
@@ -239,7 +239,7 @@ var script = {
239
239
  },
240
240
  datepickerClasses() {
241
241
  return ['gl-datepicker', 'd-inline-block', 'gl-w-full',
242
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
242
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
243
243
  `gl-form-input-${this.computedWidth}`];
244
244
  },
245
245
  computedWidth() {
@@ -60,7 +60,7 @@ var script = {
60
60
  return Boolean(this.$slots.footer);
61
61
  },
62
62
  variantClass() {
63
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
63
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
64
64
  return `gl-drawer-${this.variant}`;
65
65
  }
66
66
  },
@@ -40,16 +40,16 @@ var script = {
40
40
  ...nonDefaultWidths
41
41
  } = this.width;
42
42
  return [
43
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
43
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
44
44
  ...(defaultWidth ? [`gl-form-input-${defaultWidth}`] : []), ...Object.entries(nonDefaultWidths).map(
45
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
45
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
46
46
  _ref => {
47
47
  let [breakpoint, width] = _ref;
48
48
  return `gl-${breakpoint}-form-input-${width}`;
49
49
  })];
50
50
  }
51
51
 
52
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
52
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
53
53
  return [`gl-form-input-${this.width}`];
54
54
  },
55
55
  listeners() {
@@ -34,16 +34,16 @@ var script = {
34
34
  ...nonDefaultWidths
35
35
  } = this.width;
36
36
  return [
37
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
37
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
38
38
  ...(defaultWidth ? [`gl-form-select-${defaultWidth}`] : []), ...Object.entries(nonDefaultWidths).map(
39
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
39
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
40
40
  _ref => {
41
41
  let [breakpoint, width] = _ref;
42
42
  return `gl-${breakpoint}-form-select-${width}`;
43
43
  })];
44
44
  }
45
45
 
46
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
46
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
47
47
  return [`gl-form-select-${this.width}`];
48
48
  }
49
49
  }
@@ -1,19 +1,61 @@
1
- import { BProgress } from '../../../vendor/bootstrap-vue/src/components/progress/progress';
1
+ import { progressBarVariantOptions } from '../../../utils/constants';
2
+ import { toFloat } from '../../../utils/number_utils';
2
3
  import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
3
4
 
4
5
  var script = {
5
6
  name: 'GlProgressBar',
6
- components: {
7
- BProgress
7
+ props: {
8
+ value: {
9
+ type: [Number, String],
10
+ required: false,
11
+ default: 0
12
+ },
13
+ variant: {
14
+ type: String,
15
+ required: false,
16
+ default: 'primary',
17
+ validator: value => Object.keys(progressBarVariantOptions).includes(value)
18
+ },
19
+ max: {
20
+ type: [Number, String],
21
+ required: false,
22
+ default: 100
23
+ },
24
+ height: {
25
+ type: String,
26
+ required: false,
27
+ default: null
28
+ }
8
29
  },
9
- inheritAttrs: false
30
+ computed: {
31
+ progressHeight() {
32
+ return {
33
+ height: this.height
34
+ };
35
+ },
36
+ computedValue() {
37
+ return toFloat(this.value, 0);
38
+ },
39
+ computedMax() {
40
+ const max = toFloat(this.max, 100);
41
+ return max > 0 ? max : 100;
42
+ },
43
+ progressBarStyles() {
44
+ return {
45
+ transform: `scaleX(${this.computedValue / this.computedMax})`
46
+ };
47
+ },
48
+ classes() {
49
+ return ['gl-progress', `bg-${this.variant}`];
50
+ }
51
+ }
10
52
  };
11
53
 
12
54
  /* script */
13
55
  const __vue_script__ = script;
14
56
 
15
57
  /* template */
16
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-progress',_vm._b({staticClass:"gl-progress-bar"},'b-progress',_vm.$attrs,false))};
58
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-progress-bar progress",style:(_vm.progressHeight)},[_c('div',{class:_vm.classes,style:(_vm.progressBarStyles),attrs:{"role":"progressbar","aria-valuemin":"0","aria-valuemax":String(_vm.computedMax),"aria-valuenow":_vm.computedValue}})])};
17
59
  var __vue_staticRenderFns__ = [];
18
60
 
19
61
  /* style */
@@ -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","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-gray-200 !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-gray-200 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-secondary"},[_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:{"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 !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)};
206
206
  var __vue_staticRenderFns__ = [];
207
207
 
208
208
  /* style */
@@ -31,7 +31,7 @@ function renderTitle(h, toast, options) {
31
31
  }
32
32
  function showToast(message) {
33
33
  let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
34
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
34
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
35
35
  const id = `gl-toast-${toastsCount}`;
36
36
  toastsCount += 1;
37
37
  const hide = () => {
@@ -35,7 +35,7 @@ var script = {
35
35
  },
36
36
  computed: {
37
37
  variantClass() {
38
- // eslint-disable-next-line @gitlab/tailwind -- Not a CSS utility
38
+ // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility
39
39
  return `gl-token-${this.variant}-variant`;
40
40
  },
41
41
  viewOnlyClass() {