@gitlab/ui 32.39.0 → 32.43.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 (137) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/components/base/form/form_input_group/form_input_group.js +6 -1
  3. package/dist/components/base/markdown/markdown.documentation.js +2 -6
  4. package/dist/components/base/search_box_by_click/search_box_by_click.js +1 -0
  5. package/dist/components/base/search_box_by_type/search_box_by_type.js +1 -1
  6. package/dist/components/base/token_selector/token_selector.documentation.js +2 -106
  7. package/dist/components/base/token_selector/token_selector.js +85 -1
  8. package/dist/components/base/tooltip/tooltip.documentation.js +2 -6
  9. package/dist/components/charts/area/area.js +1 -1
  10. package/dist/components/charts/column/column.js +1 -1
  11. package/dist/components/charts/discrete_scatter/discrete_scatter.js +1 -1
  12. package/dist/components/charts/line/line.js +1 -1
  13. package/dist/utility_classes.css +1 -1
  14. package/dist/utility_classes.css.map +1 -1
  15. package/documentation/documented_stories.js +3 -0
  16. package/package.json +13 -13
  17. package/src/components/base/accordion/accordion.spec.js +0 -4
  18. package/src/components/base/accordion/accordion_item.spec.js +0 -4
  19. package/src/components/base/alert/alert.spec.js +0 -4
  20. package/src/components/base/avatar_labeled/avatar_labeled.spec.js +0 -2
  21. package/src/components/base/avatars_inline/avatars_inline.spec.js +0 -2
  22. package/src/components/base/badge/badge.spec.js +0 -2
  23. package/src/components/base/broadcast_message/broadcast_message.spec.js +0 -4
  24. package/src/components/base/button/button.spec.js +0 -5
  25. package/src/components/base/card/card.spec.js +0 -5
  26. package/src/components/base/carousel/carousel.spec.js +0 -4
  27. package/src/components/base/collapse/collapse.spec.js +0 -4
  28. package/src/components/base/datepicker/datepicker.spec.js +0 -4
  29. package/src/components/base/daterange_picker/daterange_picker.spec.js +0 -5
  30. package/src/components/base/drawer/drawer.spec.js +0 -4
  31. package/src/components/base/dropdown/dropdown.spec.js +0 -2
  32. package/src/components/base/dropdown/dropdown_item.spec.js +0 -2
  33. package/src/components/base/filtered_search/filtered_search.spec.js +0 -10
  34. package/src/components/base/filtered_search/filtered_search_suggestion.spec.js +0 -5
  35. package/src/components/base/filtered_search/filtered_search_suggestion_list.spec.js +0 -5
  36. package/src/components/base/filtered_search/filtered_search_term.spec.js +0 -5
  37. package/src/components/base/filtered_search/filtered_search_token.spec.js +0 -5
  38. package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.spec.js +0 -5
  39. package/src/components/base/form/form_combobox/form_combobox.spec.js +0 -4
  40. package/src/components/base/form/form_input/form_input.spec.js +0 -5
  41. package/src/components/base/form/form_input_group/form_input_group.spec.js +18 -5
  42. package/src/components/base/form/form_input_group/form_input_group.vue +6 -1
  43. package/src/components/base/form/form_radio/form_radio.spec.js +0 -4
  44. package/src/components/base/form/form_radio_group/form_radio_group.spec.js +0 -4
  45. package/src/components/base/form/form_select/form_select.spec.js +0 -5
  46. package/src/components/base/form/form_textarea/form_textarea.spec.js +0 -5
  47. package/src/components/base/icon/icon.spec.js +0 -2
  48. package/src/components/base/infinite_scroll/infinite_scroll.spec.js +0 -1
  49. package/src/components/base/keyset_pagination/keyset_pagination.spec.js +0 -5
  50. package/src/components/base/label/label.spec.js +0 -4
  51. package/src/components/base/link/link.spec.js +0 -5
  52. package/src/components/base/loading_icon/loading_icon.spec.js +0 -4
  53. package/src/components/base/markdown/markdown.documentation.js +0 -3
  54. package/src/components/base/markdown/markdown.md +0 -2
  55. package/src/components/base/markdown/markdown.stories.js +25 -24
  56. package/src/components/base/modal/modal.spec.js +0 -1
  57. package/src/components/base/nav/nav.spec.js +0 -4
  58. package/src/components/base/nav/nav_item.spec.js +0 -4
  59. package/src/components/base/nav/nav_item_dropdown.spec.js +0 -4
  60. package/src/components/base/paginated_list/paginated_list.spec.js +0 -6
  61. package/src/components/base/pagination/pagination.spec.js +0 -1
  62. package/src/components/base/path/path.spec.js +0 -5
  63. package/src/components/base/popover/popover.spec.js +0 -5
  64. package/src/components/base/search_box_by_click/search_box_by_click.spec.js +0 -4
  65. package/src/components/base/search_box_by_click/search_box_by_click.vue +1 -0
  66. package/src/components/base/search_box_by_type/search_box_by_type.spec.js +0 -5
  67. package/src/components/base/search_box_by_type/search_box_by_type.vue +1 -1
  68. package/src/components/base/segmented_control/segmented_control.spec.js +0 -4
  69. package/src/components/base/skeleton_loader/skeleton_loader.spec.js +0 -5
  70. package/src/components/base/sorting/sorting.spec.js +0 -4
  71. package/src/components/base/sorting/sorting_item.spec.js +0 -4
  72. package/src/components/base/tabs/tabs/scrollable_tabs.spec.js +0 -5
  73. package/src/components/base/toggle/toggle.spec.js +0 -4
  74. package/src/components/base/token/token.spec.js +0 -4
  75. package/src/components/base/token_selector/token_container.spec.js +0 -2
  76. package/src/components/base/token_selector/token_selector.documentation.js +0 -137
  77. package/src/components/base/token_selector/token_selector.md +0 -6
  78. package/src/components/base/token_selector/token_selector.spec.js +0 -5
  79. package/src/components/base/token_selector/token_selector.stories.js +96 -113
  80. package/src/components/base/token_selector/token_selector.vue +89 -1
  81. package/src/components/base/token_selector/token_selector_dropdown.spec.js +0 -5
  82. package/src/components/base/tooltip/tooltip.documentation.js +0 -3
  83. package/src/components/base/tooltip/tooltip.md +3 -5
  84. package/src/components/base/tooltip/tooltip.spec.js +0 -5
  85. package/src/components/base/tooltip/tooltip.stories.js +49 -25
  86. package/src/components/base/tooltip/tooltip.vue +1 -0
  87. package/src/components/charts/area/area.spec.js +8 -24
  88. package/src/components/charts/area/area.vue +9 -12
  89. package/src/components/charts/bar/bar.spec.js +4 -11
  90. package/src/components/charts/chart/chart.spec.js +0 -4
  91. package/src/components/charts/column/column.vue +3 -2
  92. package/src/components/charts/column/column_chart.spec.js +35 -19
  93. package/src/components/charts/discrete_scatter/discrete_scatter.stories.js +1 -0
  94. package/src/components/charts/discrete_scatter/discrete_scatter.vue +5 -8
  95. package/src/components/charts/gauge/gauge.spec.js +2 -24
  96. package/src/components/charts/heatmap/heatmap.spec.js +6 -23
  97. package/src/components/charts/legend/legend.spec.js +8 -14
  98. package/src/components/charts/line/line.spec.js +19 -30
  99. package/src/components/charts/line/line.vue +3 -2
  100. package/src/components/charts/single_stat/single_stat.spec.js +0 -4
  101. package/src/components/charts/sparkline/sparkline.spec.js +9 -15
  102. package/src/components/charts/stacked_column/stacked_column.spec.js +2 -30
  103. package/src/components/shared_components/clear_icon_button/clear_icon_button.spec.js +0 -4
  104. package/src/components/shared_components/close_button/close_button.spec.js +0 -4
  105. package/src/components/utilities/friendly_wrap/friendly_wrap.spec.js +0 -4
  106. package/src/components/utilities/intersection_observer/intersection_observer.spec.js +1 -1
  107. package/src/components/utilities/sprintf/sprintf.spec.js +0 -4
  108. package/src/components/utilities/truncate/truncate.spec.js +10 -15
  109. package/src/directives/hover_load/hover_load.spec.js +0 -1
  110. package/src/directives/outside/outside.spec.js +0 -4
  111. package/src/directives/resize_observer/resize_observer.spec.js +0 -4
  112. package/src/directives/safe_html/safe_html.spec.js +0 -4
  113. package/src/directives/safe_link/safe_link.spec.js +0 -5
  114. package/src/scss/utilities.scss +26 -0
  115. package/src/scss/utility-mixins/sizing.scss +6 -0
  116. package/src/scss/utility-mixins/spacing.scss +4 -0
  117. package/src/scss/utility-mixins/z-index.scss +4 -0
  118. package/dist/components/base/markdown/examples/index.js +0 -13
  119. package/dist/components/base/markdown/examples/markdown.basic.example.js +0 -38
  120. package/dist/components/base/token_selector/examples/index.js +0 -19
  121. package/dist/components/base/token_selector/examples/token_selector.user_defined_tokens.example.js +0 -48
  122. package/dist/components/base/token_selector/examples/token_selector.users.example.js +0 -202
  123. package/dist/components/base/tooltip/examples/index.js +0 -31
  124. package/dist/components/base/tooltip/examples/tooltip.directive_bottom.example.js +0 -38
  125. package/dist/components/base/tooltip/examples/tooltip.directive_default.example.js +0 -38
  126. package/dist/components/base/tooltip/examples/tooltip.directive_left.example.js +0 -38
  127. package/dist/components/base/tooltip/examples/tooltip.directive_right.example.js +0 -38
  128. package/src/components/base/markdown/examples/index.js +0 -15
  129. package/src/components/base/markdown/examples/markdown.basic.example.vue +0 -15
  130. package/src/components/base/token_selector/examples/index.js +0 -22
  131. package/src/components/base/token_selector/examples/token_selector.user_defined_tokens.example.vue +0 -17
  132. package/src/components/base/token_selector/examples/token_selector.users.example.vue +0 -212
  133. package/src/components/base/tooltip/examples/index.js +0 -36
  134. package/src/components/base/tooltip/examples/tooltip.directive_bottom.example.vue +0 -7
  135. package/src/components/base/tooltip/examples/tooltip.directive_default.example.vue +0 -5
  136. package/src/components/base/tooltip/examples/tooltip.directive_left.example.vue +0 -7
  137. package/src/components/base/tooltip/examples/tooltip.directive_right.example.vue +0 -7
