@gitlab/ui 41.3.0 → 41.6.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitlab/ui",
3
- "version": "41.3.0",
3
+ "version": "41.6.0",
4
4
  "description": "GitLab UI Components",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -83,19 +83,19 @@
83
83
  "@babel/preset-env": "^7.10.2",
84
84
  "@gitlab/eslint-plugin": "12.3.0",
85
85
  "@gitlab/stylelint-config": "4.0.0",
86
- "@gitlab/svgs": "2.15.0",
86
+ "@gitlab/svgs": "2.18.0",
87
87
  "@rollup/plugin-commonjs": "^11.1.0",
88
88
  "@rollup/plugin-node-resolve": "^7.1.3",
89
89
  "@rollup/plugin-replace": "^2.3.2",
90
- "@storybook/addon-a11y": "6.5.6",
91
- "@storybook/addon-docs": "6.5.6",
92
- "@storybook/addon-essentials": "6.5.6",
90
+ "@storybook/addon-a11y": "6.5.8",
91
+ "@storybook/addon-docs": "6.5.8",
92
+ "@storybook/addon-essentials": "6.5.8",
93
93
  "@storybook/addon-knobs": "6.4.0",
94
- "@storybook/addon-storyshots": "6.5.6",
95
- "@storybook/addon-storyshots-puppeteer": "6.5.6",
96
- "@storybook/addon-viewport": "6.5.6",
97
- "@storybook/theming": "6.5.6",
98
- "@storybook/vue": "6.5.6",
94
+ "@storybook/addon-storyshots": "6.5.8",
95
+ "@storybook/addon-storyshots-puppeteer": "6.5.8",
96
+ "@storybook/addon-viewport": "6.5.8",
97
+ "@storybook/theming": "6.5.8",
98
+ "@storybook/vue": "6.5.8",
99
99
  "@vue/test-utils": "1.3.0",
100
100
  "autoprefixer": "^9.7.6",
101
101
  "babel-jest": "^26.6.3",
@@ -106,7 +106,7 @@
106
106
  "bootstrap": "4.5.3",
107
107
  "cypress": "^6.6.0",
108
108
  "emoji-regex": "^10.0.0",
109
- "eslint": "8.16.0",
109
+ "eslint": "8.17.0",
110
110
  "eslint-import-resolver-jest": "3.0.2",
111
111
  "eslint-plugin-cypress": "2.12.1",
112
112
  "eslint-plugin-storybook": "0.5.12",
@@ -17,7 +17,9 @@ export const glSpacingScale15 = '7.5rem'
17
17
  export const glSpacingScale20 = '10rem'
18
18
  export const glSpacingScale26 = '13rem'
19
19
  export const glSpacingScale28 = '14rem'
20
+ export const glSpacingScale34 = '17rem'
20
21
  export const glSpacingScale62 = '31rem'
22
+ export const glSpacingScale80 = '40rem'
21
23
  export const breakpointSm = '576px'
22
24
  export const breakpointMd = '768px'
23
25
  export const breakpointLg = '992px'
@@ -95,11 +95,21 @@
95
95
  "value": "28 * $grid-size",
96
96
  "compiledValue": "14rem"
97
97
  },
98
+ {
99
+ "name": "$gl-spacing-scale-34",
100
+ "value": "34 * $grid-size",
101
+ "compiledValue": "17rem"
102
+ },
98
103
  {
99
104
  "name": "$gl-spacing-scale-62",
100
105
  "value": "62 * $grid-size",
101
106
  "compiledValue": "31rem"
102
107
  },
