@gitlab/ui 134.6.0 → 134.8.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 (33) hide show
  1. package/dist/components/dashboards/dashboard_panel/dashboard_panel.js +5 -3
  2. package/dist/index.css +2 -2
  3. package/dist/index.css.map +1 -1
  4. package/dist/tokens/build/js/tokens.dark.js +86 -68
  5. package/dist/tokens/build/js/tokens.js +93 -75
  6. package/package.json +5 -5
  7. package/src/components/base/toggle/toggle.scss +75 -51
  8. package/src/components/dashboards/dashboard_panel/dashboard_panel.vue +4 -1
  9. package/src/scss/bootstrap_no_utils.scss +33 -0
  10. package/src/scss/gitlab_ui_no_utils.scss +24 -0
  11. package/src/scss/themes.scss +10 -5
  12. package/src/tokens/build/css/tokens.css +76 -58
  13. package/src/tokens/build/css/tokens.dark.css +74 -56
  14. package/src/tokens/build/docs/tokens-tailwind-docs.dark.json +145 -0
  15. package/src/tokens/build/docs/tokens-tailwind-docs.json +145 -0
  16. package/src/tokens/build/figma/constants.dark.json +2 -2
  17. package/src/tokens/build/figma/constants.json +2 -2
  18. package/src/tokens/build/figma/mode.dark.json +206 -108
  19. package/src/tokens/build/figma/mode.json +209 -87
  20. package/src/tokens/build/js/tokens.dark.js +85 -67
  21. package/src/tokens/build/js/tokens.js +92 -74
  22. package/src/tokens/build/json/tokens.dark.json +846 -225
  23. package/src/tokens/build/json/tokens.json +850 -229
  24. package/src/tokens/build/scss/_tokens.dark.scss +74 -56
  25. package/src/tokens/build/scss/_tokens.scss +76 -58
  26. package/src/tokens/build/scss/_tokens_custom_properties.scss +18 -0
  27. package/src/tokens/build/tailwind/tokens.cjs +1 -0
  28. package/src/tokens/constant/color.alpha.tokens.json +16 -0
  29. package/src/tokens/contextual/button.tokens.json +34 -58
  30. package/src/tokens/contextual/tabs.tokens.json +2 -8
  31. package/src/tokens/contextual/toggle.tokens.json +195 -0
  32. package/src/tokens/semantic/action.tokens.json +22 -124
  33. package/src/tokens/semantic/control.tokens.json +9 -21
@@ -66,15 +66,19 @@ $toggle-height: 2.5 * $grid-size;
66
66
  @apply gl-border-0;
67
67
  @apply gl-cursor-pointer;
68
68
  color: var(--gl-toggle-switch-icon-color-unchecked-default);
69
- background-color: var(--gl-action-strong-neutral-background-color-default);
69
+ background-color: var(--gl-toggle-switch-track-color-unchecked-default);
70
70
  position: relative;
71
71
  width: $toggle-width;
72
72
  height: $toggle-height;
73
73
  user-select: none;
74
- box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-strong-neutral-border-color-default);
74
+ box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-neutral-border-color-default);
75
75
  @apply gl-rounded-pill;
76
- @apply gl-duration-slow;
77
76
  @apply gl-leading-normal;
77
+ transition:
78
+ color $gl-transition-duration-medium $gl-easing-out-cubic,
79
+ background-color $gl-transition-duration-medium $gl-easing-out-cubic,
80
+ box-shadow $gl-transition-duration-medium $gl-easing-out-cubic;
81
+ @include gl-prefers-reduced-motion-transition;
78
82
 
79
83
  @media (forced-colors: active) {
80
84
  border: 1px solid;
@@ -88,23 +92,24 @@ $toggle-height: 2.5 * $grid-size;
88
92
 
89
93
  &:hover {
90
94
  color: var(--gl-toggle-switch-icon-color-unchecked-hover);
91
- background-color: var(--gl-action-strong-neutral-background-color-hover);
92
- box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-strong-neutral-border-color-hover);
95
+ background-color: var(--gl-toggle-switch-track-color-unchecked-hover);
96
+ box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-neutral-border-color-hover);
97
+
98
+ .toggle-icon::before {
99
+ transform: scale(0.875);
100
+ }
93
101
  }
94
102
 