@@ -1,8 +1,8 @@
1
1
  import { shallowMount } from '@vue/test-utils';
2
-
3
2
  import { gaugeSafeHues, gaugeWarningHue } from '../../../utils/charts/theme';
4
3
  import Chart from '../chart/chart.vue';
5
4
  import GlGauge from './gauge.vue';
5
+ import { createMockChartInstance } from '~helpers/chart_stubs';
6
6
 
7
7
  const placeholder = '--';
8
8
 
@@ -20,7 +20,6 @@ jest.mock('echarts', () => ({
20
20
 
21
21
  describe('gauge component', () => {
22
22
  let wrapper;
23
- let options;
24
23
 
25
24
  const findChart = () => wrapper.findComponent(Chart);
26
25
  const findChartOptions = () => findChart().props('options');
@@ -38,28 +37,7 @@ describe('gauge component', () => {
38
37
  };
39
38
 
40
39
  beforeEach(() => {
41
- options = {
42
- series: [],
43
- };
44
-
45
- mockChartInstance = {
46
- getDom: () => {
47
- return {
48
- addEventListener: jest.fn(),
49
- removeEventListener: jest.fn(),
50
- };
51
- },
52
- on: jest.fn(),
53
- off: jest.fn(),
54
- convertToPixel: jest.fn(),
55
- getOption: () => {
56
- return options;
57
- },
58
- };
59
- });
60
-
61
- afterEach(() => {
62
- wrapper.destroy();
40
+ mockChartInstance = createMockChartInstance();
63
41
  });
64
42
 
65
43
  it('emits `created`, with the chart instance', () => {
@@ -4,6 +4,7 @@ import Chart from '../chart/chart.vue';
4
4
  import ChartTooltip from '../tooltip/tooltip.vue';
5
5
  import HeatMapChart from './heatmap.vue';
6
6
  import { TOOLTIP_LEFT_OFFSET } from '~/utils/charts/constants';
7
+ import { createMockChartInstance } from '~helpers/chart_stubs';
7
8
 
8
9
  let mockChartInstance;
9
10
 
@@ -13,7 +14,6 @@ jest.mock('echarts', () => ({
13
14
 
14
15
  describe('heatmap component', () => {
15
16
  let wrapper;
16
- let options;
17
17
 
18
18
  const findChart = () => wrapper.findComponent(Chart);
19
19
  const findChartTooltip = () => wrapper.findComponent(ChartTooltip);
@@ -22,33 +22,16 @@ describe('heatmap component', () => {
22
22
  const emitChartCreated = () => findChart().vm.$emit('created', mockChartInstance);
23
23
 
24
24
  beforeEach(() => {
25
- options = {
26
- series: [],
27
- };
28
-
29
- mockChartInstance = {
30
- getDom: () => {
31
- return {
32
- addEventListener: jest.fn(),
33
- removeEventListener: jest.fn(),
34
- };
35
- },
36
- convertToPixel: jest.fn(),
37
- getOption: () => {
38
- return options;
39
- },
40
- };
41
-
42
- wrapper = shallowMount(HeatMapChart, { propsData: { options, dataSeries: [] } });
25
+ mockChartInstance = createMockChartInstance();
26
+
27
+ wrapper = shallowMount(HeatMapChart, {
28
+ propsData: { options: { series: [] }, dataSeries: [] },
29
+ });
43
30
  emitChartCreated();
44
31
 
45
32
  return wrapper.vm.$nextTick();
46
33
  });
47
34
 
48
- afterEach(() => {
49
- wrapper.destroy();
50
- });
51
-
52
35
  it('emits `created`, with the chart instance', () => {
53
36
  expect(wrapper.emitted('created').length).toBe(1);
54
37
  expect(wrapper.emitted('created')[0][0]).toBe(mockChartInstance);
@@ -2,16 +2,13 @@ import { shallowMount } from '@vue/test-utils';
2
2
  import Chart from '../chart/chart.vue';
3
3
  import GlChartSeriesLabel from '../series_label/series_label.vue';
4
4
  import Legend from './legend.vue';
5
+ import { createMockChartInstance } from '~helpers/chart_stubs';
6
+
7
+ let mockChartInstance;
5
8
 
6
9
  jest.mock('echarts', () => ({
7
- getInstanceByDom: jest.fn((instance) => instance),
8
- init: jest.fn(() => ({
9
- dispatchAction: jest.fn(),
10
- resize: jest.fn(),
11
- setOption: jest.fn(),
12
- on: jest.fn(),
13
- off: jest.fn(),
14
- })),
10
+ getInstanceByDom: () => mockChartInstance,
11
+ init: () => mockChartInstance,
15
12
  registerTheme: jest.fn(),
16
13
  }));
17
14
 
@@ -58,24 +55,21 @@ describe('chart legend component', () => {
58
55
  legendWrapper = shallowMount(Legend, {
59
56
  propsData: {
60
57
  ...propsData,
61
- chart,
58
+ chart: mockChartInstance,
62
59
  seriesInfo,
63
60
  },
64
61
  });
65
62
  };
66
63
 
67
64
  beforeEach(async () => {
65
+ mockChartInstance = createMockChartInstance();
66
+
68
67
  chartWrapper = shallowMount(...chartArgs);
69
68
  await chartWrapper.vm.$nextTick();
70
69
  // Runs after mounting the chart so that it has an up to date reference
71
70
  buildLegend();
72
71
  });
73
72
 
74
- afterEach(() => {
75
- chartWrapper.destroy();
76
- legendWrapper.destroy();
77
- });
78
-
79
73
  it('renders the legend with no errors', () => {
80
74
  expect(legendWrapper.exists()).toBe(true);
81
75
  });
@@ -6,6 +6,8 @@ import LineChart from './line.vue';
6
6
 
7
7
  import { LEGEND_LAYOUT_INLINE, LEGEND_LAYOUT_TABLE } from '~/utils/charts/constants';
8
8
 
9
+ import { createMockChartInstance, ChartTooltipStub } from '~helpers/chart_stubs';
10
+
9
11
  let mockChartInstance;
10
12
 
11
13
  jest.mock('echarts', () => ({
@@ -23,36 +25,16 @@ describe('line component', () => {
23
25
 
24
26
  const emitChartCreated = () => findChart().vm.$emit('created', mockChartInstance);
25
27
 
26
- const createShallowWrapper = (props = {}) => {
28
+ const createShallowWrapper = (props = {}, mountOptions = {}) => {
27
29
  wrapper = shallowMount(LineChart, {
28
30
  propsData: { option, data: [], ...props },
31
+ ...mountOptions,
29
32
  });
30
33
  emitChartCreated();
31
34
  };
32
35
 
33
36
  beforeEach(() => {
34
- option = {
35
- series: [],
36
- };
37
-
38
- mockChartInstance = {
39
- getDom: () => {
40
- return {
41
- addEventListener: jest.fn(),
42
- removeEventListener: jest.fn(),
43
- };
44
- },
45
- on: jest.fn(),
46
- off: jest.fn(),
47
- convertToPixel: jest.fn(),
48
- getOption: () => {
49
- return option;
50
- },
51
- };
52
- });
53
-
54
- afterEach(() => {
55
- wrapper.destroy();
37
+ mockChartInstance = createMockChartInstance();
56
38
  });
57
39
 
58
40
  it('emits `created`, with the chart instance', async () => {
@@ -128,14 +110,21 @@ describe('line component', () => {
128
110
  },
129
111
  };
130
112
 
131
- createShallowWrapper({
132
- annotations: [
133
- {
134
- min: '',
135
- max: '',
113
+ createShallowWrapper(
114
+ {
115
+ annotations: [
116
+ {
117
+ min: '',
118
+ max: '',
119
+ },
120
+ ],
121
+ },
122
+ {
123
+ stubs: {
124
+ 'chart-tooltip': ChartTooltipStub,
136
125
  },
137
- ],
138
- });
126
+ }
127
+ );
139
128
 
140
129
  wrapper.vm.onChartDataPointMouseOver(params);
141
130
 
@@ -339,8 +339,9 @@ export default {
339
339
  :left="annotationsTooltipPosition.left"
340
340
  placement="bottom"
341
341
  >
342
- <!-- eslint-disable-next-line vue/no-deprecated-slot-attribute -->
343
- <div slot="title">{{ annotationsTooltipTitle }}</div>
342
+ <template #title>
343
+ <div>{{ annotationsTooltipTitle }}</div>
344
+ </template>
344
345
  <div>{{ annotationsTooltipContent }}</div>
345
346
  </chart-tooltip>
346
347
  <chart-tooltip
@@ -26,10 +26,6 @@ describe('GlSingleStat', () => {
26
26
 
27
27
  const findIemByTestId = (testId) => wrapper.find(`[data-testid="${testId}"]`);
28
28
 
29
- afterEach(() => {
30
- wrapper.destroy();
31
- });
32
-
33
29
  describe('displays the correct default data', () => {
34
30
  beforeEach(() => createWrapper());
35
31
 
@@ -2,14 +2,13 @@ import { shallowMount, createLocalVue } from '@vue/test-utils';
2
2
  import Chart from '../chart/chart.vue';
3
3
  import SparklineChart from './sparkline.vue';
4
4
  import { waitForAnimationFrame } from '~/utils/test_utils';
5
+ import { createMockChartInstance, ChartTooltipStub } from '~helpers/chart_stubs';
5
6
 
6
- const mockResize = jest.fn();
7
- const mockChartInstance = {
8
- subscribedEvents: {},
9
- getDom: () => {},
10
- convertToPixel: () => [],
11
- resize: mockResize,
12
- };
7
+ let mockChartInstance;
8
+
9
+ jest.mock('echarts', () => ({
10
+ getInstanceByDom: () => mockChartInstance,
11
+ }));
13
12
 
14
13
  let triggerResize = () => {};
15
14
  jest.mock('~/directives/resize_observer/resize_observer', () => ({
@@ -22,11 +21,6 @@ jest.mock('~/directives/resize_observer/resize_observer', () => ({
22
21
 
23
22
  const localVue = createLocalVue();
24
23
 
25
- const ChartToolTipStub = {
26
- name: 'chart-tooltip-stub',
27
- template: '<div><slot name="default"></slot><slot name="title"></slot></div>',
28
- };
29
-
30
24
  describe('sparkline chart component', () => {
31
25
  let wrapper;
32
26
  let componentOptions;
@@ -39,7 +33,7 @@ describe('sparkline chart component', () => {
39
33
  },
40
34
  scopedSlots: { latestSeriesEntry: jest.fn() },
41
35
  stubs: {
42
- 'chart-tooltip': ChartToolTipStub,
36
+ 'chart-tooltip': ChartTooltipStub,
43
37
  },
44
38
  };
45
39
 
@@ -50,7 +44,7 @@ describe('sparkline chart component', () => {
50
44
  const getByTestId = (id) => wrapper.find(`[data-testid="${id}"]`);
51
45
  const getChart = () => wrapper.findComponent(Chart);
52
46
 
53
- const getTooltip = () => wrapper.findComponent(ChartToolTipStub);
47
+ const getTooltip = () => wrapper.findComponent(ChartTooltipStub);
54
48
  const getTooltipTitle = () => getByTestId('tooltip-title');
55
49
  const getTooltipContent = () => getByTestId('tooltip-content');
56
50
 
@@ -72,13 +66,13 @@ describe('sparkline chart component', () => {
72
66
  const emitChartCreated = () => getChart().vm.$emit('created', mockChartInstance);
73
67
 
74
68
  beforeEach(() => {
69
+ mockChartInstance = createMockChartInstance();
75
70
  factory();
76
71
  // needs to run after every mount, or the chart-instance is `null` and `beforeDestroy` throws
77
72
  emitChartCreated();
78
73
  });
79
74
 
80
75
  afterEach(() => {
81
- wrapper.destroy();
82
76
  jest.clearAllMocks();
83
77
  });
84
78
 
@@ -9,9 +9,9 @@ import Chart from '../chart/chart.vue';
9
9
  import ChartLegend from '../legend/legend.vue';
10
10
  import * as themeUtils from '../../../utils/charts/theme';
11
11
  import StackedColumnChart from './stacked_column.vue';
12
- import ChartTooltip from '~/components/charts/tooltip/tooltip.vue';
13
12
  import TooltipDefaultFormat from '~/components/shared_components/charts/tooltip_default_format.vue';
14
13
 
14
+ import { createMockChartInstance, ChartTooltipStub } from '~helpers/chart_stubs';
15
15
  import { LEGEND_LAYOUT_INLINE, LEGEND_LAYOUT_TABLE } from '~/utils/charts/constants';
16
16
 
17
17
  let mockChartInstance;
@@ -29,18 +29,8 @@ const defaultChartProps = {
29
29
  yAxisTitle: 'Commits',
30
30
  };
31
31
 
32
- const ChartTooltipStub = {
33
- props: ChartTooltip.props,
34
- template: `
35
- <div>
36
- <slot name="title" />
37
- <slot />
38
- </div>`,
39
- };
40
-
41
32
  describe('stacked column chart component', () => {
42
33
  let wrapper;
43
- let options;
44
34
 
45
35
  const findChart = () => wrapper.findComponent(Chart);
46
36
  const findLegend = () => wrapper.findComponent(ChartLegend);
@@ -62,28 +52,10 @@ describe('stacked column chart component', () => {
62
52
  };
63
53
 
64
54
  beforeEach(() => {
65
- options = {
66
- series: [],
67
- };
68
-
69
- mockChartInstance = {
70
- getDom: () => {
71
- return {
72
- addEventListener: jest.fn(),
73
- removeEventListener: jest.fn(),
74
- };
75
- },
76
- on: jest.fn(),
77
- off: jest.fn(),
78
- convertToPixel: jest.fn(),
79
- getOption: () => {
80
- return options;
81
- },
82
- };
55
+ mockChartInstance = createMockChartInstance();
83
56
  });
84
57
 
85
58
  afterEach(() => {
86
- wrapper.destroy();
87
59
  jest.restoreAllMocks();
88
60
  });
89
61
 
@@ -17,10 +17,6 @@ describe('Clear Icon Button', () => {
17
17
  createComponent();
18
18
  });
19
19
 
20
- afterEach(() => {
21
- wrapper.destroy();
22
- });
23
-
24
20
  it('renders successfully', () => {
25
21
  expect(wrapper.element).toMatchSnapshot();
26
22
  });
@@ -16,10 +16,6 @@ describe('Clear Icon Button', () => {
16
16
  createComponent();
17
17
  });
18
18
 
19
- afterEach(() => {
20
- wrapper.destroy();
21
- });
22
-
23
19
  it('renders successfully', () => {
24
20
  expect(wrapper.element).toMatchSnapshot();
25
21
  });
@@ -10,10 +10,6 @@ describe('Friendly wrap component', () => {
10
10
  });
11
11
  };
12
12
 
13
- afterEach(() => {
14
- wrapper.destroy();
15
- });
16
-
17
13
  it('wraps text on slashes by default', () => {
18
14
  const text = '/some/file/path';
19
15
  const textWrapped = '/<wbr>some/<wbr>file/<wbr>path';
@@ -58,7 +58,7 @@ describe('IntersectionObserver', () => {
58
58
  expect(hasPrivateProps(wrapper.vm.$el)).toBe(true);
59
59
  });
60
60
 
61
- describe('when detroyed', () => {
61
+ describe('when destroyed', () => {
62
62
  beforeEach(() => {
63
63
  wrapper.destroy();
64
64
  });
@@ -17,10 +17,6 @@ describe('sprintf component', () => {
17
17
  });
18
18
  };
19
19
 
20
- afterEach(() => {
21
- wrapper.destroy();
22
- });
23
-
24
20
  describe('plain placeholders', () => {
25
21
  it.each`
26
22
  message
@@ -17,19 +17,12 @@ describe('Truncate component', () => {
17
17
  };
18
18
 
19
19
  const createComponent = (props) => {
20
- wrapper = shallowMount(Truncate, {
21
- propsData: { ...defaultProps, ...props },
22
- directives: {
23
- GlTooltip: createMockDirective(),
24
- },
25
- });
20
+ wrapper = shallowMount(
21
+ { extends: Truncate, directives: { GlTooltip: createMockDirective('gl-tooltip') } },
22
+ { propsData: { ...defaultProps, ...props } }
23
+ );
26
24
  };
27
25
 
28
- afterEach(() => {
29
- wrapper.destroy();
30
- wrapper = null;
31
- });
32
-
33
26
  describe('All', () => {
34
27
  beforeEach(() => {
35
28
  createComponent();
@@ -39,9 +32,9 @@ describe('Truncate component', () => {
39
32
  '%s truncation: should have title, class, original text',
40
33
  (position) => {
41
34
  createComponent({ position });
42
-
43
- expect(wrapper.attributes('title')).toBe(defaultProps.text);
44
- expect(wrapper.attributes('class')).toBe('gl-truncate');
35
+ const element = wrapper.find('span');
36
+ expect(element.attributes('title')).toBe(defaultProps.text);
37
+ expect(element.attributes('class')).toBe('gl-truncate');
45
38
  expect(removeSpecialChar(wrapper.text())).toBe(defaultProps.text);
46
39
  }
47
40
  );
@@ -51,7 +44,9 @@ describe('Truncate component', () => {
51
44
  });
52
45
 
53
46
  it('disables the tooltip by default', () => {
54
- expect(getBinding(wrapper.element, 'gl-tooltip').value.disabled).toBe(true);
47
+ expect(getBinding(wrapper.find('.gl-truncate').element, 'gl-tooltip').value.disabled).toBe(
48
+ true
49
+ );
55
50
  });
56
51
  });
57
52
 
@@ -23,7 +23,6 @@ describe('hover load directive', () => {
23
23
  };
24
24
 
25
25
  afterEach(() => {
26
- wrapper.destroy();
27
26
  jest.restoreAllMocks();
28
27
  });
29
28
 
@@ -52,10 +52,6 @@ describe('outside directive', () => {
52
52
  onClick = jest.fn();
53
53
  });
54
54
 
55
- afterEach(() => {
56
- wrapper.destroy();
57
- });
58
-
59
55
  describe('given a callback', () => {
60
56
  it.each`
61
57
  target | expectedCalls
@@ -29,10 +29,6 @@ describe('resize observer directive', () => {
29
29
  wrapper = shallowMount(component, { localVue });
30
30
  };
31
31
 
32
- afterEach(() => {
33
- wrapper.destroy();
34
- });
35
-
36
32
  it('shares one observer between multiple directive instances', () => {
37
33
  createComponent({
38
34
  template: `<div>
@@ -25,10 +25,6 @@ describe('safe html directive', () => {
25
25
  wrapper = shallowMount(component);
26
26
  };
27
27
 
28
- afterEach(() => {
29
- wrapper.destroy();
30
- });
31
-
32
28
  describe('default', () => {
33
29
  it('should remove the script tag', () => {
34
30
  createComponent();
@@ -33,11 +33,6 @@ describe('safe link directive', () => {
33
33
  wrapper = mountFn(component);
34
34
  };
35
35
 
36
- afterEach(() => {
37
- wrapper.destroy();
38
- wrapper = null;
39
- });
40
-
41
36
  describe('default', () => {
42
37
  it('should render the anchor tag with given href', () => {
43
38
  createComponent({
@@ -4384,6 +4384,18 @@
4384
4384
  max-width: 50% !important;
4385
4385
  }
4386
4386
  }
4387
+
4388
+ .gl-md-max-w-70p {
4389
+ @include gl-media-breakpoint-up(md) {
4390
+ max-width: 70%;
4391
+ }
4392
+ }
4393
+
4394
+ .gl-md-max-w-70p\! {
4395
+ @include gl-media-breakpoint-up(md) {
4396
+ max-width: 70% !important;
4397
+ }
4398
+ }
4387
4399
  .gl-p-0 {
4388
4400
  padding: 0;
4389
4401
  }
@@ -4910,6 +4922,12 @@
4910
4922
  .gl-m-5\! {
4911
4923
  margin: $gl-spacing-scale-5 !important;
4912
4924
  }
4925
+ .gl-m-7 {
4926
+ margin: $gl-spacing-scale-7;
4927
+ }
4928
+ .gl-m-7\! {
4929
+ margin: $gl-spacing-scale-7 !important;
4930
+ }
4913
4931
  .gl-m-auto {
4914
4932
  margin: auto;
4915
4933
  }
@@ -6629,6 +6647,14 @@
6629
6647
  z-index: 3 !important
6630
6648
  }
6631
6649
 
6650
+ .gl-z-index-200 {
6651
+ z-index: 200
6652
+ }
6653
+
6654
+ .gl-z-index-200\! {
6655
+ z-index: 200 !important
6656
+ }
6657
+
6632
6658
  .gl-z-index-9999 {
6633
6659
  z-index: 9999
6634
6660
  }
@@ -314,3 +314,9 @@
314
314
  max-width: 50%;
315
315
  }
316
316
  }
317
+
318
+ @mixin gl-md-max-w-70p {
319
+ @include gl-media-breakpoint-up(md) {
320
+ max-width: 70%;
321
+ }
322
+ }
@@ -354,6 +354,10 @@
354
354
  margin: $gl-spacing-scale-5;
355
355
  }
356
356
 
357
+ @mixin gl-m-7 {
358
+ margin: $gl-spacing-scale-7;
359
+ }
360
+
357
361
  @mixin gl-m-auto {
358
362
  margin: auto;
359
363
  }
@@ -20,6 +20,10 @@
20
20
  z-index: 3;
21
21
  }
22
22
 
23
+ @mixin gl-z-index-200 {
24
+ z-index: 200;
25
+ }
26
+
23
27
  @mixin gl-z-index-9999 {
24
28
  z-index: 9999;
25
29
  }
@@ -1,13 +0,0 @@
1
- import BasicExample from './markdown.basic.example';
2
-
3
- var index = [{
4
- name: 'Basic',
5
- items: [{
6
- id: 'markdown-basic',
7
- name: 'Basic',
8
- description: 'Basic Markdown',
9
- component: BasicExample
10
- }]
11
- }];
12
-
13
- export default index;
@@ -1,38 +0,0 @@
1
- import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
2
-
3
- /* script */
4
-
5
- /* template */
6
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-markdown',[_c('h1',[_vm._v("MD Doc h1 • GitLab uses \"GitLab Flavored Markdown\" (GFM)")]),_vm._v(" "),_c('p',[_vm._v("\n MD Doc Paragraph • GitLab uses \"GitLab Flavored Markdown\" (GFM). It extends the standard\n Markdown in a few significant ways to add some useful functionality. You can use GFM in the\n following areas: comments, issues, merge requests, milestones, snippets and more.\n ")]),_vm._v(" "),_c('p',{staticClass:"sm"},[_vm._v("\n MD Doc Small Paragraph • GitLab uses \"GitLab Flavored Markdown\" (GFM). It extends the standard\n Markdown in a few significant ways to add some useful functionality. You can use GFM in the\n following areas: comments, issues, merge requests, milestones, snippets and more.\n ")])])};
7
- var __vue_staticRenderFns__ = [];
8
-
9
- /* style */
10
- const __vue_inject_styles__ = undefined;
11
- /* scoped */
12
- const __vue_scope_id__ = undefined;
13
- /* module identifier */
14
- const __vue_module_identifier__ = undefined;
15
- /* functional template */
16
- const __vue_is_functional_template__ = false;
17
- /* style inject */
18
-
19
- /* style inject SSR */
20
-
21
- /* style inject shadow dom */
22
-
23
-
24
-
25
- const __vue_component__ = __vue_normalize__(
26
- { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
27
- __vue_inject_styles__,
28
- {},
29
- __vue_scope_id__,
30
- __vue_is_functional_template__,
31
- __vue_module_identifier__,
32
- false,
33
- undefined,
34
- undefined,
35
- undefined
36
- );
37
-
38
- export default __vue_component__;