108
+ {
109
+ "name": "$gl-spacing-scale-80",
110
+ "value": "80 * $grid-size",
111
+ "compiledValue": "40rem"
112
+ },
103
113
  {
104
114
  "name": "$breakpoint-sm",
105
115
  "value": "576px",
@@ -49,6 +49,15 @@ describe('avatar labeled', () => {
49
49
  expect(wrapper.find('[data-testid="user-meta"]').exists()).toBe(true);
50
50
  });
51
51
 
52
+ it('displays `default` slot', () => {
53
+ buildWrapper(
54
+ { label, subLabel },
55
+ { default: '<span data-testid="default-slot">Foo Bar</span>' }
56
+ );
57
+
58
+ expect(wrapper.find('[data-testid="default-slot"]').exists()).toBe(true);
59
+ });
60
+
52
61
  describe('with label links', () => {
53
62
  beforeEach(() => {
54
63
  buildWrapper({ label, subLabel, labelLink: 'http://label', subLabelLink: 'http://subLabel' });
@@ -1,5 +1,5 @@
1
1
  import Vue from 'vue';
2
- import { GlAvatarLabeled, GlBadge } from '../../../index';
2
+ import { GlAvatarLabeled, GlBadge, GlButton } from '../../../index';
3
3
  import { GlTooltipDirective } from '../../../directives/tooltip';
4
4
  import { avatarSizeOptions, avatarShapeOptions, tooltipPlacements } from '../../../utils/constants';
5
5
  import avatarPath from '../../../../static/img/avatar.png';
@@ -90,6 +90,25 @@ export const WithBadges = (args, { argTypes }) => ({
90
90
  });
91
91
  WithBadges.args = generateProps();
92
92
 
93
+ export const WithDefaultSlot = (args, { argTypes }) => ({
94
+ components: { GlAvatarLabeled, GlButton },
95
+ props: Object.keys(argTypes),
96
+ template: `
97
+ <gl-avatar-labeled
98
+ :shape="shape"
99
+ :size="size"
100
+ :src="src"
101
+ :label="label"
102
+ :sub-label="subLabel"
103
+ >
104
+ <template>
105
+ <gl-button class="gl-mt-3 gl-align-self-start" size="small">Follow</gl-button>
106
+ </template>
107
+ </gl-avatar-labeled>
108
+ `,
109
+ });
110
+ WithDefaultSlot.args = generateProps({ size: 64 });
111
+
93
112
  export default {
94
113
  title: 'base/avatar/labeled',
95
114
  component: GlAvatarLabeled,
@@ -56,6 +56,8 @@ export default {
56
56
  <span class="gl-avatar-labeled-sublabel">{{ subLabel }}</span>
57
57
  </gl-link>
58
58
  <span v-else class="gl-avatar-labeled-sublabel">{{ subLabel }}</span>
59
+ <!-- @slot Add additional information below the avatar label. -->
60
+ <slot></slot>
59
61
  </div>
60
62
  </div>
61
63
  </template>
@@ -60,7 +60,8 @@
60
60
  top: 1px;
61
61
  }
62
62
 
63
- &.btn-default {
63
+ &.btn-default,
64
+ &.btn-dashed {
64
65
  @include gl-bg-white;
65
66
 
66
67
  &.btn-default-tertiary {
@@ -80,6 +80,7 @@ const generateProps = ({
80
80
  icon = '',
81
81
  multiple = defaultValue('multiple'),
82
82
  ariaLabelledby,
83
+ startOpened = true,
83
84
  } = {}) => ({
84
85
  items,
85
86
  category,
@@ -94,6 +95,7 @@ const generateProps = ({
94
95
  icon,
95
96
  multiple,
96
97
  ariaLabelledby,
98
+ startOpened,
97
99
  });
98
100
 
99
101
  function openListbox(component) {
@@ -136,7 +138,9 @@ export const Default = (args, { argTypes }) => ({
136
138
  };
137
139
  },
138
140
  mounted() {
139
- openListbox(this);
141
+ if (this.startOpened) {
142
+ openListbox(this);
143
+ }
140
144
  },
141
145
  template: template('', `<span class="gl-my-0" id="listbox-label">Select a department</span>`),
142
146
  });
@@ -157,7 +161,9 @@ export const HeaderAndFooter = (args, { argTypes }) => ({
157
161
  };
158
162
  },
159
163
  mounted() {
160
- openListbox(this);
164
+ if (this.startOpened) {
165
+ openListbox(this);
166
+ }
161
167
  },
162
168
  methods: {
163
169
  selectItem(index) {
@@ -193,7 +199,9 @@ export const CustomListItem = (args, { argTypes }) => ({
193
199
  GlAvatar,
194
200
  },
195
201
  mounted() {
196
- openListbox(this);
202
+ if (this.startOpened) {
203
+ openListbox(this);
204
+ }
197
205
  },
198
206
  computed: {
199
207
  headerText() {
@@ -4783,6 +4783,14 @@
4783
4783
  max-width: $gl-spacing-scale-26 !important;
4784
4784
  }
4785
4785
 
4786
+ .gl-max-w-34 {
4787
+ max-width: $gl-spacing-scale-34;
4788
+ }
4789
+
4790
+ .gl-max-w-34\! {
4791
+ max-width: $gl-spacing-scale-34 !important;
4792
+ }
4793
+
4786
4794
  .gl-max-w-62 {
4787
4795
  max-width: $gl-spacing-scale-62;
4788
4796
  }
@@ -4791,6 +4799,14 @@
4791
4799
  max-width: $gl-spacing-scale-62 !important;
4792
4800
  }
4793
4801
 
4802
+ .gl-max-w-80 {
4803
+ max-width: $gl-spacing-scale-80;
4804
+ }
4805
+
4806
+ .gl-max-w-80\! {
4807
+ max-width: $gl-spacing-scale-80 !important;
4808
+ }
4809
+
4794
4810
  .gl-max-w-none {
4795
4811
  max-width: none;
4796
4812
  }
@@ -5734,6 +5750,12 @@
5734
5750
  .gl-ml-3\! {
5735
5751
  margin-left: $gl-spacing-scale-3 !important;
5736
5752
  }
5753
+ .gl-ml-n3 {
5754
+ margin-left: -$gl-spacing-scale-3;
5755
+ }
5756
+ .gl-ml-n3\! {
5757
+ margin-left: -$gl-spacing-scale-3 !important;
5758
+ }
5737
5759
  .gl-ml-4 {
5738
5760
  margin-left: $gl-spacing-scale-4;
5739
5761
  }
@@ -341,10 +341,18 @@
341
341
  max-width: $gl-spacing-scale-26;
342
342
  }
343
343
 
344
+ @mixin gl-max-w-34 {
345
+ max-width: $gl-spacing-scale-34;
346
+ }
347
+
344
348
  @mixin gl-max-w-62 {
345
349
  max-width: $gl-spacing-scale-62;
346
350
  }
347
351
 
352
+ @mixin gl-max-w-80 {
353
+ max-width: $gl-spacing-scale-80;
354
+ }
355
+
348
356
  @mixin gl-max-w-none {
349
357
  max-width: none;
350
358
  }
@@ -552,6 +552,10 @@
552
552
  margin-left: $gl-spacing-scale-3;
553
553
  }
554
554
 
555
+ @mixin gl-ml-n3 {
556
+ margin-left: -$gl-spacing-scale-3;
557
+ }
558
+
555
559
  @mixin gl-ml-4 {
556
560
  margin-left: $gl-spacing-scale-4;
557
561
  }
@@ -20,7 +20,9 @@ $gl-spacing-scale-15: 15 * $grid-size;
20
20
  $gl-spacing-scale-20: 20 * $grid-size;
21
21
  $gl-spacing-scale-26: 26 * $grid-size;
22
22
  $gl-spacing-scale-28: 28 * $grid-size;
23
+ $gl-spacing-scale-34: 34 * $grid-size;
23
24
  $gl-spacing-scale-62: 62 * $grid-size;
25
+ $gl-spacing-scale-80: 80 * $grid-size;
24
26
 
25
27
  // Responsive breakpoints
26
28