95
103
  &:focus {
96
104
  color: var(--gl-toggle-switch-icon-color-unchecked-focus);
97
- background-color: var(--gl-action-strong-neutral-background-color-focus);
98
- @include gl-focus($color: var(--gl-action-strong-neutral-border-color-focus), $important: true);
105
+ background-color: var(--gl-toggle-switch-track-color-unchecked-focus);
106
+ @include gl-focus($color: var(--gl-action-neutral-border-color-focus), $important: true);
99
107
  }
100
108
 
101
109
  &:active {
102
110
  color: var(--gl-toggle-switch-icon-color-unchecked-active);
103
- background-color: var(--gl-action-strong-neutral-background-color-active);
104
- @include gl-focus(
105
- $color: var(--gl-action-strong-neutral-border-color-active),
106
- $important: true
107
- );
111
+ background-color: var(--gl-toggle-switch-track-color-unchecked-active);
112
+ @include gl-focus($color: var(--gl-action-neutral-border-color-active), $important: true);
108
113
  }
109
114
 
110
115
  .toggle-loading {
@@ -112,69 +117,76 @@ $toggle-height: 2.5 * $grid-size;
112
117
  }
113
118
 
114
119
  .toggle-icon {
115
- @apply gl-rounded-full;
116
- position: absolute;
117
- @apply gl-inline-flex;
118
- @apply gl-items-center;
119
- left: $gl-spacing-scale-1;
120
- top: $gl-spacing-scale-1;
121
- @apply gl-transition-all;
122
- @apply gl-justify-center;
123
- @apply gl-p-1;
124
- background-color: var(--gl-action-strong-neutral-foreground-color-default);
125
-
126
- &:hover {
127
- background-color: var(--gl-action-strong-neutral-foreground-color-hover);
128
- }
129
-
130
- &:focus {
131
- background-color: var(--gl-action-strong-neutral-foreground-color-focus);
132
- }
133
-
134
- &:active {
135
- background-color: var(--gl-action-strong-neutral-foreground-color-active);
120
+ @apply gl-absolute;
121
+ @apply gl-w-5;
122
+ @apply gl-h-5;
123
+ @apply gl-left-1;
124
+ @apply gl-top-1;
125
+ transition: transform $gl-transition-duration-medium $gl-easing-out-cubic;
126
+ @include gl-prefers-reduced-motion-transition;
127
+
128
+ &::before {
129
+ content: "";
130
+ @apply gl-absolute;
131
+ @apply gl-inset-0;
132
+ @apply gl-rounded-full;
133
+ background-color: var(--gl-toggle-switch-background-color-unchecked-default);
134
+ transform: scale(0.75);
135
+ transition:
136
+ transform $gl-transition-duration-medium $gl-easing-out-cubic,
137
+ background-color $gl-transition-duration-medium $gl-easing-out-cubic;
138
+ @include gl-prefers-reduced-motion-transition;
136
139
  }
137
140
 
138
141
  > svg {
142
+ @apply gl-absolute;
139
143
  @apply gl-w-4;
140
144
  @apply gl-h-4;
141
- @apply gl-align-baseline;
145
+ top: 50%;
146
+ left: 50%;
147
+ transform: translate(-50%, -50%);
148
+ // Check/close icons are only rendered in Windows high contrast
149
+ // (forced-colors) mode so the toggle state remains distinguishable
150
+ // when background colors are overridden by the user agent.
151
+ display: none;
152
+
153
+ @media (forced-colors: active) {
154
+ display: block;
155
+ }
142
156
  }
143
157
  }
144
158
 
145
159
  &.is-checked {
146
160
  color: var(--gl-toggle-switch-icon-color-checked-default);
147
- background-color: var(--gl-action-strong-confirm-background-color-default);
148
- box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-strong-confirm-border-color-default);
161
+ background-color: var(--gl-toggle-switch-track-color-checked-default);
162
+ box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-neutral-border-color-default);
149
163
 
150
164
  &:hover {
151
165
  color: var(--gl-toggle-switch-icon-color-checked-hover);
152
- background-color: var(--gl-action-strong-confirm-background-color-hover);
153
- box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-strong-confirm-border-color-hover);
166
+ background-color: var(--gl-toggle-switch-track-color-checked-hover);
167
+ box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-neutral-border-color-hover);
154
168
  }
