@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
@@ -243,8 +243,8 @@ const GL_COLOR_BRAND_GRAY_03 = '#74717a';
243
243
  const GL_COLOR_BRAND_GRAY_04 = '#45424d';
244
244
  const GL_COLOR_BRAND_GRAY_05 = '#2b2838';
245
245
  const GL_COLOR_BRAND_PINK_01G = '#ffb9c9';
246
- const GL_FONT_FAMILY_REGULAR = ["var(--default-regular-font, 'GitLab Sans')", '-apple-system', 'BlinkMacSystemFont', "'Segoe UI'", 'Roboto', "'Noto Sans'", 'Ubuntu', 'Cantarell', "'Helvetica Neue'", 'sans-serif', "'Apple Color Emoji'", "'Segoe UI Emoji'", "'Segoe UI Symbol'", "'Noto Color Emoji'"];
247
- const GL_FONT_FAMILY_MONOSPACE = ["var(--default-mono-font, 'GitLab Mono')", "'JetBrains Mono'", 'Menlo', "'DejaVu Sans Mono'", "'Liberation Mono'", 'Consolas', "'Ubuntu Mono'", "'Courier New'", "'andale mono'", "'lucida console'", 'monospace'];
246
+ const GL_FONT_FAMILY_REGULAR = ["var(--default-regular-font, 'GitLab Sans')", "'GitLab Sans'", '-apple-system', 'BlinkMacSystemFont', "'Segoe UI'", 'Roboto', "'Noto Sans'", 'Ubuntu', 'Cantarell', "'Helvetica Neue'", 'sans-serif', "'Apple Color Emoji'", "'Segoe UI Emoji'", "'Segoe UI Symbol'", "'Noto Color Emoji'"];
247
+ const GL_FONT_FAMILY_MONOSPACE = ["var(--default-mono-font, 'GitLab Mono')", "'GitLab Mono'", "'JetBrains Mono'", 'Menlo', "'DejaVu Sans Mono'", "'Liberation Mono'", 'Consolas', "'Ubuntu Mono'", "'Courier New'", "'andale mono'", "'lucida console'", 'monospace'];
248
248
  const GL_FONT_SIZE_100 = '0.75rem';
249
249
  const GL_FONT_SIZE_200 = '0.8125rem';
250
250
  const GL_FONT_SIZE_300 = '0.875rem';
@@ -243,8 +243,8 @@ const GL_COLOR_BRAND_GRAY_03 = '#74717a';
243
243
  const GL_COLOR_BRAND_GRAY_04 = '#45424d';
244
244
  const GL_COLOR_BRAND_GRAY_05 = '#2b2838';
245
245
  const GL_COLOR_BRAND_PINK_01G = '#ffb9c9';
246
- const GL_FONT_FAMILY_REGULAR = ["var(--default-regular-font, 'GitLab Sans')", '-apple-system', 'BlinkMacSystemFont', "'Segoe UI'", 'Roboto', "'Noto Sans'", 'Ubuntu', 'Cantarell', "'Helvetica Neue'", 'sans-serif', "'Apple Color Emoji'", "'Segoe UI Emoji'", "'Segoe UI Symbol'", "'Noto Color Emoji'"];
247
- const GL_FONT_FAMILY_MONOSPACE = ["var(--default-mono-font, 'GitLab Mono')", "'JetBrains Mono'", 'Menlo', "'DejaVu Sans Mono'", "'Liberation Mono'", 'Consolas', "'Ubuntu Mono'", "'Courier New'", "'andale mono'", "'lucida console'", 'monospace'];
246
+ const GL_FONT_FAMILY_REGULAR = ["var(--default-regular-font, 'GitLab Sans')", "'GitLab Sans'", '-apple-system', 'BlinkMacSystemFont', "'Segoe UI'", 'Roboto', "'Noto Sans'", 'Ubuntu', 'Cantarell', "'Helvetica Neue'", 'sans-serif', "'Apple Color Emoji'", "'Segoe UI Emoji'", "'Segoe UI Symbol'", "'Noto Color Emoji'"];
247
+ const GL_FONT_FAMILY_MONOSPACE = ["var(--default-mono-font, 'GitLab Mono')", "'GitLab Mono'", "'JetBrains Mono'", 'Menlo', "'DejaVu Sans Mono'", "'Liberation Mono'", 'Consolas', "'Ubuntu Mono'", "'Courier New'", "'andale mono'", "'lucida console'", 'monospace'];
248
248
  const GL_FONT_SIZE_100 = '0.75rem';
