@gitlab/ui 39.3.0 → 39.4.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 (254) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/components/base/modal/modal.js +14 -2
  3. package/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js +240 -0
  4. package/dist/components/base/new_dropdowns/constants.js +20 -0
  5. package/dist/components/base/new_dropdowns/listbox/listbox.js +381 -0
  6. package/dist/components/base/new_dropdowns/listbox/listbox_item.js +77 -0
  7. package/dist/index.css +1 -1
  8. package/dist/index.css.map +1 -1
  9. package/dist/index.js +2 -0
  10. package/dist/utility_classes.css +1 -1
  11. package/dist/utility_classes.css.map +1 -1
  12. package/dist/utils/utils.js +24 -1
  13. package/package.json +6 -12
  14. package/scss_to_js/scss_variables.js +1 -0
  15. package/scss_to_js/scss_variables.json +5 -0
  16. package/src/components/base/avatar_labeled/avatar_labeled.stories.js +2 -1
  17. package/src/components/base/avatar_link/avatar_link.stories.js +2 -3
  18. package/src/components/base/breadcrumb/breadcrumb.md +1 -1
  19. package/src/components/base/breadcrumb/breadcrumb.stories.js +2 -1
  20. package/src/components/base/broadcast_message/broadcast_message.scss +1 -1
  21. package/src/components/base/button/button.scss +1 -1
  22. package/src/components/base/dropdown/dropdown.scss +10 -3
  23. package/src/components/base/dropdown/dropdown_item.scss +1 -0
  24. package/src/components/base/modal/modal.spec.js +20 -0
  25. package/src/components/base/modal/modal.vue +14 -1
  26. package/src/components/base/new_dropdowns/base_dropdown/base_dropdown.spec.js +171 -0
  27. package/src/components/base/new_dropdowns/base_dropdown/base_dropdown.vue +221 -0
  28. package/src/components/base/new_dropdowns/constants.js +22 -0
  29. package/src/components/base/new_dropdowns/listbox/listbox.md +71 -0
  30. package/src/components/base/new_dropdowns/listbox/listbox.spec.js +236 -0
  31. package/src/components/base/new_dropdowns/listbox/listbox.stories.js +276 -0
  32. package/src/components/base/new_dropdowns/listbox/listbox.vue +348 -0
  33. package/src/components/base/new_dropdowns/listbox/listbox_item.spec.js +104 -0
  34. package/src/components/base/new_dropdowns/listbox/listbox_item.vue +59 -0
  35. package/src/index.js +4 -0
  36. package/src/scss/utilities.scss +8 -0
  37. package/src/scss/utility-mixins/color.scss +4 -0
  38. package/src/scss/variables.scss +1 -0
  39. package/src/utils/utils.js +18 -0
  40. package/src/utils/utils.spec.js +41 -1
  41. package/dist/components/base/accordion/accordion.documentation.js +0 -8
  42. package/dist/components/base/accordion/accordion_item.documentation.js +0 -7
  43. package/dist/components/base/alert/alert.documentation.js +0 -13
  44. package/dist/components/base/avatar/avatar.documentation.js +0 -8
  45. package/dist/components/base/avatar_labeled/avatar_labeled.documentation.js +0 -8
  46. package/dist/components/base/avatar_link/avatar_link.documentation.js +0 -8
  47. package/dist/components/base/avatars_inline/avatars_inline.documentation.js +0 -13
  48. package/dist/components/base/badge/badge.documentation.js +0 -8
  49. package/dist/components/base/banner/banner.documentation.js +0 -8
  50. package/dist/components/base/breadcrumb/breadcrumb.documentation.js +0 -8
  51. package/dist/components/base/broadcast_message/broadcast_message.documentation.js +0 -8
  52. package/dist/components/base/button/button.documentation.js +0 -24
  53. package/dist/components/base/button_group/button_group.documentation.js +0 -8
  54. package/dist/components/base/card/card.documentation.js +0 -13
  55. package/dist/components/base/carousel/carousel.documentation.js +0 -8
  56. package/dist/components/base/collapse/collapse.documentation.js +0 -7
  57. package/dist/components/base/datepicker/datepicker.documentation.js +0 -7
  58. package/dist/components/base/daterange_picker/daterange_picker.documentation.js +0 -8
  59. package/dist/components/base/drawer/drawer.documentation.js +0 -8
  60. package/dist/components/base/dropdown/dropdown.documentation.js +0 -8
  61. package/dist/components/base/dropdown/dropdown_item.documentation.js +0 -7
  62. package/dist/components/base/filtered_search/filtered_search.documentation.js +0 -13
  63. package/dist/components/base/filtered_search/filtered_search_suggestion.documentation.js +0 -7
  64. package/dist/components/base/filtered_search/filtered_search_suggestion_list.documentation.js +0 -7
  65. package/dist/components/base/filtered_search/filtered_search_term.documentation.js +0 -12
  66. package/dist/components/base/filtered_search/filtered_search_token.documentation.js +0 -12
  67. package/dist/components/base/filtered_search/filtered_search_token_segment.documentation.js +0 -12
  68. package/dist/components/base/form/form.documentation.js +0 -7
  69. package/dist/components/base/form/form_checkbox/form_checkbox.documentation.js +0 -8
  70. package/dist/components/base/form/form_checkbox_tree/form_checkbox_tree.documentation.js +0 -12
  71. package/dist/components/base/form/form_combobox/form_combobox.documentation.js +0 -13
  72. package/dist/components/base/form/form_group/form_group.documentation.js +0 -7
  73. package/dist/components/base/form/form_input/form_input.documentation.js +0 -8
  74. package/dist/components/base/form/form_input_group/form_input_group.documentation.js +0 -8
  75. package/dist/components/base/form/form_radio/form_radio.documentation.js +0 -8
  76. package/dist/components/base/form/form_radio_group/form_radio_group.documentation.js +0 -8
  77. package/dist/components/base/form/form_select/form_select.documentation.js +0 -8
  78. package/dist/components/base/form/form_text/form_text.documentation.js +0 -14
  79. package/dist/components/base/form/form_textarea/form_textarea.documentation.js +0 -7
  80. package/dist/components/base/form/input_group_text/input_group_text.documentation.js +0 -12
  81. package/dist/components/base/icon/icon.documentation.js +0 -8
  82. package/dist/components/base/infinite_scroll/examples/index.js +0 -49
  83. package/dist/components/base/infinite_scroll/examples/infinite_scroll.all_items.example.js +0 -49
  84. package/dist/components/base/infinite_scroll/examples/infinite_scroll.basic.example.js +0 -62
  85. package/dist/components/base/infinite_scroll/examples/infinite_scroll.finite_total_items.example.js +0 -72
  86. package/dist/components/base/infinite_scroll/examples/infinite_scroll.large_fetched_items.example.js +0 -62
  87. package/dist/components/base/infinite_scroll/examples/infinite_scroll.reverse.example.js +0 -63
  88. package/dist/components/base/infinite_scroll/examples/infinite_scroll.small_fetched_items.example.js +0 -62
  89. package/dist/components/base/infinite_scroll/examples/infinite_scroll.two_way.example.js +0 -94
  90. package/dist/components/base/infinite_scroll/infinite_scroll.documentation.js +0 -8
  91. package/dist/components/base/keyset_pagination/keyset_pagination.documentation.js +0 -13
  92. package/dist/components/base/label/label.documentation.js +0 -8
  93. package/dist/components/base/link/link.documentation.js +0 -7
  94. package/dist/components/base/loading_icon/loading_icon.documentation.js +0 -8
  95. package/dist/components/base/markdown/markdown.documentation.js +0 -12
  96. package/dist/components/base/modal/modal.documentation.js +0 -8
  97. package/dist/components/base/nav/nav.documentation.js +0 -12
  98. package/dist/components/base/navbar/navbar.documentation.js +0 -12
  99. package/dist/components/base/paginated_list/paginated_list.documentation.js +0 -7
  100. package/dist/components/base/pagination/pagination.documentation.js +0 -8
  101. package/dist/components/base/path/path.documentation.js +0 -8
  102. package/dist/components/base/popover/popover.documentation.js +0 -5
  103. package/dist/components/base/search_box_by_click/search_box_by_click.documentation.js +0 -8
  104. package/dist/components/base/search_box_by_type/search_box_by_type.documentation.js +0 -8
  105. package/dist/components/base/segmented_control/segmented_control.documentation.js +0 -8
  106. package/dist/components/base/skeleton_loader/skeleton_loader.documentation.js +0 -13
  107. package/dist/components/base/skeleton_loading/skeleton_loading.documentation.js +0 -7
  108. package/dist/components/base/sorting/sorting.documentation.js +0 -7
  109. package/dist/components/base/sorting/sorting_item.documentation.js +0 -8
  110. package/dist/components/base/table/table.documentation.js +0 -8
  111. package/dist/components/base/table_lite/table_lite.documentation.js +0 -13
  112. package/dist/components/base/tabs/tabs/tabs.documentation.js +0 -8
  113. package/dist/components/base/toast/toast.documentation.js +0 -8
  114. package/dist/components/base/toggle/toggle.documentation.js +0 -13
  115. package/dist/components/base/token/token.documentation.js +0 -5
  116. package/dist/components/base/token_selector/token_selector.documentation.js +0 -12
  117. package/dist/components/base/tooltip/tooltip.documentation.js +0 -8
  118. package/dist/components/charts/area/area.documentation.js +0 -5
  119. package/dist/components/charts/bar/bar.documentation.js +0 -8
  120. package/dist/components/charts/chart/chart.documentation.js +0 -7
  121. package/dist/components/charts/column/column.documentation.js +0 -5
  122. package/dist/components/charts/discrete_scatter/discrete_scatter.documentation.js +0 -5
  123. package/dist/components/charts/gauge/gauge.documentation.js +0 -12
  124. package/dist/components/charts/heatmap/heatmap.documentation.js +0 -8
  125. package/dist/components/charts/line/line.documentation.js +0 -8
  126. package/dist/components/charts/series_label/series_label.documentation.js +0 -7
  127. package/dist/components/charts/single_stat/single_stat.documentation.js +0 -7
  128. package/dist/components/charts/sparkline/sparkline.documentation.js +0 -8
  129. package/dist/components/charts/stacked_column/stacked_column.documentation.js +0 -8
  130. package/dist/components/charts/tooltip/tooltip.documentation.js +0 -8
  131. package/dist/components/editors/rich_text_editor/rich_text_editor.documentation.js +0 -12
  132. package/dist/components/regions/dashboard_skeleton/dashboard_skeleton.documentation.js +0 -7
  133. package/dist/components/regions/empty_state/empty_state.documentation.js +0 -7
  134. package/dist/components/utilities/animated_number/animated_number.documentation.js +0 -13
  135. package/dist/components/utilities/friendly_wrap/friendly_wrap.documentation.js +0 -7
  136. package/dist/components/utilities/intersection_observer/intersection_observer.documentation.js +0 -12
  137. package/dist/components/utilities/intersperse/intersperse.documentation.js +0 -8
  138. package/dist/components/utilities/sprintf/sprintf.documentation.js +0 -8
  139. package/dist/components/utilities/truncate/truncate.documentation.js +0 -7
  140. package/dist/directives/hover_load/hover_load.documentation.js +0 -13
  141. package/dist/directives/outside/outside.documentation.js +0 -13
  142. package/dist/directives/resize_observer/resize_observer.documentation.js +0 -8
  143. package/dist/directives/safe_html/safe_html.documentation.js +0 -8
  144. package/dist/directives/safe_link/safe_link.documentation.js +0 -8
  145. package/documentation/all_components.js +0 -8
  146. package/documentation/components/component_documentation_generator.vue +0 -321
  147. package/documentation/components/example_display.vue +0 -231
  148. package/documentation/components/example_explorer.vue +0 -63
  149. package/documentation/components_documentation.js +0 -111
  150. package/documentation/index.js +0 -8
  151. package/src/components/base/accordion/accordion.documentation.js +0 -6
  152. package/src/components/base/accordion/accordion_item.documentation.js +0 -5
  153. package/src/components/base/alert/alert.documentation.js +0 -6
  154. package/src/components/base/avatar/avatar.documentation.js +0 -6
  155. package/src/components/base/avatar_labeled/avatar_labeled.documentation.js +0 -6
  156. package/src/components/base/avatar_link/avatar_link.documentation.js +0 -6
  157. package/src/components/base/avatars_inline/avatars_inline.documentation.js +0 -6
  158. package/src/components/base/badge/badge.documentation.js +0 -6
  159. package/src/components/base/banner/banner.documentation.js +0 -6
  160. package/src/components/base/breadcrumb/breadcrumb.documentation.js +0 -6
  161. package/src/components/base/broadcast_message/broadcast_message.documentation.js +0 -6
  162. package/src/components/base/button/button.documentation.js +0 -24
  163. package/src/components/base/button_group/button_group.documentation.js +0 -6
  164. package/src/components/base/card/card.documentation.js +0 -6
  165. package/src/components/base/carousel/carousel.documentation.js +0 -6
  166. package/src/components/base/collapse/collapse.documentation.js +0 -5
  167. package/src/components/base/datepicker/datepicker.documentation.js +0 -5
  168. package/src/components/base/daterange_picker/daterange_picker.documentation.js +0 -6
  169. package/src/components/base/drawer/drawer.documentation.js +0 -6
  170. package/src/components/base/dropdown/dropdown.documentation.js +0 -6
  171. package/src/components/base/dropdown/dropdown_item.documentation.js +0 -5
  172. package/src/components/base/filtered_search/filtered_search.documentation.js +0 -6
  173. package/src/components/base/filtered_search/filtered_search_suggestion.documentation.js +0 -5
  174. package/src/components/base/filtered_search/filtered_search_suggestion_list.documentation.js +0 -5
  175. package/src/components/base/filtered_search/filtered_search_term.documentation.js +0 -5
  176. package/src/components/base/filtered_search/filtered_search_token.documentation.js +0 -5
  177. package/src/components/base/filtered_search/filtered_search_token_segment.documentation.js +0 -5
  178. package/src/components/base/form/form.documentation.js +0 -5
  179. package/src/components/base/form/form_checkbox/form_checkbox.documentation.js +0 -6
  180. package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.documentation.js +0 -5
  181. package/src/components/base/form/form_combobox/form_combobox.documentation.js +0 -6
  182. package/src/components/base/form/form_group/form_group.documentation.js +0 -5
  183. package/src/components/base/form/form_input/form_input.documentation.js +0 -6
  184. package/src/components/base/form/form_input_group/form_input_group.documentation.js +0 -6
  185. package/src/components/base/form/form_radio/form_radio.documentation.js +0 -6
  186. package/src/components/base/form/form_radio_group/form_radio_group.documentation.js +0 -6
  187. package/src/components/base/form/form_select/form_select.documentation.js +0 -6
  188. package/src/components/base/form/form_text/form_text.documentation.js +0 -7
  189. package/src/components/base/form/form_textarea/form_textarea.documentation.js +0 -5
  190. package/src/components/base/form/input_group_text/input_group_text.documentation.js +0 -5
  191. package/src/components/base/icon/icon.documentation.js +0 -6
  192. package/src/components/base/infinite_scroll/examples/index.js +0 -57
  193. package/src/components/base/infinite_scroll/examples/infinite_scroll.all_items.example.vue +0 -25
  194. package/src/components/base/infinite_scroll/examples/infinite_scroll.basic.example.vue +0 -43
  195. package/src/components/base/infinite_scroll/examples/infinite_scroll.finite_total_items.example.vue +0 -44
  196. package/src/components/base/infinite_scroll/examples/infinite_scroll.large_fetched_items.example.vue +0 -43
  197. package/src/components/base/infinite_scroll/examples/infinite_scroll.reverse.example.vue +0 -46
  198. package/src/components/base/infinite_scroll/examples/infinite_scroll.small_fetched_items.example.vue +0 -43
  199. package/src/components/base/infinite_scroll/examples/infinite_scroll.two_way.example.vue +0 -75
  200. package/src/components/base/infinite_scroll/infinite_scroll.documentation.js +0 -6
  201. package/src/components/base/keyset_pagination/keyset_pagination.documentation.js +0 -6
  202. package/src/components/base/label/label.documentation.js +0 -6
  203. package/src/components/base/link/link.documentation.js +0 -5
  204. package/src/components/base/loading_icon/loading_icon.documentation.js +0 -6
  205. package/src/components/base/markdown/markdown.documentation.js +0 -5
  206. package/src/components/base/modal/modal.documentation.js +0 -6
  207. package/src/components/base/nav/nav.documentation.js +0 -5
  208. package/src/components/base/navbar/navbar.documentation.js +0 -5
  209. package/src/components/base/paginated_list/paginated_list.documentation.js +0 -5
  210. package/src/components/base/pagination/pagination.documentation.js +0 -6
  211. package/src/components/base/path/path.documentation.js +0 -6
  212. package/src/components/base/popover/popover.documentation.js +0 -3
  213. package/src/components/base/search_box_by_click/search_box_by_click.documentation.js +0 -6
  214. package/src/components/base/search_box_by_type/search_box_by_type.documentation.js +0 -6
  215. package/src/components/base/segmented_control/segmented_control.documentation.js +0 -6
  216. package/src/components/base/skeleton_loader/skeleton_loader.documentation.js +0 -6
  217. package/src/components/base/skeleton_loading/skeleton_loading.documentation.js +0 -5
  218. package/src/components/base/sorting/sorting.documentation.js +0 -5
  219. package/src/components/base/sorting/sorting_item.documentation.js +0 -6
  220. package/src/components/base/table/table.documentation.js +0 -6
  221. package/src/components/base/table_lite/table_lite.documentation.js +0 -6
  222. package/src/components/base/tabs/tabs/tabs.documentation.js +0 -6
  223. package/src/components/base/toast/toast.documentation.js +0 -6
  224. package/src/components/base/toggle/toggle.documentation.js +0 -6
  225. package/src/components/base/token/token.documentation.js +0 -3
  226. package/src/components/base/token_selector/token_selector.documentation.js +0 -5
  227. package/src/components/base/tooltip/tooltip.documentation.js +0 -6
  228. package/src/components/charts/area/area.documentation.js +0 -3
  229. package/src/components/charts/bar/bar.documentation.js +0 -6
  230. package/src/components/charts/chart/chart.documentation.js +0 -5
  231. package/src/components/charts/column/column.documentation.js +0 -3
  232. package/src/components/charts/discrete_scatter/discrete_scatter.documentation.js +0 -3
  233. package/src/components/charts/gauge/gauge.documentation.js +0 -5
  234. package/src/components/charts/heatmap/heatmap.documentation.js +0 -6
  235. package/src/components/charts/line/line.documentation.js +0 -6
  236. package/src/components/charts/series_label/series_label.documentation.js +0 -5
  237. package/src/components/charts/single_stat/single_stat.documentation.js +0 -5
  238. package/src/components/charts/sparkline/sparkline.documentation.js +0 -6
  239. package/src/components/charts/stacked_column/stacked_column.documentation.js +0 -6
  240. package/src/components/charts/tooltip/tooltip.documentation.js +0 -6
  241. package/src/components/editors/rich_text_editor/rich_text_editor.documentation.js +0 -5
  242. package/src/components/regions/dashboard_skeleton/dashboard_skeleton.documentation.js +0 -5
  243. package/src/components/regions/empty_state/empty_state.documentation.js +0 -5
  244. package/src/components/utilities/animated_number/animated_number.documentation.js +0 -6
  245. package/src/components/utilities/friendly_wrap/friendly_wrap.documentation.js +0 -5
  246. package/src/components/utilities/intersection_observer/intersection_observer.documentation.js +0 -5
  247. package/src/components/utilities/intersperse/intersperse.documentation.js +0 -6
  248. package/src/components/utilities/sprintf/sprintf.documentation.js +0 -6
  249. package/src/components/utilities/truncate/truncate.documentation.js +0 -5
  250. package/src/directives/hover_load/hover_load.documentation.js +0 -6
  251. package/src/directives/outside/outside.documentation.js +0 -6
  252. package/src/directives/resize_observer/resize_observer.documentation.js +0 -6
  253. package/src/directives/safe_html/safe_html.documentation.js +0 -6
  254. package/src/directives/safe_link/safe_link.documentation.js +0 -6