155
169
 
156
170
  &:focus {
157
171
  color: var(--gl-toggle-switch-icon-color-checked-focus);
158
- background-color: var(--gl-action-strong-confirm-background-color-focus);
159
- @include gl-focus(
160
- $color: var(--gl-action-strong-confirm-border-color-focus),
161
- $important: true
162
- );
172
+ background-color: var(--gl-toggle-switch-track-color-checked-focus);
173
+ @include gl-focus($color: var(--gl-action-neutral-border-color-focus), $important: true);
163
174
  }
164
175
 
165
176
  &:active {
166
177
  color: var(--gl-toggle-switch-icon-color-checked-active);
167
- background-color: var(--gl-action-strong-confirm-background-color-active);
168
- @include gl-focus(
169
- $color: var(--gl-action-strong-confirm-border-color-active),
170
- $important: true
171
- );
178
+ background-color: var(--gl-toggle-switch-track-color-checked-active);
179
+ @include gl-focus($color: var(--gl-action-neutral-border-color-active), $important: true);
172
180
  }
173
181
 
174
182
  .toggle-icon {
175
- background-color: var(--gl-action-strong-confirm-foreground-color-default);
176
183
  transform: translateX($toggle-translate-width);
177
184
  }
185
+
186
+ .toggle-icon::before {
187
+ background-color: var(--gl-toggle-switch-background-color-checked-default);
188
+ transform: scale(1);
189
+ }
178
190
  }
179
191
 
180
192
  &.is-disabled,
@@ -185,8 +197,20 @@ $toggle-height: 2.5 * $grid-size;
185
197
  box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-action-disabled-border-color);
186
198
 
187
199
  .toggle-icon {
188
- color: var(--gl-action-disabled-background-color);
189
- background-color: var(--gl-action-disabled-foreground-color);
200
+ color: var(--gl-toggle-switch-icon-color-disabled);
201
+ }
202
+
203
+ .toggle-icon::before {
204
+ background-color: var(--gl-toggle-switch-background-color-disabled);
205
+ }
206
+
207
+ &:hover .toggle-icon::before {
208
+ transform: scale(0.75);
209
+ }
210
+
211
+ &.is-checked .toggle-icon::before,
212
+ &.is-checked:hover .toggle-icon::before {
213
+ transform: scale(1);
190
214
  }
191
215
 
192
216
  &:active,
@@ -7,6 +7,7 @@ import GlPopover from '../../base/popover/popover.vue';
7
7
  import GlSprintf from '../../utilities/sprintf/sprintf.vue';
8
8
  import GlLink from '../../base/link/link.vue';
9
9
  import GlTruncate from '../../utilities/truncate/truncate.vue';
10
+ import GlSkeletonLoader from '../../base/skeleton_loader/skeleton_loader.vue';
10
11
 
