@gitlab/ui 117.1.0 → 118.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/base/illustration/illustration.js +80 -0
- package/dist/components/index.js +1 -0
- package/dist/index.css +2 -2
- package/dist/index.css.map +1 -1
- package/package.json +1 -1
- package/src/components/base/breadcrumb/breadcrumb.scss +2 -4
- package/src/components/base/button/button.scss +46 -200
- package/src/components/base/dropdown/dropdown.scss +6 -18
- package/src/components/base/illustration/illustration.vue +56 -0
- package/src/components/base/label/label.scss +2 -5
- package/src/components/base/search_box_by_click/search_box_by_click.scss +2 -12
- package/src/components/base/token_selector/token_selector.vue +27 -30
- package/src/components/index.js +1 -0
- package/src/scss/storybook.scss +0 -4
- package/src/scss/variables.scss +0 -3
package/package.json
CHANGED
|
@@ -1,22 +1,6 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Button-specific utilities
|
|
3
3
|
*/
|
|
4
|
-
@mixin gl-button-border($color) {
|
|
5
|
-
box-shadow: inset 0 0 0 $gl-border-size-1 $color;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
@mixin gl-button-hover-border($color) {
|
|
9
|
-
box-shadow: inset 0 0 0 $gl-border-size-2 $color;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
@mixin gl-button-selected-border($color, $focus-ring: null) {
|
|
13
|
-
@if $focus-ring {
|
|
14
|
-
box-shadow: inset 0 0 0 $gl-border-size-2 $color, $focus-ring;
|
|
15
|
-
} @else {
|
|
16
|
-
box-shadow: inset 0 0 0 $gl-border-size-2 $color;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
4
|
@mixin gl-button-theme(
|
|
21
5
|
$color: null,
|
|
22
6
|
$background-color: null,
|
|
@@ -33,11 +17,7 @@
|
|
|
33
17
|
) {
|
|
34
18
|
color: $color;
|
|
35
19
|
background-color: $background-color;
|
|
36
|
-
|
|
37
|
-
border-color: $border-color;
|
|
38
|
-
} @else {
|
|
39
|
-
@include gl-button-border($border-color);
|
|
40
|
-
}
|
|
20
|
+
border-color: $border-color;
|
|
41
21
|
|
|
42
22
|
&::before {
|
|
43
23
|
background-color: $border-color;
|
|
@@ -48,42 +28,24 @@
|
|
|
48
28
|
&:hover {
|
|
49
29
|
color: $hover-color;
|
|
50
30
|
background-color: $hover-background-color;
|
|
51
|
-
|
|
52
|
-
border-color: $hover-border-color;
|
|
53
|
-
} @else {
|
|
54
|
-
@include gl-button-hover-border($hover-border-color);
|
|
55
|
-
}
|
|
31
|
+
border-color: $hover-border-color;
|
|
56
32
|
}
|
|
57
33
|
|
|
58
34
|
&:focus {
|
|
59
35
|
color: $focus-color;
|
|
60
36
|
background-color: $focus-background-color;
|
|
61
|
-
|
|
62
|
-
border-color: $focus-border-color;
|
|
63
|
-
} @else {
|
|
64
|
-
@include gl-focus($color: $focus-border-color);
|
|
65
|
-
}
|
|
37
|
+
border-color: $focus-border-color;
|
|
66
38
|
}
|
|
67
39
|
|
|
68
40
|
&:active,
|
|
69
41
|
&.active {
|
|
70
42
|
color: $active-color;
|
|
71
43
|
background-color: $active-background-color;
|
|
72
|
-
|
|
73
|
-
border-color: $active-border-color;
|
|
74
|
-
} @else {
|
|
75
|
-
@include gl-focus($color: $focus-border-color);
|
|
76
|
-
}
|
|
44
|
+
border-color: $active-border-color;
|
|
77
45
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
@apply gl-focus;
|
|
82
|
-
}
|
|
83
|
-
} @else {
|
|
84
|
-
&:focus {
|
|
85
|
-
@include gl-focus($color: $active-border-color);
|
|
86
|
-
}
|
|
46
|
+
:focus,
|
|
47
|
+
&:focus:active {
|
|
48
|
+
@apply gl-focus;
|
|
87
49
|
}
|
|
88
50
|
}
|
|
89
51
|
}
|
|
@@ -112,32 +74,20 @@
|
|
|
112
74
|
@apply gl-items-center;
|
|
113
75
|
@apply gl-text-base;
|
|
114
76
|
|
|
115
|
-
@
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
@include gl-prefers-reduced-motion-transition;
|
|
126
|
-
} @else {
|
|
127
|
-
@apply gl-border-0;
|
|
128
|
-
@apply gl-py-3;
|
|
129
|
-
@include gl-button-border(var(--gl-button-default-primary-border-color-default));
|
|
130
|
-
}
|
|
77
|
+
@apply gl-py-0;
|
|
78
|
+
border: $gl-border-size-1 solid var(--gl-button-default-primary-border-color-default);
|
|
79
|
+
min-height: $gl-button-medium-size;
|
|
80
|
+
min-width: $gl-button-medium-size;
|
|
81
|
+
transition: color $gl-transition-duration-medium $gl-easing-out-cubic,
|
|
82
|
+
background-color $gl-transition-duration-medium $gl-easing-out-cubic,
|
|
83
|
+
border-color $gl-transition-duration-medium $gl-easing-out-cubic,
|
|
84
|
+
box-shadow $gl-transition-duration-medium $gl-easing-out-cubic,
|
|
85
|
+
text-decoration-color $gl-transition-duration-medium $gl-easing-out-cubic;
|
|
86
|
+
@include gl-prefers-reduced-motion-transition;
|
|
131
87
|
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
@apply gl-focus;
|
|
136
|
-
}
|
|
137
|
-
} @else {
|
|
138
|
-
@media (forced-colors: active) {
|
|
139
|
-
border: 1px solid;
|
|
140
|
-
}
|
|
88
|
+
&:focus,
|
|
89
|
+
&:focus:active {
|
|
90
|
+
@apply gl-focus;
|
|
141
91
|
}
|
|
142
92
|
|
|
143
93
|
.gl-button-text {
|
|
@@ -195,23 +145,15 @@
|
|
|
195
145
|
background-color: var(--gl-button-selected-border-color-default);
|
|
196
146
|
}
|
|
197
147
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-button-selected-border-color-default);
|
|
202
|
-
} @else {
|
|
203
|
-
@include gl-button-selected-border(var(--gl-button-selected-border-color-default));
|
|
204
|
-
}
|
|
148
|
+
border-width: $gl-border-size-1;
|
|
149
|
+
border-color: var(--gl-button-selected-border-color-default);
|
|
150
|
+
box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-button-selected-border-color-default);
|
|
205
151
|
|
|
206
152
|
&:hover {
|
|
207
153
|
color: var(--gl-button-selected-foreground-color-hover);
|
|
208
154
|
background-color: var(--gl-button-selected-background-color-hover);
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-button-selected-border-color-hover);
|
|
212
|
-
} @else {
|
|
213
|
-
@include gl-button-selected-border(var(--gl-button-selected-border-color-hover));
|
|
214
|
-
}
|
|
155
|
+
border-color: var(--gl-button-selected-border-color-hover);
|
|
156
|
+
box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-button-selected-border-color-hover);
|
|
215
157
|
}
|
|
216
158
|
|
|
217
159
|
&:hover::before,
|
|
@@ -223,11 +165,7 @@
|
|
|
223
165
|
color: var(--gl-button-selected-foreground-color-focus);
|
|
224
166
|
background-color: var(--gl-button-selected-background-color-focus);
|
|
225
167
|
@apply gl-focus;
|
|
226
|
-
|
|
227
|
-
border-color: var(--gl-button-selected-border-color-focus);
|
|
228
|
-
} @else {
|
|
229
|
-
@include gl-button-selected-border(var(--gl-button-selected-border-color-focus), $focus-ring);
|
|
230
|
-
}
|
|
168
|
+
border-color: var(--gl-button-selected-border-color-focus);
|
|
231
169
|
}
|
|
232
170
|
|
|
233
171
|
&:focus::before,
|
|
@@ -240,15 +178,7 @@
|
|
|
240
178
|
color: var(--gl-button-selected-foreground-color-active);
|
|
241
179
|
background-color: var(--gl-button-selected-background-color-active);
|
|
242
180
|
box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-button-selected-border-color-active);
|
|
243
|
-
|
|
244
|
-
border-color: var(--gl-button-selected-border-color-active);
|
|
245
|
-
} @else {
|
|
246
|
-
@include gl-button-selected-border(var(--gl-button-selected-border-color-active), $focus-ring);
|
|
247
|
-
|
|
248
|
-
&:focus {
|
|
249
|
-
@include gl-button-selected-border(var(--gl-button-selected-border-color-active), $focus-ring);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
181
|
+
border-color: var(--gl-button-selected-border-color-active);
|
|
252
182
|
}
|
|
253
183
|
|
|
254
184
|
&:active::before,
|
|
@@ -403,27 +333,11 @@
|
|
|
403
333
|
&.btn-confirm,
|
|
404
334
|
&.btn-danger {
|
|
405
335
|
&-tertiary {
|
|
406
|
-
@if not $feature-button-border {
|
|
407
|
-
@apply gl-shadow-none;
|
|
408
|
-
}
|
|
409
|
-
|
|
410
336
|
@media (forced-colors: active) {
|
|
411
337
|
color: LinkText; // stylelint-disable-line scale-unlimited/declaration-strict-value
|
|
412
338
|
mix-blend-mode: initial;
|
|
413
339
|
border: 0;
|
|
414
340
|
}
|
|
415
|
-
|
|
416
|
-
@if not $feature-button-border {
|
|
417
|
-
&:hover {
|
|
418
|
-
@apply gl-shadow-none;
|
|
419
|
-
}
|
|
420
|
-
|
|
421
|
-
&:active,
|
|
422
|
-
&:focus,
|
|
423
|
-
&:focus:active {
|
|
424
|
-
@apply gl-focus;
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
341
|
}
|
|
428
342
|
}
|
|
429
343
|
|
|
@@ -441,12 +355,8 @@
|
|
|
441
355
|
@apply gl-px-3;
|
|
442
356
|
@apply gl-leading-normal;
|
|
443
357
|
@apply gl-text-base;
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
min-width: $gl-button-small-size;
|
|
447
|
-
} @else {
|
|
448
|
-
@apply gl-py-2;
|
|
449
|
-
}
|
|
358
|
+
min-height: $gl-button-small-size;
|
|
359
|
+
min-width: $gl-button-small-size;
|
|
450
360
|
|
|
451
361
|
gl-emoji {
|
|
452
362
|
@apply gl-text-sm;
|
|
@@ -455,81 +365,37 @@
|
|
|
455
365
|
|
|
456
366
|
&.btn-dashed,
|
|
457
367
|
&.btn-dashed-tertiary {
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
border-color: var(--gl-button-dashed-border-color-default);
|
|
461
|
-
} @else {
|
|
462
|
-
@include gl-button-border(var(--gl-button-dashed-border-color-default));
|
|
463
|
-
outline: 3px dotted var(--gl-background-color-default);
|
|
464
|
-
outline-offset: (-$gl-border-size-1);
|
|
465
|
-
}
|
|
368
|
+
border-style: dashed;
|
|
369
|
+
border-color: var(--gl-button-dashed-border-color-default);
|
|
466
370
|
|
|
467
371
|
&:hover {
|
|
468
|
-
|
|
469
|
-
border-color: var(--gl-button-dashed-border-color-hover);
|
|
470
|
-
} @else {
|
|
471
|
-
@include gl-button-border($color: var(--gl-button-dashed-border-color-hover));
|
|
472
|
-
outline: 3px dotted var(--gl-background-color-default);
|
|
473
|
-
outline-offset: (-$gl-border-size-1);
|
|
474
|
-
}
|
|
372
|
+
border-color: var(--gl-button-dashed-border-color-hover);
|
|
475
373
|
}
|
|
476
374
|
|
|
477
375
|
&:focus {
|
|
478
|
-
|
|
479
|
-
border-color: var(--gl-button-dashed-border-color-focus);
|
|
480
|
-
} @else {
|
|
481
|
-
outline: 3px dotted var(--gl-background-color-default);
|
|
482
|
-
outline-offset: (-$gl-border-size-1);
|
|
483
|
-
@include gl-focus($color: var(--gl-button-dashed-border-color-focus));
|
|
484
|
-
}
|
|
376
|
+
border-color: var(--gl-button-dashed-border-color-focus);
|
|
485
377
|
}
|
|
486
378
|
|
|
487
379
|
&:active,
|
|
488
380
|
&.active {
|
|
489
|
-
|
|
490
|
-
border-color: var(--gl-button-dashed-border-color-active);
|
|
491
|
-
} @else {
|
|
492
|
-
outline: 3px dotted var(--gl-background-color-default);
|
|
493
|
-
outline-offset: (-$gl-border-size-1);
|
|
494
|
-
@include gl-focus($color: var(--gl-button-dashed-border-color-active));
|
|
495
|
-
|
|
496
|
-
&:focus {
|
|
497
|
-
outline: 3px dotted var(--gl-background-color-default);
|
|
498
|
-
outline-offset: (-$gl-border-size-1);
|
|
499
|
-
@include gl-focus($color: var(--gl-button-dashed-border-color-active));
|
|
500
|
-
}
|
|
501
|
-
}
|
|
381
|
+
border-color: var(--gl-button-dashed-border-color-active);
|
|
502
382
|
}
|
|
503
383
|
}
|
|
504
384
|
|
|
505
385
|
&.btn-icon {
|
|
506
386
|
@apply gl-leading-normal;
|
|
507
|
-
@
|
|
508
|
-
@apply gl-p-0;
|
|
509
|
-
} @else {
|
|
510
|
-
@apply gl-p-3;
|
|
511
|
-
}
|
|
387
|
+
@apply gl-p-0;
|
|
512
388
|
|
|
513
389
|
.gl-button-icon {
|
|
514
390
|
@apply gl-mr-0;
|
|
515
391
|
}
|
|
516
|
-
|
|
517
|
-
@if not $feature-button-border {
|
|
518
|
-
&.btn-sm {
|
|
519
|
-
@apply gl-p-2;
|
|
520
|
-
}
|
|
521
|
-
}
|
|
522
392
|
}
|
|
523
393
|
|
|
524
394
|
&.button-ellipsis-horizontal,
|
|
525
395
|
&.button-ellipsis-horizontal.btn-sm {
|
|
526
396
|
@apply gl-px-2;
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
min-width: auto;
|
|
530
|
-
} @else {
|
|
531
|
-
@apply gl-py-0;
|
|
532
|
-
}
|
|
397
|
+
min-height: auto;
|
|
398
|
+
min-width: auto;
|
|
533
399
|
|
|
534
400
|
svg {
|
|
535
401
|
@apply gl-h-5;
|
|
@@ -553,43 +419,28 @@
|
|
|
553
419
|
@apply gl-text-base;
|
|
554
420
|
@apply gl-leading-normal;
|
|
555
421
|
color: var(--gl-button-link-text-color-default);
|
|
556
|
-
@
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
text-decoration-color: transparent;
|
|
563
|
-
} @else {
|
|
564
|
-
@apply gl-py-0;
|
|
565
|
-
@apply gl-px-0;
|
|
566
|
-
@apply gl-shadow-none;
|
|
567
|
-
}
|
|
422
|
+
@apply gl-px-0;
|
|
423
|
+
min-height: auto;
|
|
424
|
+
min-width: auto;
|
|
425
|
+
text-decoration-thickness: auto;
|
|
426
|
+
text-decoration-style: solid;
|
|
427
|
+
text-decoration-color: transparent;
|
|
568
428
|
|
|
569
429
|
&:hover {
|
|
570
430
|
@apply gl-bg-transparent;
|
|
571
431
|
color: var(--gl-button-link-text-color-hover);
|
|
572
|
-
|
|
573
|
-
text-decoration-color: var(--gl-button-link-text-color-hover);
|
|
574
|
-
}
|
|
432
|
+
text-decoration-color: var(--gl-button-link-text-color-hover);
|
|
575
433
|
}
|
|
576
434
|
|
|
577
435
|
&:active {
|
|
578
436
|
color: var(--gl-button-link-text-color-active);
|
|
579
|
-
|
|
580
|
-
text-decoration-color: var(--gl-button-link-text-color-active);
|
|
581
|
-
} @else {
|
|
582
|
-
@apply gl-underline;
|
|
583
|
-
}
|
|
437
|
+
text-decoration-color: var(--gl-button-link-text-color-active);
|
|
584
438
|
}
|
|
585
439
|
|
|
586
440
|
&:active,
|
|
587
441
|
&:focus,
|
|
588
442
|
&:focus:active {
|
|
589
443
|
@apply gl-bg-transparent;
|
|
590
|
-
@if not $feature-button-border {
|
|
591
|
-
@apply gl-focus;
|
|
592
|
-
}
|
|
593
444
|
}
|
|
594
445
|
|
|
595
446
|
&.disabled,
|
|
@@ -620,18 +471,13 @@
|
|
|
620
471
|
&[disabled].selected {
|
|
621
472
|
background-color: var(--gl-button-disabled-background-color);
|
|
622
473
|
color: var(--gl-button-disabled-foreground-color);
|
|
474
|
+
border-color: var(--gl-button-disabled-border-color);
|
|
623
475
|
opacity: 1;
|
|
624
476
|
cursor: not-allowed !important;
|
|
625
477
|
|
|
626
478
|
&::before {
|
|
627
479
|
background-color: var(--gl-button-disabled-border-color);
|
|
628
480
|
}
|
|
629
|
-
|
|
630
|
-
@if $feature-button-border {
|
|
631
|
-
border-color: var(--gl-button-disabled-border-color);
|
|
632
|
-
} @else {
|
|
633
|
-
@include gl-button-border(var(--gl-button-disabled-border-color));
|
|
634
|
-
}
|
|
635
481
|
}
|
|
636
482
|
|
|
637
483
|
&.disabled[class*='-tertiary'],
|
|
@@ -96,21 +96,11 @@
|
|
|
96
96
|
@include mask-chevron-down;
|
|
97
97
|
}
|
|
98
98
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
@apply gl-px-0;
|
|
102
|
-
|
|
103
|
-
&.btn-sm {
|
|
104
|
-
@apply gl-px-0;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
} @else {
|
|
108
|
-
&.gl-button {
|
|
109
|
-
@apply gl-px-3;
|
|
99
|
+
&.gl-button {
|
|
100
|
+
@apply gl-px-0;
|
|
110
101
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
}
|
|
102
|
+
&.btn-sm {
|
|
103
|
+
@apply gl-px-0;
|
|
114
104
|
}
|
|
115
105
|
}
|
|
116
106
|
}
|
|
@@ -167,10 +157,8 @@
|
|
|
167
157
|
}
|
|
168
158
|
|
|
169
159
|
.dropdown-icon-only {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
padding: 0 !important;
|
|
173
|
-
}
|
|
160
|
+
&.dropdown-toggle-no-caret {
|
|
161
|
+
padding: 0 !important;
|
|
174
162
|
}
|
|
175
163
|
|
|
176
164
|
.dropdown-icon,
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
<!-- eslint-disable vue/multi-word-component-names -->
|
|
2
|
+
<script>
|
|
3
|
+
import illustrationsPath from '@gitlab/svgs/dist/illustrations.svg';
|
|
4
|
+
import illustrationsInfo from '@gitlab/svgs/dist/illustrations.json';
|
|
5
|
+
|
|
6
|
+
const knownIllustrations = illustrationsInfo.icons;
|
|
7
|
+
|
|
8
|
+
/** This is a re-usable vue component for rendering a svg sprite icon
|
|
9
|
+
* @example
|
|
10
|
+
* <illustration
|
|
11
|
+
* name="status-success-sm"
|
|
12
|
+
* />
|
|
13
|
+
*/
|
|
14
|
+
export default {
|
|
15
|
+
name: 'GlIllustration',
|
|
16
|
+
props: {
|
|
17
|
+
/**
|
|
18
|
+
* One of the illustrations from https://gitlab-org.gitlab.io/gitlab-svgs/ project
|
|
19
|
+
*/
|
|
20
|
+
name: {
|
|
21
|
+
type: String,
|
|
22
|
+
required: true,
|
|
23
|
+
validator: (value) => {
|
|
24
|
+
if (knownIllustrations.some((obj) => obj.name === value)) {
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
// eslint-disable-next-line no-console
|
|
28
|
+
console.warn(`Illustration '${value}' is not a known illustration of @gitlab/svgs`);
|
|
29
|
+
return false;
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
computed: {
|
|
34
|
+
spriteHref() {
|
|
35
|
+
return `${illustrationsPath}#${this.name}`;
|
|
36
|
+
},
|
|
37
|
+
illustrationSize() {
|
|
38
|
+
return knownIllustrations.find((obj) => obj.name === this.name).svg_size;
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
</script>
|
|
43
|
+
|
|
44
|
+
<template>
|
|
45
|
+
<svg
|
|
46
|
+
:key="spriteHref"
|
|
47
|
+
:data-testid="`${name}-illustration`"
|
|
48
|
+
aria-label=""
|
|
49
|
+
role="presentation"
|
|
50
|
+
:width="illustrationSize"
|
|
51
|
+
:height="illustrationSize"
|
|
52
|
+
v-on="$listeners"
|
|
53
|
+
>
|
|
54
|
+
<use :href="spriteHref" />
|
|
55
|
+
</svg>
|
|
56
|
+
</template>
|
|
@@ -68,17 +68,14 @@ $label-padding-horizontal-half: 0.375 * $grid-size;
|
|
|
68
68
|
@apply gl-flex;
|
|
69
69
|
width: px-to-rem(14px);
|
|
70
70
|
height: px-to-rem(14px);
|
|
71
|
+
min-height: auto !important;
|
|
72
|
+
min-width: auto !important;
|
|
71
73
|
margin-left: -$label-padding-horizontal-half;
|
|
72
74
|
margin-right: $label-padding-horizontal-half;
|
|
73
75
|
@apply gl-p-0;
|
|
74
76
|
@apply gl-rounded-full;
|
|
75
77
|
@apply gl-shadow-none;
|
|
76
78
|
|
|
77
|
-
@if $feature-button-border {
|
|
78
|
-
min-height: auto !important;
|
|
79
|
-
min-width: auto !important;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
79
|
&:focus,
|
|
83
80
|
&:active {
|
|
84
81
|
@apply gl-focus;
|
|
@@ -11,21 +11,11 @@
|
|
|
11
11
|
.gl-search-box-by-click-history > .gl-button,
|
|
12
12
|
.gl-search-box-by-click-search-button.gl-button {
|
|
13
13
|
background-color: var(--gl-control-background-color-default);
|
|
14
|
-
|
|
15
|
-
@if $feature-button-border {
|
|
16
|
-
border-color: var(--gl-control-border-color-default) !important;
|
|
17
|
-
} @else {
|
|
18
|
-
box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-control-border-color-default) !important;
|
|
19
|
-
}
|
|
14
|
+
border-color: var(--gl-control-border-color-default) !important;
|
|
20
15
|
|
|
21
16
|
&:disabled {
|
|
22
17
|
background: var(--gl-control-background-color-disabled);
|
|
23
|
-
|
|
24
|
-
@if $feature-button-border {
|
|
25
|
-
border-color: var(--gl-control-border-color-disabled) !important;
|
|
26
|
-
} @else {
|
|
27
|
-
box-shadow: inset 0 0 0 $gl-border-size-1 var(--gl-control-border-color-disabled) !important;
|
|
28
|
-
}
|
|
18
|
+
border-color: var(--gl-control-border-color-disabled) !important;
|
|
29
19
|
}
|
|
30
20
|
}
|
|
31
21
|
|
|
@@ -414,12 +414,11 @@ export default {
|
|
|
414
414
|
@cancel-focus="cancelTokenFocus"
|
|
415
415
|
@clear-all="clearAll"
|
|
416
416
|
>
|
|
417
|
-
<template #token-content="{ token }"
|
|
418
|
-
|
|
419
|
-
to add an avatar to the token. Default content is "{{ token.name }}".
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
<slot name="token-content" :token="token"></slot>
|
|
417
|
+
<template #token-content="{ token }"
|
|
418
|
+
><!--
|
|
419
|
+
@slot Content to pass to the token component slot. Can be used to add an avatar to the token. Default content is "{{ token.name }}".
|
|
420
|
+
@binding {object} token
|
|
421
|
+
--><slot name="token-content" :token="token"></slot>
|
|
423
422
|
</template>
|
|
424
423
|
<template #text-input>
|
|
425
424
|
<!-- Can't use `v-model` due to this bug: -->
|
|
@@ -465,34 +464,32 @@ export default {
|
|
|
465
464
|
@dropdown-item-click="addToken"
|
|
466
465
|
@show="openDropdown"
|
|
467
466
|
>
|
|
468
|
-
<template #loading-content
|
|
469
|
-
|
|
470
|
-
content is "Searching..."
|
|
471
|
-
|
|
467
|
+
<template #loading-content
|
|
468
|
+
><!--
|
|
469
|
+
@slot Content to display when `loading` prop is `true`. Default content is "Searching..."
|
|
470
|
+
--><slot name="loading-content"></slot>
|
|
472
471
|
</template>
|
|
473
|
-
<template #user-defined-token-content
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
472
|
+
<template #user-defined-token-content
|
|
473
|
+
><!--
|
|
474
|
+
@slot Content to display when adding a user defined token. Default content is 'Add "{{ inputText }}"'.
|
|
475
|
+
@binding {string} inputText
|
|
476
|
+
--><slot name="user-defined-token-content" :input-text="inputText"></slot>
|
|
478
477
|
</template>
|
|
479
|
-
<template #no-results-content
|
|
480
|
-
|
|
481
|
-
both `allow-user-defined-tokens` and `show-add-new-always` is `false`. Default content is "No matches found".
|
|
482
|
-
|
|
478
|
+
<template #no-results-content
|
|
479
|
+
><!--
|
|
480
|
+
@slot Content to display when `dropdown-items` is empty and both `allow-user-defined-tokens` and `show-add-new-always` is `false`. Default content is "No matches found".
|
|
481
|
+
--><slot name="no-results-content"></slot>
|
|
483
482
|
</template>
|
|
484
|
-
<template #dropdown-item-content="{ dropdownItem }"
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
483
|
+
<template #dropdown-item-content="{ dropdownItem }"
|
|
484
|
+
><!--
|
|
485
|
+
@slot Dropdown item content. Default content is "{{ dropdownItem.name }}".
|
|
486
|
+
@binding {object} dropdownItem
|
|
487
|
+
--><slot name="dropdown-item-content" :dropdown-item="dropdownItem"></slot>
|
|
489
488
|
</template>
|
|
490
|
-
<template #dropdown-footer
|
|
491
|
-
|
|
492
|
-
Can be used in conjunction with `gl-intersection-observer` to load
|
|
493
|
-
|
|
494
|
-
-->
|
|
495
|
-
<slot name="dropdown-footer"></slot>
|
|
489
|
+
<template #dropdown-footer
|
|
490
|
+
><!--
|
|
491
|
+
@slot Content to add to the bottom of the dropdown. Can be used in conjunction with `gl-intersection-observer` to load more items as the user scrolls.
|
|
492
|
+
--><slot name="dropdown-footer"></slot>
|
|
496
493
|
</template>
|
|
497
494
|
</gl-token-selector-dropdown>
|
|
498
495
|
</div>
|
package/src/components/index.js
CHANGED
|
@@ -8,6 +8,7 @@ export { default as GlTokenSelector } from './base/token_selector/token_selector
|
|
|
8
8
|
export { default as GlMarkdown } from './base/markdown/markdown.vue';
|
|
9
9
|
export { default as GlLink, default as GlDeprecatedLink } from './base/link/link.vue';
|
|
10
10
|
export { default as GlIcon } from './base/icon/icon.vue';
|
|
11
|
+
export { default as GlIllustration } from './base/illustration/illustration.vue';
|
|
11
12
|
export { default as GlAnimatedChevronRightDownIcon } from './base/animated_icon/animated_chevron_right_down_icon.vue';
|
|
12
13
|
export { default as GlAnimatedChevronLgRightDownIcon } from './base/animated_icon/animated_chevron_lg_right_down_icon.vue';
|
|
13
14
|
export { default as GlAnimatedChevronDownUpIcon } from './base/animated_icon/animated_chevron_down_up_icon.vue';
|
package/src/scss/storybook.scss
CHANGED