@gitlab/ui 76.0.1 → 77.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/components/experimental/duo/chat/duo_chat.js +1 -1
  3. package/dist/index.css.map +1 -1
  4. package/dist/tokens/common_story_options.js +28 -8
  5. package/dist/tokens/css/tokens.css +4 -1
  6. package/dist/tokens/css/tokens.dark.css +1 -1
  7. package/dist/tokens/js/tokens.dark.js +1 -1
  8. package/dist/tokens/js/tokens.js +4 -1
  9. package/dist/tokens/json/tokens.dark.grouped.json +4 -1
  10. package/dist/tokens/json/tokens.dark.json +56 -0
  11. package/dist/tokens/json/tokens.grouped.json +4 -1
  12. package/dist/tokens/json/tokens.json +56 -0
  13. package/dist/tokens/scss/_tokens.dark.scss +1 -1
  14. package/dist/tokens/scss/_tokens.scss +4 -1
  15. package/dist/utility_classes.css +1 -1
  16. package/dist/utility_classes.css.map +1 -1
  17. package/package.json +1 -1
  18. package/src/components/base/alert/alert.scss +7 -7
  19. package/src/components/base/badge/badge.scss +1 -1
  20. package/src/components/base/banner/banner.scss +3 -3
  21. package/src/components/base/button/button.scss +2 -2
  22. package/src/components/base/card/card.scss +1 -1
  23. package/src/components/base/datepicker/datepicker.scss +5 -5
  24. package/src/components/base/drawer/drawer.scss +10 -10
  25. package/src/components/base/dropdown/dropdown_item.scss +1 -1
  26. package/src/components/base/filtered_search/filtered_search_suggestion_list.scss +1 -1
  27. package/src/components/base/form/form_checkbox/form_checkbox.scss +3 -3
  28. package/src/components/base/label/label.scss +1 -1
  29. package/src/components/base/loading_icon/loading_icon.scss +1 -1
  30. package/src/components/base/modal/modal.scss +1 -1
  31. package/src/components/base/new_dropdowns/dropdown.scss +1 -1
  32. package/src/components/base/new_dropdowns/dropdown_item.scss +1 -1
  33. package/src/components/base/new_dropdowns/listbox/listbox.scss +3 -3
  34. package/src/components/base/path/path.scss +8 -8
  35. package/src/components/base/search_box_by_click/search_box_by_click.scss +7 -7
  36. package/src/components/base/search_box_by_type/search_box_by_type.scss +5 -5
  37. package/src/components/base/tabs/tabs/tabs.scss +5 -5
  38. package/src/components/base/toast/toast.scss +5 -5
  39. package/src/components/base/toggle/toggle.scss +4 -4
  40. package/src/components/charts/heatmap/heatmap.scss +1 -1
  41. package/src/components/charts/legend/legend.scss +3 -3
  42. package/src/components/charts/tooltip/tooltip.scss +1 -1
  43. package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.scss +3 -3
  44. package/src/components/experimental/duo/chat/duo_chat.vue +2 -2
  45. package/src/scss/tailwind.css +1 -0
  46. package/src/scss/utilities.scss +24 -430
  47. package/src/scss/utility-mixins/{appearance.scss → deprecated.scss} +9 -0
  48. package/src/scss/utility-mixins/index.scss +3 -2
  49. package/src/tokens/common_story_options.js +25 -5
  50. package/src/tokens/text.tokens.json +19 -0
  51. package/src/tokens/text.tokens.stories.js +15 -0
  52. package/src/scss/utility-mixins/position.scss +0 -223
@@ -122,24 +122,6 @@ $gl-animate-skeleton-loader-max-width: 64 * $grid-size;
122
122
  animation-iteration-count: 3 !important;
123
123
  }
124
124
  }
125
- .gl-number-as-text-input {
126
- &::-webkit-outer-spin-button,
127
- &::-webkit-inner-spin-button {
128
- -webkit-appearance: none;
129
- margin: 0;
130
- }
131
-
132
- -moz-appearance: textfield;
133
- }
134
- .gl-number-as-text-input\! {
135
- &::-webkit-outer-spin-button,
136
- &::-webkit-inner-spin-button {
137
- -webkit-appearance: none !important;
138
- margin: 0 !important;
139
- }
140
-
141
- -moz-appearance: textfield !important;
142
- }
143
125
  .gl-bg-transparent {
144
126
  background-color: transparent
145
127
  }
@@ -3010,6 +2992,30 @@ $gl-animate-skeleton-loader-max-width: 64 * $grid-size;
3010
2992
  .gl-cursor-help\! {
3011
2993
  cursor: help !important
3012
2994
  }
