@gitlab/ui 128.13.1 → 128.13.3

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 (71) hide show
  1. package/dist/components/base/toast/toast.js +26 -24
  2. package/dist/components/base/toggle/toggle.js +9 -8
  3. package/dist/index.css +1 -1
  4. package/dist/index.css.map +1 -1
  5. package/dist/tokens/build/js/tokens.dark.js +2 -2
  6. package/dist/tokens/build/js/tokens.js +2 -2
  7. package/dist/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.js +17 -3
  8. package/dist/vendor/bootstrap-vue/src/components/toast/toast.js +6 -1
  9. package/package.json +4 -4
  10. package/src/components/base/alert/alert.scss +11 -6
  11. package/src/components/base/animated_icon/animated_icon.scss +31 -20
  12. package/src/components/base/avatar/avatar.scss +8 -9
  13. package/src/components/base/avatars_inline/avatars_inline.scss +12 -4
  14. package/src/components/base/breadcrumb/breadcrumb.scss +2 -2
  15. package/src/components/base/button/button.scss +16 -14
  16. package/src/components/base/button_group/button_group.scss +9 -9
  17. package/src/components/base/datepicker/datepicker.scss +6 -6
  18. package/src/components/base/drawer/drawer.scss +2 -2
  19. package/src/components/base/dropdown/dropdown.scss +4 -4
  20. package/src/components/base/dropdown/dropdown_divider.scss +1 -1
  21. package/src/components/base/form/form_checkbox/form_checkbox.scss +12 -12
  22. package/src/components/base/form/form_combobox/form_combobox.scss +3 -2
  23. package/src/components/base/form/form_input/form_input.scss +3 -1
  24. package/src/components/base/form/form_select/form_select.scss +2 -2
  25. package/src/components/base/label/label.scss +5 -2
  26. package/src/components/base/link/link.scss +1 -1
  27. package/src/components/base/loading_icon/loading_icon.scss +1 -1
  28. package/src/components/base/markdown/markdown.scss +1 -1
  29. package/src/components/base/new_dropdowns/dropdown.scss +15 -3
  30. package/src/components/base/new_dropdowns/dropdown_item.scss +3 -2
  31. package/src/components/base/pagination/pagination.scss +5 -4
  32. package/src/components/base/path/path.scss +8 -3
  33. package/src/components/base/progress_bar/progress_bar.scss +2 -2
  34. package/src/components/base/table/table.scss +4 -4
  35. package/src/components/base/tabs/tabs/tabs.scss +7 -6
  36. package/src/components/base/toast/toast.js +31 -29
  37. package/src/components/base/toast/toast.scss +2 -2
  38. package/src/components/base/toggle/toggle.vue +45 -46
  39. package/src/components/charts/legend/legend.scss +12 -8
  40. package/src/components/charts/single_stat/single_stat.scss +2 -2
  41. package/src/components/dashboards/dashboard_layout/grid_layout/grid_layout.scss +1 -1
  42. package/src/components/regions/empty_state/empty_state.scss +1 -1
  43. package/src/components/utilities/truncate/truncate.scss +1 -1
  44. package/src/scss/bootstrap.scss +34 -34
  45. package/src/scss/bootstrap_vue.scss +10 -10
  46. package/src/scss/components.scss +77 -77
  47. package/src/scss/fonts.scss +10 -10
  48. package/src/scss/functions.scss +6 -6
  49. package/src/scss/gitlab_ui.scss +10 -10
  50. package/src/scss/mixins.scss +23 -23
  51. package/src/scss/storybook.scss +14 -15
  52. package/src/scss/tokens.scss +2 -2
  53. package/src/scss/typescale/_index.scss +1 -1
  54. package/src/scss/typescale/typescale_demo.scss +4 -4
  55. package/src/scss/typography.scss +16 -6
  56. package/src/scss/variables.scss +29 -14
  57. package/src/tokens/build/css/tokens.css +2 -2
  58. package/src/tokens/build/css/tokens.dark.css +2 -2
  59. package/src/tokens/build/docs/tokens-tailwind-docs.dark.json +4 -0
  60. package/src/tokens/build/docs/tokens-tailwind-docs.json +4 -0
  61. package/src/tokens/build/figma/constants.dark.json +2 -2
  62. package/src/tokens/build/figma/constants.json +2 -2
  63. package/src/tokens/build/js/tokens.dark.js +2 -0
  64. package/src/tokens/build/js/tokens.js +2 -0
  65. package/src/tokens/build/json/tokens.dark.json +4 -0
  66. package/src/tokens/build/json/tokens.json +4 -0
  67. package/src/tokens/build/scss/_tokens.dark.scss +2 -2
  68. package/src/tokens/build/scss/_tokens.scss +2 -2
  69. package/src/tokens/constant/font.tokens.json +2 -0
  70. package/src/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.js +19 -3
  71. package/src/vendor/bootstrap-vue/src/components/toast/toast.js +6 -1
