@gitlab/ui 80.13.0 → 80.13.2

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 (277) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/components/base/filtered_search/filtered_search.js +3 -2
  3. package/dist/components/experimental/experiment_badge/experiment_badge.js +6 -6
  4. package/package.json +19 -13
  5. package/src/components/base/filtered_search/filtered_search.vue +3 -2
  6. package/src/components/experimental/experiment_badge/experiment_badge.vue +12 -11
  7. package/src/components/base/accordion/accordion.spec.js +0 -58
  8. package/src/components/base/accordion/accordion.stories.js +0 -59
  9. package/src/components/base/accordion/accordion_item.spec.js +0 -131
  10. package/src/components/base/accordion/accordion_item.stories.js +0 -57
  11. package/src/components/base/alert/alert.spec.js +0 -229
  12. package/src/components/base/alert/alert.stories.js +0 -166
  13. package/src/components/base/avatar/avatar.spec.js +0 -91
  14. package/src/components/base/avatar/avatar.stories.js +0 -160
  15. package/src/components/base/avatar_labeled/avatar_labeled.spec.js +0 -109
  16. package/src/components/base/avatar_labeled/avatar_labeled.stories.js +0 -187
  17. package/src/components/base/avatar_link/avatar_link.stories.js +0 -86
  18. package/src/components/base/avatars_inline/avatars_inline.spec.js +0 -124
  19. package/src/components/base/avatars_inline/avatars_inline.stories.js +0 -83
  20. package/src/components/base/badge/badge.spec.js +0 -83
  21. package/src/components/base/badge/badge.stories.js +0 -184
  22. package/src/components/base/banner/banner.spec.js +0 -112
  23. package/src/components/base/banner/banner.stories.js +0 -103
  24. package/src/components/base/breadcrumb/breadcrumb.spec.js +0 -240
  25. package/src/components/base/breadcrumb/breadcrumb.stories.js +0 -100
  26. package/src/components/base/breadcrumb/breadcrumb_item.spec.js +0 -45
  27. package/src/components/base/broadcast_message/broadcast_message.spec.js +0 -32
  28. package/src/components/base/broadcast_message/broadcast_message.stories.js +0 -112
  29. package/src/components/base/button/button.spec.js +0 -225
  30. package/src/components/base/button/button.stories.js +0 -529
  31. package/src/components/base/button_group/button_group.stories.js +0 -132
  32. package/src/components/base/card/card.spec.js +0 -139
  33. package/src/components/base/card/card.stories.js +0 -48
  34. package/src/components/base/carousel/carousel.spec.js +0 -24
  35. package/src/components/base/carousel/carousel.stories.js +0 -51
  36. package/src/components/base/collapse/collapse.spec.js +0 -24
  37. package/src/components/base/collapse/collapse.stories.js +0 -42
  38. package/src/components/base/datepicker/datepicker.spec.js +0 -431
  39. package/src/components/base/datepicker/datepicker.stories.js +0 -141
  40. package/src/components/base/daterange_picker/daterange_picker.spec.js +0 -307
  41. package/src/components/base/daterange_picker/daterange_picker.stories.js +0 -145
  42. package/src/components/base/drawer/drawer.spec.js +0 -136
  43. package/src/components/base/drawer/drawer.stories.js +0 -272
  44. package/src/components/base/dropdown/dropdown.spec.js +0 -457
  45. package/src/components/base/dropdown/dropdown.stories.js +0 -574
  46. package/src/components/base/dropdown/dropdown_form.spec.js +0 -9
  47. package/src/components/base/dropdown/dropdown_item.spec.js +0 -67
  48. package/src/components/base/dropdown/dropdown_item.stories.js +0 -113
  49. package/src/components/base/filtered_search/__snapshots__/filtered_search_term.spec.js.snap +0 -31
  50. package/src/components/base/filtered_search/filtered_search.spec.js +0 -891
  51. package/src/components/base/filtered_search/filtered_search.stories.js +0 -678
  52. package/src/components/base/filtered_search/filtered_search_suggestion.spec.js +0 -67
  53. package/src/components/base/filtered_search/filtered_search_suggestion.stories.js +0 -33
  54. package/src/components/base/filtered_search/filtered_search_suggestion_list.spec.js +0 -337
  55. package/src/components/base/filtered_search/filtered_search_suggestion_list.stories.js +0 -53
  56. package/src/components/base/filtered_search/filtered_search_term.spec.js +0 -212
  57. package/src/components/base/filtered_search/filtered_search_term.stories.js +0 -60
  58. package/src/components/base/filtered_search/filtered_search_token.spec.js +0 -461
  59. package/src/components/base/filtered_search/filtered_search_token.stories.js +0 -199
  60. package/src/components/base/filtered_search/filtered_search_token_segment.spec.js +0 -393
  61. package/src/components/base/filtered_search/filtered_search_token_segment.stories.js +0 -110
  62. package/src/components/base/filtered_search/filtered_search_utils.spec.js +0 -82
  63. package/src/components/base/form/form.stories.js +0 -101
  64. package/src/components/base/form/form_checkbox/form_checkbox.stories.js +0 -55
  65. package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.spec.js +0 -265
  66. package/src/components/base/form/form_checkbox_tree/form_checkbox_tree.stories.js +0 -134
  67. package/src/components/base/form/form_combobox/form_combobox.spec.js +0 -301
  68. package/src/components/base/form/form_combobox/form_combobox.stories.js +0 -114
  69. package/src/components/base/form/form_date/form_date.spec.js +0 -85
  70. package/src/components/base/form/form_date/form_date.stories.js +0 -108
  71. package/src/components/base/form/form_fields/form_field_validator.spec.js +0 -51
  72. package/src/components/base/form/form_fields/form_fields.spec.js +0 -531
  73. package/src/components/base/form/form_fields/form_fields.stories.js +0 -150
  74. package/src/components/base/form/form_fields/mappers.spec.js +0 -17
  75. package/src/components/base/form/form_fields/validators.spec.js +0 -56
  76. package/src/components/base/form/form_group/form_group.spec.js +0 -110
  77. package/src/components/base/form/form_group/form_group.stories.js +0 -123
  78. package/src/components/base/form/form_input/form_input.spec.js +0 -130
  79. package/src/components/base/form/form_input/form_input.stories.js +0 -128
  80. package/src/components/base/form/form_input_group/form_input_group.spec.js +0 -121
  81. package/src/components/base/form/form_input_group/form_input_group.stories.js +0 -86
  82. package/src/components/base/form/form_radio/form_radio.spec.js +0 -116
  83. package/src/components/base/form/form_radio/form_radio.stories.js +0 -70
  84. package/src/components/base/form/form_radio_group/form_radio_group.spec.js +0 -86
  85. package/src/components/base/form/form_radio_group/form_radio_group.stories.js +0 -79
  86. package/src/components/base/form/form_select/form_select.spec.js +0 -69
  87. package/src/components/base/form/form_select/form_select.stories.js +0 -156
  88. package/src/components/base/form/form_text/form_text.stories.js +0 -27
  89. package/src/components/base/form/form_textarea/form_textarea.spec.js +0 -242
  90. package/src/components/base/form/form_textarea/form_textarea.stories.js +0 -68
  91. package/src/components/base/form/input_group_text/input_group_text.spec.js +0 -9
  92. package/src/components/base/form/input_group_text/input_group_text.stories.js +0 -30
  93. package/src/components/base/icon/__snapshots__/icon.spec.js.snap +0 -14
  94. package/src/components/base/icon/icon.spec.js +0 -92
  95. package/src/components/base/icon/icon.stories.js +0 -56
  96. package/src/components/base/infinite_scroll/infinite_scroll.spec.js +0 -182
  97. package/src/components/base/infinite_scroll/infinite_scroll.stories.js +0 -94
  98. package/src/components/base/keyset_pagination/keyset_pagination.spec.js +0 -313
  99. package/src/components/base/keyset_pagination/keyset_pagination.stories.js +0 -66
  100. package/src/components/base/label/label.spec.js +0 -257
  101. package/src/components/base/label/label.stories.js +0 -76
  102. package/src/components/base/link/link.spec.js +0 -88
  103. package/src/components/base/link/link.stories.js +0 -64
  104. package/src/components/base/loading_icon/loading_icon.spec.js +0 -109
  105. package/src/components/base/loading_icon/loading_icon.stories.js +0 -60
  106. package/src/components/base/markdown/markdown.spec.js +0 -24
  107. package/src/components/base/markdown/markdown.stories.js +0 -33
  108. package/src/components/base/modal/modal.spec.js +0 -265
  109. package/src/components/base/modal/modal.stories.js +0 -159
  110. package/src/components/base/nav/nav.spec.js +0 -19
  111. package/src/components/base/nav/nav.stories.js +0 -57
  112. package/src/components/base/nav/nav_item.spec.js +0 -16
  113. package/src/components/base/nav/nav_item_dropdown.spec.js +0 -58
  114. package/src/components/base/navbar/navbar.spec.js +0 -21
  115. package/src/components/base/navbar/navbar.stories.js +0 -28
  116. package/src/components/base/new_dropdowns/base_dropdown/base_dropdown.spec.js +0 -566
  117. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.spec.js +0 -452
  118. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown.stories.js +0 -345
  119. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.spec.js +0 -84
  120. package/src/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.spec.js +0 -200
  121. package/src/components/base/new_dropdowns/disclosure/utils.spec.js +0 -74
  122. package/src/components/base/new_dropdowns/listbox/listbox.spec.js +0 -950
  123. package/src/components/base/new_dropdowns/listbox/listbox.stories.js +0 -840
  124. package/src/components/base/new_dropdowns/listbox/listbox_group.spec.js +0 -61
  125. package/src/components/base/new_dropdowns/listbox/listbox_item.spec.js +0 -129
  126. package/src/components/base/new_dropdowns/listbox/listbox_search_input.spec.js +0 -62
  127. package/src/components/base/new_dropdowns/listbox/utils.spec.js +0 -58
  128. package/src/components/base/paginated_list/__snapshots__/paginated_list.spec.js.snap +0 -922
  129. package/src/components/base/paginated_list/paginated_list.spec.js +0 -212
  130. package/src/components/base/paginated_list/paginated_list.stories.js +0 -207
  131. package/src/components/base/pagination/pagination.spec.js +0 -401
  132. package/src/components/base/pagination/pagination.stories.js +0 -129
  133. package/src/components/base/path/__snapshots__/path.spec.js.snap +0 -586
  134. package/src/components/base/path/path.spec.js +0 -237
  135. package/src/components/base/path/path.stories.js +0 -84
  136. package/src/components/base/popover/popover.spec.js +0 -104
  137. package/src/components/base/popover/popover.stories.js +0 -109
  138. package/src/components/base/progress_bar/progress_bar.stories.js +0 -34
  139. package/src/components/base/search_box_by_click/search_box_by_click.spec.js +0 -209
  140. package/src/components/base/search_box_by_click/search_box_by_click.stories.js +0 -100
  141. package/src/components/base/search_box_by_type/search_box_by_type.spec.js +0 -164
  142. package/src/components/base/search_box_by_type/search_box_by_type.stories.js +0 -63
  143. package/src/components/base/segmented_control/segmented_control.spec.js +0 -135
  144. package/src/components/base/segmented_control/segmented_control.stories.js +0 -59
  145. package/src/components/base/skeleton_loader/skeleton_loader.spec.js +0 -151
  146. package/src/components/base/skeleton_loader/skeleton_loader.stories.js +0 -86
  147. package/src/components/base/sorting/sorting.spec.js +0 -170
  148. package/src/components/base/sorting/sorting.stories.js +0 -98
  149. package/src/components/base/table/table.spec.js +0 -192
  150. package/src/components/base/table/table.stories.js +0 -186
  151. package/src/components/base/table_lite/table_lite.spec.js +0 -40
  152. package/src/components/base/table_lite/table_lite.stories.js +0 -74
  153. package/src/components/base/tabs/tab/tab.spec.js +0 -34
  154. package/src/components/base/tabs/tabs/scrollable_tabs.spec.js +0 -260
  155. package/src/components/base/tabs/tabs/tabs.spec.js +0 -366
  156. package/src/components/base/tabs/tabs/tabs.stories.js +0 -209
  157. package/src/components/base/toast/toast.spec.js +0 -72
  158. package/src/components/base/toast/toast.stories.js +0 -87
  159. package/src/components/base/toggle/toggle.spec.js +0 -168
  160. package/src/components/base/toggle/toggle.stories.js +0 -106
  161. package/src/components/base/token/token.spec.js +0 -48
  162. package/src/components/base/token/token.stories.js +0 -58
  163. package/src/components/base/token_selector/helpers.spec.js +0 -40
  164. package/src/components/base/token_selector/token_container.spec.js +0 -306
  165. package/src/components/base/token_selector/token_selector.spec.js +0 -653
  166. package/src/components/base/token_selector/token_selector.stories.js +0 -114
  167. package/src/components/base/token_selector/token_selector_dropdown.spec.js +0 -347
  168. package/src/components/base/tooltip/tooltip.spec.js +0 -27
  169. package/src/components/base/tooltip/tooltip.stories.js +0 -69
  170. package/src/components/charts/area/area.spec.js +0 -286
  171. package/src/components/charts/area/area.stories.js +0 -208
  172. package/src/components/charts/bar/__snapshots__/bar.spec.js.snap +0 -82
  173. package/src/components/charts/bar/bar.spec.js +0 -92
  174. package/src/components/charts/bar/bar.stories.js +0 -72
  175. package/src/components/charts/chart/chart.spec.js +0 -167
  176. package/src/components/charts/chart/chart.stories.js +0 -111
  177. package/src/components/charts/column/__snapshots__/column_chart.spec.js.snap +0 -323
  178. package/src/components/charts/column/column.stories.js +0 -111
  179. package/src/components/charts/column/column_chart.spec.js +0 -223
  180. package/src/components/charts/discrete_scatter/discrete_scatter.spec.js +0 -173
  181. package/src/components/charts/discrete_scatter/discrete_scatter.stories.js +0 -64
  182. package/src/components/charts/gauge/gauge.spec.js +0 -280
  183. package/src/components/charts/gauge/gauge.stories.js +0 -97
  184. package/src/components/charts/heatmap/heatmap.spec.js +0 -103
  185. package/src/components/charts/heatmap/heatmap.stories.js +0 -78
  186. package/src/components/charts/legend/legend.spec.js +0 -274
  187. package/src/components/charts/legend/legend.stories.js +0 -174
  188. package/src/components/charts/line/line.spec.js +0 -278
  189. package/src/components/charts/line/line.stories.js +0 -238
  190. package/src/components/charts/series_label/series_label.stories.js +0 -78
  191. package/src/components/charts/single_stat/single_stat.spec.js +0 -217
  192. package/src/components/charts/single_stat/single_stat.stories.js +0 -103
  193. package/src/components/charts/sparkline/sparkline.spec.js +0 -220
  194. package/src/components/charts/sparkline/sparkline.stories.js +0 -85
  195. package/src/components/charts/stacked_column/__snapshots__/stacked_column.spec.js.snap +0 -905
  196. package/src/components/charts/stacked_column/stacked_column.spec.js +0 -194
  197. package/src/components/charts/stacked_column/stacked_column.stories.js +0 -130
  198. package/src/components/charts/tooltip/tooltip.spec.js +0 -282
  199. package/src/components/charts/tooltip/tooltip.stories.js +0 -90
  200. package/src/components/experimental/duo/chat/components/duo_chat_conversation/duo_chat_conversation.spec.js +0 -46
  201. package/src/components/experimental/duo/chat/components/duo_chat_conversation/duo_chat_conversation.stories.js +0 -62
  202. package/src/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.spec.js +0 -70
  203. package/src/components/experimental/duo/chat/components/duo_chat_loader/duo_chat_loader.stories.js +0 -31
  204. package/src/components/experimental/duo/chat/components/duo_chat_message/copy_code_element.spec.js +0 -64
  205. package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.spec.js +0 -534
  206. package/src/components/experimental/duo/chat/components/duo_chat_message/duo_chat_message.stories.js +0 -55
  207. package/src/components/experimental/duo/chat/components/duo_chat_message/utils.spec.js +0 -24
  208. package/src/components/experimental/duo/chat/components/duo_chat_message_sources/duo_chat_message_sources.spec.js +0 -93
  209. package/src/components/experimental/duo/chat/components/duo_chat_message_sources/duo_chat_message_sources.stories.js +0 -32
  210. package/src/components/experimental/duo/chat/components/duo_chat_predefined_prompts/duo_chat_predefined_prompts.spec.js +0 -35
  211. package/src/components/experimental/duo/chat/components/duo_chat_predefined_prompts/duo_chat_predefined_prompts.stories.js +0 -36
  212. package/src/components/experimental/duo/chat/duo_chat.spec.js +0 -828
  213. package/src/components/experimental/duo/chat/duo_chat.stories.js +0 -240
  214. package/src/components/experimental/duo/chat/markdown_renderer.spec.js +0 -55
  215. package/src/components/experimental/duo/user_feedback/user_feedback.spec.js +0 -100
  216. package/src/components/experimental/duo/user_feedback/user_feedback.stories.js +0 -107
  217. package/src/components/experimental/duo/user_feedback/user_feedback_modal.spec.js +0 -134
  218. package/src/components/experimental/experiment_badge/experiment_badge.spec.js +0 -77
  219. package/src/components/experimental/experiment_badge/experiment_badge.stories.js +0 -58
  220. package/src/components/regions/dashboard_skeleton/dashboard_skeleton.stories.js +0 -29
  221. package/src/components/regions/empty_state/empty_state.spec.js +0 -293
  222. package/src/components/regions/empty_state/empty_state.stories.js +0 -160
  223. package/src/components/shared_components/charts/tooltip_default_format.spec.js +0 -69
  224. package/src/components/shared_components/clear_icon_button/__snapshots__/clear_icon_button.spec.js.snap +0 -15
  225. package/src/components/shared_components/clear_icon_button/clear_icon_button.spec.js +0 -23
  226. package/src/components/shared_components/close_button/__snapshots__/close_button.spec.js.snap +0 -12
  227. package/src/components/shared_components/close_button/close_button.spec.js +0 -22
  228. package/src/components/utilities/animated_number/animated_number.spec.js +0 -133
  229. package/src/components/utilities/animated_number/animated_number.stories.js +0 -63
  230. package/src/components/utilities/friendly_wrap/friendly_wrap.spec.js +0 -123
  231. package/src/components/utilities/friendly_wrap/friendly_wrap.stories.js +0 -56
  232. package/src/components/utilities/intersection_observer/intersection_observer.spec.js +0 -116
  233. package/src/components/utilities/intersection_observer/intersection_observer.stories.js +0 -162
  234. package/src/components/utilities/intersperse/intersperse.spec.js +0 -115
  235. package/src/components/utilities/intersperse/intersperse.stories.js +0 -53
  236. package/src/components/utilities/sprintf/sprintf.spec.js +0 -337
  237. package/src/components/utilities/sprintf/sprintf.stories.js +0 -104
  238. package/src/components/utilities/truncate/truncate.spec.js +0 -125
  239. package/src/components/utilities/truncate/truncate.stories.js +0 -50
  240. package/src/components/utilities/truncate_text/truncate_text.spec.js +0 -150
  241. package/src/components/utilities/truncate_text/truncate_text.stories.js +0 -45
  242. package/src/directives/hover_load/hover_load.spec.js +0 -64
  243. package/src/directives/hover_load/hover_load.stories.js +0 -51
  244. package/src/directives/outside/outside.spec.js +0 -338
  245. package/src/directives/outside/outside.stories.js +0 -35
  246. package/src/directives/resize_observer/resize_observer.spec.js +0 -125
  247. package/src/directives/resize_observer/resize_observer.stories.js +0 -76
  248. package/src/directives/safe_html/safe_html.spec.js +0 -149
  249. package/src/directives/safe_html/safe_html.stories.js +0 -60
  250. package/src/directives/safe_link/safe_link.spec.js +0 -135
  251. package/src/directives/safe_link/safe_link.stories.js +0 -39
  252. package/src/internal/color_contrast/color_contrast.spec.js +0 -34
  253. package/src/internal/color_contrast/color_contrast.stories.js +0 -41
  254. package/src/scss/functions.spec.scss +0 -54
  255. package/src/scss/mixins.spec.scss +0 -93
  256. package/src/scss/run_scss_tests.spec.js +0 -26
  257. package/src/scss/typescale/typescale.stories.js +0 -61
  258. package/src/tokens/color.constant.tokens.stories.js +0 -19
  259. package/src/tokens/color.dark.tokens.stories.js +0 -26
  260. package/src/tokens/color.data_viz.dark.tokens.stories.js +0 -19
  261. package/src/tokens/color.data_viz.tokens.stories.js +0 -19
  262. package/src/tokens/color.theme.dark.tokens.stories.js +0 -21
  263. package/src/tokens/color.theme.tokens.stories.js +0 -21
  264. package/src/tokens/color.tokens.stories.js +0 -26
  265. package/src/tokens/color.transparency.tokens.stories.js +0 -14
  266. package/src/tokens/text.dark.tokens.stories.js +0 -18
  267. package/src/tokens/text.tokens.stories.js +0 -17
  268. package/src/tokens/tokens.stories.js +0 -16
  269. package/src/utils/breakpoints.spec.js +0 -26
  270. package/src/utils/charts/config.spec.js +0 -478
  271. package/src/utils/charts/utils.spec.js +0 -106
  272. package/src/utils/datetime_utility.spec.js +0 -98
  273. package/src/utils/is_slot_empty.spec.js +0 -73
  274. package/src/utils/number_utils.spec.js +0 -110
  275. package/src/utils/stories_utils.spec.js +0 -18
  276. package/src/utils/string_utils.spec.js +0 -56
  277. package/src/utils/utils.spec.js +0 -156
