@gitlab/ui 38.0.1 → 38.2.1
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/CHANGELOG.md +27 -0
- package/README.md +1 -1
- package/dist/components/base/breadcrumb/breadcrumb.js +10 -5
- package/dist/components/base/{filtered_search/examples/filtered_search.single_unique.example.js → breadcrumb/breadcrumb_item.js} +32 -28
- package/dist/components/base/dropdown/dropdown.documentation.js +1 -5
- package/dist/components/base/dropdown/dropdown_item.documentation.js +2 -3
- package/dist/components/base/filtered_search/filtered_search.documentation.js +2 -66
- package/dist/components/base/filtered_search/filtered_search.js +51 -20
- package/dist/components/base/filtered_search/filtered_search_suggestion.documentation.js +2 -8
- package/dist/components/base/filtered_search/filtered_search_suggestion.js +5 -1
- package/dist/components/base/filtered_search/filtered_search_suggestion_list.documentation.js +2 -7
- package/dist/components/base/filtered_search/filtered_search_suggestion_list.js +4 -0
- package/dist/components/base/filtered_search/filtered_search_term.documentation.js +2 -44
- package/dist/components/base/filtered_search/filtered_search_term.js +37 -0
- package/dist/components/base/filtered_search/filtered_search_token.documentation.js +2 -31
- package/dist/components/base/filtered_search/filtered_search_token.js +80 -23
- package/dist/components/base/filtered_search/filtered_search_token_segment.documentation.js +2 -46
- package/dist/components/base/filtered_search/filtered_search_token_segment.js +48 -0
- package/dist/components/base/filtered_search/filtered_search_utils.js +42 -9
- package/dist/components/base/form/form_checkbox_tree/form_checkbox_tree.documentation.js +2 -27
- package/dist/components/base/form/form_checkbox_tree/form_checkbox_tree.js +16 -1
- package/dist/components/charts/series_label/series_label.js +6 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/utils/use_mock_intersection_observer.js +2 -2
- package/documentation/components_documentation.js +0 -4
- package/documentation/documented_stories.js +10 -1
- package/package.json +11 -9
- package/src/components/base/avatar_link/avatar_link.stories.js +2 -2
- package/src/components/base/breadcrumb/breadcrumb.spec.js +24 -10
- package/src/components/base/breadcrumb/breadcrumb.vue +11 -6
- package/src/components/base/breadcrumb/breadcrumb_item.spec.js +45 -0
- package/src/components/base/breadcrumb/breadcrumb_item.vue +43 -0
- package/src/components/base/dropdown/dropdown.documentation.js +0 -3
- package/src/components/base/dropdown/dropdown.md +7 -2
- package/src/components/base/dropdown/dropdown.stories.js +487 -439
- package/src/components/base/dropdown/dropdown_item.documentation.js +0 -1
- package/src/components/base/dropdown/dropdown_item.md +0 -6
- package/src/components/base/dropdown/dropdown_item.stories.js +107 -35
- package/src/components/base/filtered_search/filtered_search.documentation.js +0 -76
- package/src/components/base/filtered_search/filtered_search.md +3 -4
- package/src/components/base/filtered_search/filtered_search.spec.js +37 -12
- package/src/components/base/filtered_search/filtered_search.stories.js +260 -17
- package/src/components/base/filtered_search/filtered_search.vue +57 -14
- package/src/components/base/filtered_search/filtered_search_suggestion.documentation.js +0 -6
- package/src/components/base/filtered_search/filtered_search_suggestion.md +1 -7
- package/src/components/base/filtered_search/filtered_search_suggestion.stories.js +26 -18
- package/src/components/base/filtered_search/filtered_search_suggestion.vue +6 -0
- package/src/components/base/filtered_search/filtered_search_suggestion_list.documentation.js +0 -5
- package/src/components/base/filtered_search/filtered_search_suggestion_list.md +1 -7
- package/src/components/base/filtered_search/filtered_search_suggestion_list.stories.js +33 -25
- package/src/components/base/filtered_search/filtered_search_suggestion_list.vue +5 -0
- package/src/components/base/filtered_search/filtered_search_term.documentation.js +0 -41
- package/src/components/base/filtered_search/filtered_search_term.md +0 -2
- package/src/components/base/filtered_search/filtered_search_term.stories.js +33 -26
- package/src/components/base/filtered_search/filtered_search_term.vue +54 -0
- package/src/components/base/filtered_search/filtered_search_token.documentation.js +0 -26
- package/src/components/base/filtered_search/filtered_search_token.md +1 -3
- package/src/components/base/filtered_search/filtered_search_token.spec.js +31 -1
- package/src/components/base/filtered_search/filtered_search_token.stories.js +137 -132
- package/src/components/base/filtered_search/filtered_search_token.vue +93 -21
- package/src/components/base/filtered_search/filtered_search_token_segment.documentation.js +0 -43
- package/src/components/base/filtered_search/filtered_search_token_segment.md +0 -2
- package/src/components/base/filtered_search/filtered_search_token_segment.stories.js +86 -79
- package/src/components/base/filtered_search/filtered_search_token_segment.vue +42 -0
- package/src/components/base/filtered_search/filtered_search_utils.js +38 -5
- package/src/components/base/form/form.stories.js +2 -0
- package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.documentation.js +0 -26
- package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.md +0 -4
- package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.stories.js +123 -92
- package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.vue +13 -1
- package/src/components/base/form/form_radio/form_radio.spec.js +21 -8
- package/src/components/base/form/form_radio_group/form_radio_group.stories.js +2 -1
- package/src/components/base/markdown/markdown.scss +21 -0
- package/src/components/base/markdown/markdown_typescale_demo.html +17 -6
- package/src/components/base/navbar/navbar.stories.js +2 -1
- package/src/components/base/skeleton_loader/skeleton_loader.stories.js +67 -21
- package/src/components/base/tabs/tabs/tabs.stories.js +2 -2
- package/src/components/charts/series_label/series_label.stories.js +6 -3
- package/src/components/charts/series_label/series_label.vue +3 -0
- package/src/scss/typescale/typescale.md +0 -2
- package/src/scss/typescale/typescale.stories.js +17 -4
- package/src/utils/use_mock_intersection_observer.js +3 -3
- package/dist/components/base/dropdown/dropdown_divider.documentation.js +0 -8
- package/dist/components/base/dropdown/dropdown_form.documentation.js +0 -17
- package/dist/components/base/dropdown/dropdown_section_header.documentation.js +0 -8
- package/dist/components/base/dropdown/dropdown_text.documentation.js +0 -8
- package/dist/components/base/dropdown/examples/dropdown.default.example.js +0 -38
- package/dist/components/base/dropdown/examples/dropdown.links.example.js +0 -38
- package/dist/components/base/dropdown/examples/dropdown.with_avatar_and_secondary_text.example.js +0 -38
- package/dist/components/base/dropdown/examples/dropdown.with_checked_items.example.js +0 -38
- package/dist/components/base/dropdown/examples/dropdown.with_clear_all.example.js +0 -38
- package/dist/components/base/dropdown/examples/dropdown.with_divider.example.js +0 -38
- package/dist/components/base/dropdown/examples/dropdown.with_form.example.js +0 -38
- package/dist/components/base/dropdown/examples/dropdown.with_header.example.js +0 -38
- package/dist/components/base/dropdown/examples/dropdown.with_highlighted_items.example.js +0 -38
- package/dist/components/base/dropdown/examples/dropdown.with_icons.example.js +0 -38
- package/dist/components/base/dropdown/examples/dropdown.with_right_align.example.js +0 -38
- package/dist/components/base/dropdown/examples/dropdown.with_search.example.js +0 -67
- package/dist/components/base/dropdown/examples/dropdown.with_section_headers.example.js +0 -38
- package/dist/components/base/dropdown/examples/index.js +0 -85
- package/dist/components/base/filtered_search/examples/filtered_search.default.example.js +0 -422
- package/dist/components/base/filtered_search/examples/filtered_search.friendly.example.js +0 -423
- package/dist/components/base/filtered_search/examples/filtered_search.history.example.js +0 -91
- package/dist/components/base/filtered_search/examples/filtered_search.multi_select.example.js +0 -196
- package/dist/components/base/filtered_search/examples/index.js +0 -32
- package/dist/components/base/form/form_checkbox_tree/examples/form_checkbox_tree.basic.example.js +0 -103
- package/dist/components/base/form/form_checkbox_tree/examples/index.js +0 -13
- package/src/components/base/dropdown/dropdown_divider.documentation.js +0 -6
- package/src/components/base/dropdown/dropdown_divider.md +0 -7
- package/src/components/base/dropdown/dropdown_divider.stories.js +0 -16
- package/src/components/base/dropdown/dropdown_form.documentation.js +0 -9
- package/src/components/base/dropdown/dropdown_form.md +0 -4
- package/src/components/base/dropdown/dropdown_form.stories.js +0 -17
- package/src/components/base/dropdown/dropdown_section_header.documentation.js +0 -6
- package/src/components/base/dropdown/dropdown_section_header.stories.js +0 -17
- package/src/components/base/dropdown/dropdown_text.documentation.js +0 -6
- package/src/components/base/dropdown/dropdown_text.stories.js +0 -16
- package/src/components/base/dropdown/examples/dropdown.default.example.vue +0 -7
- package/src/components/base/dropdown/examples/dropdown.links.example.vue +0 -7
- package/src/components/base/dropdown/examples/dropdown.with_avatar_and_secondary_text.example.vue +0 -7
- package/src/components/base/dropdown/examples/dropdown.with_checked_items.example.vue +0 -6
- package/src/components/base/dropdown/examples/dropdown.with_clear_all.example.vue +0 -7
- package/src/components/base/dropdown/examples/dropdown.with_divider.example.vue +0 -9
- package/src/components/base/dropdown/examples/dropdown.with_form.example.vue +0 -10
- package/src/components/base/dropdown/examples/dropdown.with_header.example.vue +0 -7
- package/src/components/base/dropdown/examples/dropdown.with_highlighted_items.example.vue +0 -9
- package/src/components/base/dropdown/examples/dropdown.with_icons.example.vue +0 -43
- package/src/components/base/dropdown/examples/dropdown.with_right_align.example.vue +0 -7
- package/src/components/base/dropdown/examples/dropdown.with_search.example.vue +0 -38
- package/src/components/base/dropdown/examples/dropdown.with_section_headers.example.vue +0 -10
- package/src/components/base/dropdown/examples/index.js +0 -99
- package/src/components/base/filtered_search/examples/filtered_search.default.example.vue +0 -298
- package/src/components/base/filtered_search/examples/filtered_search.friendly.example.vue +0 -300
- package/src/components/base/filtered_search/examples/filtered_search.history.example.vue +0 -50
- package/src/components/base/filtered_search/examples/filtered_search.multi_select.example.vue +0 -132
- package/src/components/base/filtered_search/examples/filtered_search.single_unique.example.vue +0 -31
- package/src/components/base/filtered_search/examples/index.js +0 -38
- package/src/components/base/form/form_checkbox_tree/examples/form_checkbox_tree.basic.example.vue +0 -77
- package/src/components/base/form/form_checkbox_tree/examples/index.js +0 -15
|
@@ -5,6 +5,8 @@ import GlFormRadio from './form_radio.vue';
|
|
|
5
5
|
describe('GlFormRadio', () => {
|
|
6
6
|
let wrapper;
|
|
7
7
|
let options;
|
|
8
|
+
let eventHandlers;
|
|
9
|
+
|
|
8
10
|
const firstOption = {
|
|
9
11
|
text: 'One',
|
|
10
12
|
value: 'one',
|
|
@@ -16,6 +18,10 @@ describe('GlFormRadio', () => {
|
|
|
16
18
|
|
|
17
19
|
const createWrapper = () => {
|
|
18
20
|
options = [firstOption, secondOption];
|
|
21
|
+
eventHandlers = {
|
|
22
|
+
input: jest.fn(),
|
|
23
|
+
change: jest.fn(),
|
|
24
|
+
};
|
|
19
25
|
|
|
20
26
|
wrapper = mount({
|
|
21
27
|
data() {
|
|
@@ -32,9 +38,15 @@ describe('GlFormRadio', () => {
|
|
|
32
38
|
:key="option.value"
|
|
33
39
|
v-model="selected"
|
|
34
40
|
:value="option.value"
|
|
41
|
+
@change="changeHandler"
|
|
42
|
+
@input="inputHandler"
|
|
35
43
|
>{{ option.text }}</gl-form-radio>
|
|
36
44
|
</div>
|
|
37
45
|
`,
|
|
46
|
+
methods: {
|
|
47
|
+
changeHandler: eventHandlers.change,
|
|
48
|
+
inputHandler: eventHandlers.input,
|
|
49
|
+
},
|
|
38
50
|
});
|
|
39
51
|
};
|
|
40
52
|
|
|
@@ -79,16 +91,17 @@ describe('GlFormRadio', () => {
|
|
|
79
91
|
});
|
|
80
92
|
|
|
81
93
|
it('emits an input event on each radio, and a change event on the newly selected radio', () => {
|
|
82
|
-
const
|
|
94
|
+
const { input, change } = eventHandlers;
|
|
95
|
+
const { value: clickedRadioValue } = secondOption;
|
|
83
96
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
97
|
+
// The input handler is called twice because each radio emits one input event.
|
|
98
|
+
expect(input).toHaveBeenCalledTimes(2);
|
|
99
|
+
expect(input).toHaveBeenNthCalledWith(1, clickedRadioValue);
|
|
100
|
+
expect(input).toHaveBeenNthCalledWith(2, clickedRadioValue);
|
|
87
101
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
});
|
|
102
|
+
// The change handler is only called once, since only the newly selected radio emits a change event.
|
|
103
|
+
expect(change).toHaveBeenCalledTimes(1);
|
|
104
|
+
expect(change).toHaveBeenCalledWith(clickedRadioValue);
|
|
92
105
|
});
|
|
93
106
|
|
|
94
107
|
it('updates the bound value', () => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GlFormRadioGroup } from '../../../../index';
|
|
1
|
+
import { GlFormRadioGroup, GlFormRadio } from '../../../../index';
|
|
2
2
|
import readme from './form_radio_group.md';
|
|
3
3
|
|
|
4
4
|
const defaultOptions = [
|
|
@@ -34,6 +34,7 @@ const template = `
|
|
|
34
34
|
const Template = (args, { argTypes }) => ({
|
|
35
35
|
components: {
|
|
36
36
|
GlFormRadioGroup,
|
|
37
|
+
GlFormRadio,
|
|
37
38
|
},
|
|
38
39
|
props: Object.keys(argTypes),
|
|
39
40
|
template,
|
|
@@ -162,6 +162,27 @@
|
|
|
162
162
|
@include gl-px-2;
|
|
163
163
|
@include gl-py-1;
|
|
164
164
|
}
|
|
165
|
+
|
|
166
|
+
.audio-container {
|
|
167
|
+
@include gl-display-inline-flex;
|
|
168
|
+
@include gl-flex-direction-column;
|
|
169
|
+
@include gl-w-full;
|
|
170
|
+
|
|
171
|
+
audio {
|
|
172
|
+
@include gl-w-full;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
a {
|
|
176
|
+
@include gl-mt-3;
|
|
177
|
+
|
|
178
|
+
&::before {
|
|
179
|
+
@include gl-mr-2;
|
|
180
|
+
text-rendering: auto;
|
|
181
|
+
-webkit-font-smoothing: antialiased;
|
|
182
|
+
content: '📎';
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
165
186
|
}
|
|
166
187
|
|
|
167
188
|
.gl-compact-markdown {
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
significant ways to add some useful functionality. You can use GFM in the following areas: comments, issues, merge
|
|
4
4
|
requests, milestones, snippets and more.</p>
|
|
5
5
|
<p class="sm">MD Doc Small Paragraph • GitLab uses "GitLab Flavored Markdown" (GFM). It extends the standard Markdown
|
|
6
|
-
in a few significant ways to add some useful functionality. You can use GFM in the following areas: comments, issues,
|
|
7
|
-
merge requests, milestones, snippets and more.</p>
|
|
6
|
+
in a few significant ways to add some useful functionality. You can use GFM in the following areas: comments, issues,
|
|
7
|
+
merge requests, milestones, snippets and more.</p>
|
|
8
8
|
<p class="monospace">UI Monospace</p>
|
|
9
9
|
<p class="monospace sm">UI Small Monospace</p>
|
|
10
10
|
<h2>MD Doc h2 • GitLab uses "GitLab Flavored Markdown" (GFM)</h2>
|
|
@@ -29,15 +29,26 @@ merge requests, milestones, snippets and more.</p>
|
|
|
29
29
|
requests, milestones, snippets and more.</p>
|
|
30
30
|
<blockquote>
|
|
31
31
|
<p>
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
MD Doc Blockquote • GitLab uses "GitLab Flavored Markdown" (GFM). It extends the standard Markdown in a few
|
|
33
|
+
significant ways to add some useful functionality. You can use GFM in the following areas: comments, issues, merge
|
|
34
|
+
requests, milestones, snippets and more.
|
|
35
35
|
</p>
|
|
36
36
|
</blockquote>
|
|
37
37
|
<p>
|
|
38
38
|
This is a paragraph with two types inline diff <span class="idiff addition">addition</span> and
|
|
39
39
|
<span class="idiff deletion">deletion</span>
|
|
40
40
|
</p>
|
|
41
|
-
<p>
|
|
41
|
+
<p>
|
|
42
42
|
This block implements the "GitLab Flavored Markdown" <code>Code span</code> styles.
|
|
43
43
|
</p>
|
|
44
|
+
|
|
45
|
+
<p>
|
|
46
|
+
This is an audio file
|
|
47
|
+
<span class="media-container audio-container">
|
|
48
|
+
<audio src="file.mp3" controls="true" data-setup="{}" data-title="file.mp3" data-canonical-src="file.mp3"
|
|
49
|
+
class="gfm">
|
|
50
|
+
</audio>
|
|
51
|
+
<a href="file.mp3" target="_blank" rel="noopener noreferrer" title="Download file.mp3" data-canonical-src="file.mp3"
|
|
52
|
+
data-link="true" class="gfm">file.mp3</a>
|
|
53
|
+
</span>
|
|
54
|
+
</p>
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { BNavbarBrand } from 'bootstrap-vue';
|
|
1
2
|
import { GlNavbar } from '../../../index';
|
|
2
3
|
import readme from './navbar.md';
|
|
3
4
|
|
|
4
5
|
const Template = (args, { argTypes }) => ({
|
|
5
|
-
components: { GlNavbar },
|
|
6
|
+
components: { GlNavbar, BNavbarBrand },
|
|
6
7
|
props: Object.keys(argTypes),
|
|
7
8
|
template: `
|
|
8
9
|
<gl-navbar variant="dark" type="dark">
|
|
@@ -1,28 +1,77 @@
|
|
|
1
1
|
import { GlSkeletonLoader } from '../../../index';
|
|
2
|
+
import { makeContainer } from '../../../utils/story_decorators/container';
|
|
2
3
|
import readme from './skeleton_loader.md';
|
|
3
4
|
|
|
4
|
-
const
|
|
5
|
+
const defaultValue = (prop) => GlSkeletonLoader.props[prop].default;
|
|
6
|
+
|
|
7
|
+
const generateProps = ({
|
|
8
|
+
width = defaultValue('width'),
|
|
9
|
+
height = defaultValue('height'),
|
|
10
|
+
preserveAspectRatio = defaultValue('preserveAspectRatio'),
|
|
11
|
+
lines = defaultValue('lines'),
|
|
12
|
+
equalWidthLines = defaultValue('equalWidthLines'),
|
|
13
|
+
} = {}) => ({
|
|
14
|
+
width,
|
|
15
|
+
height,
|
|
16
|
+
preserveAspectRatio,
|
|
17
|
+
lines,
|
|
18
|
+
equalWidthLines,
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
const template = (slotContent = '') => `
|
|
22
|
+
<gl-skeleton-loader
|
|
23
|
+
:width="width"
|
|
24
|
+
:height="height"
|
|
25
|
+
:preserveAspectRatio="preserveAspectRatio"
|
|
26
|
+
:lines="lines"
|
|
27
|
+
:equalWidthLines="equalWidthLines"
|
|
28
|
+
>${slotContent}</gl-skeleton-loader>
|
|
29
|
+
`;
|
|
30
|
+
|
|
31
|
+
export const Default = (args) => ({
|
|
5
32
|
components: { GlSkeletonLoader },
|
|
6
33
|
props: Object.keys(args),
|
|
7
|
-
template:
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
<rect y="86" width="38" height="16" rx="4" />
|
|
19
|
-
</gl-skeleton-loader>
|
|
20
|
-
</div>
|
|
21
|
-
</div>`,
|
|
34
|
+
template: template(),
|
|
35
|
+
});
|
|
36
|
+
Object.assign(Default, {
|
|
37
|
+
args: generateProps(),
|
|
38
|
+
parameters: {
|
|
39
|
+
controls: {
|
|
40
|
+
// When not providing custom shapes in the default slot, these are the
|
|
41
|
+
// only props you're likely to want to modify.
|
|
42
|
+
include: ['width', 'lines', 'equalWidthLines'],
|
|
43
|
+
},
|
|
44
|
+
},
|
|
22
45
|
});
|
|
23
46
|
|
|
24
|
-
export const
|
|
25
|
-
|
|
47
|
+
export const WithCustomShapes = (args) => ({
|
|
48
|
+
components: { GlSkeletonLoader },
|
|
49
|
+
props: Object.keys(args),
|
|
50
|
+
template: template(`
|
|
51
|
+
<rect width="276" height="16" rx="4" />
|
|
52
|
+
<rect y="18" width="237" height="16" rx="4" />
|
|
53
|
+
<rect y="42" width="118" height="16" rx="8" />
|
|
54
|
+
<rect x="122" y="42" width="130" height="16" rx="8" />
|
|
55
|
+
<rect y="62" width="106" height="16" rx="8" />
|
|
56
|
+
<rect x="110" y="62" width="56" height="16" rx="8" />
|
|
57
|
+
<rect x="256" y="42" width="71" height="16" rx="8" />
|
|
58
|
+
<rect y="86" width="38" height="16" rx="4" />
|
|
59
|
+
`),
|
|
60
|
+
});
|
|
61
|
+
Object.assign(WithCustomShapes, {
|
|
62
|
+
args: generateProps({
|
|
63
|
+
width: 327,
|
|
64
|
+
height: 102,
|
|
65
|
+
}),
|
|
66
|
+
parameters: {
|
|
67
|
+
controls: {
|
|
68
|
+
// With custom shapes, other props become useful, although they're a bit
|
|
69
|
+
// counterintuitive.
|
|
70
|
+
include: ['width', 'height', 'preserveAspectRatio'],
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
decorators: [makeContainer({ width: '250px' })],
|
|
74
|
+
});
|
|
26
75
|
|
|
27
76
|
export default {
|
|
28
77
|
title: 'base/skeleton-loader',
|
|
@@ -34,8 +83,5 @@ export default {
|
|
|
34
83
|
component: readme,
|
|
35
84
|
},
|
|
36
85
|
},
|
|
37
|
-
controls: {
|
|
38
|
-
disable: true,
|
|
39
|
-
},
|
|
40
86
|
},
|
|
41
87
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { range } from 'lodash';
|
|
2
|
-
import { GlTabs, GlTab, GlScrollableTabs } from '../../../../index';
|
|
2
|
+
import { GlTabs, GlTab, GlScrollableTabs, GlBadge } from '../../../../index';
|
|
3
3
|
import readme from './tabs.md';
|
|
4
4
|
|
|
5
5
|
const components = {
|
|
@@ -150,7 +150,7 @@ JustifiedTabs.args = generateProps({ justified: true });
|
|
|
150
150
|
|
|
151
151
|
export const WithCounterBadges = (_args, { argTypes }) => ({
|
|
152
152
|
props: Object.keys(argTypes),
|
|
153
|
-
components,
|
|
153
|
+
components: { ...components, GlBadge },
|
|
154
154
|
template: wrap(`
|
|
155
155
|
<gl-tab>
|
|
156
156
|
<template #title>
|
|
@@ -35,14 +35,13 @@ const Template = (_args, { argTypes }) => ({
|
|
|
35
35
|
});
|
|
36
36
|
|
|
37
37
|
export const Default = Template.bind({});
|
|
38
|
-
Default.args = generateProps(
|
|
38
|
+
Default.args = generateProps();
|
|
39
39
|
|
|
40
40
|
export const WithLongName = Template.bind({});
|
|
41
|
-
WithLongName.args = generateProps({
|
|
41
|
+
WithLongName.args = generateProps({ text: SERIES_NAME[SERIES_NAME_LONG] });
|
|
42
42
|
|
|
43
43
|
export const WithLongNameWithNoSpaces = Template.bind({});
|
|
44
44
|
WithLongNameWithNoSpaces.args = generateProps({
|
|
45
|
-
color: '',
|
|
46
45
|
text: SERIES_NAME[SERIES_NAME_LONG_WITHOUT_SPACES],
|
|
47
46
|
});
|
|
48
47
|
|
|
@@ -72,6 +71,10 @@ export default {
|
|
|
72
71
|
},
|
|
73
72
|
},
|
|
74
73
|
argTypes: {
|
|
74
|
+
type: {
|
|
75
|
+
control: 'select',
|
|
76
|
+
options: ['solid', 'dashed'],
|
|
77
|
+
},
|
|
75
78
|
color: {
|
|
76
79
|
control: 'color',
|
|
77
80
|
},
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import has from 'lodash/has';
|
|
2
|
-
import { documentedStoriesOf } from '../../../documentation/documented_stories';
|
|
3
2
|
import typescaleDocs from './typescale.md';
|
|
4
3
|
import uiTypescaleDemoContent from './typescale_demo.html';
|
|
5
4
|
import uiTypescaleDemoStyles from './typescale_demo.scss';
|
|
@@ -33,6 +32,20 @@ const component = {
|
|
|
33
32
|
template: '<ui-typescale-demo />',
|
|
34
33
|
};
|
|
35
34
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
export const Default = () => component;
|
|
36
|
+
Default.parameters = {
|
|
37
|
+
viewport: {
|
|
38
|
+
defaultViewport: 'breakpointExtraLarge',
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export default {
|
|
43
|
+
title: 'scss/typescale',
|
|
44
|
+
parameters: {
|
|
45
|
+
docs: {
|
|
46
|
+
description: {
|
|
47
|
+
component: typescaleDocs,
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* global jest, beforeEach, afterEach */
|
|
2
|
-
/* eslint-disable class-methods-use-this, max-classes-per-file,
|
|
2
|
+
/* eslint-disable class-methods-use-this, max-classes-per-file, camelcase */
|
|
3
3
|
import { isMatch, isArray } from 'lodash';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -27,7 +27,7 @@ class MockObserver {
|
|
|
27
27
|
|
|
28
28
|
takeRecords() {}
|
|
29
29
|
|
|
30
|
-
// eslint-disable-next-line
|
|
30
|
+
// eslint-disable-next-line camelcase
|
|
31
31
|
$_triggerObserve(nodeParam, { entry = {}, options = {} } = {}) {
|
|
32
32
|
const nodes = this.$_getNodesFromParam(nodeParam);
|
|
33
33
|
|
|
@@ -38,7 +38,7 @@ class MockObserver {
|
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
// eslint-disable-next-line
|
|
41
|
+
// eslint-disable-next-line camelcase
|
|
42
42
|
$_hasObserver(node, options = {}) {
|
|
43
43
|
return this.$_observers.some(
|
|
44
44
|
([obvNode, obvOptions]) => node === obvNode && isMatch(options, obvOptions)
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
var description = "# Dropdown Divider\n\n<!-- STORY -->\n\n## Usage\n\nThe dropdown divider component is meant to be used for visual dividers inside a dropdown component.\n";
|
|
2
|
-
|
|
3
|
-
var dropdown_divider_documentation = {
|
|
4
|
-
description,
|
|
5
|
-
bootstrapComponent: 'b-dropdown'
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export default dropdown_divider_documentation;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import examples from './examples';
|
|
2
|
-
|
|
3
|
-
var dropdown_form = "Unlike `b-dropdown-form`, we do _not_ add any additional padding with the `gl-dropdown-form` component.\nThis is to prevent double padding with `gl-dropdown-item` and similar components, so in most cases\nshouldn't be needed. To add padding, either add a padding utility class to your form, or an inner\nelement with some padding.\n";
|
|
4
|
-
|
|
5
|
-
var description = /*#__PURE__*/Object.freeze({
|
|
6
|
-
__proto__: null,
|
|
7
|
-
'default': dropdown_form
|
|
8
|
-
});
|
|
9
|
-
|
|
10
|
-
var dropdown_form_documentation = {
|
|
11
|
-
description,
|
|
12
|
-
examples,
|
|
13
|
-
bootstrapComponent: 'b-dropdown-form',
|
|
14
|
-
propsInfo: {}
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
export default dropdown_form_documentation;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
var description = "# Dropdown Section Header\n\n<!-- STORY -->\n\n## Usage\n\nThe dropdown section header component is meant to be used for header entries inside a dropdown component.\n";
|
|
2
|
-
|
|
3
|
-
var dropdown_section_header_documentation = {
|
|
4
|
-
description,
|
|
5
|
-
bootstrapComponent: 'b-dropdown'
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export default dropdown_section_header_documentation;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
var description = "# Dropdown Text\n\n<!-- STORY -->\n\n## Usage\n\nThe dropdown text component is meant to be used for text entries inside a dropdown component.\n";
|
|
2
|
-
|
|
3
|
-
var dropdown_text_documentation = {
|
|
4
|
-
description,
|
|
5
|
-
bootstrapComponent: 'b-dropdown'
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
export default dropdown_text_documentation;
|
|
@@ -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-dropdown',{attrs:{"text":"Some dropdown"}},[_c('gl-dropdown-item',[_vm._v("First item")]),_vm._v(" "),_c('gl-dropdown-item',[_vm._v("Second item")]),_vm._v(" "),_c('gl-dropdown-item',[_vm._v("Last item")])],1)};
|
|
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__;
|
|
@@ -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-dropdown',{attrs:{"text":"Some dropdown"}},[_c('gl-dropdown-item',{attrs:{"href":"https://about.gitlab.com/"}},[_vm._v("First link")]),_vm._v(" "),_c('gl-dropdown-item',{attrs:{"href":"https://about.gitlab.com/"}},[_vm._v("Second link")]),_vm._v(" "),_c('gl-dropdown-item',{attrs:{"href":"https://about.gitlab.com/"}},[_vm._v("Last link")])],1)};
|
|
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__;
|
package/dist/components/base/dropdown/examples/dropdown.with_avatar_and_secondary_text.example.js
DELETED
|
@@ -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-dropdown',{attrs:{"text":"Some dropdown"}},[_c('gl-dropdown-item',{attrs:{"avatar-url":"./img/avatar.png","secondary-text":"@sytses"}},[_vm._v("\n Sid Sijbrandij\n ")])],1)};
|
|
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__;
|
|
@@ -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-dropdown',{attrs:{"text":"Some dropdown"}},[_c('gl-dropdown-item',{attrs:{"is-check-item":true,"is-checked":true}},[_vm._v("Checked item")]),_vm._v(" "),_c('gl-dropdown-item',{attrs:{"is-check-item":true}},[_vm._v("Unchecked item")])],1)};
|
|
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__;
|
|
@@ -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-dropdown',{attrs:{"text":"Some dropdown","show-clear-all":true,"clear-all-text":'Clear all'}},[_c('gl-dropdown-item',[_vm._v("First item")]),_vm._v(" "),_c('gl-dropdown-item',[_vm._v("Second item")]),_vm._v(" "),_c('gl-dropdown-item',[_vm._v("Last item")])],1)};
|
|
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__;
|
|
@@ -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-dropdown',{attrs:{"text":"Some dropdown"}},[_c('gl-dropdown-item',[_vm._v("First item")]),_vm._v(" "),_c('gl-dropdown-item',[_vm._v("Second item")]),_vm._v(" "),_c('gl-dropdown-divider'),_vm._v(" "),_c('gl-dropdown-item',[_vm._v("Third item")]),_vm._v(" "),_c('gl-dropdown-item',[_vm._v("Fourth item")])],1)};
|
|
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__;
|