@@ -80,7 +80,7 @@
80
80
  border-color: var(--gl-control-border-color-focus);
81
81
  }
82
82
 
83
- .custom-control-input:checked ~ .custom-control-label::before {
83
+ .custom-control-input:checked ~ .custom-control-label::before {
84
84
  background-color: var(--gl-control-background-color-selected-default);
85
85
  border-color: var(--gl-control-border-color-selected-default);
86
86
 
@@ -90,9 +90,9 @@
90
90
  }
91
91
  }
92
92
 
93
- .custom-control-input[type='checkbox']:checked ~ .custom-control-label,
94
- .custom-control-input[type='checkbox']:indeterminate ~ .custom-control-label,
95
- .custom-control-input[type='radio']:checked ~ .custom-control-label {
93
+ .custom-control-input[type="checkbox"]:checked ~ .custom-control-label,
94
+ .custom-control-input[type="checkbox"]:indeterminate ~ .custom-control-label,
95
+ .custom-control-input[type="radio"]:checked ~ .custom-control-label {
96
96
  &::after {
97
97
  background: 50% 50% no-repeat;
98
98
  background-color: var(--gl-control-indicator-color-selected);
@@ -101,24 +101,24 @@
101
101
  }
102
102
  }
103
103
 
104
- .custom-control-input[type='checkbox']:checked ~ .custom-control-label::after {
104
+ .custom-control-input[type="checkbox"]:checked ~ .custom-control-label::after {
105
105
  background-color: var(--gl-control-indicator-color-selected);
106
- mask-image: url('#{$gl-icon-check}');
106
+ mask-image: url("#{$gl-icon-check}");
107
107
  }
108
108
 
109
- .custom-control-input[type='checkbox']:indeterminate ~ .custom-control-label::after {
109
+ .custom-control-input[type="checkbox"]:indeterminate ~ .custom-control-label::after {
110
110
  background-color: var(--gl-control-indicator-color-selected);
111
- mask-image: url('#{$gl-icon-indeterminate}');
111
+ mask-image: url("#{$gl-icon-indeterminate}");
112
112
  }
113
113
 
114
- .custom-control-input[type='radio']:checked ~ .custom-control-label::after {
114
+ .custom-control-input[type="radio"]:checked ~ .custom-control-label::after {
115
115
  background-color: var(--gl-control-indicator-color-selected);
116
- mask-image: url('#{$gl-icon-radio}');
116
+ mask-image: url("#{$gl-icon-radio}");
117
117
  }
118
118
 
119
119
  .custom-control-input:not(:disabled):checked ~ .custom-control-label:hover,
120
120
  .custom-control-input:not(:disabled):hover:checked ~ .custom-control-label {
121
- &::before {
121
+ &::before {
122
122
  background-color: var(--gl-control-background-color-selected-hover);
123
123
  border-color: var(--gl-control-border-color-selected-hover);
124
124
  }
@@ -185,7 +185,7 @@
185
185
  }
186
186
 
187
187
  .custom-control-input:checked:disabled ~ .custom-control-label,
188
- .custom-control-input[type='checkbox']:indeterminate:disabled ~ .custom-control-label {
188
+ .custom-control-input[type="checkbox"]:indeterminate:disabled ~ .custom-control-label {
189
189
  &::before {
190
190
  background-color: var(--gl-control-background-color-disabled);
191
191
  border-color: var(--gl-control-border-color-disabled);
@@ -34,8 +34,9 @@
34
34
 
35
35
  // Target the actual Bootstrap dropdown item element
36
36
  .dropdown-item {
37
- transition: background-color $gl-transition-duration-fast $gl-easing-out-cubic,
38
- box-shadow $gl-transition-duration-medium $gl-easing-out-cubic;
37
+ transition:
38
+ background-color $gl-transition-duration-fast $gl-easing-out-cubic,
39
+ box-shadow $gl-transition-duration-medium $gl-easing-out-cubic;
39
40
  @apply gl-rounded-default;
40
41
  @apply gl-border-0;
41
42
  @apply gl-w-full;
@@ -22,7 +22,9 @@
22
22
  box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-control-border-color-hover);
23
23
  }
24
24
 
25
- &:not(.gl-form-input-not-readonly):not(:disabled):not(.form-control-plaintext):not([type='color']):read-only {
25
+ &:not(.gl-form-input-not-readonly):not(:disabled):not(.form-control-plaintext):not(
26
+ [type="color"]
27
+ ):read-only {
26
28
  background: var(--gl-control-background-color-readonly);
27
29
  box-shadow: none;
28
30
  }
@@ -72,7 +72,7 @@ See: https://gitlab.com/gitlab-org/gitlab/issues/30055
72
72
  &::after {
73
73
  content: "";
74
74
  background-color: var(--gl-icon-color-default);
75
- mask-image: url('#{$gl-icon-select-chevron-down}');
75
+ mask-image: url("#{$gl-icon-select-chevron-down}");
76
76
  mask-repeat: no-repeat;
77
77
  mask-position: center center;
78
78
  pointer-events: none;
@@ -88,7 +88,7 @@ See: https://gitlab.com/gitlab-org/gitlab/issues/30055
88
88
  }
89
89
  }
90
90
 
91
- &:has(>.gl-form-select:disabled) {
91
+ &:has(> .gl-form-select:disabled) {
92
92
  &::after {
93
93
  background-color: var(--gl-icon-color-disabled);
94
94
 
@@ -1,5 +1,5 @@
1
1
  $label-max-width: 100%;
2
- $label-close-button: '.gl-label-close.gl-button';
2
+ $label-close-button: ".gl-label-close.gl-button";
3
3
  $label-padding-horizontal: 0.75 * $grid-size;
4
4
  $label-padding-horizontal-half: 0.375 * $grid-size;
5
5
 
@@ -24,7 +24,10 @@ $label-padding-horizontal-half: 0.375 * $grid-size;
24
24
  }
25
25
 
26
26
  &:has(*:first-child:focus) {
27
- @include gl-focus($color: var(--label-background-color, var(--gl-background-color-default)), $important: true);
27
+ @include gl-focus(
28
+ $color: var(--label-background-color, var(--gl-background-color-default)),
29
+ $important: true
30
+ );
28
31
  }
29
32
 
30
33
  .gl-label-link {
@@ -29,7 +29,7 @@
29
29
  }
30
30
 
31
31
  .gl-link-external::after {
32
- content: '';
32
+ content: "";
33
33
  font-size: 1em;
34
34
  }
35
35
 
@@ -82,7 +82,7 @@ $gl-loader-dots-size-xl: 1rem;
82
82
  &::before,
83
83
  > span,
84
84
  &::after {
85
- content: '';
85
+ content: "";
86
86
 
87
87
  display: inline-block;
88
88
  border-radius: 100%;
@@ -134,7 +134,7 @@
134
134
  @apply gl-mr-2;
135
135
  text-rendering: auto;
136
136
  -webkit-font-smoothing: antialiased;
137
- content: '📎';
137
+ content: "📎";
138
138
  }
139
139
  }
140
140
  }
@@ -184,12 +184,20 @@
184
184
  &.top-scrim-light {
185
185
  height: 2.25rem;
186
186
  border-radius: 0.375rem 0.375rem 0 0;
187
- background: linear-gradient(180deg, var(--gl-dropdown-background-color) 0%, var(--gl-color-alpha-0));
187
+ background: linear-gradient(
188
+ 180deg,
189
+ var(--gl-dropdown-background-color) 0%,
190
+ var(--gl-color-alpha-0)
191
+ );
188
192
  }
189
193
 
190
194
  &.top-scrim-dark {
191
195
  height: 0.25rem;
192
- background: linear-gradient(180deg, var(--gl-shadow-color-default) 0%, var(--gl-color-alpha-0) 100%);
196
+ background: linear-gradient(
197
+ 180deg,
198
+ var(--gl-shadow-color-default) 0%,
199
+ var(--gl-color-alpha-0) 100%
200
+ );
193
201
  }
194
202
  }
195
203
  }
@@ -203,7 +211,11 @@
203
211
  position: relative;
204
212
  top: calc(-2.25rem + #{$dropdown-content-padding});
205
213
  border-radius: 0 0 0.375rem 0.375rem;
206
- background: linear-gradient(180deg, var(--gl-color-alpha-0) 0%, var(--gl-dropdown-background-color));
214
+ background: linear-gradient(
215
+ 180deg,
216
+ var(--gl-color-alpha-0) 0%,
217
+ var(--gl-dropdown-background-color)
218
+ );
207
219
  }
208
220
  }
209
221
 
@@ -101,8 +101,9 @@
101
101
  }
102
102
 
103
103
  .gl-new-dropdown-item-content {
104
- transition: background-color $gl-transition-duration-fast $gl-easing-out-cubic,
105
- box-shadow $gl-transition-duration-medium $gl-easing-out-cubic;
104
+ transition:
105
+ background-color $gl-transition-duration-fast $gl-easing-out-cubic,
106
+ box-shadow $gl-transition-duration-medium $gl-easing-out-cubic;
106
107
  @apply gl-rounded-default;
107
108
  @apply gl-border-0;
108
109
  @apply gl-w-full;
@@ -16,10 +16,11 @@
16
16
 
17
17
  .gl-pagination-item {
18
18
  border-radius: var(--gl-action-border-radius);
19
- transition: color $gl-transition-duration-medium $gl-easing-out-cubic,
20
- background-color $gl-transition-duration-medium $gl-easing-out-cubic,
21
- border-color $gl-transition-duration-medium $gl-easing-out-cubic,
22
- box-shadow $gl-transition-duration-medium $gl-easing-out-cubic;
19
+ transition:
20
+ color $gl-transition-duration-medium $gl-easing-out-cubic,
21
+ background-color $gl-transition-duration-medium $gl-easing-out-cubic,
22
+ border-color $gl-transition-duration-medium $gl-easing-out-cubic,
23
+ box-shadow $gl-transition-duration-medium $gl-easing-out-cubic;
23
24
  @apply gl-flex;
24
25
  @apply gl-justify-center;
25
26
  @apply gl-p-3;
@@ -12,7 +12,7 @@ $path-chevron-right-margin: px-to-rem(14px);
12
12
  // Mixins
13
13
  @mixin gl-path-chevron {
14
14
  @apply gl-bg-inherit;
15
- content: '';
15
+ content: "";
16
16
  position: absolute;
17
17
  top: $path-chevron-top;
18
18
  right: $path-chevron-right;
@@ -79,7 +79,9 @@ $path-chevron-right-margin: px-to-rem(14px);
79
79
  display: none;
80
80
  z-index: 2;
81
81
  right: calc(-0.75rem + 1px);
82
- box-shadow: 0 0 0 1px var(--gl-focus-ring-inner-color), 0.5px -0.5px 0 2.5px var(--gl-focus-ring-outer-color);
82
+ box-shadow:
83
+ 0 0 0 1px var(--gl-focus-ring-inner-color),
84
+ 0.5px -0.5px 0 2.5px var(--gl-focus-ring-outer-color);
83
85
  clip-path: polygon(0% 0%, 0% -30%, 160% 0%, 75% 130%, 100% 100%);
84
86
  transform: rotate(45deg) skew(14deg, 14deg) scale(0.99);
85
87
  }
@@ -103,7 +105,10 @@ $path-chevron-right-margin: px-to-rem(14px);
103
105
  &:focus,
104
106
  &:focus:active {
105
107
  // Custom focus to account for path shape
106
- box-shadow: 5px -3px 0 -2px var(--gl-focus-ring-inner-color), 5px 3px 0 -2px var(--gl-focus-ring-inner-color), 0 0 0 1px var(--gl-focus-ring-inner-color),
108
+ box-shadow:
109
+ 5px -3px 0 -2px var(--gl-focus-ring-inner-color),
110
+ 5px 3px 0 -2px var(--gl-focus-ring-inner-color),
111
+ 0 0 0 1px var(--gl-focus-ring-inner-color),
107
112
  0 0 0 3px var(--gl-focus-ring-outer-color);
108
113
  outline: none;
109
114
  border-top-right-radius: 1px;
@@ -1,7 +1,7 @@
1
1
  .gl-progress-bar {
2
2
  background-color: var(--gl-progress-bar-track-color);
3
3
  }
4
-
4
+
5
5
  .gl-progress {
6
6
  @apply gl-flex-col;
7
7
  @apply gl-justify-center;
@@ -27,4 +27,4 @@
27
27
 
28
28
  .gl-progress-bar-danger {
29
29
  background-color: var(--gl-progress-bar-indicator-color-danger);
30
- }
30
+ }
@@ -24,7 +24,7 @@ table.gl-table {
24
24
  }
25
25
 
26
26
  thead tr th {
27
- @apply gl-text-heading gl-font-bold;
27
+ @apply gl-font-bold gl-text-heading;
28
28
 
29
29
  .gl-table-th-sort-icon-wrapper {
30
30
  @apply gl-ml-2;
@@ -38,7 +38,7 @@ table.gl-table {
38
38
  }
39
39
  }
40
40
 
41
- [name='sort-icon'] {
41
+ [name="sort-icon"] {
42
42
  user-select: none;
43
43
  color: var(--gl-table-sorting-icon-color);
44
44
  }
@@ -68,7 +68,7 @@ table.gl-table {
68
68
  @mixin gl-tmp-stacked-override {
69
69
  tbody > tr {
70
70
  &::after {
71
- content: '';
71
+ content: "";
72
72
  @apply gl-h-6;
73
73
  @apply gl-w-full;
74
74
  @apply gl-block;
@@ -123,7 +123,7 @@ table.gl-table {
123
123
  thead th:hover {
124
124
  background-color: transparent !important;
125
125
 
126
- [name='sort-icon'] {
126
+ [name="sort-icon"] {
127
127
  display: flex !important;
128
128
  }
129
129
  }
@@ -1,5 +1,5 @@
1
1
  .gl-tabs-wrapper {
2
- @apply gl-relative gl-flex gl-flex-wrap gl-border-b;
2
+ @apply gl-border-b gl-relative gl-flex gl-flex-wrap;
3
3
  }
4
4
 
5
5
  .gl-tabs-nav {
@@ -23,7 +23,7 @@
23
23
  border-radius $gl-transition-duration-fast $gl-easing-out-cubic;
24
24
 
25
25
  &::before {
26
- content: '';
26
+ content: "";
27
27
  position: absolute;
28
28
  border-bottom: $gl-border-size-2 solid transparent;
29
29
  translate: 0 $gl-border-size-2;
@@ -37,8 +37,9 @@
37
37
  }
38
38
 
39
39
  @media (prefers-reduced-motion: reduce) {
40
- &, &::before {
41
- transition-duration: .01ms;
40
+ &,
41
+ &::before {
42
+ transition-duration: 0.01ms;
42
43
  }
43
44
  }
44
45
 
@@ -140,7 +141,7 @@
140
141
  }
141
142
 
142
143
  .gl-tabs-fade {
143
- @apply gl-absolute gl-top-0 gl-bottom-0 gl-z-2;
144
+ @apply gl-absolute gl-bottom-0 gl-top-0 gl-z-2;
144
145
  @apply gl-w-8;
145
146
  @apply gl-p-2;
146
147
  @apply gl-flex;
@@ -152,7 +153,7 @@
152
153
  }
153
154
 
154
155
  .gl-tabs-fade-right {
155
- @apply gl-justify-end gl-right-0;
156
+ @apply gl-right-0 gl-justify-end;
156
157
  @include gl-bg-gradient-blur(right, var(--gl-background-color-default));
157
158
  }
158
159
 
@@ -14,35 +14,37 @@ const DEFAULT_OPTIONS = {
14
14
 
15
15
  let toastsCount = 0;
16
16
 
17
- function renderTitle(h, toast, options) {
18
- const nodes = [
19
- h(CloseButton, {
20
- class: ['gl-toast-close-button'],
21
- on: {
22
- click: toast.hide,
23
- },
24
- }),
25
- ];
26
- if (options.action) {
27
- const { onClick, text, href } = options.action;
28
- nodes.unshift(
29
- h(
30
- 'a',
31
- {
32
- attrs: {
33
- role: href ? undefined : 'button',
34
- href,
35
- },
36
- class: ['gl-toast-action'],
37
- on: {
38
- click: (e) => onClick(e, toast),
39
- },
17
+ function renderTitle(toast, options) {
18
+ return (h) => {
19
+ const nodes = [
20
+ h(CloseButton, {
21
+ class: ['gl-toast-close-button'],
22
+ on: {
23
+ click: toast.hide,
40
24
  },
41
- text,
42
- ),
43
- );
44
- }
45
- return nodes;
25
+ }),
26
+ ];
27
+ if (options.action) {
28
+ const { onClick, text, href } = options.action;
29
+ nodes.unshift(
30
+ h(
31
+ 'a',
32
+ {
33
+ attrs: {
34
+ role: href ? undefined : 'button',
35
+ href,
36
+ },
37
+ class: ['gl-toast-action'],
38
+ on: {
39
+ click: (e) => onClick(e, toast),
40
+ },
41
+ },
42
+ text,
43
+ ),
44
+ );
45
+ }
46
+ return nodes;
47
+ };
46
48
  }
47
49
 
48
50
  function showToast(message, options = {}) {
@@ -73,7 +75,7 @@ function showToast(message, options = {}) {
73
75
  ...DEFAULT_OPTIONS,
74
76
  ...updatedAutoHideDelay,
75
77
  id,
76
- title: renderTitle(this.$createElement, toast, options),
78
+ title: renderTitle(toast, options),
77
79
  });
78
80
  return toast;
79
81
  }
@@ -17,7 +17,7 @@
17
17
  // Fallback for Firefox
18
18
  // Fixes a bug where the view transition
19
19
  // doesn’t work properly
20
- @supports (-moz-appearance:none) {
20
+ @supports (-moz-appearance: none) {
21
21
  view-transition-name: unset;
22
22
  }
23
23
 
@@ -33,7 +33,7 @@
33
33
  // Fallback for Firefox
34
34
  // Fixes a bug where the view transition
35
35
  // doesn’t work properly
36
- @supports (-moz-appearance:none) {
36
+ @supports (-moz-appearance: none) {
37
37
  transition: all $gl-transition-duration-medium $gl-easing-out-cubic;
38
38
  }
39
39
  }
@@ -95,7 +95,7 @@ export default {
95
95
  },
96
96
  shouldRenderHelp() {
97
97
  // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots
98
- return Boolean(this.$slots.help || this.help);
98
+ return Boolean(this.$slots.help || this.help) && this.isVerticalLayout;
99
99
  },
100
100
  toggleClasses() {
101
101
  return [
@@ -139,56 +139,55 @@ export default {
139
139
  </script>
140
140
 
141
141
  <template>
142
- <div class="gl-toggle-wrapper gl-flex gl-flex-col">
143
- <div
144
- class="gl-flex"
145
- data-testid="toggle-wrapper"
142
+ <div
143
+ class="gl-toggle-wrapper gl-mb-0 gl-flex"
144
+ :class="{
145
+ 'gl-flex-col': isVerticalLayout,
146
+ 'gl-toggle-label-inline': !isVerticalLayout,
147
+ 'is-disabled': disabled,
148
+ }"
149
+ data-testid="toggle-wrapper"
150
+ >
151
+ <span
152
+ :id="labelId"
153
+ :class="toggleClasses"
154
+ class="gl-toggle-label gl-shrink-0"
155
+ data-testid="toggle-label"
156
+ >
157
+ <!-- @slot The toggle's label. -->
158
+ <slot name="label">{{ label }}</slot>
159
+ </span>
160
+ <span
161
+ v-if="shouldRenderDescription"
162
+ class="gl-description-label gl-mb-3"
163
+ data-testid="toggle-description"
164
+ >
165
+ <!-- @slot A description text to be shown below the label. Unavailable when the label is positioned on the left. -->
166
+ <slot name="description">{{ description }}</slot>
167
+ </span>
168
+ <input v-if="name" :name="name" :value="value" type="hidden" />
169
+ <button
170
+ role="switch"
171
+ :aria-checked="isChecked"
172
+ :aria-labelledby="labelId"
173
+ :aria-describedby="helpId"
174
+ :aria-disabled="disabled"
146
175
  :class="{
147
- 'gl-flex-col': isVerticalLayout,
148
- 'gl-toggle-label-inline': !isVerticalLayout,
176
+ 'is-checked': value,
177
+ 'is-disabled': disabled || isLoading,
149
178
  }"
179
+ class="gl-toggle gl-shrink-0"
180
+ type="button"
181
+ :disabled="disabled"
182
+ @click.prevent="toggleFeature"
150
183
  >
151
- <span
152
- :id="labelId"
153
- :class="toggleClasses"
154
- class="gl-toggle-label gl-shrink-0"
155
- data-testid="toggle-label"
156
- >
157
- <!-- @slot The toggle's label. -->
158
- <slot name="label">{{ label }}</slot>
159
- </span>
160
- <span
161
- v-if="shouldRenderDescription"
162
- class="gl-description-label gl-mb-3"
163
- data-testid="toggle-description"
164
- >
165
- <!-- @slot A description text to be shown below the label. Unavailable when the label is positioned on the left. -->
166
- <slot name="description">{{ description }}</slot>
184
+ <gl-loading-icon v-if="isLoading" color="dark" class="toggle-loading" />
185
+ <span v-else class="toggle-icon">
186
+ <gl-icon :name="icon" :size="12" />
167
187
  </span>
168
- <input v-if="name" :name="name" :value="value" type="hidden" />
169
- <button
170
- role="switch"
171
- :aria-checked="isChecked"
172
- :aria-labelledby="labelId"
173
- :aria-describedby="helpId"
174
- :aria-disabled="disabled"
175
- :class="{
176
- 'is-checked': value,
177
- 'is-disabled': disabled || isLoading,
178
- }"
179
- class="gl-toggle gl-shrink-0"
180
- type="button"
181
- :disabled="disabled"
182
- @click.prevent="toggleFeature"
183
- >
184
- <gl-loading-icon v-if="isLoading" color="dark" class="toggle-loading" />
185
- <span v-else class="toggle-icon">
186
- <gl-icon :name="icon" :size="12" />
187
- </span>
188
- </button>
189
- </div>
188
+ </button>
190
189
  <span v-if="shouldRenderHelp" :id="helpId" class="gl-help-label" data-testid="toggle-help">
191
- <!-- @slot A help text to be shown below the toggle. -->
190
+ <!-- @slot A help text to be shown below the toggle. Unavailable when the label is positioned on the left. -->
192
191
  <slot name="help">{{ help }}</slot>
193
192
  </span>
194
193
  </div>
@@ -8,18 +8,22 @@ $legend-body-h: $gl-spacing-scale-13 - $gl-spacing-scale-4;
8
8
 
9
9
  .gl-chart-h-auto {
10
10
  .gl-legend-inline {
11
- // match the height of gl-legend-tabular (header + body)
12
- max-height: $gl-line-height-24 + $legend-body-h;
13
- @apply gl-overflow-auto;
11
+ // match the height of gl-legend-tabular (header + body)
12
+ max-height: $gl-line-height-24 + $legend-body-h;
13
+ @apply gl-overflow-auto;
14
14
  }
15
15
  }
16
16
 
17
17
  .gl-legend-tabular.gl-legend-b-fade,
18
18
  .gl-chart-h-auto .gl-legend-inline.gl-legend-b-fade {
19
19
  &::after {
20
- background-image: linear-gradient(to bottom, $transparent-rgba, var(--gl-background-color-default));
20
+ background-image: linear-gradient(
21
+ to bottom,
22
+ $transparent-rgba,
23
+ var(--gl-background-color-default)
24
+ );
21
25
  bottom: 0;
22
- content: '';
26
+ content: "";
23
27
  @apply gl-block;
24
28
  @apply gl-h-4;
25
29
  position: absolute;
@@ -28,9 +32,9 @@ $legend-body-h: $gl-spacing-scale-13 - $gl-spacing-scale-4;
28
32
  }
29
33
 
30
34
  .gl-legend-inline {
31
- @apply gl-flex;
32
- @apply gl-flex-wrap;
33
- @apply gl-shrink-0;
35
+ @apply gl-flex;
36
+ @apply gl-flex-wrap;
37
+ @apply gl-shrink-0;
34
38
 
35
39
  .gl-legend-inline-series {
36
40
  @apply gl-flex;
@@ -1,9 +1,9 @@
1
- @use 'sass:map';
1
+ @use "sass:map";
2
2
 
3
3
  .gl-single-stat {
4
4
  @apply gl-leading-1;
5
5
 
6
- &:hover[tabindex='0'] {
6
+ &:hover[tabindex="0"] {
7
7
  @apply gl-bg-strong;
8
8
  @apply gl-rounded-default;
9
9
  }
@@ -1 +1 @@
1
- @import 'gridstack/dist/gridstack';
1
+ @import "gridstack/dist/gridstack";
@@ -1,3 +1,3 @@
1
1
  .gl-empty-state-content {
2
- max-width: 65ch;
2
+ max-width: 65ch;
3
3
  }
@@ -13,7 +13,7 @@
13
13
  .gl-truncate-start {
14
14
  direction: rtl;
15
15
  text-align: left;
16
- text-overflow: '';
16
+ text-overflow: "";
17
17
  }
18
18
 
19
19
  .gl-truncate-end {