2995
+ .gl-deprecated-top-66vh {
2996
+ top: 66vh;
2997
+ }
2998
+ .gl-deprecated-top-66vh\! {
2999
+ top: 66vh !important;
3000
+ }
3001
+ .gl-number-as-text-input {
3002
+ &::-webkit-outer-spin-button,
3003
+ &::-webkit-inner-spin-button {
3004
+ -webkit-appearance: none;
3005
+ margin: 0;
3006
+ }
3007
+
3008
+ -moz-appearance: textfield;
3009
+ }
3010
+ .gl-number-as-text-input\! {
3011
+ &::-webkit-outer-spin-button,
3012
+ &::-webkit-inner-spin-button {
3013
+ -webkit-appearance: none !important;
3014
+ margin: 0 !important;
3015
+ }
3016
+
3017
+ -moz-appearance: textfield !important;
3018
+ }
3013
3019
  .gl-display-none {
3014
3020
  display: none;
3015
3021
  }
@@ -4157,7 +4163,6 @@ $gl-animate-skeleton-loader-max-width: 64 * $grid-size;
4157
4163
  .gl-object-fit-contain\! {
4158
4164
  object-fit: contain !important
4159
4165
  }
4160
-
4161
4166
  .gl-list-style-none {
4162
4167
  list-style-type: none
4163
4168
  }
@@ -4337,417 +4342,6 @@ $gl-animate-skeleton-loader-max-width: 64 * $grid-size;
4337
4342
  .gl-pointer-events-auto\! {
4338
4343
  pointer-events: auto !important
4339
4344
  }
