@gitlab/ui 132.0.1 → 132.0.3

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 (427) hide show
  1. package/dist/charts.js +13 -0
  2. package/dist/components/base/accordion/accordion.js +69 -0
  3. package/dist/components/base/accordion/accordion_item.js +160 -0
  4. package/dist/components/base/accordion/constants.js +3 -0
  5. package/dist/components/base/alert/alert.js +263 -0
  6. package/dist/components/base/animated_icon/animated_chevron_down_up_icon.js +45 -0
  7. package/dist/components/base/animated_icon/animated_chevron_lg_down_up_icon.js +45 -0
  8. package/dist/components/base/animated_icon/animated_chevron_lg_right_down_icon.js +45 -0
  9. package/dist/components/base/animated_icon/animated_chevron_right_down_icon.js +45 -0
  10. package/dist/components/base/animated_icon/animated_duo_chat_icon.js +45 -0
  11. package/dist/components/base/animated_icon/animated_loader_icon.js +45 -0
  12. package/dist/components/base/animated_icon/animated_notifications_icon.js +45 -0
  13. package/dist/components/base/animated_icon/animated_sidebar_icon.js +45 -0
  14. package/dist/components/base/animated_icon/animated_smile_icon.js +45 -0
  15. package/dist/components/base/animated_icon/animated_sort_icon.js +45 -0
  16. package/dist/components/base/animated_icon/animated_star_icon.js +45 -0
  17. package/dist/components/base/animated_icon/animated_todo_icon.js +45 -0
  18. package/dist/components/base/animated_icon/animated_upload_icon.js +45 -0
  19. package/dist/components/base/animated_icon/base_animated_icon.js +77 -0
  20. package/dist/components/base/attribute_list/attribute_list.js +100 -0
  21. package/dist/components/base/avatar/avatar.js +175 -0
  22. package/dist/components/base/avatar/utils.js +17 -0
  23. package/dist/components/base/avatar_labeled/avatar_labeled.js +198 -0
  24. package/dist/components/base/avatar_link/avatar_link.js +47 -0
  25. package/dist/components/base/avatars_inline/avatars_inline.js +139 -0
  26. package/dist/components/base/badge/badge.js +197 -0
  27. package/dist/components/base/banner/banner.js +149 -0
  28. package/dist/components/base/breadcrumb/breadcrumb.js +282 -0
  29. package/dist/components/base/breadcrumb/breadcrumb_item.js +96 -0
  30. package/dist/components/base/broadcast_message/broadcast_message.js +113 -0
  31. package/dist/components/base/broadcast_message/constants.js +5 -0
  32. package/dist/components/base/button/button.js +419 -0
  33. package/dist/components/base/button_group/button_group.js +53 -0
  34. package/dist/components/base/card/card.js +69 -0
  35. package/dist/components/base/collapse/collapse.js +163 -0
  36. package/dist/components/base/color_mode_toggle/color_mode_toggle.js +92 -0
  37. package/dist/components/base/datepicker/datepicker.js +475 -0
  38. package/dist/components/base/daterange_picker/daterange_picker.js +394 -0
  39. package/dist/components/base/drawer/drawer.js +156 -0
  40. package/dist/components/base/dropdown/dropdown.js +330 -0
  41. package/dist/components/base/dropdown/dropdown_divider.js +48 -0
  42. package/dist/components/base/dropdown/dropdown_form.js +48 -0
  43. package/dist/components/base/dropdown/dropdown_item.js +175 -0
  44. package/dist/components/base/dropdown/dropdown_section_header.js +48 -0
  45. package/dist/components/base/dropdown/dropdown_text.js +48 -0
  46. package/dist/components/base/filtered_search/common_story_options.js +14 -0
  47. package/dist/components/base/filtered_search/filtered_search.js +428 -0
  48. package/dist/components/base/filtered_search/filtered_search_suggestion.js +95 -0
  49. package/dist/components/base/filtered_search/filtered_search_suggestion_list.js +139 -0
  50. package/dist/components/base/filtered_search/filtered_search_term.js +217 -0
  51. package/dist/components/base/filtered_search/filtered_search_token.js +383 -0
  52. package/dist/components/base/filtered_search/filtered_search_token_segment.js +444 -0
  53. package/dist/components/base/filtered_search/filtered_search_utils.js +241 -0
  54. package/dist/components/base/form/form.js +43 -0
  55. package/dist/components/base/form/form_character_count/form_character_count.js +107 -0
  56. package/dist/components/base/form/form_checkbox/form_checkbox.js +342 -0
  57. package/dist/components/base/form/form_checkbox/form_checkbox_group.js +188 -0
  58. package/dist/components/base/form/form_combobox/constants.js +55 -0
  59. package/dist/components/base/form/form_combobox/form_combobox.js +239 -0
  60. package/dist/components/base/form/form_date/form_date.js +143 -0
  61. package/dist/components/base/form/form_fields/form_field_validator.js +93 -0
  62. package/dist/components/base/form/form_fields/form_fields.js +289 -0
  63. package/dist/components/base/form/form_fields/form_fields_loop.js +75 -0
  64. package/dist/components/base/form/form_fields/mappers.js +13 -0
  65. package/dist/components/base/form/form_fields/validators.js +48 -0
  66. package/dist/components/base/form/form_group/form_group.js +119 -0
  67. package/dist/components/base/form/form_input/form_input.js +695 -0
  68. package/dist/components/base/form/form_input_group/form_input_group.js +120 -0
  69. package/dist/components/base/form/form_input_group/form_input_group_mixin.js +41 -0
  70. package/dist/components/base/form/form_radio/form_radio.js +259 -0
  71. package/dist/components/base/form/form_radio_group/form_radio_group.js +189 -0
  72. package/dist/components/base/form/form_select/constants.js +12 -0
  73. package/dist/components/base/form/form_select/form_select.js +96 -0
  74. package/dist/components/base/form/form_textarea/form_textarea.js +166 -0
  75. package/dist/components/base/form/input_group_text/input_group_text.js +43 -0
  76. package/dist/components/base/icon/icon.js +113 -0
  77. package/dist/components/base/illustration/illustration.js +80 -0
  78. package/dist/components/base/infinite_scroll/infinite_scroll.js +196 -0
  79. package/dist/components/base/keyset_pagination/keyset_pagination.js +152 -0
  80. package/dist/components/base/label/label.js +174 -0
  81. package/dist/components/base/link/link.js +330 -0
  82. package/dist/components/base/loading_icon/loading_icon.js +120 -0
  83. package/dist/components/base/markdown/markdown.js +50 -0
  84. package/dist/components/base/modal/modal.js +259 -0
  85. package/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js +716 -0
  86. package/dist/components/base/new_dropdowns/base_dropdown/constants.js +5 -0
  87. package/dist/components/base/new_dropdowns/base_dropdown/dropdown_container.js +32 -0
  88. package/dist/components/base/new_dropdowns/constants.js +24 -0
  89. package/dist/components/base/new_dropdowns/disclosure/constants.js +8 -0
  90. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown.js +400 -0
  91. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js +112 -0
  92. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js +196 -0
  93. package/dist/components/base/new_dropdowns/disclosure/mock_data.js +168 -0
  94. package/dist/components/base/new_dropdowns/disclosure/utils.js +84 -0
  95. package/dist/components/base/new_dropdowns/listbox/listbox.js +997 -0
  96. package/dist/components/base/new_dropdowns/listbox/listbox_group.js +58 -0
  97. package/dist/components/base/new_dropdowns/listbox/listbox_item.js +112 -0
  98. package/dist/components/base/new_dropdowns/listbox/listbox_search_input.js +94 -0
  99. package/dist/components/base/new_dropdowns/listbox/mock_data.js +131 -0
  100. package/dist/components/base/new_dropdowns/listbox/utils.js +33 -0
  101. package/dist/components/base/pagination/pagination.js +397 -0
  102. package/dist/components/base/path/data.js +34 -0
  103. package/dist/components/base/path/path.js +177 -0
  104. package/dist/components/base/popover/popover.js +142 -0
  105. package/dist/components/base/progress_bar/progress_bar.js +117 -0
  106. package/dist/components/base/search_box_by_click/search_box_by_click.js +245 -0
  107. package/dist/components/base/search_box_by_type/search_box_by_type.js +187 -0
  108. package/dist/components/base/segmented_control/segmented_control.js +73 -0
  109. package/dist/components/base/skeleton_loader/skeleton_loader.js +232 -0
  110. package/dist/components/base/sorting/sorting.js +180 -0
  111. package/dist/components/base/table/constants.js +5 -0
  112. package/dist/components/base/table/table.js +187 -0
  113. package/dist/components/base/table_lite/table_lite.js +80 -0
  114. package/dist/components/base/tabs/constants.js +3 -0
  115. package/dist/components/base/tabs/tab/tab.js +113 -0
  116. package/dist/components/base/tabs/tabs/scrollable_tabs.js +162 -0
  117. package/dist/components/base/tabs/tabs/tabs.js +223 -0
  118. package/dist/components/base/toast/index.js +66 -0
  119. package/dist/components/base/toast/toast.js +125 -0
  120. package/dist/components/base/toast/toaster.js +87 -0
  121. package/dist/components/base/toggle/toggle.js +178 -0
  122. package/dist/components/base/token/token.js +97 -0
  123. package/dist/components/base/token_selector/helpers.js +5 -0
  124. package/dist/components/base/token_selector/token_container.js +160 -0
  125. package/dist/components/base/token_selector/token_selector.js +454 -0
  126. package/dist/components/base/token_selector/token_selector_dropdown.js +223 -0
  127. package/dist/components/base/tooltip/tooltip.js +54 -0
  128. package/dist/components/charts/area/area.js +329 -0
  129. package/dist/components/charts/bar/bar.js +207 -0
  130. package/dist/components/charts/chart/chart.js +215 -0
  131. package/dist/components/charts/column/column.js +221 -0
  132. package/dist/components/charts/discrete_scatter/discrete_scatter.js +199 -0
  133. package/dist/components/charts/gauge/gauge.js +205 -0
  134. package/dist/components/charts/heatmap/heatmap.js +299 -0
  135. package/dist/components/charts/heatmap/index.js +2 -0
  136. package/dist/components/charts/legend/legend.js +245 -0
  137. package/dist/components/charts/line/line.js +340 -0
  138. package/dist/components/charts/series_label/series_label.js +101 -0
  139. package/dist/components/charts/shared/tooltip/tooltip.js +369 -0
  140. package/dist/components/charts/shared/tooltip/tooltip_default_format/tooltip_default_format.js +53 -0
  141. package/dist/components/charts/single_stat/single_stat.js +164 -0
  142. package/dist/components/charts/sparkline/sparkline.js +299 -0
  143. package/dist/components/charts/stacked_column/stacked_column.js +380 -0
  144. package/dist/components/dashboards/dashboard_layout/dashboard_layout.js +125 -0
  145. package/dist/components/dashboards/dashboard_layout/grid_layout/grid_layout.js +326 -0
  146. package/dist/components/dashboards/dashboard_layout/validators.js +14 -0
  147. package/dist/components/dashboards/dashboard_panel/dashboard_panel.js +236 -0
  148. package/dist/components/dashboards/mock_data.js +49 -0
  149. package/dist/components/experimental/experiment_badge/constants.js +4 -0
  150. package/dist/components/experimental/experiment_badge/experiment_badge.js +102 -0
  151. package/dist/components/extended/multi_step_form_template/multi_step_form_template.js +87 -0
  152. package/dist/components/index.js +107 -0
  153. package/dist/components/mixins/button_mixin.js +11 -0
  154. package/dist/components/mixins/safe_link_mixin.js +30 -0
  155. package/dist/components/mixins/tooltip_mixin.js +21 -0
  156. package/dist/components/regions/dashboard_skeleton/dashboard_skeleton.js +53 -0
  157. package/dist/components/regions/empty_state/empty_state.js +181 -0
  158. package/dist/components/shared_components/clear_icon_button/clear_icon_button.js +64 -0
  159. package/dist/components/shared_components/clipboard_button/clipboard_button.js +100 -0
  160. package/dist/components/shared_components/close_button/close_button.js +55 -0
  161. package/dist/components/utilities/animated_number/animated_number.js +131 -0
  162. package/dist/components/utilities/friendly_wrap/friendly_wrap.js +75 -0
  163. package/dist/components/utilities/intersection_observer/intersection_observer.js +88 -0
  164. package/dist/components/utilities/intersperse/intersperse.js +104 -0
  165. package/dist/components/utilities/sprintf/sprintf.js +171 -0
  166. package/dist/components/utilities/truncate/constants.js +8 -0
  167. package/dist/components/utilities/truncate/truncate.js +154 -0
  168. package/dist/components/utilities/truncate_text/constants.js +7 -0
  169. package/dist/components/utilities/truncate_text/truncate_text.js +146 -0
  170. package/dist/config.js +53 -0
  171. package/dist/directives/hover_load/hover_load.js +45 -0
  172. package/dist/directives/index.js +8 -0
  173. package/dist/directives/modal.js +1 -0
  174. package/dist/directives/outside/outside.js +149 -0
  175. package/dist/directives/resize_observer/resize_observer.js +58 -0
  176. package/dist/directives/safe_html/constants.js +6 -0
  177. package/dist/directives/safe_html/safe_html.js +39 -0
  178. package/dist/directives/safe_link/mock_data.js +10 -0
  179. package/dist/directives/safe_link/safe_link.js +67 -0
  180. package/dist/directives/tooltip/container.js +7 -0
  181. package/dist/directives/tooltip/tooltip.js +18 -0
  182. package/dist/index.css +7 -0
  183. package/dist/index.css.map +1 -0
  184. package/dist/index.js +2 -0
  185. package/dist/tailwind.css +2 -0
  186. package/dist/tailwind.css.map +1 -0
  187. package/dist/tokens/build/js/tokens.dark.js +1410 -0
  188. package/dist/tokens/build/js/tokens.js +1410 -0
  189. package/dist/tokens/common_story_options.js +29 -0
  190. package/dist/tokens/tokens_story.js +76 -0
  191. package/dist/utils/breakpoints.js +20 -0
  192. package/dist/utils/charts/config.js +616 -0
  193. package/dist/utils/charts/constants.js +69 -0
  194. package/dist/utils/charts/mock_data.js +191 -0
  195. package/dist/utils/charts/story_config.js +24 -0
  196. package/dist/utils/charts/theme.js +200 -0
  197. package/dist/utils/charts/utils.js +54 -0
  198. package/dist/utils/constants.js +331 -0
  199. package/dist/utils/data_utils.js +19 -0
  200. package/dist/utils/datetime_utility.js +61 -0
  201. package/dist/utils/equality_utils.js +84 -0
  202. package/dist/utils/form_options_utils.js +46 -0
  203. package/dist/utils/i18n.js +65 -0
  204. package/dist/utils/is_slot_empty.js +34 -0
  205. package/dist/utils/number_utils.js +132 -0
  206. package/dist/utils/play_utils.js +11 -0
  207. package/dist/utils/set_utils.js +25 -0
  208. package/dist/utils/stories_constants.js +29 -0
  209. package/dist/utils/stories_utils.js +62 -0
  210. package/dist/utils/story_decorators/container.js +19 -0
  211. package/dist/utils/string_utils.js +69 -0
  212. package/dist/utils/svgs/svg_paths.js +7 -0
  213. package/dist/utils/test_utils.js +33 -0
  214. package/dist/utils/url_utils.js +56 -0
  215. package/dist/utils/use_fake_date.js +29 -0
  216. package/dist/utils/use_mock_intersection_observer.js +105 -0
  217. package/dist/utils/utils.js +205 -0
  218. package/dist/utils/vue_utils.js +57 -0
  219. package/dist/utils.js +5 -0
  220. package/dist/vendor/bootstrap-vue/src/bv-config.js +8 -0
  221. package/dist/vendor/bootstrap-vue/src/components/button/button-close.js +81 -0
  222. package/dist/vendor/bootstrap-vue/src/components/button/button.js +204 -0
  223. package/dist/vendor/bootstrap-vue/src/components/button/index.js +2 -0
  224. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +44 -0
  225. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +59 -0
  226. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +98 -0
  227. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +63 -0
  228. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +108 -0
  229. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +97 -0
  230. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +60 -0
  231. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +270 -0
  232. package/dist/vendor/bootstrap-vue/src/components/dropdown/index.js +8 -0
  233. package/dist/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +80 -0
  234. package/dist/vendor/bootstrap-vue/src/components/form/form-text.js +55 -0
  235. package/dist/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +80 -0
  236. package/dist/vendor/bootstrap-vue/src/components/form/form.js +56 -0
  237. package/dist/vendor/bootstrap-vue/src/components/form/index.js +4 -0
  238. package/dist/vendor/bootstrap-vue/src/components/form-group/form-group.js +347 -0
  239. package/dist/vendor/bootstrap-vue/src/components/form-group/index.js +1 -0
  240. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +56 -0
  241. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +47 -0
  242. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select.js +154 -0
  243. package/dist/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +63 -0
  244. package/dist/vendor/bootstrap-vue/src/components/form-select/index.js +3 -0
  245. package/dist/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +236 -0
  246. package/dist/vendor/bootstrap-vue/src/components/form-textarea/index.js +1 -0
  247. package/dist/vendor/bootstrap-vue/src/components/layout/col.js +155 -0
  248. package/dist/vendor/bootstrap-vue/src/components/layout/form-row.js +34 -0
  249. package/dist/vendor/bootstrap-vue/src/components/layout/index.js +2 -0
  250. package/dist/vendor/bootstrap-vue/src/components/link/index.js +1 -0
  251. package/dist/vendor/bootstrap-vue/src/components/link/link.js +283 -0
  252. package/dist/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal-event.class.js +21 -0
  253. package/dist/vendor/bootstrap-vue/src/components/modal/helpers/modal-manager.js +212 -0
  254. package/dist/vendor/bootstrap-vue/src/components/modal/index.js +1 -0
  255. package/dist/vendor/bootstrap-vue/src/components/modal/modal.js +1059 -0
  256. package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover-template.js +55 -0
  257. package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover.js +31 -0
  258. package/dist/vendor/bootstrap-vue/src/components/popover/index.js +1 -0
  259. package/dist/vendor/bootstrap-vue/src/components/popover/popover.js +64 -0
  260. package/dist/vendor/bootstrap-vue/src/components/table/helpers/constants.js +22 -0
  261. package/dist/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.js +64 -0
  262. package/dist/vendor/bootstrap-vue/src/components/table/helpers/filter-event.js +40 -0
  263. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-bottom-row.js +43 -0
  264. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +86 -0
  265. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +57 -0
  266. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-colgroup.js +32 -0
  267. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +101 -0
  268. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +292 -0
  269. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +169 -0
  270. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +51 -0
  271. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +210 -0
  272. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +227 -0
  273. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +328 -0
  274. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +42 -0
  275. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +241 -0
  276. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +349 -0
  277. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +247 -0
  278. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +69 -0
  279. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +233 -0
  280. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-top-row.js +42 -0
  281. package/dist/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.js +86 -0
  282. package/dist/vendor/bootstrap-vue/src/components/table/helpers/sanitize-row.js +31 -0
  283. package/dist/vendor/bootstrap-vue/src/components/table/helpers/stringify-record-values.js +11 -0
  284. package/dist/vendor/bootstrap-vue/src/components/table/helpers/text-selection-active.js +14 -0
  285. package/dist/vendor/bootstrap-vue/src/components/table/index.js +9 -0
  286. package/dist/vendor/bootstrap-vue/src/components/table/table-lite.js +51 -0
  287. package/dist/vendor/bootstrap-vue/src/components/table/table-simple.js +44 -0
  288. package/dist/vendor/bootstrap-vue/src/components/table/table.js +67 -0
  289. package/dist/vendor/bootstrap-vue/src/components/table/tbody.js +116 -0
  290. package/dist/vendor/bootstrap-vue/src/components/table/td.js +204 -0
  291. package/dist/vendor/bootstrap-vue/src/components/table/tfoot.js +96 -0
  292. package/dist/vendor/bootstrap-vue/src/components/table/th.js +26 -0
  293. package/dist/vendor/bootstrap-vue/src/components/table/thead.js +99 -0
  294. package/dist/vendor/bootstrap-vue/src/components/table/tr.js +121 -0
  295. package/dist/vendor/bootstrap-vue/src/components/tabs/index.js +2 -0
  296. package/dist/vendor/bootstrap-vue/src/components/tabs/tab.js +238 -0
  297. package/dist/vendor/bootstrap-vue/src/components/tabs/tabs.js +690 -0
  298. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +278 -0
  299. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +125 -0
  300. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +932 -0
  301. package/dist/vendor/bootstrap-vue/src/components/tooltip/index.js +1 -0
  302. package/dist/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +337 -0
  303. package/dist/vendor/bootstrap-vue/src/components/transition/bv-transition.js +118 -0
  304. package/dist/vendor/bootstrap-vue/src/components/transporter/transporter.js +220 -0
  305. package/dist/vendor/bootstrap-vue/src/constants/components.js +55 -0
  306. package/dist/vendor/bootstrap-vue/src/constants/config.js +11 -0
  307. package/dist/vendor/bootstrap-vue/src/constants/env.js +36 -0
  308. package/dist/vendor/bootstrap-vue/src/constants/events.js +56 -0
  309. package/dist/vendor/bootstrap-vue/src/constants/key-codes.js +11 -0
  310. package/dist/vendor/bootstrap-vue/src/constants/popper.js +10 -0
  311. package/dist/vendor/bootstrap-vue/src/constants/props.js +24 -0
  312. package/dist/vendor/bootstrap-vue/src/constants/regex.js +35 -0
  313. package/dist/vendor/bootstrap-vue/src/constants/safe-types.js +15 -0
  314. package/dist/vendor/bootstrap-vue/src/constants/slots.js +36 -0
  315. package/dist/vendor/bootstrap-vue/src/directives/modal/index.js +1 -0
  316. package/dist/vendor/bootstrap-vue/src/directives/modal/modal.js +112 -0
  317. package/dist/vendor/bootstrap-vue/src/directives/tooltip/index.js +1 -0
  318. package/dist/vendor/bootstrap-vue/src/directives/tooltip/tooltip.js +267 -0
  319. package/dist/vendor/bootstrap-vue/src/directives/visible/index.js +1 -0
  320. package/dist/vendor/bootstrap-vue/src/directives/visible/visible.js +187 -0
  321. package/dist/vendor/bootstrap-vue/src/mixins/attrs.js +5 -0
  322. package/dist/vendor/bootstrap-vue/src/mixins/click-out.js +54 -0
  323. package/dist/vendor/bootstrap-vue/src/mixins/dropdown.js +470 -0
  324. package/dist/vendor/bootstrap-vue/src/mixins/focus-in.js +46 -0
  325. package/dist/vendor/bootstrap-vue/src/mixins/form-control.js +73 -0
  326. package/dist/vendor/bootstrap-vue/src/mixins/form-custom.js +26 -0
  327. package/dist/vendor/bootstrap-vue/src/mixins/form-options.js +91 -0
  328. package/dist/vendor/bootstrap-vue/src/mixins/form-selection.js +62 -0
  329. package/dist/vendor/bootstrap-vue/src/mixins/form-size.js +26 -0
  330. package/dist/vendor/bootstrap-vue/src/mixins/form-state.js +50 -0
  331. package/dist/vendor/bootstrap-vue/src/mixins/form-text.js +293 -0
  332. package/dist/vendor/bootstrap-vue/src/mixins/form-validity.js +50 -0
  333. package/dist/vendor/bootstrap-vue/src/mixins/has-listener.js +29 -0
  334. package/dist/vendor/bootstrap-vue/src/mixins/id.js +57 -0
  335. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-document.js +62 -0
  336. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-root.js +120 -0
  337. package/dist/vendor/bootstrap-vue/src/mixins/listen-on-window.js +62 -0
  338. package/dist/vendor/bootstrap-vue/src/mixins/listeners.js +25 -0
  339. package/dist/vendor/bootstrap-vue/src/mixins/model.js +10 -0
  340. package/dist/vendor/bootstrap-vue/src/mixins/normalize-slot.js +30 -0
  341. package/dist/vendor/bootstrap-vue/src/mixins/scoped-style.js +18 -0
  342. package/dist/vendor/bootstrap-vue/src/mixins/use-parent.js +14 -0
  343. package/dist/vendor/bootstrap-vue/src/utils/array.js +27 -0
  344. package/dist/vendor/bootstrap-vue/src/utils/bv-event.class.js +60 -0
  345. package/dist/vendor/bootstrap-vue/src/utils/cache.js +60 -0
  346. package/dist/vendor/bootstrap-vue/src/utils/clone-deep.js +18 -0
  347. package/dist/vendor/bootstrap-vue/src/utils/config-set.js +86 -0
  348. package/dist/vendor/bootstrap-vue/src/utils/config.js +71 -0
  349. package/dist/vendor/bootstrap-vue/src/utils/create-new-child-component.js +133 -0
  350. package/dist/vendor/bootstrap-vue/src/utils/css-escape.js +70 -0
  351. package/dist/vendor/bootstrap-vue/src/utils/dom.js +298 -0
  352. package/dist/vendor/bootstrap-vue/src/utils/element-to-vue-instance-registry.js +28 -0
  353. package/dist/vendor/bootstrap-vue/src/utils/env.js +16 -0
  354. package/dist/vendor/bootstrap-vue/src/utils/events.js +78 -0
  355. package/dist/vendor/bootstrap-vue/src/utils/get-event-root.js +5 -0
  356. package/dist/vendor/bootstrap-vue/src/utils/get-instance-from-directive.js +3 -0
  357. package/dist/vendor/bootstrap-vue/src/utils/get-scope-id.js +9 -0
  358. package/dist/vendor/bootstrap-vue/src/utils/get.js +63 -0
  359. package/dist/vendor/bootstrap-vue/src/utils/html.js +16 -0
  360. package/dist/vendor/bootstrap-vue/src/utils/identity.js +3 -0
  361. package/dist/vendor/bootstrap-vue/src/utils/inspect.js +35 -0
  362. package/dist/vendor/bootstrap-vue/src/utils/locale.js +18 -0
  363. package/dist/vendor/bootstrap-vue/src/utils/loose-equal.js +59 -0
  364. package/dist/vendor/bootstrap-vue/src/utils/loose-index-of.js +13 -0
  365. package/dist/vendor/bootstrap-vue/src/utils/math.js +9 -0
  366. package/dist/vendor/bootstrap-vue/src/utils/memoize.js +14 -0
  367. package/dist/vendor/bootstrap-vue/src/utils/model.js +33 -0
  368. package/dist/vendor/bootstrap-vue/src/utils/noop.js +3 -0
  369. package/dist/vendor/bootstrap-vue/src/utils/normalize-slot.js +51 -0
  370. package/dist/vendor/bootstrap-vue/src/utils/number.js +23 -0
  371. package/dist/vendor/bootstrap-vue/src/utils/object.js +72 -0
  372. package/dist/vendor/bootstrap-vue/src/utils/observe-dom.js +76 -0
  373. package/dist/vendor/bootstrap-vue/src/utils/on-instance-destroy.js +22 -0
  374. package/dist/vendor/bootstrap-vue/src/utils/plugins.js +124 -0
  375. package/dist/vendor/bootstrap-vue/src/utils/props.js +67 -0
  376. package/dist/vendor/bootstrap-vue/src/utils/router.js +150 -0
  377. package/dist/vendor/bootstrap-vue/src/utils/safe-vue-instance.js +14 -0
  378. package/dist/vendor/bootstrap-vue/src/utils/stable-sort.js +28 -0
  379. package/dist/vendor/bootstrap-vue/src/utils/string.js +47 -0
  380. package/dist/vendor/bootstrap-vue/src/utils/stringify-object-values.js +31 -0
  381. package/dist/vendor/bootstrap-vue/src/utils/warn.js +45 -0
  382. package/dist/vendor/bootstrap-vue/src/vue.js +55 -0
  383. package/package.json +4 -3
  384. package/src/components/base/link/link.vue +2 -2
  385. package/src/utils/url_utils.js +66 -0
  386. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +5 -2
  387. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +16 -4
  388. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +31 -8
  389. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +15 -4
  390. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +32 -8
  391. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +2 -2
  392. package/src/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +35 -8
  393. package/src/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +35 -8
  394. package/src/vendor/bootstrap-vue/src/components/form-group/form-group.js +2 -2
  395. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +4 -2
  396. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +9 -3
  397. package/src/vendor/bootstrap-vue/src/components/form-select/form-select.js +16 -9
  398. package/src/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +10 -3
  399. package/src/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +26 -7
  400. package/src/vendor/bootstrap-vue/src/components/layout/col.js +2 -2
  401. package/src/vendor/bootstrap-vue/src/components/modal/modal.js +2 -2
  402. package/src/vendor/bootstrap-vue/src/components/popover/popover.js +23 -7
  403. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +5 -2
  404. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +10 -3
  405. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +25 -6
  406. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +20 -5
  407. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +11 -4
  408. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +27 -7
  409. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +21 -7
  410. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +72 -18
  411. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +6 -3
  412. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +72 -17
  413. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +18 -6
  414. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +7 -3
  415. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +27 -7
  416. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +21 -6
  417. package/src/vendor/bootstrap-vue/src/components/tabs/tabs.js +2 -2
  418. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +36 -13
  419. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +10 -3
  420. package/src/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +8 -9
  421. package/src/vendor/bootstrap-vue/src/components/transition/bv-transition.js +20 -5
  422. package/src/vendor/bootstrap-vue/src/components/transporter/transporter.js +22 -6
  423. package/src/vendor/bootstrap-vue/src/mixins/listen-on-document.js +1 -2
  424. package/src/vendor/bootstrap-vue/src/mixins/listen-on-root.js +1 -2
  425. package/src/vendor/bootstrap-vue/src/mixins/listen-on-window.js +1 -2
  426. package/src/vendor/bootstrap-vue/src/utils/array.js +0 -1
  427. package/src/vendor/bootstrap-vue/src/utils/locale.js +1 -2
