@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.
Files changed (140) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +1 -1
  3. package/dist/components/base/breadcrumb/breadcrumb.js +10 -5
  4. package/dist/components/base/{filtered_search/examples/filtered_search.single_unique.example.js → breadcrumb/breadcrumb_item.js} +32 -28
  5. package/dist/components/base/dropdown/dropdown.documentation.js +1 -5
  6. package/dist/components/base/dropdown/dropdown_item.documentation.js +2 -3
  7. package/dist/components/base/filtered_search/filtered_search.documentation.js +2 -66
  8. package/dist/components/base/filtered_search/filtered_search.js +51 -20
  9. package/dist/components/base/filtered_search/filtered_search_suggestion.documentation.js +2 -8
  10. package/dist/components/base/filtered_search/filtered_search_suggestion.js +5 -1
  11. package/dist/components/base/filtered_search/filtered_search_suggestion_list.documentation.js +2 -7
  12. package/dist/components/base/filtered_search/filtered_search_suggestion_list.js +4 -0
  13. package/dist/components/base/filtered_search/filtered_search_term.documentation.js +2 -44
  14. package/dist/components/base/filtered_search/filtered_search_term.js +37 -0
  15. package/dist/components/base/filtered_search/filtered_search_token.documentation.js +2 -31
  16. package/dist/components/base/filtered_search/filtered_search_token.js +80 -23
  17. package/dist/components/base/filtered_search/filtered_search_token_segment.documentation.js +2 -46
  18. package/dist/components/base/filtered_search/filtered_search_token_segment.js +48 -0
  19. package/dist/components/base/filtered_search/filtered_search_utils.js +42 -9
  20. package/dist/components/base/form/form_checkbox_tree/form_checkbox_tree.documentation.js +2 -27
  21. package/dist/components/base/form/form_checkbox_tree/form_checkbox_tree.js +16 -1
  22. package/dist/components/charts/series_label/series_label.js +6 -1
  23. package/dist/index.css +1 -1
  24. package/dist/index.css.map +1 -1
  25. package/dist/utils/use_mock_intersection_observer.js +2 -2
  26. package/documentation/components_documentation.js +0 -4
  27. package/documentation/documented_stories.js +10 -1
  28. package/package.json +11 -9
  29. package/src/components/base/avatar_link/avatar_link.stories.js +2 -2
  30. package/src/components/base/breadcrumb/breadcrumb.spec.js +24 -10
  31. package/src/components/base/breadcrumb/breadcrumb.vue +11 -6
  32. package/src/components/base/breadcrumb/breadcrumb_item.spec.js +45 -0
  33. package/src/components/base/breadcrumb/breadcrumb_item.vue +43 -0
  34. package/src/components/base/dropdown/dropdown.documentation.js +0 -3
  35. package/src/components/base/dropdown/dropdown.md +7 -2
  36. package/src/components/base/dropdown/dropdown.stories.js +487 -439
  37. package/src/components/base/dropdown/dropdown_item.documentation.js +0 -1
  38. package/src/components/base/dropdown/dropdown_item.md +0 -6
  39. package/src/components/base/dropdown/dropdown_item.stories.js +107 -35
  40. package/src/components/base/filtered_search/filtered_search.documentation.js +0 -76
  41. package/src/components/base/filtered_search/filtered_search.md +3 -4
  42. package/src/components/base/filtered_search/filtered_search.spec.js +37 -12
  43. package/src/components/base/filtered_search/filtered_search.stories.js +260 -17
  44. package/src/components/base/filtered_search/filtered_search.vue +57 -14
  45. package/src/components/base/filtered_search/filtered_search_suggestion.documentation.js +0 -6
  46. package/src/components/base/filtered_search/filtered_search_suggestion.md +1 -7
  47. package/src/components/base/filtered_search/filtered_search_suggestion.stories.js +26 -18
  48. package/src/components/base/filtered_search/filtered_search_suggestion.vue +6 -0
  49. package/src/components/base/filtered_search/filtered_search_suggestion_list.documentation.js +0 -5
  50. package/src/components/base/filtered_search/filtered_search_suggestion_list.md +1 -7
  51. package/src/components/base/filtered_search/filtered_search_suggestion_list.stories.js +33 -25
  52. package/src/components/base/filtered_search/filtered_search_suggestion_list.vue +5 -0
  53. package/src/components/base/filtered_search/filtered_search_term.documentation.js +0 -41
  54. package/src/components/base/filtered_search/filtered_search_term.md +0 -2
  55. package/src/components/base/filtered_search/filtered_search_term.stories.js +33 -26
  56. package/src/components/base/filtered_search/filtered_search_term.vue +54 -0
  57. package/src/components/base/filtered_search/filtered_search_token.documentation.js +0 -26
  58. package/src/components/base/filtered_search/filtered_search_token.md +1 -3
  59. package/src/components/base/filtered_search/filtered_search_token.spec.js +31 -1
  60. package/src/components/base/filtered_search/filtered_search_token.stories.js +137 -132
  61. package/src/components/base/filtered_search/filtered_search_token.vue +93 -21
  62. package/src/components/base/filtered_search/filtered_search_token_segment.documentation.js +0 -43
  63. package/src/components/base/filtered_search/filtered_search_token_segment.md +0 -2
  64. package/src/components/base/filtered_search/filtered_search_token_segment.stories.js +86 -79
  65. package/src/components/base/filtered_search/filtered_search_token_segment.vue +42 -0
  66. package/src/components/base/filtered_search/filtered_search_utils.js +38 -5
  67. package/src/components/base/form/form.stories.js +2 -0
  68. package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.documentation.js +0 -26
  69. package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.md +0 -4
  70. package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.stories.js +123 -92
  71. package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.vue +13 -1
  72. package/src/components/base/form/form_radio/form_radio.spec.js +21 -8
  73. package/src/components/base/form/form_radio_group/form_radio_group.stories.js +2 -1
  74. package/src/components/base/markdown/markdown.scss +21 -0
  75. package/src/components/base/markdown/markdown_typescale_demo.html +17 -6
  76. package/src/components/base/navbar/navbar.stories.js +2 -1
  77. package/src/components/base/skeleton_loader/skeleton_loader.stories.js +67 -21
  78. package/src/components/base/tabs/tabs/tabs.stories.js +2 -2
  79. package/src/components/charts/series_label/series_label.stories.js +6 -3
  80. package/src/components/charts/series_label/series_label.vue +3 -0
  81. package/src/scss/typescale/typescale.md +0 -2
  82. package/src/scss/typescale/typescale.stories.js +17 -4
  83. package/src/utils/use_mock_intersection_observer.js +3 -3
  84. package/dist/components/base/dropdown/dropdown_divider.documentation.js +0 -8
  85. package/dist/components/base/dropdown/dropdown_form.documentation.js +0 -17
  86. package/dist/components/base/dropdown/dropdown_section_header.documentation.js +0 -8
  87. package/dist/components/base/dropdown/dropdown_text.documentation.js +0 -8
  88. package/dist/components/base/dropdown/examples/dropdown.default.example.js +0 -38
  89. package/dist/components/base/dropdown/examples/dropdown.links.example.js +0 -38
  90. package/dist/components/base/dropdown/examples/dropdown.with_avatar_and_secondary_text.example.js +0 -38
  91. package/dist/components/base/dropdown/examples/dropdown.with_checked_items.example.js +0 -38
  92. package/dist/components/base/dropdown/examples/dropdown.with_clear_all.example.js +0 -38
  93. package/dist/components/base/dropdown/examples/dropdown.with_divider.example.js +0 -38
  94. package/dist/components/base/dropdown/examples/dropdown.with_form.example.js +0 -38
  95. package/dist/components/base/dropdown/examples/dropdown.with_header.example.js +0 -38
  96. package/dist/components/base/dropdown/examples/dropdown.with_highlighted_items.example.js +0 -38
  97. package/dist/components/base/dropdown/examples/dropdown.with_icons.example.js +0 -38
  98. package/dist/components/base/dropdown/examples/dropdown.with_right_align.example.js +0 -38
  99. package/dist/components/base/dropdown/examples/dropdown.with_search.example.js +0 -67
  100. package/dist/components/base/dropdown/examples/dropdown.with_section_headers.example.js +0 -38
  101. package/dist/components/base/dropdown/examples/index.js +0 -85
  102. package/dist/components/base/filtered_search/examples/filtered_search.default.example.js +0 -422
  103. package/dist/components/base/filtered_search/examples/filtered_search.friendly.example.js +0 -423
  104. package/dist/components/base/filtered_search/examples/filtered_search.history.example.js +0 -91
  105. package/dist/components/base/filtered_search/examples/filtered_search.multi_select.example.js +0 -196
  106. package/dist/components/base/filtered_search/examples/index.js +0 -32
  107. package/dist/components/base/form/form_checkbox_tree/examples/form_checkbox_tree.basic.example.js +0 -103
  108. package/dist/components/base/form/form_checkbox_tree/examples/index.js +0 -13
  109. package/src/components/base/dropdown/dropdown_divider.documentation.js +0 -6
  110. package/src/components/base/dropdown/dropdown_divider.md +0 -7
  111. package/src/components/base/dropdown/dropdown_divider.stories.js +0 -16
  112. package/src/components/base/dropdown/dropdown_form.documentation.js +0 -9
  113. package/src/components/base/dropdown/dropdown_form.md +0 -4
  114. package/src/components/base/dropdown/dropdown_form.stories.js +0 -17
  115. package/src/components/base/dropdown/dropdown_section_header.documentation.js +0 -6
  116. package/src/components/base/dropdown/dropdown_section_header.stories.js +0 -17
  117. package/src/components/base/dropdown/dropdown_text.documentation.js +0 -6
  118. package/src/components/base/dropdown/dropdown_text.stories.js +0 -16
  119. package/src/components/base/dropdown/examples/dropdown.default.example.vue +0 -7
  120. package/src/components/base/dropdown/examples/dropdown.links.example.vue +0 -7
  121. package/src/components/base/dropdown/examples/dropdown.with_avatar_and_secondary_text.example.vue +0 -7
  122. package/src/components/base/dropdown/examples/dropdown.with_checked_items.example.vue +0 -6
  123. package/src/components/base/dropdown/examples/dropdown.with_clear_all.example.vue +0 -7
  124. package/src/components/base/dropdown/examples/dropdown.with_divider.example.vue +0 -9
  125. package/src/components/base/dropdown/examples/dropdown.with_form.example.vue +0 -10
  126. package/src/components/base/dropdown/examples/dropdown.with_header.example.vue +0 -7
  127. package/src/components/base/dropdown/examples/dropdown.with_highlighted_items.example.vue +0 -9
  128. package/src/components/base/dropdown/examples/dropdown.with_icons.example.vue +0 -43
  129. package/src/components/base/dropdown/examples/dropdown.with_right_align.example.vue +0 -7
  130. package/src/components/base/dropdown/examples/dropdown.with_search.example.vue +0 -38
  131. package/src/components/base/dropdown/examples/dropdown.with_section_headers.example.vue +0 -10
  132. package/src/components/base/dropdown/examples/index.js +0 -99
  133. package/src/components/base/filtered_search/examples/filtered_search.default.example.vue +0 -298
  134. package/src/components/base/filtered_search/examples/filtered_search.friendly.example.vue +0 -300
  135. package/src/components/base/filtered_search/examples/filtered_search.history.example.vue +0 -50
  136. package/src/components/base/filtered_search/examples/filtered_search.multi_select.example.vue +0 -132
  137. package/src/components/base/filtered_search/examples/filtered_search.single_unique.example.vue +0 -31
  138. package/src/components/base/filtered_search/examples/index.js +0 -38
  139. package/src/components/base/form/form_checkbox_tree/examples/form_checkbox_tree.basic.example.vue +0 -77
  140. package/src/components/base/form/form_checkbox_tree/examples/index.js +0 -15