4340
- .gl-relative {
4341
- position: relative;
4342
- }
4343
-
4344
- .gl-relative\! {
4345
- position: relative !important;
4346
- }
4347
-
4348
- .gl-absolute {
4349
- position: absolute;
4350
- }
4351
-
4352
- .gl-absolute\! {
4353
- position: absolute !important;
4354
- }
4355
-
4356
- .gl-static {
4357
- position: static;
4358
- }
4359
-
4360
- .gl-static\! {
4361
- position: static !important;
4362
- }
4363
-
4364
- .gl-fixed {
4365
- position: fixed;
4366
- }
4367
-
4368
- .gl-fixed\! {
4369
- position: fixed !important;
4370
- }
4371
-
4372
- .gl-sticky {
4373
- position: sticky;
4374
- }
4375
-
4376
- .gl-sticky\! {
4377
- position: sticky !important;
4378
- }
4379
-
4380
- .gl-lg-sticky {
4381
- @include gl-media-breakpoint-up(lg) {
4382
- position: sticky;
4383
- }
4384
- }
4385
-
4386
- .gl-lg-sticky\! {
4387
- @include gl-media-breakpoint-up(lg) {
4388
- position: sticky !important;
4389
- }
4390
- }
4391
-
4392
- .gl-top-auto {
4393
- top: auto;
4394
- }
4395
-
4396
- .gl-top-auto\! {
4397
- top: auto !important;
4398
- }
4399
-
4400
- .gl-top-0 {
4401
- top: 0;
4402
- }
4403
-
4404
- .gl-top-0\! {
4405
- top: 0 !important;
4406
- }
4407
-
4408
- .gl-top-1 {
4409
- top: $gl-spacing-scale-1;
4410
- }
4411
-
4412
- .gl-top-1\! {
4413
- top: $gl-spacing-scale-1 !important;
4414
- }
4415
-
4416
- .gl-top-2 {
4417
- top: $gl-spacing-scale-2;
4418
- }
4419
-
4420
- .gl-top-2\! {
4421
- top: $gl-spacing-scale-2 !important;
4422
- }
4423
-
4424
- .gl-top-3 {
4425
- top: $gl-spacing-scale-3;
4426
- }
4427
-
4428
- .gl-top-3\! {
4429
- top: $gl-spacing-scale-3 !important;
4430
- }
4431
-
4432
- .gl-top-4 {
4433
- top: $gl-spacing-scale-4;
4434
- }
4435
-
4436
- .gl-top-4\! {
4437
- top: $gl-spacing-scale-4 !important;
4438
- }
4439
-
4440
- .gl-top-5 {
4441
- top: $gl-spacing-scale-5;
4442
- }
4443
-
4444
- .gl-top-5\! {
4445
- top: $gl-spacing-scale-5 !important;
4446
- }
4447
-
4448
- .gl-top-6 {
4449
- top: $gl-spacing-scale-6;
4450
- }
4451
-
4452
- .gl-top-6\! {
4453
- top: $gl-spacing-scale-6 !important;
4454
- }
4455
-
4456
- .gl-top-7 {
4457
- top: $gl-spacing-scale-7;
4458
- }
4459
-
4460
- .gl-top-7\! {
4461
- top: $gl-spacing-scale-7 !important;
4462
- }
4463
-
4464
- .gl-top-8 {
4465
- top: $gl-spacing-scale-8;
4466
- }
4467
-
4468
- .gl-top-8\! {
4469
- top: $gl-spacing-scale-8 !important;
4470
- }
4471
-
4472
- .gl-top-half {
4473
- top: 50%;
4474
- }
4475
-
4476
- .gl-top-half\! {
4477
- top: 50% !important;
4478
- }
4479
-
4480
- .gl-top-66vh {
4481
- top: 66vh;
4482
- }
4483
-
4484
- .gl-top-66vh\! {
4485
- top: 66vh !important;
4486
- }
4487
-
4488
- .gl-top-full {
4489
- top: 100%;
4490
- }
4491
-
4492
- .gl-top-full\! {
4493
- top: 100% !important;
4494
- }
4495
-
4496
- .gl-right-auto {
4497
- right: auto;
4498
- }
4499
-
4500
- .gl-right-auto\! {
4501
- right: auto !important;
4502
- }
4503
-
4504
- .gl-right-0 {
4505
- right: 0;
4506
- }
4507
-
4508
- .gl-right-0\! {
4509
- right: 0 !important;
4510
- }
4511
-
4512
- .gl-right-1 {
4513
- right: $gl-spacing-scale-1;
4514
- }
4515
-
4516
- .gl-right-1\! {
4517
- right: $gl-spacing-scale-1 !important;
4518
- }
4519
-
4520
- .gl-right-2 {
4521
- right: $gl-spacing-scale-2;
4522
- }
4523
-
4524
- .gl-right-2\! {
4525
- right: $gl-spacing-scale-2 !important;
4526
- }
4527
-
4528
- .gl-right-3 {
4529
- right: $gl-spacing-scale-3;
4530
- }
4531
-
4532
- .gl-right-3\! {
4533
- right: $gl-spacing-scale-3 !important;
4534
- }
4535
-
4536
- .gl-right-4 {
4537
- right: $gl-spacing-scale-4;
4538
- }
4539
-
4540
- .gl-right-4\! {
4541
- right: $gl-spacing-scale-4 !important;
4542
- }
4543
-
4544
- .gl-right-5 {
4545
- right: $gl-spacing-scale-5;
4546
- }
4547
-
4548
- .gl-right-5\! {
4549
- right: $gl-spacing-scale-5 !important;
4550
- }
4551
-
4552
- .gl-right-6 {
4553
- right: $gl-spacing-scale-6;
4554
- }
4555
-
4556
- .gl-right-6\! {
4557
- right: $gl-spacing-scale-6 !important;
4558
- }
4559
-
4560
- .gl-right-7 {
4561
- right: $gl-spacing-scale-7;
4562
- }
4563
-
4564
- .gl-right-7\! {
4565
- right: $gl-spacing-scale-7 !important;
4566
- }
4567
-
4568
- .gl-bottom-0 {
4569
- bottom: 0;
4570
- }
4571
-
4572
- .gl-bottom-0\! {
4573
- bottom: 0 !important;
4574
- }
4575
-
4576
- .gl-bottom-1 {
4577
- bottom: $gl-spacing-scale-1;
4578
- }
4579
-
4580
- .gl-bottom-1\! {
4581
- bottom: $gl-spacing-scale-1 !important;
4582
- }
4583
-
4584
- .gl-bottom-2 {
4585
- bottom: $gl-spacing-scale-2;
4586
- }
4587
-
4588
- .gl-bottom-2\! {
4589
- bottom: $gl-spacing-scale-2 !important;
4590
- }
4591
-
4592
- .gl-bottom-3 {
4593
- bottom: $gl-spacing-scale-3;
4594
- }
4595
-
4596
- .gl-bottom-3\! {
4597
- bottom: $gl-spacing-scale-3 !important;
4598
- }
4599
-
4600
- .gl-bottom-4 {
4601
- bottom: $gl-spacing-scale-4;
4602
- }
4603
-
4604
- .gl-bottom-4\! {
4605
- bottom: $gl-spacing-scale-4 !important;
4606
- }
4607
-
4608
- .gl-bottom-5 {
4609
- bottom: $gl-spacing-scale-5;
4610
- }
4611
-
4612
- .gl-bottom-5\! {
4613
- bottom: $gl-spacing-scale-5 !important;
4614
- }
4615
-
4616
- .gl-bottom-6 {
4617
- bottom: $gl-spacing-scale-6;
4618
- }
4619
-
4620
- .gl-bottom-6\! {
4621
- bottom: $gl-spacing-scale-6 !important;
4622
- }
4623
-
4624
- .gl-bottom-7 {
4625
- bottom: $gl-spacing-scale-7;
4626
- }
4627
-
4628
- .gl-bottom-7\! {
4629
- bottom: $gl-spacing-scale-7 !important;
4630
- }
4631
-
4632
- .gl-left-auto {
4633
- left: auto;
4634
- }
4635
-
4636
- .gl-left-auto\! {
4637
- left: auto !important;
4638
- }
4639
-
4640
- .gl-left-0 {
4641
- left: 0;
4642
- }
4643
-
4644
- .gl-left-0\! {
4645
- left: 0 !important;
4646
- }
4647
-
4648
- .gl-left-1 {
4649
- left: $gl-spacing-scale-1;
4650
- }
4651
-
4652
- .gl-left-1\! {
4653
- left: $gl-spacing-scale-1 !important;
4654
- }
4655
-
4656
- .gl-left-2 {
4657
- left: $gl-spacing-scale-2;
4658
- }
4659
-
4660
- .gl-left-2\! {
4661
- left: $gl-spacing-scale-2 !important;
4662
- }
4663
-
4664
- .gl-left-3 {
4665
- left: $gl-spacing-scale-3;
4666
- }
4667
-
4668
- .gl-left-3\! {
4669
- left: $gl-spacing-scale-3 !important;
4670
- }
4671
-
4672
- .gl-left-4 {
4673
- left: $gl-spacing-scale-4;
4674
- }
4675
-
4676
- .gl-left-4\! {
4677
- left: $gl-spacing-scale-4 !important;
4678
- }
4679
-
4680
- .gl-left-5 {
4681
- left: $gl-spacing-scale-5;
4682
- }
4683
-
4684
- .gl-left-5\! {
4685
- left: $gl-spacing-scale-5 !important;
4686
- }
4687
-
4688
- .gl-left-6 {
4689
- left: $gl-spacing-scale-6;
4690
- }
4691
-
4692
- .gl-left-6\! {
4693
- left: $gl-spacing-scale-6 !important;
4694
- }
4695
-
4696
- .gl-left-7 {
4697
- left: $gl-spacing-scale-7;
4698
- }
4699
-
4700
- .gl-left-7\! {
4701
- left: $gl-spacing-scale-7 !important;
4702
- }
4703
-
4704
- .gl-left-n5 {
4705
- left: -$gl-spacing-scale-5;
4706
- }
4707
-
4708
- .gl-left-n5\! {
4709
- left: -$gl-spacing-scale-5 !important;
4710
- }
4711
-
4712
- .gl-left-n37 {
4713
- left: -$gl-spacing-scale-37;
4714
- }
4715
-
4716
- .gl-left-n37\! {
4717
- left: -$gl-spacing-scale-37 !important;
4718
- }
4719
-
4720
- .gl-left-50p {
4721
- left: 50%;
4722
- }
4723
-
4724
- .gl-left-50p\! {
4725
- left: 50% !important;
4726
- }
4727
-
4728
- .gl-top-n5 {
4729
- top: -$gl-spacing-scale-5;
4730
- }
4731
-
4732
- .gl-top-n5\! {
4733
- top: -$gl-spacing-scale-5 !important;
4734
- }
4735
-
4736
- .gl-float-left {
4737
- float: left;
4738
- }
4739
-
4740
- .gl-float-left\! {
4741
- float: left !important;
4742
- }
4743
-
4744
- .gl-float-right {
4745
- float: right;
4746
- }
4747
-
4748
- .gl-float-right\! {
4749
- float: right !important;
4750
- }
4751
4345
  .gl-w-auto {
4752
4346
  width: auto;
4753
4347
  }