249
249
  const GL_FONT_SIZE_200 = '0.8125rem';
250
250
  const GL_FONT_SIZE_300 = '0.875rem';
@@ -6,12 +6,13 @@ import { concat } from '../../../utils/array';
6
6
  import { getComponentConfig } from '../../../utils/config';
7
7
  import { requestAF } from '../../../utils/dom';
8
8
  import { getRootEventName, getRootActionEventName } from '../../../utils/events';
9
- import { isUndefined } from '../../../utils/inspect';
9
+ import { isUndefined, isFunction } from '../../../utils/inspect';
10
10
  import { keys, omit, hasOwnProperty, defineProperty, assign, defineProperties, readonlyDescriptor } from '../../../utils/object';
11
11
  import { pluginFactory } from '../../../utils/plugins';
12
12
  import { warn, warnNotClient } from '../../../utils/warn';
13
13
  import { createNewChildComponent } from '../../../utils/create-new-child-component';
14
14
  import { getEventRoot } from '../../../utils/get-event-root';
15
+ import { isVue3 } from '../../../vue';
15
16
  import { props, BToast } from '../toast';
16
17
 
17
18
  /**
@@ -124,9 +125,22 @@ const plugin = Vue => {
124
125
  });
125
126
  // Convert certain props to slots
126
127
  keys(propsToSlots).forEach(prop => {
127
- const value = props[prop];
128
+ let value = props[prop];
128
129
  if (!isUndefined(value)) {
129
- toast.$slots[propsToSlots[prop]] = concat(value);
130
+ if (isVue3(toast)) {
131
+ // In Vue 3 compat, $slots is readonly. Set slots on the internal
132
+ // instance as functions so VNodes are available during the
133
+ // component's render cycle. When the value is a render function,
134
+ // defer calling it until the slot is evaluated during render so
135
+ // that $createElement runs within an active component context.
136
+ const slotFn = isFunction(value) ? () => concat(value(toast.$createElement)) : () => concat(value);
137
+ toast.$.slots[propsToSlots[prop]] = slotFn;
138
+ } else {
139
+ if (isFunction(value)) {
140
+ value = value(toast.$createElement);
141
+ }
142
+ toast.$slots[propsToSlots[prop]] = concat(value);
143
+ }
130
144
  }
131
145
  });
132
146
  // Create a mount point (a DIV) and mount it (which triggers the show)
@@ -244,7 +244,12 @@ const BToast = /*#__PURE__*/extend({
244
244
  const {
245
245
  computedToaster
246
246
  } = this;
247
- if (!Wormhole.hasTarget(computedToaster)) {
247
+ const hasTarget = Wormhole.hasTarget(computedToaster);
248
+ const hasDOM = document.getElementById(computedToaster);
249
+ if (!hasTarget || !hasDOM) {
250
+ if (hasTarget && !hasDOM) {
251
+ Wormhole.unregisterTarget(computedToaster);
252
+ }
248
253
  const div = document.createElement('div');
249
254
  document.body.appendChild(div);
250
255
  const toaster = createNewChildComponent(this.bvEventRoot, BToaster, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitlab/ui",
3
- "version": "128.13.1",
3
+ "version": "128.13.3",
4
4
  "description": "GitLab UI Components",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -127,8 +127,8 @@
127
127
  "@vue/vue2-jest": "29.2.6",
128
128
  "@vue/vue3-jest": "^29.2.6",
129
129
  "@yarnpkg/lockfile": "^1.1.0",
130
- "acorn": "^8.15.0",
131
- "acorn-walk": "^8.3.4",
130
+ "acorn": "^8.16.0",
131
+ "acorn-walk": "^8.3.5",
132
132
  "autoprefixer": "10.4.24",
133
133
  "axe-playwright": "^2.2.2",
134
134
  "babel-loader": "^9.2.1",
@@ -166,7 +166,7 @@
166
166
  "start-server-and-test": "^2.1.3",
167
167
  "storybook": "^7.6.20",
168
168
  "storybook-dark-mode": "4.0.2",
169
- "style-dictionary": "^5.3.1",
169
+ "style-dictionary": "^5.3.2",
170
170
  "style-loader": "^4",
171
171
  "tailwindcss": "3.4.19",
172
172
  "vue": "2.7.16",
@@ -22,7 +22,12 @@ $gl-alert-top-border-size: 2px;
22
22
  border-bottom: 1px solid $border-bottom-color;
23
23
 
24
24
  &::before {
25
- background: linear-gradient(to right, transparent 0%, $border-top-color 50%, transparent 100%);
25
+ background: linear-gradient(
26
+ to right,
27
+ transparent 0%,
28
+ $border-top-color 50%,
29
+ transparent 100%
30
+ );
26
31
  }
27
32
 
28
33
  .gl-alert-title {
@@ -130,7 +135,7 @@ $gl-alert-top-border-size: 2px;
130
135
  $title-color: var(--gl-alert-danger-title-color),
131
136
  $border-top-color: var(--gl-alert-danger-border-top-color),
132
137
  $border-bottom-color: var(--gl-alert-danger-border-bottom-color),
133
- $icon-color: var(--gl-feedback-danger-icon-color),
138
+ $icon-color: var(--gl-feedback-danger-icon-color)
134
139
  );
135
140
 
136
141
  @include gl-alert-variant(
@@ -139,7 +144,7 @@ $gl-alert-top-border-size: 2px;
139
144
  $title-color: var(--gl-alert-warning-title-color),
140
145
  $border-top-color: var(--gl-alert-warning-border-top-color),
141
146
  $border-bottom-color: var(--gl-alert-warning-border-bottom-color),
142
- $icon-color: var(--gl-feedback-warning-icon-color),
147
+ $icon-color: var(--gl-feedback-warning-icon-color)
143
148
  );
144
149
 
145
150
  @include gl-alert-variant(
@@ -148,7 +153,7 @@ $gl-alert-top-border-size: 2px;
148
153
  $title-color: var(--gl-alert-neutral-title-color),
149
154
  $border-top-color: var(--gl-alert-neutral-border-top-color),
150
155
  $border-bottom-color: var(--gl-alert-neutral-border-bottom-color),
151
- $icon-color: var(--gl-feedback-neutral-icon-color),
156
+ $icon-color: var(--gl-feedback-neutral-icon-color)
152
157
  );
153
158
 
154
159
  @include gl-alert-variant(
@@ -157,7 +162,7 @@ $gl-alert-top-border-size: 2px;
157
162
  $title-color: var(--gl-alert-info-title-color),
158
163
  $border-top-color: var(--gl-alert-info-border-top-color),
159
164
  $border-bottom-color: var(--gl-alert-info-border-bottom-color),
160
- $icon-color: var(--gl-feedback-info-icon-color),
165
+ $icon-color: var(--gl-feedback-info-icon-color)
161
166
  );
162
167
 
163
168
  @include gl-alert-variant(
@@ -166,5 +171,5 @@ $gl-alert-top-border-size: 2px;
166
171
  $title-color: var(--gl-alert-success-title-color),
167
172
  $border-top-color: var(--gl-alert-success-border-top-color),
168
173
  $border-bottom-color: var(--gl-alert-success-border-bottom-color),
169
- $icon-color: var(--gl-feedback-success-icon-color),
174
+ $icon-color: var(--gl-feedback-success-icon-color)
170
175
  );
@@ -6,7 +6,8 @@
6
6
  * {
7
7
  transition: all $gl-transition-duration-medium $gl-easing-out-cubic;
8
8
  // 'all' will also animate the visibility property, which makes the icon disappear later than it should
9
- transition-property: color, fill, opacity, transform, rotate, translate, scale, stroke-dasharray, stroke-dashoffset;
9
+ transition-property:
10
+ color, fill, opacity, transform, rotate, translate, scale, stroke-dasharray, stroke-dashoffset;
10
11
  animation-duration: $gl-transition-duration-slow;
11
12
  animation-timing-function: $gl-easing-out-cubic;
12
13
  animation-fill-mode: both;
@@ -103,14 +104,15 @@
103
104
  * animated_chevron_lg_down_up_icon.vue
104
105
  * * * * * * * * * * * * * * * * */
105
106
 
106
- /* on state */
107
- .gl-animated-icon-on {
107
+ /* on state */
108
+ .gl-animated-icon-on {
108
109
  .gl-animated-chevron-lg-down-up-arrow-left-line,
109
110
  .gl-animated-chevron-lg-down-up-arrow-right-line {
110
111
  translate: 50% 31.2%;
111
112
  scale: 1 1.01;
112
- transition: all $gl-transition-duration-medium $gl-easing-out-cubic,
113
- scale $gl-transition-duration-medium linear(1 0%, -29 16%, 1 100%);
113
+ transition:
114
+ all $gl-transition-duration-medium $gl-easing-out-cubic,
115
+ scale $gl-transition-duration-medium linear(1 0%, -29 16%, 1 100%);
114
116
  }
115
117
 
116
118
  .gl-animated-chevron-lg-down-up-arrow-left-line {
@@ -128,8 +130,9 @@
128
130
  .gl-animated-chevron-lg-down-up-arrow-right-line {
129
131
  translate: 50% 68.8%;
130
132
  scale: 1 1;
131
- transition: all $gl-transition-duration-medium $gl-easing-out-cubic,
132
- scale $gl-transition-duration-medium linear(1 0%, 29 16%, 1 100%);
133
+ transition:
134
+ all $gl-transition-duration-medium $gl-easing-out-cubic,
135
+ scale $gl-transition-duration-medium linear(1 0%, 29 16%, 1 100%);
133
136
  }
134
137
 
135
138
  .gl-animated-chevron-lg-down-up-arrow-left-line {
@@ -145,14 +148,15 @@
145
148
  * animated_chevron_down_up_icon.vue
146
149
  * * * * * * * * * * * * * * * * */
147
150
 
148
- /* on state */
149
- .gl-animated-icon-on {
151
+ /* on state */
152
+ .gl-animated-icon-on {
150
153
  .gl-animated-chevron-down-up-arrow-left-line,
151
154
  .gl-animated-chevron-down-up-arrow-right-line {
152
155
  translate: 50% 37.6%;
153
156
  scale: 1 1.01;
154
- transition: all $gl-transition-duration-medium $gl-easing-out-cubic,
155
- scale $gl-transition-duration-medium linear(1 0%, -27 16%, 1 100%);
157
+ transition:
158
+ all $gl-transition-duration-medium $gl-easing-out-cubic,
159
+ scale $gl-transition-duration-medium linear(1 0%, -27 16%, 1 100%);
156
160
  }
157
161
 
158
162
  .gl-animated-chevron-down-up-arrow-left-line {
@@ -170,8 +174,9 @@
170
174
  .gl-animated-chevron-down-up-arrow-right-line {
171
175
  translate: 50% 62.6%;
172
176
  scale: 1 1;
173
- transition: all $gl-transition-duration-medium $gl-easing-out-cubic,
174
- scale $gl-transition-duration-medium linear(1 0%, 27 16%, 1 100%);
177
+ transition:
178
+ all $gl-transition-duration-medium $gl-easing-out-cubic,
179
+ scale $gl-transition-duration-medium linear(1 0%, 27 16%, 1 100%);
175
180
  }
176
181
 
177
182
  .gl-animated-chevron-down-up-arrow-left-line {
@@ -266,12 +271,20 @@
266
271
  }
267
272
 
268
273
  @keyframes gl-animated-loader-on {
269
- 30% { translate: 0 -30%; }
270
- 60% { translate: 0 2%; }
271
- 65% { translate: 0 0; }
274
+ 30% {
275
+ translate: 0 -30%;
276
+ }
277
+
278
+ 60% {
279
+ translate: 0 2%;
280
+ }
281
+
282
+ 65% {
283
+ translate: 0 0;
284
+ }
272
285
  }
273
286
 
274
- /* * * * * * * * * * * * * * * * *
287
+ /* * * * * * * * * * * * * * * * *
275
288
  * animated_notifications_icon.vue
276
289
  * * * * * * * * * * * * * * * * */
277
290
 
@@ -368,7 +381,7 @@
368
381
  * animated_sort_icon.vue
369
382
  * * * * * * * * * * * * * * * * */
370
383
 
371
- .gl-animated-sort-icon {
384
+ .gl-animated-sort-icon {
372
385
  overflow: visible;
373
386
  }
374
387
 
@@ -445,7 +458,6 @@
445
458
  translate: 0 0;
446
459
  }
447
460
 
448
-
449
461
  /* * * * * * * * * * * * * * * * *
450
462
  * animated_star_icon.vue
451
463
  * * * * * * * * * * * * * * * * */
@@ -520,7 +532,6 @@
520
532
  }
521
533
  }
522
534
 
523
-
524
535
  /* * * * * * * * * * * * * * * * *
525
536
  * animated_todo_icon.vue
526
537
  * * * * * * * * * * * * * * * * */
@@ -1,5 +1,5 @@
1
- @use 'sass:map';
2
- @use 'sass:list';
1
+ @use "sass:map";
2
+ @use "sass:list";
3
3
 
4
4
  // Available background colors for the identicon fallback for avatars
5
5
  //
@@ -8,18 +8,17 @@
8
8
  // changed, resulting in changing the color of all identicons, because
9
9
  // we do a modulo division with the total number of colors on the
10
10
  // object's id to always give it the same "random" color.
11
- $gl-avatar-identicon-bgs: var(--gl-avatar-fallback-background-color-red),
11
+ $gl-avatar-identicon-bgs:
12
+ var(--gl-avatar-fallback-background-color-red), var(--gl-avatar-fallback-background-color-purple),
12
13
  var(--gl-avatar-fallback-background-color-purple),
13
- var(--gl-avatar-fallback-background-color-purple), var(--gl-avatar-fallback-background-color-blue),
14
- var(--gl-avatar-fallback-background-color-green),
14
+ var(--gl-avatar-fallback-background-color-blue), var(--gl-avatar-fallback-background-color-green),
15
15
  var(--gl-avatar-fallback-background-color-orange),
16
16
  var(--gl-avatar-fallback-background-color-neutral);
17
17
 
18
- $gl-avatar-identicon-texts: var(--gl-avatar-fallback-text-color-red),
19
- var(--gl-avatar-fallback-text-color-purple),
18
+ $gl-avatar-identicon-texts:
19
+ var(--gl-avatar-fallback-text-color-red), var(--gl-avatar-fallback-text-color-purple),
20
20
  var(--gl-avatar-fallback-text-color-purple), var(--gl-avatar-fallback-text-color-blue),
21
- var(--gl-avatar-fallback-text-color-green),
22
- var(--gl-avatar-fallback-text-color-orange),
21
+ var(--gl-avatar-fallback-text-color-green), var(--gl-avatar-fallback-text-color-orange),
23
22
  var(--gl-avatar-fallback-text-color-neutral);
24
23
 
25
24
  @mixin gl-avatar {
@@ -28,11 +28,19 @@
28
28
  // Don't include the badge
29
29
  &:not(:last-child) {
30
30
  margin-right: var(--mask-offset);
31
- mask: radial-gradient(circle at calc(var(--avatar-size) * 1.25) center, transparent var(--mask-cutout), white 0);
31
+ mask: radial-gradient(
32
+ circle at calc(var(--avatar-size) * 1.25) center,
33
+ transparent var(--mask-cutout),
34
+ white 0
35
+ );
32
36
 
33
- &:hover+.gl-avatars-inline-child>.gl-avatar-link,
34
- &:hover+.gl-avatars-inline-child>.gl-avatars-inline-badge {
35
- mask: radial-gradient(circle at var(--mask-offset) center, transparent var(--mask-cutout), white 0);
37
+ &:hover + .gl-avatars-inline-child > .gl-avatar-link,
38
+ &:hover + .gl-avatars-inline-child > .gl-avatars-inline-badge {
39
+ mask: radial-gradient(
40
+ circle at var(--mask-offset) center,
41
+ transparent var(--mask-cutout),
42
+ white 0
43
+ );
36
44
  }
37
45
  }
38
46
 
@@ -23,7 +23,7 @@ $breadcrumb-max-width: $grid-size * 16;
23
23
  &:not(:last-child, :has(+ .gl-breadcrumb-clipboard-button))::after {
24
24
  color: var(--gl-breadcrumb-separator-color);
25
25
  @apply gl-px-3;
26
- content: '/';
26
+ content: "/";
27
27
  }
28
28
 
29
29
  > a {
@@ -63,7 +63,7 @@ $breadcrumb-max-width: $grid-size * 16;
63
63
  }
64
64
 
65
65
  .gl-breadcrumb-item {
66
- /**
66
+ /**
67
67
  * If the last/only item, which is always visible, has a very long title,
68
68
  * it could overflow the breadcrumb component. This CSS makes sure it
69
69
  * shows an ellipsis instead.
@@ -13,7 +13,7 @@
13
13
  $focus-border-color: null,
14
14
  $active-color: null,
15
15
  $active-background-color: null,
16
- $active-border-color: null,
16
+ $active-border-color: null
17
17
  ) {
18
18
  color: $color;
19
19
  background-color: $background-color;
@@ -21,8 +21,9 @@
21
21
 
22
22
  &::before {
23
23
  background-color: $border-color;
24
- transition: background-color $gl-transition-duration-medium $gl-easing-out-cubic,
25
- border-color $gl-transition-duration-medium $gl-easing-out-cubic;
24
+ transition:
25
+ background-color $gl-transition-duration-medium $gl-easing-out-cubic,
26
+ border-color $gl-transition-duration-medium $gl-easing-out-cubic;
26
27
  }
27
28
 
28
29
  &:hover {
@@ -78,7 +79,8 @@
78
79
  border: $gl-border-size-1 solid var(--gl-button-default-primary-border-color-default);
79
80
  min-height: $gl-button-medium-size;
80
81
  min-width: $gl-button-medium-size;
81
- transition: color $gl-transition-duration-medium $gl-easing-out-cubic,
82
+ transition:
83
+ color $gl-transition-duration-medium $gl-easing-out-cubic,
82
84
  background-color $gl-transition-duration-medium $gl-easing-out-cubic,
83
85
  border-color $gl-transition-duration-medium $gl-easing-out-cubic,
84
86
  box-shadow $gl-transition-duration-medium $gl-easing-out-cubic,
@@ -148,7 +150,7 @@
148
150
  $focus-border-color: var(--gl-button-default-primary-border-color-focus),
149
151
  $active-color: var(--gl-button-default-primary-foreground-color-active),
150
152
  $active-background-color: var(--gl-button-default-primary-background-color-active),
151
- $active-border-color: var(--gl-button-default-primary-border-color-active),
153
+ $active-border-color: var(--gl-button-default-primary-border-color-active)
152
154
  );
153
155
 
154
156
  &.selected {
@@ -228,7 +230,7 @@
228
230
  $focus-border-color: var(--gl-button-default-tertiary-border-color-focus),
229
231
  $active-color: var(--gl-button-default-tertiary-foreground-color-active),
230
232
  $active-background-color: var(--gl-button-default-tertiary-background-color-active),
231
- $active-border-color: var(--gl-button-default-tertiary-border-color-active),
233
+ $active-border-color: var(--gl-button-default-tertiary-border-color-active)
232
234
  );
233
235
  }
234
236
 
@@ -245,7 +247,7 @@
245
247
  $focus-border-color: var(--gl-button-confirm-primary-border-color-focus),
246
248
  $active-color: var(--gl-button-confirm-primary-foreground-color-active),
247
249
  $active-background-color: var(--gl-button-confirm-primary-background-color-active),
248
- $active-border-color: var(--gl-button-confirm-primary-border-color-active),
250
+ $active-border-color: var(--gl-button-confirm-primary-border-color-active)
249
251
  );
250
252
  }
251
253
 
@@ -262,7 +264,7 @@
262
264
  $focus-border-color: var(--gl-button-confirm-secondary-border-color-focus),
263
265
  $active-color: var(--gl-button-confirm-secondary-foreground-color-active),
264
266
  $active-background-color: var(--gl-button-confirm-secondary-background-color-active),
265
- $active-border-color: var(--gl-button-confirm-secondary-border-color-active),
267
+ $active-border-color: var(--gl-button-confirm-secondary-border-color-active)
266
268
  );
267
269
  }
268
270
 
@@ -279,7 +281,7 @@
279
281
  $focus-border-color: var(--gl-button-confirm-tertiary-border-color-focus),
280
282
  $active-color: var(--gl-button-confirm-tertiary-foreground-color-active),
281
283
  $active-background-color: var(--gl-button-confirm-tertiary-background-color-active),
282
- $active-border-color: var(--gl-button-confirm-tertiary-border-color-active),
284
+ $active-border-color: var(--gl-button-confirm-tertiary-border-color-active)
283
285
  );
284
286
  }
285
287
 
@@ -296,7 +298,7 @@
296
298
  $focus-border-color: var(--gl-button-danger-primary-border-color-focus),
297
299
  $active-color: var(--gl-button-danger-primary-foreground-color-active),
298
300
  $active-background-color: var(--gl-button-danger-primary-background-color-active),
299
- $active-border-color: var(--gl-button-danger-primary-border-color-active),
301
+ $active-border-color: var(--gl-button-danger-primary-border-color-active)
300
302
  );
301
303
  }
302
304
 
@@ -313,7 +315,7 @@
313
315
  $focus-border-color: var(--gl-button-danger-secondary-border-color-focus),
314
316
  $active-color: var(--gl-button-danger-secondary-foreground-color-active),
315
317
  $active-background-color: var(--gl-button-danger-secondary-background-color-active),
316
- $active-border-color: var(--gl-button-danger-secondary-border-color-active),
318
+ $active-border-color: var(--gl-button-danger-secondary-border-color-active)
317
319
  );
318
320
  }
319
321
 
@@ -330,7 +332,7 @@
330
332
  $focus-border-color: var(--gl-button-danger-tertiary-border-color-focus),
331
333
  $active-color: var(--gl-button-danger-tertiary-foreground-color-active),
332
334
  $active-background-color: var(--gl-button-danger-tertiary-background-color-active),
333
- $active-border-color: var(--gl-button-danger-tertiary-border-color-active),
335
+ $active-border-color: var(--gl-button-danger-tertiary-border-color-active)
334
336
  );
335
337
  }
336
338
 
@@ -470,8 +472,8 @@
470
472
  }
471
473
  }
472
474
 
473
- &.disabled[class*='-tertiary'],
474
- &[disabled][class*='-tertiary'] {
475
+ &.disabled[class*="-tertiary"],
476
+ &[disabled][class*="-tertiary"] {
475
477
  @apply gl-bg-transparent;
476
478
  @apply gl-shadow-none;
477
479
  }
@@ -10,24 +10,24 @@ $gl-button-group-border-z-index: $gl-button-group-focus-z-index + 1;
10
10
  > .gl-button:not(:first-child),
11
11
  > .btn-group:not(:first-child) > .gl-button,
12
12
  > .gl-new-dropdown:not(:first-child) > .gl-button {
13
- @apply gl-border-l-0 gl-rounded-l-none;
13
+ @apply gl-rounded-l-none gl-border-l-0;
14
14
  }
15
15
 
16
16
  > .gl-button:not(:last-child):not(.dropdown-toggle),
17
17
  > .btn-group:not(:last-child) > .gl-button,
18
18
  > .gl-new-dropdown:not(:last-child) > .gl-button {
19
- @apply gl-border-r-0 gl-rounded-r-none;
19
+ @apply gl-rounded-r-none gl-border-r-0;
20
20
  }
21
21
 
22
22
  // Pseudo element to mock border between buttons
23
23
  > .gl-button:not(:first-child),
24
24
  > .btn-group:not(:first-child) > .gl-button,
25
25
  > .gl-new-dropdown:not(:first-child) > .gl-button {
26
- @apply gl-relative gl-ml-[1px] gl-isolate;
26
+ @apply gl-relative gl-isolate gl-ml-[1px];
27
27
 
28
28
  &::before {
29
- content: '';
30
- @apply gl-absolute gl-block gl-top-[-1px] gl-bottom-[-1px] gl-left-[-1px] gl-w-[1px];
29
+ content: "";
30
+ @apply gl-absolute gl-bottom-[-1px] gl-left-[-1px] gl-top-[-1px] gl-block gl-w-[1px];
31
31
  z-index: $gl-button-group-border-z-index;
32
32
  }
33
33
  }
@@ -87,13 +87,13 @@ $gl-button-group-border-z-index: $gl-button-group-focus-z-index + 1;
87
87
  > .gl-button:not(:first-child),
88
88
  > .btn-group:not(:first-child) > .gl-button,
89
89
  > .gl-new-dropdown:not(:first-child) > .gl-button {
90
- @apply gl-border-t-0 gl-rounded-t-none;
90
+ @apply gl-rounded-t-none gl-border-t-0;
91
91
  }
92
92
 
93
93
  > .gl-button:not(:last-child):not(.dropdown-toggle),
94
94
  > .btn-group:not(:last-child) > .gl-button,
95
95
  > .gl-new-dropdown:not(:last-child) > .gl-button {
96
- @apply gl-border-b-0 gl-rounded-b-none;
96
+ @apply gl-rounded-b-none gl-border-b-0;
97
97
  }
98
98
 
99
99
  // Pseudo element to mock border between buttons
@@ -103,8 +103,8 @@ $gl-button-group-border-z-index: $gl-button-group-focus-z-index + 1;
103
103
  @apply gl-relative gl-mt-[1px];
104
104
 
105
105
  &::before {
106
- content: '';
107
- @apply gl-absolute gl-block gl-left-[-1px] gl-right-[-1px] gl-top-[-1px] gl-h-[1px];
106
+ content: "";
107
+ @apply gl-absolute gl-left-[-1px] gl-right-[-1px] gl-top-[-1px] gl-block gl-h-[1px];
108
108
  z-index: $gl-button-group-border-z-index;
109
109
  }
110
110
  }
@@ -17,7 +17,7 @@ $pd-day-selected-shadow: var(--gl-control-background-color-selected-default);
17
17
  $pd-day-disabled-color: var(--gl-text-color-disabled);
18
18
  $pd-week-color: var(--gl-text-color-subtle);
19
19
 
20
- @import 'pikaday/scss/pikaday';
20
+ @import "pikaday/scss/pikaday";
21
21
 
22
22
  .gl-datepicker-actions {
23
23
  @apply gl-text-sm;
@@ -87,7 +87,7 @@ $pd-week-color: var(--gl-text-color-subtle);
87
87
  This is necessary because the parent element (which already has a border-radius)
88
88
  requires the ::before element to extend beyond its edges to ensure proper coverage. */
89
89
  @apply gl-rounded-lg;
90
- content: '';
90
+ content: "";
91
91
  position: absolute;
92
92
  top: 0;
93
93
  left: 0;
@@ -132,21 +132,21 @@ $pd-week-color: var(--gl-text-color-subtle);
132
132
 
133
133
  .pika-next {
134
134
  &::before {
135
- mask-image: url('#{$gl-icon-chevron-right}');
135
+ mask-image: url("#{$gl-icon-chevron-right}");
136
136
  }
137
137
 
138
138
  @media (forced-colors: active) {
139
- background-image: url('#{$gl-icon-chevron-right}');
139
+ background-image: url("#{$gl-icon-chevron-right}");
140
140
  }
141
141
  }
142
142
 
143
143
  .pika-prev {
144
144
  &::before {
145
- mask-image: url('#{$gl-icon-chevron-left}');
145
+ mask-image: url("#{$gl-icon-chevron-left}");
146
146
  }
147
147
 
148
148
  @media (forced-colors: active) {
149
- background-image: url('#{$gl-icon-chevron-left}');
149
+ background-image: url("#{$gl-icon-chevron-left}");
150
150
  }
151
151
  }
152
152
 
@@ -75,7 +75,7 @@ $gl-drawer-scrim-gradient: linear-gradient(
75
75
  background: $gl-drawer-scrim-gradient;
76
76
  top: -$gl-border-size-1;
77
77
  @apply -gl-translate-y-full;
78
- content: '';
78
+ content: "";
79
79
  left: 0;
80
80
  position: absolute;
81
81
  @apply gl-pointer-events-none;
@@ -127,7 +127,7 @@ $gl-drawer-scrim-gradient: linear-gradient(
127
127
  .gl-drawer-body-scrim {
128
128
  &::after {
129
129
  background: $gl-drawer-scrim-gradient;
130
- content: '';
130
+ content: "";
131
131
  bottom: 0;
132
132
  @apply gl-pointer-events-none;
133
133
  @apply gl-w-full;
@@ -38,7 +38,7 @@
38
38
  }
39
39
 
40
40
  .gl-dropdown-header-top {
41
- @apply gl-border-1 gl-border-b-solid gl-border-dropdown-divider;
41
+ @apply gl-border-1 gl-border-dropdown-divider gl-border-b-solid;
42
42
  @apply gl-flex;
43
43
  @apply gl-text-base;
44
44
  @apply gl-text-strong;
@@ -52,11 +52,11 @@
52
52
  }
53
53
 
54
54
  .gl-dropdown-header {
55
- @apply gl-border-b-1 gl-border-b-solid gl-border-b-dropdown-divider;
55
+ @apply gl-border-b-1 gl-border-b-dropdown-divider gl-border-b-solid;
56
56
  }
57
57
 
58
58
  .gl-dropdown-footer {
59
- @apply gl-border-t-1 gl-border-t-solid gl-border-t-dropdown-divider;
59
+ @apply gl-border-t-1 gl-border-t-dropdown-divider gl-border-t-solid;
60
60
  @apply gl-py-3;
61
61
  }
62
62
 
@@ -88,7 +88,7 @@
88
88
  .dropdown-toggle-split {
89
89
  &::after {
90
90
  @apply gl-border-0;
91
- content: '';
91
+ content: "";
92
92
  @apply gl-block;
93
93
  @apply gl-w-5;
94
94
  @apply gl-h-5;
@@ -4,7 +4,7 @@
4
4
  @apply gl-my-2;
5
5
  @apply gl-mx-0;
6
6
  @apply gl-p-0;
7
- @apply gl-border-t-1 gl-border-t-solid gl-border-t-dropdown-divider;
7
+ @apply gl-border-t-1 gl-border-t-dropdown-divider gl-border-t-solid;
8
8
  }
9
9
 
10
10
  /* Styling when the component is used on its own */