@@ -1,6 +0,0 @@
1
- import description from './form_checkbox.md';
2
-
3
- export default {
4
- description,
5
- followsDesignSystem: true,
6
- };
@@ -1,5 +0,0 @@
1
- import * as description from './form_checkbox_tree.md';
2
-
3
- export default {
4
- description,
5
- };
@@ -1,6 +0,0 @@
1
- import * as description from './form_combobox.md';
2
-
3
- export default {
4
- followsDesignSystem: true,
5
- description,
6
- };
@@ -1,5 +0,0 @@
1
- import description from './form_group.md';
2
-
3
- export default {
4
- description,
5
- };
@@ -1,6 +0,0 @@
1
- import description from './form_input.md';
2
-
3
- export default {
4
- description,
5
- followsDesignSystem: true,
6
- };
@@ -1,6 +0,0 @@
1
- import description from './form_input_group.md';
2
-
3
- export default {
4
- followsDesignSystem: false,
5
- description,
6
- };
@@ -1,6 +0,0 @@
1
- import description from './form_radio.md';
2
-
3
- export default {
4
- description,
5
- followsDesignSystem: true,
6
- };
@@ -1,6 +0,0 @@
1
- import description from './form_radio_group.md';
2
-
3
- export default {
4
- description,
5
- followsDesignSystem: true,
6
- };
@@ -1,6 +0,0 @@
1
- import description from './form_select.md';
2
-
3
- export default {
4
- description,
5
- followDesignSystem: true,
6
- };
@@ -1,7 +0,0 @@
1
- import * as description from './form_text.md';
2
-
3
- export default {
4
- description,
5
- bootstrapComponent: 'b-form-text',
6
- propsInfo: {},
7
- };
@@ -1,5 +0,0 @@
1
- import description from './form_textarea.md';
2
-
3
- export default {
4
- description,
5
- };
@@ -1,5 +0,0 @@
1
- import * as description from './input_group_text.md';
2
-
3
- export default {
4
- description,
5
- };
@@ -1,6 +0,0 @@
1
- import description from './icon.md';
2
-
3
- export default {
4
- followsDesignSystem: true,
5
- description,
6
- };
@@ -1,57 +0,0 @@
1
- import InfiniteScrollAllItemsExample from './infinite_scroll.all_items.example.vue';
2
- import InfiniteScrollBasicExample from './infinite_scroll.basic.example.vue';
3
- import InfiniteScrollWithFiniteTotalItemsExample from './infinite_scroll.finite_total_items.example.vue';
4
- import InfiniteScrollWithLargeNumberOfFetchedItemsExample from './infinite_scroll.large_fetched_items.example.vue';
5
- import InfiniteScrollReverseExample from './infinite_scroll.reverse.example.vue';
6
- import InfiniteScrollWithSmallNumberOfFetchedItemsExample from './infinite_scroll.small_fetched_items.example.vue';
7
- import InfiniteScrollTwoWayExample from './infinite_scroll.two_way.example.vue';
8
-
9
- export default [
10
- {
11
- name: 'Basic',
12
- items: [
13
- {
14
- id: 'infinite-scroll-basic',
15
- name: 'Basic',
16
- description: 'Basic Infinite Scroll',
17
- component: InfiniteScrollBasicExample,
18
- },
19
- {
20
- id: 'infinite-scroll-with-finite-total-items',
21
- name: 'Fixed items',
22
- description: 'With finite total items',
23
- component: InfiniteScrollWithFiniteTotalItemsExample,
24
- },
25
- {
26
- id: 'infinite-scroll-small-fetched-items',
27
- name: 'With a small number of fetched items',
28
- description: 'Infinite Scroll with small number of fetched items',
29
- component: InfiniteScrollWithSmallNumberOfFetchedItemsExample,
30
- },
31
- {
32
- id: 'infinite-scroll-large-fetched-items',
33
- name: 'With a large number of fetched items',
34
- description: 'Infinite Scroll with large number of fetched items',
35
- component: InfiniteScrollWithLargeNumberOfFetchedItemsExample,
36
- },
37
- {
38
- id: 'infinite-scroll-all-items',
39
- name: 'Showing all items',
40
- description: 'Infinite Scroll with all items',
41
- component: InfiniteScrollAllItemsExample,
42
- },
43
- {
44
- id: 'infinite-scroll-reverse',
45
- name: 'Reversed',
46
- description: 'Infinite Scroll with items added at the top',
47
- component: InfiniteScrollReverseExample,
48
- },
49
- {
50
- id: 'infinite-scroll-two-way',
51
- name: 'Two way Infinite Scroll',
52
- description: 'Infinite Scroll with items added in two directions',
53
- component: InfiniteScrollTwoWayExample,
54
- },
55
- ],
56
- },
57
- ];
@@ -1,25 +0,0 @@
1
- <script>
2
- const FETCHED_ITEMS = 5;
3
-
4
- export default {
5
- data() {
6
- return {
7
- fetchedItems: FETCHED_ITEMS,
8
- };
9
- },
10
- };
11
- </script>
12
- <template>
13
- <gl-infinite-scroll :fetched-items="fetchedItems">
14
- <template #items>
15
- <ul class="list-group list-group-flushed list-unstyled">
16
- <li v-for="item in fetchedItems" :key="item" class="list-group-item">Item #{{ item }}</li>
17
- </ul>
18
- </template>
19
- <template #default>
20
- <div class="gl-mt-3">
21
- <span>All items loaded</span>
22
- </div>
23
- </template>
24
- </gl-infinite-scroll>
25
- </template>
@@ -1,43 +0,0 @@
1
- <script>
2
- const ITEMS_BATCH_SIZE = 20;
3
-
4
- export default {
5
- data() {
6
- return {
7
- isLoading: false,
8
- fetchedItems: ITEMS_BATCH_SIZE,
9
- loadTimer: null,
10
- };
11
- },
12
- methods: {
13
- bottomReached() {
14
- clearTimeout(this.loadTimer);
15
- this.isLoading = true;
16
- this.loadTimer = setTimeout(() => {
17
- this.fetchedItems += ITEMS_BATCH_SIZE;
18
- this.isLoading = false;
19
- }, 500);
20
- },
21
- },
22
- };
23
- </script>
24
- <template>
25
- <gl-infinite-scroll
26
- :max-list-height="285"
27
- :fetched-items="fetchedItems"
28
- @bottomReached="bottomReached"
29
- >
30
- <template #items>
31
- <ul class="list-group list-group-flushed list-unstyled">
32
- <li v-for="item in fetchedItems" :key="item" class="list-group-item">Item #{{ item }}</li>
33
- </ul>
34
- </template>
35
-
36
- <template #default>
37
- <div class="gl-mt-3">
38
- <gl-loading-icon v-if="isLoading" />
39
- <span v-else>{{ fetchedItems }} items loaded</span>
40
- </div>
41
- </template>
42
- </gl-infinite-scroll>
43
- </template>
@@ -1,44 +0,0 @@
1
- <script>
2
- const ITEMS_BATCH_SIZE = 60;
3
- const TOTAL_ITEMS = 100;
4
-
5
- export default {
6
- data() {
7
- return {
8
- totalItems: TOTAL_ITEMS,
9
- isLoading: false,
10
- fetchedItems: ITEMS_BATCH_SIZE,
11
- loadTimer: null,
12
- };
13
- },
14
- methods: {
15
- bottomReached() {
16
- clearTimeout(this.loadTimer);
17
- if (this.fetchedItems < TOTAL_ITEMS) {
18
- this.isLoading = true;
19
- this.loadTimer = setTimeout(() => {
20
- this.fetchedItems += ITEMS_BATCH_SIZE;
21
- if (this.fetchedItems > TOTAL_ITEMS) {
22
- this.fetchedItems = TOTAL_ITEMS;
23
- }
24
- this.isLoading = false;
25
- }, 500);
26
- }
27
- },
28
- },
29
- };
30
- </script>
31
- <template>
32
- <gl-infinite-scroll
33
- :max-list-height="285"
34
- :fetched-items="fetchedItems"
35
- :total-items="totalItems"
36
- @bottomReached="bottomReached"
37
- >
38
- <template #items>
39
- <ul class="list-group list-group-flushed list-unstyled">
40
- <li v-for="item in fetchedItems" :key="item" class="list-group-item">Item #{{ item }}</li>
41
- </ul>
42
- </template>
43
- </gl-infinite-scroll>
44
- </template>
@@ -1,43 +0,0 @@
1
- <script>
2
- const ITEMS_BATCH_SIZE = 1200;
3
-
4
- export default {
5
- data() {
6
- return {
7
- isLoading: false,
8
- fetchedItems: ITEMS_BATCH_SIZE,
9
- loadTimer: null,
10
- };
11
- },
12
- methods: {
13
- bottomReached() {
14
- clearTimeout(this.loadTimer);
15
- this.isLoading = true;
16
- this.loadTimer = setTimeout(() => {
17
- this.fetchedItems += ITEMS_BATCH_SIZE;
18
- this.isLoading = false;
19
- }, 500);
20
- },
21
- },
22
- };
23
- </script>
24
- <template>
25
- <gl-infinite-scroll
26
- :max-list-height="285"
27
- :fetched-items="fetchedItems"
28
- @bottomReached="bottomReached"
29
- >
30
- <template #items>
31
- <ul class="list-group list-group-flushed list-unstyled">
32
- <li v-for="item in fetchedItems" :key="item" class="list-group-item">Item #{{ item }}</li>
33
- </ul>
34
- </template>
35
-
36
- <template #default>
37
- <div class="gl-mt-3">
38
- <gl-loading-icon v-if="isLoading" />
39
- <span v-else>Showing {{ fetchedItems }} of 1000+ items</span>
40
- </div>
41
- </template>
42
- </gl-infinite-scroll>
43
- </template>
@@ -1,46 +0,0 @@
1
- <script>
2
- const ITEMS_BATCH_SIZE = 5;
3
- const INIT_ITEMS_COUNT = 10;
4
-
5
- export default {
6
- data() {
7
- return {
8
- isLoading: false,
9
- fetchedItems: INIT_ITEMS_COUNT,
10
- loadTimer: null,
11
- };
12
- },
13
- methods: {
14
- topReached() {
15
- clearTimeout(this.loadTimer);
16
- this.isLoading = true;
17
- this.loadTimer = setTimeout(() => {
18
- this.fetchedItems += ITEMS_BATCH_SIZE;
19
- this.isLoading = false;
20
- }, 2000);
21
- },
22
- },
23
- };
24
- </script>
25
- <template>
26
- <gl-infinite-scroll :max-list-height="285" :fetched-items="fetchedItems" @topReached="topReached">
27
- <template #header>
28
- <div class="gl-h-6">
29
- <gl-loading-icon v-if="isLoading" />
30
- </div>
31
- </template>
32
- <template #items>
33
- <ul class="list-group list-group-flushed list-unstyled">
34
- <li v-for="item in fetchedItems" :key="item" class="list-group-item">
35
- Item #{{ Math.abs(item - fetchedItems) + 1 }}
36
- </li>
37
- </ul>
38
- </template>
39
-
40
- <template #default>
41
- <div class="gl-mt-3">
42
- <span>{{ fetchedItems }} items loaded, scroll up for more</span>
43
- </div>
44
- </template>
45
- </gl-infinite-scroll>
46
- </template>
@@ -1,43 +0,0 @@
1
- <script>
2
- const ITEMS_BATCH_SIZE = 60;
3
-
4
- export default {
5
- data() {
6
- return {
7
- isLoading: false,
8
- fetchedItems: ITEMS_BATCH_SIZE,
9
- loadTimer: null,
10
- };
11
- },
12
- methods: {
13
- bottomReached() {
14
- clearTimeout(this.loadTimer);
15
- this.isLoading = true;
16
- this.loadTimer = setTimeout(() => {
17
- this.fetchedItems += ITEMS_BATCH_SIZE;
18
- this.isLoading = false;
19
- }, 500);
20
- },
21
- },
22
- };
23
- </script>
24
- <template>
25
- <gl-infinite-scroll
26
- :max-list-height="285"
27
- :fetched-items="fetchedItems"
28
- @bottomReached="bottomReached"
29
- >
30
- <template #items>
31
- <ul class="list-group list-group-flushed list-unstyled">
32
- <li v-for="item in fetchedItems" :key="item" class="list-group-item">Item #{{ item }}</li>
33
- </ul>
34
- </template>
35
-
36
- <template #default>
37
- <div class="gl-mt-3">
38
- <gl-loading-icon v-if="isLoading" />
39
- <span v-else>Showing {{ fetchedItems }} of 1000+ items</span>
40
- </div>
41
- </template>
42
- </gl-infinite-scroll>
43
- </template>
@@ -1,75 +0,0 @@
1
- <script>
2
- const ITEMS_BATCH_SIZE = 10;
3
- const INIT_ITEMS_COUNT = 20;
4
-
5
- const colors = ['Violet', 'Indigo', 'Blue', 'Green', 'Yellow', 'Orange', 'Red'];
6
- const planets = ['Mercury', 'Venus', 'Earth', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune'];
7
-
8
- let key = 0;
9
- const createItem = () => {
10
- key += 1;
11
- return {
12
- key,
13
- content: `${colors[key % colors.length]} ${planets[key % planets.length]}`,
14
- };
15
- };
16
-
17
- const createArray = (num) => {
18
- const res = [];
19
- for (let i = 0; i < num; i += 1) {
20
- res.push(createItem());
21
- }
22
- return res;
23
- };
24
-
25
- export default {
26
- data() {
27
- return {
28
- isLoading: false,
29
- fetchedItems: createArray(INIT_ITEMS_COUNT),
30
- loadTimer: null,
31
- };
32
- },
33
- methods: {
34
- topReached() {
35
- clearTimeout(this.loadTimer);
36
- this.isLoading = true;
37
- this.loadTimer = setTimeout(() => {
38
- this.fetchedItems.unshift(...createArray(ITEMS_BATCH_SIZE));
39
- this.isLoading = false;
40
- }, 1000);
41
- },
42
- bottomReached() {
43
- clearTimeout(this.loadTimer);
44
- this.isLoading = true;
45
- this.loadTimer = setTimeout(() => {
46
- this.fetchedItems.push(...createArray(ITEMS_BATCH_SIZE));
47
- this.isLoading = false;
48
- }, 1000);
49
- },
50
- },
51
- };
52
- </script>
53
- <template>
54
- <gl-infinite-scroll
55
- :max-list-height="285"
56
- :fetched-items="fetchedItems.length"
57
- @topReached="topReached"
58
- @bottomReached="bottomReached"
59
- >
60
- <template #items>
61
- <ul class="list-group list-group-flushed list-unstyled">
62
- <li v-for="item in fetchedItems" :key="item.key" class="list-group-item">
63
- {{ item.content }}
64
- </li>
65
- </ul>
66
- </template>
67
-
68
- <template #default>
69
- <div class="gl-mt-3">
70
- <gl-loading-icon v-if="isLoading" />
71
- <span v-else>{{ fetchedItems.length }} items loaded, scroll up or down for more</span>
72
- </div>
73
- </template>
74
- </gl-infinite-scroll>
75
- </template>
@@ -1,6 +0,0 @@
1
- import description from './infinite_scroll.md';
2
-
3
- export default {
4
- followsDesignSystem: true,
5
- description,
6
- };
@@ -1,6 +0,0 @@
1
- import * as description from './keyset_pagination.md';
2
-
3
- export default {
4
- description,
5
- followsDesignSystem: true,
6
- };
@@ -1,6 +0,0 @@
1
- import description from './label.vue';
2
-
3
- export default {
4
- followsDesignSystem: true,
5
- description,
6
- };
@@ -1,5 +0,0 @@
1
- import description from './link.md';
2
-
3
- export default {
4
- description,
5
- };
@@ -1,6 +0,0 @@
1
- import description from './loading_icon.md';
2
-
3
- export default {
4
- followsDesignSystem: true,
5
- description,
6
- };
@@ -1,5 +0,0 @@
1
- import * as description from './markdown.md';
2
-
3
- export default {
4
- description,
5
- };
@@ -1,6 +0,0 @@
1
- import description from './modal.md';
2
-
3
- export default {
4
- followsDesignSystem: true,
5
- description,
6
- };
@@ -1,5 +0,0 @@
1
- import * as description from './nav.md';
2
-
3
- export default {
4
- description,
5
- };
@@ -1,5 +0,0 @@
1
- import * as description from './navbar.md';
2
-
3
- export default {
4
- description,
5
- };
@@ -1,5 +0,0 @@
1
- import description from './paginated_list.md';
2
-
3
- export default {
4
- description,
5
- };
@@ -1,6 +0,0 @@
1
- import description from './pagination.md';
2
-
3
- export default {
4
- followsDesignSystem: true,
5
- description,
6
- };
@@ -1,6 +0,0 @@
1
- import description from './path.md';
2
-
3
- export default {
4
- description,
5
- followsDesignSystem: true,
6
- };
@@ -1,3 +0,0 @@
1
- export default {
2
- followsDesignSystem: true,
3
- };
@@ -1,6 +0,0 @@
1
- import description from './search_box_by_click.md';
2
-
3
- export default {
4
- followsDesignSystem: true,
5
- description,
6
- };
@@ -1,6 +0,0 @@
1
- import description from './search_box_by_type.md';
2
-
3
- export default {
4
- followsDesignSystem: true,
5
- description,
6
- };
@@ -1,6 +0,0 @@
1
- import description from './segmented_control.md';
2
-
3
- export default {
4
- followsDesignSystem: false,
5
- description,
6
- };
@@ -1,6 +0,0 @@
1
- import * as description from './skeleton_loader.md';
2
-
3
- export default {
4
- followsDesignSystem: true,
5
- description,
6
- };
@@ -1,5 +0,0 @@
1
- import description from './skeleton_loading.md';
2
-
3
- export default {
4
- description,
5
- };
@@ -1,5 +0,0 @@
1
- import description from './sorting.md';
2
-
3
- export default {
4
- description,
5
- };
@@ -1,6 +0,0 @@
1
- import description from './sorting_item.md';
2
-
3
- export default {
4
- description,
5
- bootstrapComponent: 'b-dropdown-item',
6
- };
@@ -1,6 +0,0 @@
1
- import description from './table.md';
2
-
3
- export default {
4
- followsDesignSystem: false,
5
- description,
6
- };
@@ -1,6 +0,0 @@
1
- import * as description from './table_lite.md';
2
-
3
- export default {
4
- description,
5
- bootstrapComponent: 'b-table-lite',
6
- };
@@ -1,6 +0,0 @@
1
- import description from './tabs.md';
2
-
3
- export default {
4
- description,
5
- followsDesignSystem: true,
6
- };
@@ -1,6 +0,0 @@
1
- import description from './toast.md';
2
-
3
- export default {
4
- followsDesignSystem: true,
5
- description,
6
- };