11
12
  export default {
12
13
  name: 'GlDashboardPanel',
@@ -18,6 +19,7 @@ export default {
18
19
  GlSprintf,
19
20
  GlLink,
20
21
  GlTruncate,
22
+ GlSkeletonLoader,
21
23
  },
22
24
  props: {
23
25
  /**
@@ -205,7 +207,8 @@ export default {
205
207
  >
206
208
  <div class="gl-flex gl-h-full gl-flex-col">
207
209
  <div class="gl-mb-3 gl-flex gl-items-start gl-justify-between" data-testid="panel-title">
208
- <div class="gl-flex gl-items-center gl-gap-2 gl-overflow-hidden">
210
+ <gl-skeleton-loader v-if="loading" :lines="1" />
211
+ <div v-else class="gl-flex gl-items-center gl-gap-2 gl-overflow-hidden">
209
212
  <gl-icon
210
213
  v-if="hasTitleIcon"
211
214
  :class="titleIconClass"
@@ -0,0 +1,33 @@
1
+ @import "variables";
2
+ @import "../vendor/bootstrap/scss/functions";
3
+ @import "../vendor/bootstrap/scss/variables";
4
+ @import "../vendor/bootstrap/scss/mixins";
5
+ @import "../vendor/bootstrap/scss/root";
6
+ @import "../vendor/bootstrap/scss/reboot";
7
+ @import "../vendor/bootstrap/scss/type";
8
+ @import "../vendor/bootstrap/scss/images";
9
+ @import "../vendor/bootstrap/scss/code";
10
+ @import "../vendor/bootstrap/scss/grid";
11
+ @import "../vendor/bootstrap/scss/tables";
12
+ @import "../vendor/bootstrap/scss/forms";
13
+ @import "../vendor/bootstrap/scss/buttons";
14
+ @import "../vendor/bootstrap/scss/transitions";
15
+ @import "../vendor/bootstrap/scss/dropdown";
16
+ @import "../vendor/bootstrap/scss/button-group";
17
+ @import "../vendor/bootstrap/scss/input-group";
18
+ @import "../vendor/bootstrap/scss/custom-forms";
19
+ @import "../vendor/bootstrap/scss/nav";
20
+ @import "../vendor/bootstrap/scss/navbar";
21
+ @import "../vendor/bootstrap/scss/card";
22
+ @import "../vendor/bootstrap/scss/breadcrumb";
23
+ @import "../vendor/bootstrap/scss/pagination";
24
+ @import "../vendor/bootstrap/scss/badge";
25
+ @import "../vendor/bootstrap/scss/alert";
26
+ @import "../vendor/bootstrap/scss/progress";
27
+ @import "../vendor/bootstrap/scss/media";
28
+ @import "../vendor/bootstrap/scss/list-group";
29
+ @import "../vendor/bootstrap/scss/close";
30
+ @import "../vendor/bootstrap/scss/modal";
31
+ @import "../vendor/bootstrap/scss/tooltip";
32
+ @import "../vendor/bootstrap/scss/popover";
33
+ @import "../vendor/bootstrap/scss/print";
@@ -0,0 +1,24 @@
1
+ @import "mixins";
2
+
3
+ @import "bootstrap_no_utils";
4
+ @import "bootstrap_vue";
5
+
6
+ // Design Tokens
7
+ @import "tokens";
8
+
9
+ // Settings
10
+ @import "functions";
11
+ @import "variables";
12
+ @import "typescale/index";
13
+
14
+ // Body
15
+ @import "body";
16
+
17
+ // Typography
18
+ @import "typography";
19
+
20
+ // Components
21
+ @import "components";
22
+
23
+ // Themes
24
+ @import "themes";
@@ -1,4 +1,5 @@
1
- :root.tint-neutral-indigo {
1
+ :root.tint-neutral-indigo,
2
+ .ui-indigo-scope {
2
3
  --gl-color-neutral-0: #fff;
3
4
  --gl-color-neutral-10: #f9f8fa;
4
5
  --gl-color-neutral-50: #efebf2;
@@ -15,7 +16,8 @@
15
16
  --gl-color-neutral-1000: #0e0017;
16
17
  }
17
18
 
18
- :root.tint-neutral-blue {
19
+ :root.tint-neutral-blue,
20
+ .ui-blue-scope {
19
21
  --gl-color-neutral-0: #fff;
20
22
  --gl-color-neutral-10: #f8f8fa;
21
23
  --gl-color-neutral-50: #e9ebf0;
@@ -32,7 +34,8 @@
32
34
  --gl-color-neutral-1000: #010415;
33
35
  }
34
36
 
35
- :root.tint-neutral-green {
37
+ :root.tint-neutral-green,
38
+ .ui-green-scope {
36
39
  --gl-color-neutral-0: #fff;
37
40
  --gl-color-neutral-10: #f7f9f8;
38
41
  --gl-color-neutral-50: #e6edeb;
@@ -49,7 +52,8 @@
49
52
  --gl-color-neutral-1000: #000603;
50
53
  }
51
54
 
52
- :root.tint-neutral-red {
55
+ :root.tint-neutral-red,
56
+ .ui-red-scope {
53
57
  --gl-color-neutral-0: #fff;
54
58
  --gl-color-neutral-10: #fbf7f9;
55
59
  --gl-color-neutral-50: #f4eaee;
@@ -66,7 +70,8 @@
66
70
  --gl-color-neutral-1000: #100106;
67
71
  }
68
72
 
69
- :root.tint-neutral-gray {
73
+ :root.tint-neutral-gray,
74
+ .ui-gray-scope {
70
75
  --gl-color-neutral-0: #fff;
71
76
  --gl-color-neutral-10: #f8f8f8;
72
77
  --gl-color-neutral-50: #ececec;