@@ -1,132 +0,0 @@
1
- <script>
2
- const fakeUsers = [
3
- { id: 1, name: 'User Alpha', username: 'alpha' },
4
- { id: 2, name: 'User Beta', username: 'beta' },
5
- { id: 3, name: 'User Gamma', username: 'gamma' },
6
- { id: 4, name: 'User Delta', username: 'delta' },
7
- { id: 5, name: 'User Epsilon', username: 'epsilon' },
8
- ];
9
-
10
- const UserToken = {
11
- props: ['value', 'active', 'config'],
12
- inheritAttrs: false,
13
- data() {
14
- return {
15
- users: fakeUsers,
16
- selectedUsernames: this.value.data ? this.value.data.split(',') : [],
17
- activeUser: null,
18
- };
19
- },
20
- computed: {
21
- filteredUsers() {
22
- return this.users.filter((user) => user.username.includes(this.value.data));
23
- },
24
- selectedUsers() {
25
- return this.config.multiSelect
26
- ? this.users.filter((user) => this.selectedUsernames.includes(user.username))
27
- : this.users.filter((user) => user.username === this.activeUser);
28
- },
29
- },
30
- methods: {
31
- loadView() {
32
- this.activeUser = fakeUsers.find((u) => u.username === this.value.data);
33
- },
34
- loadSuggestions() {
35
- this.users = fakeUsers;
36
- },
37
- handleSelect(username) {
38
- if (!this.config.multiSelect) {
39
- return;
40
- }
41
-
42
- if (this.selectedUsernames.includes(username)) {
43
- this.selectedUsernames = this.selectedUsernames.filter((user) => user !== username);
44
- } else {
45
- this.selectedUsernames.push(username);
46
- }
47
- },
48
- isLastUser(index) {
49
- return index === this.selectedUsers.length - 1;
50
- },
51
- },
52
- watch: {
53
- // eslint-disable-next-line func-names
54
- 'value.data': function () {
55
- if (this.active) {
56
- this.loadSuggestions();
57
- }
58
- },
59
- active: {
60
- immediate: true,
61
- handler(newValue) {
62
- if (!newValue) {
63
- this.loadView();
64
- } else {
65
- this.loadSuggestions();
66
- }
67
- },
68
- },
69
- },
70
- template: `
71
- <gl-filtered-search-token
72
- v-bind="{ ...this.$props, ...this.$attrs }"
73
- v-on="$listeners"
74
- :multi-select-values="selectedUsernames"
75
- @select="handleSelect"
76
- >
77
- <template #view="{ inputValue }">
78
- <template v-for="(user, index) in selectedUsers">
79
- <gl-avatar :size="16" :entity-name="user.username" shape="circle" />
80
- {{ user.name }}
81
- <span v-if="!isLastUser(index)" class="gl-mx-2">,&nbsp;</span>
82
- </template>
83
- </template>
84
- <template #suggestions>
85
- <gl-filtered-search-suggestion :key="user.id" v-for="user in filteredUsers" :value="user.username">
86
- <div class="gl-display-flex gl-align-items-center">
87
- <gl-icon
88
- v-if="config.multiSelect"
89
- name="check"
90
- class="gl-mr-3 gl-text-gray-700"
91
- :class="{ 'gl-visibility-hidden': !selectedUsernames.includes(user.username) }"
92
- />
93
- <gl-avatar :size="32" :entity-name="user.username" />
94
- <div>
95
- <p class="gl-m-0">{{ user.name }}</p>
96
- <p class="gl-m-0">@{{ user.username }}</p>
97
- </div>
98
- </div>
99
- </gl-filtered-search-suggestion>
100
- </template>
101
- </gl-filtered-search-token>
102
- `,
103
- };
104
-
105
- const tokens = [
106
- {
107
- type: 'assignee',
108
- icon: 'user',
109
- title: 'Assignee',
110
- token: UserToken,
111
- operators: [
112
- { value: '=', description: 'is', default: 'true' },
113
- { value: '!=', description: 'is not one of' },
114
- { value: '||', description: 'is one of' },
115
- ],
116
- multiSelect: true,
117
- },
118
- ];
119
-
120
- export default {
121
- data() {
122
- return {
123
- tokens,
124
- value: [{ type: 'assignee', value: { data: 'alpha,beta', operator: '=' } }],
125
- };
126
- },
127
- };
128
- </script>
129
-
130
- <template>
131
- <gl-filtered-search v-model="value" :available-tokens="tokens" :show-friendly-text="true" />
132
- </template>
@@ -1,31 +0,0 @@
1
- <script>
2
- const testTokens = [
3
- {
4
- type: 'unique',
5
- title: 'Unique',
6
- icon: 'document',
7
- token: 'gl-filtered-search-token',
8
- operators: [{ value: '=', description: 'is', default: 'true' }],
9
- options: [
10
- { icon: 'heart', title: 'heart', value: 1 },
11
- { icon: 'hook', title: 'hook', value: 2 },
12
- ],
13
- unique: true,
14
- },
15
- ];
16
-
17
- export default {
18
- data() {
19
- return {
20
- tokens: testTokens,
21
- value: [],
22
- };
23
- },
24
- };
25
- </script>
26
- <template>
27
- <div>
28
- {{ value }}
29
- <gl-filtered-search v-model="value" :available-tokens="tokens" />
30
- </div>
31
- </template>
@@ -1,38 +0,0 @@
1
- import FilteredSearchDefaultExample from './filtered_search.default.example.vue';
2
- import FilteredSearchFriendlyExample from './filtered_search.friendly.example.vue';
3
- import FilteredSearchHistoryExample from './filtered_search.history.example.vue';
4
- import FilteredSearchMultiSelectExample from './filtered_search.multi_select.example.vue';
5
- import FilteredSearchSingleUniqueExample from './filtered_search.single_unique.example.vue';
6
-
7
- export default [
8
- {
9
- name: 'Filtered search',
10
- items: [
11
- {
12
- id: 'filtered-search',
13
- name: 'default',
14
- component: FilteredSearchDefaultExample,
15
- },
16
- {
17
- id: 'filtered-search-single-unique',
18
- name: 'single-unique',
19
- component: FilteredSearchSingleUniqueExample,
20
- },
21
- {
22
- id: 'filtered-search-history',
23
- name: 'with-history',
24
- component: FilteredSearchHistoryExample,
25
- },
26
- {
27
- id: 'filtered-search-friendly-text',
28
- name: 'with-friendly-text',
29
- component: FilteredSearchFriendlyExample,
30
- },
31
- {
32
- id: 'filtered-search-multi-select',
33
- name: 'with-multi-select',
34
- component: FilteredSearchMultiSelectExample,
35
- },
36
- ],
37
- },
38
- ];
@@ -1,77 +0,0 @@
1
- <template>
2
- <gl-form-checkbox-tree
3
- :value="[1, 11, 12, 121, 122, 2113, 3]"
4
- :options="[
5
- {
6
- value: 1,
7
- label: 'Felidae',
8
- children: [
9
- {
10
- value: 11,
11
- label: 'Lion',
12
- },
13
- {
14
- value: 12,
15
- label: 'Felinae',
16
- children: [
17
- {
18
- value: 121,
19
- label: 'Cheetah',
20
- },
21
- {
22
- value: 122,
23
- label: 'Ocelot',
24
- },
25
- ],
26
- },
27
- ],
28
- },
29
- {
30
- value: 2,
31
- label: 'Canidae',
32
- children: [
33
- {
34
- value: 21,
35
- label: 'Caninae',
36
- children: [
37
- {
38
- value: 211,
39
- label: 'Canis lupus',
40
- children: [
41
- {
42
- value: 2112,
43
- label: 'Wolf',
44
- },
45
- {
46
- value: 2113,
47
- label: 'Himalayan wolf',
48
- },
49
- {
50
- value: 2114,
51
- label: 'Dingo',
52
- },
53
- ],
54
- },
55
- {
56
- value: 212,
57
- label: 'Black-backed jackal',
58
- },
59
- ],
60
- },
61
- {
62
- value: 22,
63
- label: 'Fennec fox',
64
- },
65
- ],
66
- },
67
- {
68
- value: 3,
69
- label: 'Karabair',
70
- },
71
- {
72
- value: 4,
73
- label: 'Okapi',
74
- },
75
- ]"
76
- />
77
- </template>
@@ -1,15 +0,0 @@
1
- import BasicExample from './form_checkbox_tree.basic.example.vue';
2
-
3
- export default [
4
- {
5
- name: 'Basic',
6
- items: [
7
- {
8
- id: 'form-checkbox-tree-basic',
9
- name: 'Basic',
10
- description: 'Basic Form Checkbox Tree',
11
- component: BasicExample,
12
- },
13
- ],
14
- },
15
- ];