@@ -0,0 +1,96 @@
1
+ import GlLink from '../link/link';
2
+ import { breadCrumbSizeOptions, linkVariantUnstyled } from '../../../utils/constants';
3
+ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
4
+
5
+ var script = {
6
+ name: 'GlBreadcrumbItem',
7
+ components: {
8
+ GlLink
9
+ },
10
+ inheritAttrs: false,
11
+ props: {
12
+ /**
13
+ * The text content to display in the breadcrumb item.
14
+ */
15
+ text: {
16
+ type: String,
17
+ required: false,
18
+ default: null
19
+ },
20
+ /**
21
+ * Vue Router location object or path string for navigation.
22
+ */
23
+ to: {
24
+ type: [String, Object],
25
+ required: false,
26
+ default: null
27
+ },
28
+ /**
29
+ * URL for the breadcrumb link when not using Vue Router.
30
+ */
31
+ href: {
32
+ type: String,
33
+ required: false,
34
+ default: null
35
+ },
36
+ /**
37
+ * Indicates the current page within the breadcrumb trail for accessibility.
38
+ */
39
+ ariaCurrent: {
40
+ type: [String, Boolean],
41
+ required: false,
42
+ default: false,
43
+ validator(value) {
44
+ return [false, 'page'].indexOf(value) !== -1;
45
+ }
46
+ },
47
+ /**
48
+ * The size variant of the breadcrumb item.
49
+ */
50
+ size: {
51
+ type: String,
52
+ required: false,
53
+ default: breadCrumbSizeOptions.sm,
54
+ validator: value => Object.keys(breadCrumbSizeOptions).includes(value)
55
+ }
56
+ },
57
+ linkVariantUnstyled
58
+ };
59
+
60
+ /* script */
61
+ const __vue_script__ = script;
62
+
63
+ /* template */
64
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:("gl-breadcrumb-item gl-breadcrumb-item-" + _vm.size)},[_c('gl-link',{attrs:{"href":_vm.href,"to":_vm.to,"aria-current":_vm.ariaCurrent,"variant":_vm.$options.linkVariantUnstyled}},[_vm._t("default",function(){return [_vm._v(_vm._s(_vm.text))]})],2)],1)};
65
+ var __vue_staticRenderFns__ = [];
66
+
67
+ /* style */
68
+ const __vue_inject_styles__ = undefined;
69
+ /* scoped */
70
+ const __vue_scope_id__ = undefined;
71
+ /* module identifier */
72
+ const __vue_module_identifier__ = undefined;
73
+ /* functional template */
74
+ const __vue_is_functional_template__ = false;
75
+ /* style inject */
76
+
77
+ /* style inject SSR */
78
+
79
+ /* style inject shadow dom */
80
+
81
+
82
+
83
+ const __vue_component__ = /*#__PURE__*/__vue_normalize__(
84
+ { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
85
+ __vue_inject_styles__,
86
+ __vue_script__,
87
+ __vue_scope_id__,
88
+ __vue_is_functional_template__,
89
+ __vue_module_identifier__,
90
+ false,
91
+ undefined,
92
+ undefined,
93
+ undefined
94
+ );
95
+
96
+ export { __vue_component__ as default };
@@ -0,0 +1,113 @@
1
+ import { colorThemes } from '../../../utils/constants';
2
+ import { translate } from '../../../utils/i18n';
3
+ import CloseButton from '../../shared_components/close_button/close_button';
4
+ import GlIcon from '../icon/icon';
5
+ import { TYPE_BANNER, TYPE_LIST, TYPE_NOTIFICATION } from './constants';
6
+ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
7
+
8
+ var script = {
9
+ name: 'GlBroadcastMessage',
10
+ components: {
11
+ CloseButton,
12
+ GlIcon
13
+ },
14
+ props: {
15
+ /**
16
+ * The icon to show next to the text.
17
+ */
18
+ iconName: {
19
+ type: String,
20
+ required: false,
21
+ default: 'bullhorn'
22
+ },
23
+ /**
24
+ * Allow the broadcast message to be dismissed by a user.
25
+ */
26
+ dismissible: {
27
+ type: Boolean,
28
+ required: false,
29
+ default: true
30
+ },
31
+ /**
32
+ * The dismiss button's label, it is used for the button's aria-label attribute.
33
+ */
34
+ dismissLabel: {
35
+ type: String,
36
+ required: false,
37
+ default: () => translate('GlBroadcastMessage.closeButtonTitle', 'Dismiss')
38
+ },
39
+ /**
40
+ * The theme's name to use, this should correspond to the user's selected theme in GitLab.
41
+ */
42
+ theme: {
43
+ type: String,
44
+ required: false,
45
+ default: Object.keys(colorThemes)[0],
46
+ validator: value => Object.keys(colorThemes).includes(value)
47
+ },
48
+ /**
49
+ * The base layout to use. `notification` type broadcast messages are not compatible
50
+ with the `dismissible` or `theme` props.
51
+ */
52
+ type: {
53
+ type: String,
54
+ required: false,
55
+ default: TYPE_BANNER,
56
+ validator: value => TYPE_LIST.includes(value)
57
+ }
58
+ },
59
+ computed: {
60
+ showDismissButton() {
61
+ return this.dismissible || this.type === TYPE_NOTIFICATION;
62
+ }
63
+ },
64
+ methods: {
65
+ onDismiss() {
66
+ /**
67
+ * Emitted when the dismiss button is clicked.
68
+ *
69
+ * @event dismiss
70
+ * @type {object}
71
+ */
72
+ this.$emit('dismiss');
73
+ }
74
+ }
75
+ };
76
+
77
+ /* script */
78
+ const __vue_script__ = script;
79
+
80
+ /* template */
81
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-broadcast-message",class:(_vm.theme + " " + _vm.type)},[_c('div',{staticClass:"gl-broadcast-message-content"},[_c('div',{staticClass:"gl-broadcast-message-icon"},[_c('gl-icon',{attrs:{"name":_vm.iconName}})],1),_vm._v(" "),_c('div',{staticClass:"gl-broadcast-message-text"},[_c('h2',{staticClass:"gl-sr-only"},[_vm._v("Admin message")]),_vm._v(" "),_vm._t("default")],2)]),_vm._v(" "),(_vm.showDismissButton)?_c('close-button',{ref:"dismiss",staticClass:"gl-broadcast-message-dismiss",attrs:{"label":_vm.dismissLabel},on:{"click":_vm.onDismiss}}):_vm._e()],1)};
82
+ var __vue_staticRenderFns__ = [];
83
+
84
+ /* style */
85
+ const __vue_inject_styles__ = undefined;
86
+ /* scoped */
87
+ const __vue_scope_id__ = undefined;
88
+ /* module identifier */
89
+ const __vue_module_identifier__ = undefined;
90
+ /* functional template */
91
+ const __vue_is_functional_template__ = false;
92
+ /* style inject */
93
+
94
+ /* style inject SSR */
95
+
96
+ /* style inject shadow dom */
97
+
98
+
99
+
100
+ const __vue_component__ = /*#__PURE__*/__vue_normalize__(
101
+ { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
102
+ __vue_inject_styles__,
103
+ __vue_script__,
104
+ __vue_scope_id__,
105
+ __vue_is_functional_template__,
106
+ __vue_module_identifier__,
107
+ false,
108
+ undefined,
109
+ undefined,
110
+ undefined
111
+ );
112
+
113
+ export { __vue_component__ as default };
@@ -0,0 +1,5 @@
1
+ const TYPE_BANNER = 'banner';
2
+ const TYPE_NOTIFICATION = 'notification';
3
+ const TYPE_LIST = [TYPE_BANNER, TYPE_NOTIFICATION];
4
+
5
+ export { TYPE_BANNER, TYPE_LIST, TYPE_NOTIFICATION };
@@ -0,0 +1,419 @@
1
+ import GlLink from '../link/link';
2
+ import { buttonCategoryOptions, buttonVariantOptions, buttonSizeOptions, linkVariantUnstyled } from '../../../utils/constants';
3
+ import { logWarning, stopEvent } from '../../../utils/utils';
4
+ import { isSlotEmpty } from '../../../utils/is_slot_empty';
5
+ import { SafeLinkMixin } from '../../mixins/safe_link_mixin';
6
+ import { isEvent } from '../../../vendor/bootstrap-vue/src/utils/inspect';
7
+ import GlIcon from '../icon/icon';
8
+ import GlLoadingIcon from '../loading_icon/loading_icon';
9
+ import { SPACE, ENTER } from '../new_dropdowns/constants';
10
+ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
11
+
12
+ var script = {
13
+ name: 'GlButton',
14
+ components: {
15
+ GlIcon,
16
+ GlLoadingIcon
17
+ },
18
+ mixins: [SafeLinkMixin],
19
+ props: {
20
+ /**
21
+ * Set the category of the button.
22
+ */
23
+ category: {
24
+ type: String,
25
+ required: false,
26
+ default: buttonCategoryOptions.primary,
27
+ validator: value => Object.keys(buttonCategoryOptions).includes(value)
28
+ },
29
+ /**
30
+ * Set the variant of the button.
31
+ */
32
+ variant: {
33
+ type: String,
34
+ required: false,
35
+ default: buttonVariantOptions.default,
36
+ validator: value => Object.keys(buttonVariantOptions).includes(value)
37
+ },
38
+ /**
39
+ * Specify the size of the button. Options are `small` and `medium`.
40
+ */
41
+ size: {
42
+ type: String,
43
+ required: false,
44
+ default: 'medium',
45
+ validator: value => Object.keys(buttonSizeOptions).includes(value)
46
+ },
47
+ /**
48
+ * Style the button as selected.
49
+ */
50
+ selected: {
51
+ type: Boolean,
52
+ required: false,
53
+ default: false
54
+ },
55
+ /**
56
+ * Specify an icon to render in the button.
57
+ */
58
+ icon: {
59
+ type: String,
60
+ required: false,
61
+ default: ''
62
+ },
63
+ /**
64
+ * Render a non-interactive label button, a `span` styled as a button.
65
+ */
66
+ label: {
67
+ type: Boolean,
68
+ required: false,
69
+ default: false
70
+ },
71
+ /**
72
+ * Set the loading state of the button.
73
+ */
74
+ loading: {
75
+ type: Boolean,
76
+ required: false,
77
+ default: false
78
+ },
79
+ /**
80
+ * CSS classes to add to the button text.
81
+ */
82
+ buttonTextClasses: {
83
+ type: [Array, Object, String],
84
+ required: false,
85
+ default: ''
86
+ },
87
+ /**
88
+ * Renders a 100% width button (expands to the width of its parent container).
89
+ */
90
+ block: {
91
+ type: Boolean,
92
+ required: false,
93
+ default: false
94
+ },
95
+ /**
96
+ * Specify the HTML tag to render instead of the default tag.
97
+ */
98
+ tag: {
99
+ type: String,
100
+ required: false,
101
+ default: 'button'
102
+ },
103
+ /**
104
+ * The value to set the button's `type` attribute to. Can be one of `button`, `submit`, or `reset`.
105
+ */
106
+ type: {
107
+ type: String,
108
+ required: false,
109
+ default: 'button',
110
+ validator: value => ['button', 'submit', 'reset'].includes(value)
111
+ },
112
+ /**
113
+ * Disables the component's functionality and places it in a disabled state.
114
+ */
115
+ disabled: {
116
+ type: Boolean,
117
+ required: false,
118
+ default: false
119
+ },
120
+ /**
121
+ * Denotes the target URL of the link for standard links.
122
+ */
123
+ href: {
124
+ type: String,
125
+ required: false,
126
+ default: undefined
127
+ },
128
+ /**
129
+ * Skips sanitization of href if true. This should be used sparingly.
130
+ * Consult security team before setting to true.
131
+ */
132
+ isUnsafeLink: {
133
+ type: Boolean,
134
+ required: false,
135
+ default: false
136
+ },
137
+ /**
138
+ * Sets the 'rel' attribute on the rendered link.
139
+ */
140
+ rel: {
141
+ type: String,
142
+ required: false,
143
+ default: null
144
+ },
145
+ /**
146
+ * Sets the 'target' attribute on the rendered link.
147
+ */
148
+ target: {
149
+ type: String,
150
+ required: false,
151
+ default: null
152
+ },
153
+ /**
154
+ * Places the component in the active state with active styling
155
+ */
156
+ active: {
157
+ type: Boolean,
158
+ required: false,
159
+ default: false
160
+ },
161
+ /**
162
+ * <router-link> prop: Denotes the target route of the link.
163
+ * When clicked, the value of the to prop will be passed to `router.push()` internally,
164
+ * so the value can be either a string or a Location descriptor object.
165
+ */
166
+ to: {
167
+ type: [Object, String],
168
+ required: false,
169
+ default: undefined
170
+ },
171
+ /**
172
+ * <router-link> prop: Configure the active CSS class applied when the link is active.
173
+ */
174
+ activeClass: {
175
+ type: String,
176
+ required: false,
177
+ default: undefined
178
+ },
179
+ /**
180
+ * <router-link> prop: Configure the active CSS class applied when the link is active with exact match.
181
+ */
182
+ exactActiveClass: {
183
+ type: String,
184
+ required: false,
185
+ default: undefined
186
+ },
187
+ /**
188
+ * <router-link> prop: Setting the replace prop will call `router.replace()` instead of `router.push()`
189
+ * when clicked, so the navigation will not leave a history record.
190
+ */
191
+ replace: {
192
+ type: Boolean,
193
+ required: false,
194
+ default: false
195
+ },
196
+ /**
197
+ * <nuxt-link> prop: To improve the responsiveness of your Nuxt.js applications, when the link will be displayed within the viewport,
198
+ * Nuxt.js will automatically prefetch the code splitted page. Setting `prefetch` to `true` or `false` will overwrite the default value of `router.prefetchLinks`
199
+ */
200
+ prefetch: {
201
+ type: Boolean,
202
+ required: false,
203
+ // Must be `null` to fall back to the value defined in the
204
+ // `nuxt.config.js` configuration file for `router.prefetchLinks`
205
+ // We convert `null` to `undefined`, so that Nuxt.js will use the
206
+ // compiled default
207
+ // Vue treats `undefined` as default of `false` for Boolean props,
208
+ // so we must set it as `null` here to be a true tri-state prop
209
+ default: null
210
+ },
211
+ /**
212
+ * Display a count badge next to the button text.
213
+ */
214
+ count: {
215
+ type: Number,
216
+ required: false,
217
+ default: null
218
+ },
219
+ /**
220
+ * Screen reader text to provide context for the count value.
221
+ */
222
+ countSrText: {
223
+ type: String,
224
+ required: false,
225
+ default: null
226
+ }
227
+ },
228
+ computed: {
229
+ hasIcon() {
230
+ return this.icon !== '';
231
+ },
232
+ hasIconOnly() {
233
+ return isSlotEmpty(this, 'default') && this.hasIcon && this.count == null;
234
+ },
235
+ isButtonAriaDisabled() {
236
+ return this.isButton && this.loading;
237
+ },
238
+ buttonClasses() {
239
+ const classes = ['btn', 'gl-button', `btn-${this.variant}`, `btn-${this.buttonSize}`];
240
+ if (this.category !== buttonCategoryOptions.primary) {
241
+ classes.push(`btn-${this.variant}-${this.category}`);
242
+ }
243
+ classes.push({
244
+ 'btn-icon': this.hasIconOnly,
245
+ 'button-ellipsis-horizontal': this.hasIconOnly && this.icon === 'ellipsis_h',
246
+ selected: this.selected,
247
+ 'btn-block': this.displayBlock,
248
+ disabled: this.disabled || this.isButtonAriaDisabled
249
+ });
250
+ if (this.label) {
251
+ classes.push('btn', 'btn-label');
252
+ }
253
+ return classes;
254
+ },
255
+ buttonSize() {
256
+ return buttonSizeOptions[this.size];
257
+ },
258
+ displayBlock() {
259
+ return !this.label && this.block;
260
+ },
261
+ isLink() {
262
+ return this.href || this.to;
263
+ },
264
+ isHashLink() {
265
+ return this.isLink && this.href === '#';
266
+ },
267
+ isButton() {
268
+ return this.componentIs === 'button';
269
+ },
270
+ isNonStandardTag() {
271
+ if (this.label) {
272
+ return false;
273
+ }
274
+ return !this.isLink && !this.isButton;
275
+ },
276
+ tabindex() {
277
+ // When disabled remove links and non-standard tags from tab order
278
+ if (this.disabled) {
279
+ return this.isLink || this.isNonStandardTag ? '-1' : this.$attrs.tabindex;
280
+ }
281
+
282
+ // Add hash links and non-standard tags to tab order
283
+ return this.isNonStandardTag || this.isHashLink ? '0' : this.$attrs.tabindex;
284
+ },
285
+ computedPropsAndAttributes() {
286
+ var _this$$attrs;
287
+ const base = {
288
+ // Type only used for "real" buttons
289
+ type: this.isButton ? this.type : null,
290
+ // Disabled only set on "real" buttons
291
+ disabled: this.isButton ? this.disabled : null,
292
+ // We add a role of button when the tag is not a link or button or when link has `href` of `#`
293
+ role: this.isNonStandardTag || this.isHashLink ? 'button' : (_this$$attrs = this.$attrs) === null || _this$$attrs === void 0 ? void 0 : _this$$attrs.role,
294
+ // We set the `aria-disabled` state for non-standard tags
295
+ ...(this.isNonStandardTag ? {
296
+ 'aria-disabled': String(this.disabled)
297
+ } : {}),
298
+ tabindex: this.tabindex,
299
+ // We set the `aria-disabled` state for buttons while loading
300
+ ...(this.isButtonAriaDisabled ? {
301
+ 'aria-disabled': 'true'
302
+ } : {})
303
+ };
304
+ if (this.isLink) {
305
+ return {
306
+ ...this.$attrs,
307
+ ...base,
308
+ variant: linkVariantUnstyled,
309
+ disabled: this.disabled,
310
+ href: this.href,
311
+ isUnsafeLink: this.isUnsafeLink,
312
+ rel: this.rel,
313
+ target: this.target,
314
+ active: this.active,
315
+ to: this.to,
316
+ activeClass: this.activeClass,
317
+ exactActiveClass: this.exactActiveClass,
318
+ replace: this.replace,
319
+ prefetch: this.prefetch
320
+ };
321
+ }
322
+ return {
323
+ ...this.$attrs,
324
+ ...base
325
+ };
326
+ },
327
+ computedListeners() {
328
+ const listeners = {
329
+ ...this.$listeners
330
+ };
331
+ if (this.isButtonAriaDisabled) {
332
+ delete listeners.click;
333
+ }
334
+ return listeners;
335
+ },
336
+ componentIs() {
337
+ if (this.label) {
338
+ return 'span';
339
+ }
340
+ if (this.isLink) {
341
+ return GlLink;
342
+ }
343
+ return this.tag;
344
+ },
345
+ hasCount() {
346
+ return this.count != null && this.count >= 0;
347
+ }
348
+ },
349
+ mounted() {
350
+ if (!('default' in this.$scopedSlots) && !this.$attrs['aria-label'] && !this.label) {
351
+ logWarning('Accessible name missing. Please add inner text or aria-label.', {
352
+ name: 'GlButton',
353
+ element: this.$el
354
+ });
355
+ }
356
+ },
357
+ methods: {
358
+ onKeydown(event) {
359
+ // Skip if disabled
360
+ // Add SPACE keydown handler for link has `href` of `#`
361
+ // Add ENTER handler for non-standard tags
362
+ if (!this.disabled && (this.isNonStandardTag || this.isHashLink)) {
363
+ const {
364
+ code
365
+ } = event;
366
+ if (code === SPACE || code === ENTER && this.isNonStandardTag) {
367
+ const target = event.currentTarget || event.target;
368
+ stopEvent(event, {
369
+ propagation: false
370
+ });
371
+ target.click();
372
+ }
373
+ }
374
+ },
375
+ maybeStopEvent(event) {
376
+ if (this.isButtonAriaDisabled && isEvent(event)) {
377
+ stopEvent(event);
378
+ }
379
+ }
380
+ }
381
+ };
382
+
383
+ /* script */
384
+ const __vue_script__ = script;
385
+
386
+ /* template */
387
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(_vm.componentIs,_vm._g(_vm._b({directives:[{name:"safe-link",rawName:"v-safe-link:[safeLinkConfig]",arg:_vm.safeLinkConfig}],tag:"component",class:_vm.buttonClasses,on:{"click":_vm.maybeStopEvent,"keydown":_vm.onKeydown}},'component',_vm.computedPropsAndAttributes,false),_vm.computedListeners),[(_vm.loading)?_c('gl-loading-icon',{staticClass:"gl-button-icon gl-button-loading-indicator",attrs:{"inline":""}}):_vm._e(),_vm._v(" "),(_vm.hasIcon && !(_vm.hasIconOnly && _vm.loading))?_c('gl-icon',{staticClass:"gl-button-icon",attrs:{"name":_vm.icon}}):_vm._e(),_vm._v(" "),_vm._t("emoji"),_vm._v(" "),(!_vm.hasIconOnly)?_c('span',{staticClass:"gl-button-text",class:_vm.buttonTextClasses},[_vm._t("default"),_vm._v(" "),(_vm.hasCount)?_c('span',{staticClass:"gl-button-count"},[_vm._v("\n "+_vm._s(_vm.count)+"\n "),(_vm.countSrText)?_c('span',{staticClass:"gl-sr-only"},[_vm._v(_vm._s(_vm.countSrText))]):_vm._e()]):_vm._e()],2):_vm._e()],2)};
388
+ var __vue_staticRenderFns__ = [];
389
+
390
+ /* style */
391
+ const __vue_inject_styles__ = undefined;
392
+ /* scoped */
393
+ const __vue_scope_id__ = undefined;
394
+ /* module identifier */
395
+ const __vue_module_identifier__ = undefined;
396
+ /* functional template */
397
+ const __vue_is_functional_template__ = false;
398
+ /* style inject */
399
+
400
+ /* style inject SSR */
401
+
402
+ /* style inject shadow dom */
403
+
404
+
405
+
406
+ const __vue_component__ = /*#__PURE__*/__vue_normalize__(
407
+ { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
408
+ __vue_inject_styles__,
409
+ __vue_script__,
410
+ __vue_scope_id__,
411
+ __vue_is_functional_template__,
412
+ __vue_module_identifier__,
413
+ false,
414
+ undefined,
415
+ undefined,
416
+ undefined
417
+ );
418
+
419
+ export { __vue_component__ as default };
@@ -0,0 +1,53 @@
1
+ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
2
+
3
+ var script = {
4
+ name: 'GlButtonGroup',
5
+ props: {
6
+ /**
7
+ * When set, rendered the button group in vertical mode.
8
+ */
9
+ vertical: {
10
+ type: Boolean,
11
+ required: false,
12
+ default: false
13
+ }
14
+ }
15
+ };
16
+
17
+ /* script */
18
+ const __vue_script__ = script;
19
+
20
+ /* template */
21
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._g({class:!_vm.vertical ? 'gl-button-group btn-group' : 'gl-button-group-vertical btn-group-vertical',attrs:{"role":"group"}},_vm.$listeners),[_vm._t("default")],2)};
22
+ var __vue_staticRenderFns__ = [];
23
+
24
+ /* style */
25
+ const __vue_inject_styles__ = undefined;
26
+ /* scoped */
27
+ const __vue_scope_id__ = undefined;
28
+ /* module identifier */
29
+ const __vue_module_identifier__ = undefined;
30
+ /* functional template */
31
+ const __vue_is_functional_template__ = false;
32
+ /* style inject */
33
+
34
+ /* style inject SSR */
35
+
36
+ /* style inject shadow dom */
37
+
38
+
39
+
40
+ const __vue_component__ = /*#__PURE__*/__vue_normalize__(
41
+ { render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
42
+ __vue_inject_styles__,
43
+ __vue_script__,
44
+ __vue_scope_id__,
45
+ __vue_is_functional_template__,
46
+ __vue_module_identifier__,
47
+ false,
48
+ undefined,
49
+ undefined,
50
+ undefined
51
+ );
52
+
53
+ export { __vue_component__ as default };