@@ -1,3 +1,12 @@
1
+ /**
2
+ * This file contains deprecated utility mixins that we don't have an immediate migration path for.
3
+ * Please do not add any mixin in here unless you're actively working on migrating to Tailwind CSS.
4
+ */
5
+
6
+ @mixin gl-deprecated-top-66vh {
7
+ top: 66vh;
8
+ }
9
+
1
10
  /* stylelint-disable property-no-vendor-prefix */
2
11
  @mixin gl-number-as-text-input {
3
12
  &::-webkit-outer-spin-button,
@@ -17,7 +17,6 @@
17
17
 
18
18
  @import './accessibility';
19
19
  @import './animation';
20
- @import './appearance';
21
20
  @import './background';
22
21
  @import './border';
23
22
  @import './box-shadow';
@@ -33,7 +32,6 @@
33
32
  @import './outline';
34
33
  @import './overflow';
35
34
  @import './pointer-events';
36
- @import './position';
37
35
  @import './sizing';
38
36
  @import './spacing';
39
37
  @import './svg';
@@ -44,3 +42,6 @@
44
42
  @import './vertical-align';
45
43
  @import './visibility';
46
44
  @import './z-index';
45
+
46
+ // Deprecated mixins that don't have a migration path yet
47
+ @import './deprecated';
@@ -10,20 +10,34 @@ export const methods = {
10
10
  isAlpha(value) {
11
11
  return value.startsWith('rgba(');
12
12
  },
13
+ isBackgroundColor(property) {
14
+ return property === 'backgroundColor';
15
+ },
13
16
  getTokenName(token) {
14
17
  return token.path.filter(Boolean).join('.');
15
18
  },
16
- getTextColorClass(value) {
19
+ getClasses(property, value) {
17
20
  if (this.isAlpha(value)) return '';
21
+ if (!this.isBackgroundColor(property)) return '';
18
22
  const textColorVariant = colorFromBackground(value, 4.5);
19
23
  return {
20
24
  'gl-text-gray-950': textColorVariant === 'dark',
21
25
  'gl-text-white': textColorVariant === 'light',
22
26
  };
23
27
  },
28
+ getStyle(property, value) {
29
+ if (this.isBackgroundColor(property)) {
30
+ return { backgroundColor: value };
31
+ }
32
+ return { color: value };
33
+ },
24
34
  };
25
35
 
26
- export const template = (lightBackground = WHITE, darkBackground = GRAY_950) => `
36
+ const colorTemplate = (
37
+ property = 'backgroundColor',
38
+ lightBackground = WHITE,
39
+ darkBackground = GRAY_950
40
+ ) => `
27
41
  <ul
28
42
  class="gl-list-style-none gl-m-0 gl-p-0"
29
43
  >
@@ -31,8 +45,8 @@ export const template = (lightBackground = WHITE, darkBackground = GRAY_950) =>
31
45
  v-for="token in tokens"
32
46
  :key="token.name"
33
47
  class="gl-display-flex gl-flex-wrap gl-align-items-center gl-justify-content-space-between gl-gap-3 gl-p-3"
34
- :class="getTextColorClass(token.value)"
35
- :style="{ backgroundColor: token.value }"
48
+ :class="getClasses('${property}', token.value)"
49
+ :style="getStyle('${property}', token.value)"
36
50
  >
37
51
  <code class="gl-reset-color">{{ getTokenName(token) }}</code>
38
52
  <div class="gl-display-flex gl-align-items-center gl-gap-3">
@@ -47,5 +61,11 @@ export const template = (lightBackground = WHITE, darkBackground = GRAY_950) =>
47
61
  export const colorTokenStoryOptions = {
48
62
  components,
49
63
  methods,
50
- template: template(),
64
+ template: colorTemplate('backgroundColor'),
65
+ };
66
+
67
+ export const colorTextTokenStoryOptions = {
68
+ components,
69
+ methods,
70
+ template: colorTemplate('color'),
51
71
  };
@@ -0,0 +1,19 @@
1
+ {
2
+ "text": {
3
+ "primary": {
4
+ "$value": "{gray.900}",
5
+ "$type": "color",
6
+ "themeable": true
7
+ },
8
+ "secondary": {
9
+ "$value": "{gray.500}",
10
+ "$type": "color",
11
+ "themeable": true
12
+ },
13
+ "tertiary": {
14
+ "$value": "{gray.400}",
15
+ "$type": "color",
16
+ "themeable": true
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,15 @@
1
+ import COMPILED_TOKENS from '../../dist/tokens/json/tokens.json';
2
+ import { colorTextTokenStoryOptions } from './common_story_options';
3
+
4
+ const generateProps = ({ tokens = {} } = {}) => ({ tokens });
5
+
6
+ export const Default = (args, { argTypes }) => ({
7
+ props: Object.keys(argTypes),
8
+ ...colorTextTokenStoryOptions,
9
+ });
10
+ Default.args = generateProps({ name: 'text', tokens: COMPILED_TOKENS.text });
11
+
12
+ // eslint-disable-next-line storybook/csf-component
13
+ export default {
14
+ title: 'tokens/text',
15
+ };