package/CHANGELOG.md CHANGED
@@ -1,3 +1,17 @@
1
+ ## [80.13.2](https://gitlab.com/gitlab-org/gitlab-ui/compare/v80.13.1...v80.13.2) (2024-05-24)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **GlExperimentBadge:** Update language of experiment badges ([82a3335](https://gitlab.com/gitlab-org/gitlab-ui/commit/82a33353c122ac6f269856f4c7f1efe0b8b58f50))
7
+
8
+ ## [80.13.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v80.13.0...v80.13.1) (2024-05-24)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **GlFilteredSearch:** set initial state when value is updated to empty array ([19eb8fa](https://gitlab.com/gitlab-org/gitlab-ui/commit/19eb8fa4fe075597a6b938d1f8f019ae9a10e70b))
14
+
1
15
  # [80.13.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v80.12.0...v80.13.0) (2024-05-22)
2
16
 
3
17
 
@@ -226,8 +226,9 @@ var script = {
226
226
  },
227
227
  value: {
228
228
  handler(newValue, oldValue) {
229
- if (newValue.length && !isEqual(newValue, oldValue)) {
230
- this.applyNewValue(cloneDeep(newValue));
229
+ if (!isEqual(newValue, oldValue)) {
230
+ const value = newValue.length ? newValue : initialState();
231
+ this.applyNewValue(cloneDeep(value));
231
232
  }
232
233
  },
233
234
  deep: true,
@@ -9,15 +9,15 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
9
9
  const i18n = {
10
10
  experiment: {
11
11
  BADGE: 'Experiment',
12
- POPOVER_TITLE: "What's an Experiment?",
13
- POPOVER_CONTENT: "An %{linkStart}Experiment%{linkEnd} is a feature that's in the process of being developed. It's not production-ready. We encourage users to try Experimental features and provide feedback. An Experiment: %{bullets}",
14
- POPOVER_BULLETS: ['May be unstable', 'Has no support and might not be documented', 'Can be removed at any time']
12
+ POPOVER_TITLE: "What's an experiment?",
13
+ POPOVER_CONTENT: 'An %{linkStart}experiment%{linkEnd} is not yet production-ready, but is released for initial testing and feedback during development.\nExperiments: %{bullets}',
14
+ POPOVER_BULLETS: ['Might be unstable or cause data loss.', 'Are not supported and might not be documented.', 'Could be changed or removed at any time.', 'Are subject to the GitLab Testing Agreement.']
15
15
  },
16
16
  beta: {
17
17
  BADGE: 'Beta',
18
- POPOVER_TITLE: "What's a Beta?",
19
- POPOVER_CONTENT: "A %{linkStart}Beta%{linkEnd} feature is not production-ready, but is unlikely to change drastically before it's released. We encourage users to try Beta features and provide feedback.\nA Beta feature: %{bullets}",
20
- POPOVER_BULLETS: ['May be unstable', 'Should not cause data loss', 'Is supported by a commercially reasonable effort', 'Is complete or near completion']
18
+ POPOVER_TITLE: "What's a beta?",
19
+ POPOVER_CONTENT: "A %{linkStart}beta%{linkEnd} feature is not yet production-ready, but is ready for testing and unlikely to change significantly before it's released.\nBeta features: %{bullets}",
20
+ POPOVER_BULLETS: ['Have a low risk of data loss, but might still be unstable.', 'Are supported on a commercially-reasonable effort basis.', 'Have a near complete user experience.', 'Are subject to the GitLab Testing Agreement.']
21
21
  }
22
22
  };
23
23
  var script = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitlab/ui",
3
- "version": "80.13.0",
3
+ "version": "80.13.2",
4
4
  "description": "GitLab UI Components",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -18,7 +18,10 @@
18
18
  "src",
19
19
  "dist",
20
20
  "translations.json",
21
- "tailwind.defaults.js"
21
+ "tailwind.defaults.js",
22
+ "!*.stories.js",
23
+ "!*.snap",
24
+ "!*.spec.{js,scss}"
22
25
  ],
23
26
  "scripts": {
24
27
  "build": "NODE_ENV=production rollup -c",
@@ -31,15 +34,18 @@
31
34
  "clean": "rm -r dist storybook src/scss/utilities.scss",
32
35
  "cy:a11y": "cypress run --browser chrome --env grepTags=@a11y",
33
36
  "cy:edge": "cypress run --browser edge --env grepTags=-@a11y+-@storybook",
34
- "cy:run": "cypress run --browser firefox --env grepTags=-@a11y",
37
+ "cy:run": "cypress run --browser firefox --env grepTags=-@a11y+-@storybook",
35
38
  "start": "yarn storybook",
36
- "storybook": "yarn storybook-prep && storybook dev --ci --host ${STORYBOOK_HOST:-localhost} --port 9001 -c .storybook",
37
- "storybook-vue3": "yarn storybook-prep && VUE_VERSION=3 storybook dev --ci --host ${STORYBOOK_HOST:-localhost} --port 9001 -c .storybook",
38
- "storybook-prep": "run-s copy-fonts build-tokens generate-utilities",
39
- "storybook-static": "yarn storybook-prep && storybook build -c .storybook -o storybook",
39
+ "storybook": "yarn storybook:prepare && storybook dev --ci --host ${STORYBOOK_HOST:-localhost} --port 9001 -c .storybook",
40
+ "storybook-vue3": "yarn storybook:prepare && VUE_VERSION=3 storybook dev --ci --host ${STORYBOOK_HOST:-localhost} --port 9001 -c .storybook",
41
+ "storybook:prepare": "run-s copy-fonts build-tokens generate-utilities",
42
+ "storybook:build:prod": "yarn storybook:prepare && storybook build -c .storybook -o storybook",
43
+ "storybook:build:test": "yarn storybook:prepare && IS_VISUAL_TEST=true NODE_ENV=test storybook build --test -c .storybook -o storybook",
44
+ "storybook:run": "npx http-server -bgs -p 9001 ./storybook",
40
45
  "pretest:unit": "yarn build-tokens",
41
46
  "test": "run-s test:unit test:visual",
42
- "test:integration": "NODE_ENV=test start-server-and-test start http://${STORYBOOK_HOST:-localhost}:9001/iframe.html 'yarn cy:run && yarn cy:edge && yarn cy:a11y'",
47
+ "test:integration": "yarn run test:integration:server 'yarn cy:run && yarn cy:edge && yarn cy:a11y'",
48
+ "test:integration:server": "NODE_ENV=test start-test storybook:run http-get://${STORYBOOK_HOST:-localhost}:9001/iframe.html",
43
49
  "test:unit": "NODE_ENV=test jest",
44
50
  "test:unit:watch": "yarn test:unit --watch",
45
51
  "test:unit:debug": "NODE_ENV=test node --inspect node_modules/.bin/jest --testPathIgnorePatterns storyshot.spec.js --watch --runInBand",
@@ -47,11 +53,10 @@
47
53
  "test:unit-vue3:watch": "VUE_VERSION=3 yarn test:unit --watch",
48
54
  "test:unit-vue3:debug": "VUE_VERSION=3 NODE_ENV=test node --inspect node_modules/.bin/jest --testPathIgnorePatterns storyshot.spec.js --watch --runInBand",
49
55
  "test:visual": "./bin/run-visual-tests.sh 'test-storybook --browsers firefox --verbose --url http://localhost:9001'",
50
- "test:visual:minimal": "node ./bin/run_minimal_visual_tests.js",
51
56
  "test:visual:update": "./bin/run-visual-tests.sh 'test-storybook -u --browsers firefox --verbose --url http://localhost:9001'",
52
- "test:visual:internal": "NODE_ENV=test IS_VISUAL_TEST=true start-test http-get://${STORYBOOK_HOST:-localhost}:9001/iframe.html",
53
- "prettier": "prettier --check '**/*.{js,vue}'",
54
- "prettier:fix": "prettier --write '**/*.{js,vue}'",
57
+ "test:visual:internal": "NODE_ENV=test IS_VISUAL_TEST=true start-test storybook:run http-get://${STORYBOOK_HOST:-localhost}:9001/iframe.html",
58
+ "prettier": "prettier --check '**/*.{js,ts,vue}'",
59
+ "prettier:fix": "prettier --write '**/*.{js,ts,vue}'",
55
60
  "eslint": "eslint --max-warnings 0 --ext .js,.vue .",
56
61
  "preeslint": "yarn generate-utilities",
57
62
  "eslint:fix": "yarn eslint --fix",
@@ -103,6 +108,7 @@
103
108
  "@gitlab/fonts": "^1.3.0",
104
109
  "@gitlab/stylelint-config": "6.1.0",
105
110
  "@gitlab/svgs": "3.99.0",
111
+ "@jest/test-sequencer": "^29.7.0",
106
112
  "@rollup/plugin-commonjs": "^11.1.0",
107
113
  "@rollup/plugin-node-resolve": "^7.1.3",
108
114
  "@rollup/plugin-replace": "^2.3.2",
@@ -113,7 +119,7 @@
113
119
  "@storybook/addon-viewport": "^7.6.19",
114
120
  "@storybook/builder-webpack5": "^7.6.19",
115
121
  "@storybook/test": "^7.6.19",
116
- "@storybook/test-runner": "0.18.0",
122
+ "@storybook/test-runner": "0.18.1",
117
123
  "@storybook/theming": "^7.6.19",
118
124
  "@storybook/vue": "^7.6.17",
119
125
  "@storybook/vue-webpack5": "^7.6.17",
@@ -237,8 +237,9 @@ export default {
237
237
  },
238
238
  value: {
239
239
  handler(newValue, oldValue) {
240
- if (newValue.length && !isEqual(newValue, oldValue)) {
241
- this.applyNewValue(cloneDeep(newValue));
240
+ if (!isEqual(newValue, oldValue)) {
241
+ const value = newValue.length ? newValue : initialState();
242
+ this.applyNewValue(cloneDeep(value));
242
243
  }
243
244
  },
244
245
  deep: true,
@@ -9,25 +9,26 @@ import { badgeTypes, badgeTypeValidator } from './constants';
9
9
  export const i18n = {
10
10
  experiment: {
11
11
  BADGE: 'Experiment',
12
- POPOVER_TITLE: "What's an Experiment?",
12
+ POPOVER_TITLE: "What's an experiment?",
13
13
  POPOVER_CONTENT:
14
- "An %{linkStart}Experiment%{linkEnd} is a feature that's in the process of being developed. It's not production-ready. We encourage users to try Experimental features and provide feedback. An Experiment: %{bullets}",
14
+ 'An %{linkStart}experiment%{linkEnd} is not yet production-ready, but is released for initial testing and feedback during development.\nExperiments: %{bullets}',
15
15
  POPOVER_BULLETS: [
16
- 'May be unstable',
17
- 'Has no support and might not be documented',
18
- 'Can be removed at any time',
16
+ 'Might be unstable or cause data loss.',
17
+ 'Are not supported and might not be documented.',
18
+ 'Could be changed or removed at any time.',
19
+ 'Are subject to the GitLab Testing Agreement.',
19
20
  ],
20
21
  },
21
22
  beta: {
22
23
  BADGE: 'Beta',
23
- POPOVER_TITLE: "What's a Beta?",
24
+ POPOVER_TITLE: "What's a beta?",
24
25
  POPOVER_CONTENT:
25
- "A %{linkStart}Beta%{linkEnd} feature is not production-ready, but is unlikely to change drastically before it's released. We encourage users to try Beta features and provide feedback.\nA Beta feature: %{bullets}",
26
+ "A %{linkStart}beta%{linkEnd} feature is not yet production-ready, but is ready for testing and unlikely to change significantly before it's released.\nBeta features: %{bullets}",
26
27
  POPOVER_BULLETS: [
27
- 'May be unstable',
28
- 'Should not cause data loss',
29
- 'Is supported by a commercially reasonable effort',
30
- 'Is complete or near completion',
28
+ 'Have a low risk of data loss, but might still be unstable.',
29
+ 'Are supported on a commercially-reasonable effort basis.',
30
+ 'Have a near complete user experience.',
31
+ 'Are subject to the GitLab Testing Agreement.',
31
32
  ],
32
33
  },
33
34
  };
@@ -1,58 +0,0 @@
1
- import { mount } from '@vue/test-utils';
2
- import Vue from 'vue';
3
- import GlAccordion from './accordion.vue';
4
- import GlAccordionItem from './accordion_item.vue';
5
-
6
- describe('GlAccordion', () => {
7
- let wrapper;
8
-
9
- const createComponent = ({ headerLevel = 3, autoCollapse = false } = {}) => {
10
- wrapper = mount(
11
- Vue.extend({
12
- components: { GlAccordion, GlAccordionItem },
13
- data() {
14
- return { headerLevel, autoCollapse };
15
- },
16
- // eslint-disable-next-line @gitlab/no-runtime-template-compiler
17
- template: `
18
- <gl-accordion :header-level="headerLevel" :auto-collapse="autoCollapse">
19
- <gl-accordion-item title="Item 1">
20
- Foo
21
- </gl-accordion-item>
22
- <gl-accordion-item title="Item 2">
23
- Bar
24
- </gl-accordion-item>
25
- <gl-accordion-item title="Item 3">
26
- Bin
27
- </gl-accordion-item>
28
- </gl-accordion>`,
29
- })
30
- );
31
- };
32
-
33
- const findAccordionItems = () => wrapper.findAllComponents(GlAccordionItem);
34
-
35
- it('does not populate the accordion prop by default', () => {
36
- createComponent();
37
- const accordionSetId = findAccordionItems().at(0).vm.accordion;
38
-
39
- // accordion should not be set
40
- expect(accordionSetId).toBeUndefined();
41
- });
42
-
43
- it('populates the accordion prop when autoCollapse is true', () => {
44
- createComponent({ autoCollapse: true });
45
- const accordionSetId = findAccordionItems().at(0).vm.accordion;
46
-
47
- // accordion should be set
48
- expect(accordionSetId).not.toBeUndefined();
49
-
50
- // accordion should be the same across glAccordionItem children
51
- expect(findAccordionItems().at(1).vm.accordion).toEqual(accordionSetId);
52
- });
53
-
54
- it('passes a default headerLevel to children', () => {
55
- createComponent({ headerLevel: 4 });
56
- expect(wrapper.findAll('h4')).toHaveLength(findAccordionItems().length);
57
- });
58
- });
@@ -1,59 +0,0 @@
1
- import readme from './accordion.md';
2
- import GlAccordion from './accordion.vue';
3
- import GlAccordionItem from './accordion_item.vue';
4
-
5
- const template = `
6
- <gl-accordion :auto-collapse="autoCollapse" :header-level="headerLevel">
7
- <gl-accordion-item title="Item 1" :header-level="headerLevel">
8
- Each accordion can be expanded or collapsed independently of others.
9
- </gl-accordion-item>
10
-
11
- <gl-accordion-item title="Item 2" :header-level="headerLevel" :visible="true">
12
- If you want to have an accordion item to be initially visible, please see
13
- <code>Initially Expanded</code> example for the <code>GLAccordionItem</code>.
14
- </gl-accordion-item>
15
-
16
- <gl-accordion-item title="Item 3" :header-level="headerLevel" :visible="autoCollapse">
17
- If you want the other accordion items to collapse when one is open, please see
18
- <code>Auto Collapse</code> example.
19
- </gl-accordion-item>
20
- </gl-accordion>
21
- `;
22
-
23
- const defaultValue = (prop) => GlAccordion.props[prop].default;
24
-
25
- const generateProps = ({ autoCollapse = defaultValue('autoCollapse'), headerLevel = 3 } = {}) => ({
26
- autoCollapse,
27
- headerLevel,
28
- });
29
-
30
- const Template = (args) => ({
31
- components: {
32
- GlAccordion,
33
- GlAccordionItem,
34
- },
35
- props: Object.keys(args),
36
- template,
37
- });
38
-
39
- export const Default = Template.bind({});
40
- Default.args = generateProps();
41
-
42
- export default {
43
- title: 'base/accordion',
44
- component: GlAccordion,
45
- parameters: {
46
- bootstrapComponent: 'b-collapse',
47
- docs: {
48
- description: {
49
- component: readme,
50
- },
51
- },
52
- },
53
- argTypes: {
54
- headerLevel: {
55
- options: [1, 2, 3, 4, 5, 6],
56
- control: 'select',
57
- },
58
- },
59
- };
@@ -1,131 +0,0 @@
1
- import { mount } from '@vue/test-utils';
2
- import { BCollapse } from 'bootstrap-vue';
3
- import { GlCollapseToggleDirective } from '../../../directives/collapse_toggle';
4
- import { waitForAnimationFrame } from '../../../utils/test_utils';
5
- import GlButton from '../button/button.vue';
6
- import GlAccordionItem from './accordion_item.vue';
7
-
8
- describe('GlAccordionItem', () => {
9
- let wrapper;
10
- const defaultTitle = 'Item 1';
11
- const titleVisible = 'Item 1 visible';
12
- const defaultSlot = 'Hello';
13
-
14
- const createComponent = (props = {}, { defaultHeaderLevel = 3, accordionSetId = false } = {}) => {
15
- wrapper = mount(GlAccordionItem, {
16
- directives: {
17
- GlCollapseToggle: GlCollapseToggleDirective,
18
- },
19
- provide: {
20
- defaultHeaderLevel: () => defaultHeaderLevel,
21
- accordionSetId: () => accordionSetId,
22
- },
23
- propsData: {
24
- title: defaultTitle,
25
- ...props,
26
- },
27
- slots: {
28
- default: defaultSlot,
29
- },
30
- });
31
- };
32
-
33
- const findButton = () => wrapper.findComponent(GlButton);
34
- const findCollapse = () => wrapper.findComponent(BCollapse);
35
- const findHeader = () => wrapper.find('.gl-accordion-item-header');
36
-
37
- it('renders button text', () => {
38
- createComponent();
39
-
40
- expect(findButton().find('span').text()).toBe(defaultTitle);
41
- });
42
-
43
- it('renders alternative button text when the content is visible and the titleVisible property is set', async () => {
44
- createComponent({ titleVisible });
45
-
46
- expect(findButton().find('span').text()).toBe(defaultTitle);
47
-
48
- await waitForAnimationFrame();
49
- await findButton().trigger('click');
50
-
51
- expect(findButton().find('span').text()).toBe(titleVisible);
52
- });
53
-
54
- it('renders the appropriate header element', () => {
55
- createComponent({}, { defaultHeaderLevel: 3 });
56
-
57
- expect(wrapper.find('h3.gl-accordion-item-header').exists()).toBe(true);
58
- expect(wrapper.find('h4.gl-accordion-item-header').exists()).toBe(false);
59
- });
60
-
61
- it('renders the appropriate header element when overridden', () => {
62
- createComponent({ headerLevel: 4 }, { defaultHeaderLevel: 3 });
63
-
64
- expect(wrapper.find('h3.gl-accordion-item-header').exists()).toBe(false);
65
- expect(wrapper.find('h4.gl-accordion-item-header').exists()).toBe(true);
66
- });
67
-
68
- it.each(['custom-header-class', ['custom-header-class'], { 'custom-header-class': true }])(
69
- 'applies custom classes to the header',
70
- (customClassProp) => {
71
- createComponent({ headerClass: customClassProp }, { defaultHeaderLevel: 3 });
72
-
73
- expect(findHeader().classes()).toContain('custom-header-class');
74
- }
75
- );
76
-
77
- it('renders slot text', () => {
78
- createComponent();
79
-
80
- expect(findCollapse().text()).toBe(defaultSlot);
81
- });
82
-
83
- it('is not expanded by default', () => {
84
- createComponent();
85
-
86
- expect(findButton().props('icon')).toBe('chevron-right');
87
- expect(findCollapse().props('visible')).toBe(false);
88
- });
89
-
90
- it('is expanded on button click', async () => {
91
- createComponent();
92
-
93
- await waitForAnimationFrame();
94
- await findButton().trigger('click');
95
-
96
- expect(findButton().props('icon')).toBe('chevron-down');
97
- expect(findCollapse().props('visible')).toBe(true);
98
- });
99
-
100
- it('passes accordion identifier to BCollapse', () => {
101
- const accordionId = 'my-accordion';
102
-
103
- createComponent({}, { accordionSetId: accordionId });
104
-
105
- expect(findCollapse().props('accordion')).toBe(accordionId);
106
- });
107
-
108
- it('expands initially when visible prop is passed', async () => {
109
- createComponent({ visible: true });
110
-
111
- await wrapper.vm.$nextTick();
112
-
113
- expect(findButton().props('icon')).toBe('chevron-down');
114
- expect(findCollapse().props('visible')).toBe(true);
115
- });
116
-
117
- it('emits the initial visible state', () => {
118
- createComponent({ visible: true });
119
-
120
- expect(wrapper.emitted('input')).toEqual([[true]]);
121
- });
122
-
123
- it('emits the visible state when toggled', async () => {
124
- createComponent({ visible: true });
125
-
126
- await waitForAnimationFrame();
127
- await findButton().trigger('click');
128
-
129
- expect(wrapper.emitted('input')).toEqual([[true], [false]]);
130
- });
131
- });
@@ -1,57 +0,0 @@
1
- import readme from './accordion_item.md';
2
- import GlAccordionItem from './accordion_item.vue';
3
-
4
- const template = `
5
- <gl-accordion-item :title="title" :titleVisible="titleVisible" :visible="visible" :header-level="headerLevel">
6
- Lorem ipsum dolor sit amet consectetur adipisicing elit. Delectus, maiores.
7
- </gl-accordion-item>
8
- `;
9
-
10
- const defaultValue = (prop) => GlAccordionItem.props[prop].default;
11
-
12
- const generateProps = ({
13
- visible = defaultValue('visible'),
14
- headerLevel = 3,
15
- title = 'Accordion Item Title',
16
- titleVisible = undefined,
17
- } = {}) => ({
18
- visible,
19
- headerLevel,
20
- title,
21
- titleVisible,
22
- });
23
-
24
- const Template = (args) => ({
25
- components: {
26
- GlAccordionItem,
27
- },
28
- props: Object.keys(args),
29
- template,
30
- provide: {
31
- defaultHeaderLevel: () => defaultValue('headerLevel'),
32
- accordionSetId: () => '1',
33
- },
34
- });
35
-
36
- export const Default = Template.bind({});
37
- Default.args = generateProps({ visible: true, titleVisible: 'Accordion Item Title Expanded' });
38
-
39
- export default {
40
- title: 'base/accordion/accordion-item',
41
- component: GlAccordionItem,
42
- bootstrapComponent: 'b-collapse',
43
- tags: ['skip-visual-test'],
44
- parameters: {
45
- docs: {
46
- description: {
47
- component: readme,
48
- },
49
- },
50
- },
51
- argTypes: {
52
- headerLevel: {
53
- options: [1, 2, 3, 4, 5, 6],
54
- control: 'select',
55
- },
56
- },
57
- };