@gitlab/ui 132.0.3 → 132.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/dist/components/base/accordion/accordion_item.js +1 -3
  2. package/dist/components/base/avatar/avatar.js +76 -5
  3. package/dist/components/base/badge/badge.js +5 -7
  4. package/dist/components/base/button/button.js +1 -3
  5. package/dist/components/base/collapse/collapse.js +2 -6
  6. package/dist/components/base/datepicker/datepicker.js +4 -5
  7. package/dist/components/base/daterange_picker/daterange_picker.js +2 -4
  8. package/dist/components/base/dropdown/dropdown_item.js +3 -4
  9. package/dist/components/base/filtered_search/filtered_search.js +55 -7
  10. package/dist/components/base/filtered_search/filtered_search_token.js +6 -14
  11. package/dist/components/base/filtered_search/filtered_search_token_segment.js +39 -19
  12. package/dist/components/base/filtered_search/filtered_search_utils.js +57 -7
  13. package/dist/components/base/form/form_checkbox/form_checkbox.js +13 -26
  14. package/dist/components/base/form/form_checkbox/form_checkbox_group.js +1 -3
  15. package/dist/components/base/form/form_fields/form_fields_loop.js +57 -6
  16. package/dist/components/base/form/form_group/form_group.js +1 -3
  17. package/dist/components/base/form/form_input/form_input.js +95 -41
  18. package/dist/components/base/form/form_input_group/form_input_group.js +2 -4
  19. package/dist/components/base/form/form_radio/form_radio.js +5 -9
  20. package/dist/components/base/form/form_radio_group/form_radio_group.js +1 -3
  21. package/dist/components/base/form/form_select/form_select.js +76 -5
  22. package/dist/components/base/infinite_scroll/infinite_scroll.js +7 -14
  23. package/dist/components/base/link/link.js +26 -7
  24. package/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js +93 -32
  25. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown.js +2 -6
  26. package/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js +2 -6
  27. package/dist/components/base/new_dropdowns/listbox/listbox.js +5 -13
  28. package/dist/components/base/new_dropdowns/listbox/listbox_item.js +1 -3
  29. package/dist/components/base/new_dropdowns/listbox/mock_data.js +2 -6
  30. package/dist/components/base/new_dropdowns/listbox/utils.js +6 -11
  31. package/dist/components/base/path/path.js +1 -5
  32. package/dist/components/base/search_box_by_type/search_box_by_type.js +2 -6
  33. package/dist/components/base/skeleton_loader/skeleton_loader.js +3 -5
  34. package/dist/components/base/table/table.js +32 -21
  35. package/dist/components/base/table_lite/table_lite.js +1 -3
  36. package/dist/components/base/tabs/tab/tab.js +1 -3
  37. package/dist/components/base/tabs/tabs/scrollable_tabs.js +1 -5
  38. package/dist/components/base/token_selector/token_selector.js +2 -6
  39. package/dist/components/charts/area/area.js +6 -7
  40. package/dist/components/charts/column/column.js +11 -15
  41. package/dist/components/charts/discrete_scatter/discrete_scatter.js +57 -5
  42. package/dist/components/charts/gauge/gauge.js +13 -21
  43. package/dist/components/charts/heatmap/heatmap.js +66 -18
  44. package/dist/components/charts/legend/legend.js +59 -13
  45. package/dist/components/charts/line/line.js +6 -7
  46. package/dist/components/charts/shared/tooltip/tooltip.js +11 -18
  47. package/dist/components/charts/sparkline/sparkline.js +72 -19
  48. package/dist/components/charts/stacked_column/stacked_column.js +18 -31
  49. package/dist/components/dashboards/dashboard_layout/grid_layout/grid_layout.js +40 -24
  50. package/dist/components/utilities/friendly_wrap/friendly_wrap.js +3 -7
  51. package/dist/components/utilities/intersperse/intersperse.js +6 -11
  52. package/dist/components/utilities/sprintf/sprintf.js +58 -7
  53. package/dist/components/utilities/truncate/truncate.js +2 -4
  54. package/dist/components/utilities/truncate_text/truncate_text.js +1 -3
  55. package/dist/config.js +3 -4
  56. package/dist/directives/hover_load/hover_load.js +1 -3
  57. package/dist/directives/outside/outside.js +9 -16
  58. package/dist/directives/resize_observer/resize_observer.js +6 -8
  59. package/dist/directives/safe_html/safe_html.js +1 -3
  60. package/dist/directives/safe_link/safe_link.js +11 -14
  61. package/dist/index.css +2 -2
  62. package/dist/index.css.map +1 -1
  63. package/dist/tokens/build/js/tokens.dark.js +95 -95
  64. package/dist/tokens/build/js/tokens.js +74 -74
  65. package/dist/tokens/common_story_options.js +7 -8
  66. package/dist/utils/charts/config.js +122 -90
  67. package/dist/utils/constants.js +26 -1
  68. package/dist/utils/data_utils.js +28 -1
  69. package/dist/utils/form_options_utils.js +4 -6
  70. package/dist/utils/is_slot_empty.js +3 -5
  71. package/dist/utils/stories_utils.js +8 -8
  72. package/dist/utils/use_mock_intersection_observer.js +63 -12
  73. package/dist/utils/utils.js +76 -19
  74. package/dist/vendor/bootstrap-vue/src/components/button/button-close.js +8 -11
  75. package/dist/vendor/bootstrap-vue/src/components/button/button.js +12 -17
  76. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +3 -6
  77. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +6 -9
  78. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +14 -19
  79. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +8 -13
  80. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +9 -12
  81. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +8 -11
  82. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +9 -14
  83. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +34 -43
  84. package/dist/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +5 -9
  85. package/dist/vendor/bootstrap-vue/src/components/form/form-text.js +7 -10
  86. package/dist/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +5 -9
  87. package/dist/vendor/bootstrap-vue/src/components/form/form.js +7 -10
  88. package/dist/vendor/bootstrap-vue/src/components/form-group/form-group.js +77 -33
  89. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +6 -11
  90. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +6 -12
  91. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select.js +28 -29
  92. package/dist/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +7 -10
  93. package/dist/vendor/bootstrap-vue/src/components/layout/col.js +7 -11
  94. package/dist/vendor/bootstrap-vue/src/components/layout/form-row.js +3 -5
  95. package/dist/vendor/bootstrap-vue/src/components/link/link.js +19 -31
  96. package/dist/vendor/bootstrap-vue/src/components/modal/helpers/modal-manager.js +3 -4
  97. package/dist/vendor/bootstrap-vue/src/components/modal/modal.js +59 -68
  98. package/dist/vendor/bootstrap-vue/src/components/popover/helpers/bv-popover-template.js +2 -4
  99. package/dist/vendor/bootstrap-vue/src/components/popover/popover.js +4 -5
  100. package/dist/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.js +11 -7
  101. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-bottom-row.js +4 -6
  102. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +3 -6
  103. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +4 -7
  104. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-colgroup.js +1 -3
  105. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +16 -20
  106. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +14 -25
  107. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +23 -35
  108. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +6 -8
  109. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +8 -10
  110. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +8 -15
  111. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +33 -41
  112. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +3 -8
  113. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +38 -50
  114. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +19 -31
  115. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +13 -23
  116. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +5 -6
  117. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +17 -21
  118. package/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-top-row.js +4 -6
  119. package/dist/vendor/bootstrap-vue/src/components/table/helpers/sanitize-row.js +1 -3
  120. package/dist/vendor/bootstrap-vue/src/components/table/tbody.js +3 -6
  121. package/dist/vendor/bootstrap-vue/src/components/table/td.js +9 -14
  122. package/dist/vendor/bootstrap-vue/src/components/table/tfoot.js +1 -2
  123. package/dist/vendor/bootstrap-vue/src/components/table/thead.js +1 -2
  124. package/dist/vendor/bootstrap-vue/src/components/table/tr.js +2 -5
  125. package/dist/vendor/bootstrap-vue/src/components/tabs/tab.js +19 -36
  126. package/dist/vendor/bootstrap-vue/src/components/tabs/tabs.js +66 -81
  127. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-popper.js +2 -6
  128. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip-template.js +5 -11
  129. package/dist/vendor/bootstrap-vue/src/components/tooltip/helpers/bv-tooltip.js +8 -14
  130. package/dist/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +19 -22
  131. package/dist/vendor/bootstrap-vue/src/components/transition/bv-transition.js +7 -10
  132. package/dist/vendor/bootstrap-vue/src/components/transporter/transporter.js +7 -14
  133. package/dist/vendor/bootstrap-vue/src/directives/modal/modal.js +4 -5
  134. package/dist/vendor/bootstrap-vue/src/directives/visible/visible.js +5 -9
  135. package/dist/vendor/bootstrap-vue/src/mixins/dropdown.js +17 -29
  136. package/dist/vendor/bootstrap-vue/src/mixins/form-control.js +6 -7
  137. package/dist/vendor/bootstrap-vue/src/mixins/form-custom.js +1 -2
  138. package/dist/vendor/bootstrap-vue/src/mixins/form-options.js +5 -6
  139. package/dist/vendor/bootstrap-vue/src/mixins/form-size.js +1 -2
  140. package/dist/vendor/bootstrap-vue/src/mixins/form-state.js +1 -2
  141. package/dist/vendor/bootstrap-vue/src/mixins/form-text.js +29 -43
  142. package/dist/vendor/bootstrap-vue/src/mixins/id.js +1 -2
  143. package/dist/vendor/bootstrap-vue/src/utils/create-new-child-component.js +62 -15
  144. package/dist/vendor/bootstrap-vue/src/utils/dom.js +3 -9
  145. package/dist/vendor/bootstrap-vue/src/utils/events.js +7 -5
  146. package/dist/vendor/bootstrap-vue/src/utils/plugins.js +4 -5
  147. package/dist/vendor/bootstrap-vue/src/utils/router.js +9 -13
  148. package/package.json +10 -8
  149. package/src/components/dashboards/dashboard_layout/grid_layout/grid_layout.vue +21 -19
  150. package/src/scss/gitlab_ui.scss +3 -0
  151. package/src/scss/storybook.scss +3 -0
  152. package/src/scss/themes.scss +84 -0
  153. package/src/tokens/build/css/tokens.css +142 -142
  154. package/src/tokens/build/css/tokens.dark.css +138 -138
  155. package/src/tokens/build/docs/tokens-tailwind-docs.dark.json +580 -580
  156. package/src/tokens/build/docs/tokens-tailwind-docs.json +495 -495
  157. package/src/tokens/build/figma/constants.dark.json +799 -799
  158. package/src/tokens/build/figma/constants.json +799 -799
  159. package/src/tokens/build/js/tokens.dark.js +95 -95
  160. package/src/tokens/build/js/tokens.js +74 -74
  161. package/src/tokens/build/json/tokens.dark.json +1668 -1668
  162. package/src/tokens/build/json/tokens.json +1647 -1647
  163. package/src/tokens/build/scss/_tokens.dark.scss +138 -138
  164. package/src/tokens/build/scss/_tokens.scss +142 -142
  165. package/src/tokens/build/scss/_tokens_custom_properties.scss +73 -73
  166. package/src/tokens/constant/color.blue.tokens.json +182 -0
  167. package/src/tokens/constant/color.brand.tokens.json +252 -0
  168. package/src/tokens/constant/color.data.tokens.json +894 -0
  169. package/src/tokens/constant/color.green.tokens.json +182 -0
  170. package/src/tokens/constant/color.neutral.tokens.json +230 -0
  171. package/src/tokens/constant/color.orange.tokens.json +182 -0
  172. package/src/tokens/constant/color.purple.tokens.json +182 -0
  173. package/src/tokens/constant/color.red.tokens.json +182 -0
  174. package/src/tokens/constant/color.theme.tokens.json +1168 -0
  175. package/src/tokens/deprecated/deprecated.color.tokens.json +134 -1340
  176. package/src/utils/constants.js +9 -0
  177. package/src/vendor/bootstrap-vue/src/components/button/button-close.js +4 -5
  178. package/src/vendor/bootstrap-vue/src/components/button/button.js +7 -8
  179. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +1 -2
  180. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +2 -8
  181. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +6 -7
  182. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +3 -4
  183. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +6 -12
  184. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +2 -3
  185. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +3 -4
  186. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +19 -26
  187. package/src/vendor/bootstrap-vue/src/components/form/form-text.js +4 -6
  188. package/src/vendor/bootstrap-vue/src/components/form/form.js +4 -6
  189. package/src/vendor/bootstrap-vue/src/components/form-group/form-group.js +66 -19
  190. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +1 -2
  191. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +1 -4
  192. package/src/vendor/bootstrap-vue/src/components/form-select/form-select.js +13 -14
  193. package/src/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +5 -6
  194. package/src/vendor/bootstrap-vue/src/components/modal/modal.js +53 -62
  195. package/src/vendor/bootstrap-vue/src/components/popover/popover.js +4 -10
  196. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +1 -2
  197. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +2 -3
  198. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +5 -6
  199. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +5 -13
  200. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +12 -21
  201. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +2 -3
  202. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +5 -11
  203. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +4 -5
  204. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +14 -21
  205. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +1 -2
  206. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +14 -20
  207. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +3 -9
  208. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +1 -2
  209. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +5 -11
  210. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +4 -5
  211. package/src/vendor/bootstrap-vue/src/components/table/tbody.js +2 -3
  212. package/src/vendor/bootstrap-vue/src/components/table/td.js +5 -6
  213. package/src/vendor/bootstrap-vue/src/components/table/tfoot.js +1 -2
  214. package/src/vendor/bootstrap-vue/src/components/table/thead.js +1 -2
  215. package/src/vendor/bootstrap-vue/src/components/table/tr.js +1 -2
  216. package/src/vendor/bootstrap-vue/src/components/tabs/tab.js +10 -16
  217. package/src/vendor/bootstrap-vue/src/components/tabs/tabs.js +33 -39
  218. package/src/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +17 -25
  219. package/src/vendor/bootstrap-vue/src/components/transition/bv-transition.js +4 -5
  220. package/src/vendor/bootstrap-vue/src/components/transporter/transporter.js +4 -10
  221. package/src/vendor/bootstrap-vue/src/mixins/dropdown.js +9 -15
  222. package/src/vendor/bootstrap-vue/src/mixins/form-control.js +6 -7
  223. package/src/vendor/bootstrap-vue/src/mixins/form-custom.js +1 -2
  224. package/src/vendor/bootstrap-vue/src/mixins/form-options.js +5 -6
  225. package/src/vendor/bootstrap-vue/src/mixins/form-size.js +1 -2
  226. package/src/vendor/bootstrap-vue/src/mixins/form-state.js +1 -2
  227. package/src/vendor/bootstrap-vue/src/mixins/form-text.js +21 -33
  228. package/src/vendor/bootstrap-vue/src/mixins/id.js +1 -2
  229. package/dist/vendor/bootstrap-vue/src/mixins/model.js +0 -10
  230. package/dist/vendor/bootstrap-vue/src/utils/model.js +0 -33
  231. package/src/tokens/constant/color.tokens.json +0 -3422
  232. package/src/vendor/bootstrap-vue/src/mixins/model.js +0 -5
  233. package/src/vendor/bootstrap-vue/src/utils/model.js +0 -29
@@ -1,9 +1,8 @@
1
1
  import { extend, COMPONENT_UID_KEY, REF_FOR_KEY } from '../../vue';
2
2
  import { NAME_TABS, NAME_TAB_BUTTON_HELPER } from '../../constants/components';
3
3
  import { IS_BROWSER } from '../../constants/env';
4
- import { EVENT_NAME_CHANGED, EVENT_NAME_ACTIVATE_TAB, EVENT_NAME_CLICK, EVENT_NAME_FIRST, EVENT_NAME_PREV, EVENT_NAME_NEXT, EVENT_NAME_LAST } from '../../constants/events';
4
+ import { EVENT_NAME_CHANGED, EVENT_NAME_ACTIVATE_TAB, EVENT_NAME_CLICK, EVENT_NAME_FIRST, EVENT_NAME_PREV, EVENT_NAME_NEXT, EVENT_NAME_LAST, EVENT_NAME_INPUT } from '../../constants/events';
5
5
  import { CODE_SPACE, CODE_UP, CODE_LEFT, CODE_HOME, CODE_DOWN, CODE_RIGHT, CODE_END } from '../../constants/key-codes';
6
- import { PROP_TYPE_NUMBER, PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';
7
6
  import { SLOT_NAME_TABS_START, SLOT_NAME_TABS_END, SLOT_NAME_TOOLBAR_START, SLOT_NAME_TOOLBAR_END, SLOT_NAME_EMPTY, SLOT_NAME_TITLE } from '../../constants/slots';
8
7
  import { BvEvent } from '../../utils/bv-event.class';
9
8
  import { selectAll, attemptFocus, requestAF } from '../../utils/dom';
@@ -12,7 +11,6 @@ import { identity } from '../../utils/identity';
12
11
  import { isEvent } from '../../utils/inspect';
13
12
  import { looseEqual } from '../../utils/loose-equal';
14
13
  import { mathMax } from '../../utils/math';
15
- import { makeModelMixin } from '../../utils/model';
16
14
  import { toInteger } from '../../utils/number';
17
15
  import { sortKeys } from '../../utils/object';
18
16
  import { observeDom } from '../../utils/observe-dom';
@@ -23,14 +21,8 @@ import { BLink } from '../link/link';
23
21
 
24
22
  // --- Constants ---
25
23
 
26
- const {
27
- mixin: modelMixin,
28
- props: modelProps,
29
- prop: MODEL_PROP_NAME,
30
- event: MODEL_EVENT_NAME
31
- } = makeModelMixin('value', {
32
- type: PROP_TYPE_NUMBER
33
- });
24
+ const MODEL_PROP_NAME = 'value';
25
+ const MODEL_EVENT_NAME = EVENT_NAME_INPUT;
34
26
 
35
27
  // --- Helper methods ---
36
28
 
@@ -49,27 +41,27 @@ const BVTabButton = /*#__PURE__*/extend({
49
41
  },
50
42
  props: {
51
43
  controls: {
52
- type: PROP_TYPE_STRING,
44
+ type: String,
53
45
  required: false,
54
46
  default: undefined
55
47
  },
56
48
  id: {
57
- type: PROP_TYPE_STRING,
49
+ type: String,
58
50
  required: false,
59
51
  default: undefined
60
52
  },
61
53
  noKeyNav: {
62
- type: PROP_TYPE_BOOLEAN,
54
+ type: Boolean,
63
55
  required: false,
64
56
  default: false
65
57
  },
66
58
  posInSet: {
67
- type: PROP_TYPE_NUMBER,
59
+ type: Number,
68
60
  required: false,
69
61
  default: undefined
70
62
  },
71
63
  setSize: {
72
- type: PROP_TYPE_NUMBER,
64
+ type: Number,
73
65
  required: false,
74
66
  default: undefined
75
67
  },
@@ -79,7 +71,7 @@ const BVTabButton = /*#__PURE__*/extend({
79
71
  default: undefined
80
72
  },
81
73
  tabIndex: {
82
- type: PROP_TYPE_NUMBER,
74
+ type: Number,
83
75
  required: false,
84
76
  default: undefined
85
77
  }
@@ -98,11 +90,9 @@ const BVTabButton = /*#__PURE__*/extend({
98
90
  if (this.tab.disabled) {
99
91
  return;
100
92
  }
101
- const {
102
- type,
103
- keyCode,
104
- shiftKey
105
- } = event;
93
+ const type = event.type,
94
+ keyCode = event.keyCode,
95
+ shiftKey = event.shiftKey;
106
96
  if (type === 'click') {
107
97
  stopEvent(event);
108
98
  this.$emit(EVENT_NAME_CLICK, event);
@@ -133,22 +123,19 @@ const BVTabButton = /*#__PURE__*/extend({
133
123
  }
134
124
  },
135
125
  render(h) {
136
- const {
137
- id,
138
- tabIndex,
139
- setSize,
140
- posInSet,
141
- controls,
142
- handleEvent
143
- } = this;
144
- const {
145
- title,
146
- localActive,
147
- disabled,
148
- titleItemClass,
149
- titleLinkClass,
150
- titleLinkAttributes
151
- } = this.tab;
126
+ const id = this.id,
127
+ tabIndex = this.tabIndex,
128
+ setSize = this.setSize,
129
+ posInSet = this.posInSet,
130
+ controls = this.controls,
131
+ handleEvent = this.handleEvent;
132
+ const _this$tab = this.tab,
133
+ title = _this$tab.title,
134
+ localActive = _this$tab.localActive,
135
+ disabled = _this$tab.disabled,
136
+ titleItemClass = _this$tab.titleItemClass,
137
+ titleLinkClass = _this$tab.titleLinkClass,
138
+ titleLinkAttributes = _this$tab.titleLinkAttributes;
152
139
  const $link = h(BLink, {
153
140
  staticClass: 'nav-link',
154
141
  class: [{
@@ -190,92 +177,94 @@ const BVTabButton = /*#__PURE__*/extend({
190
177
  // --- Props ---
191
178
  const navProps = {
192
179
  align: {
193
- type: PROP_TYPE_STRING,
180
+ type: String,
194
181
  required: false,
195
182
  default: undefined
196
183
  },
197
184
  fill: {
198
- type: PROP_TYPE_BOOLEAN,
185
+ type: Boolean,
199
186
  required: false,
200
187
  default: false
201
188
  },
202
189
  justified: {
203
- type: PROP_TYPE_BOOLEAN,
190
+ type: Boolean,
204
191
  required: false,
205
192
  default: false
206
193
  },
207
194
  pills: {
208
- type: PROP_TYPE_BOOLEAN,
195
+ type: Boolean,
209
196
  required: false,
210
197
  default: false
211
198
  },
212
199
  small: {
213
- type: PROP_TYPE_BOOLEAN,
200
+ type: Boolean,
214
201
  required: false,
215
202
  default: false
216
203
  }
217
204
  };
218
205
  const props = sortKeys({
219
206
  ...props$1,
220
- ...modelProps,
207
+ [MODEL_PROP_NAME]: {
208
+ type: Number
209
+ },
221
210
  ...navProps,
222
211
  // Only applied to the currently active `li`
223
212
  activeNavItemClass: {
224
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
213
+ type: [Array, Object, String],
225
214
  required: false,
226
215
  default: undefined
227
216
  },
228
217
  // Only applied to the currently active `<b-tab>`
229
218
  // This prop is sniffed by the `<b-tab>` child
230
219
  activeTabClass: {
231
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
220
+ type: [Array, Object, String],
232
221
  required: false,
233
222
  default: undefined
234
223
  },
235
224
  contentClass: {
236
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
225
+ type: [Array, Object, String],
237
226
  required: false,
238
227
  default: undefined
239
228
  },
240
229
  // Synonym for 'bottom'
241
230
  end: {
242
- type: PROP_TYPE_BOOLEAN,
231
+ type: Boolean,
243
232
  required: false,
244
233
  default: false
245
234
  },
246
235
  // This prop is sniffed by the `<b-tab>` child
247
236
  lazy: {
248
- type: PROP_TYPE_BOOLEAN,
237
+ type: Boolean,
249
238
  required: false,
250
239
  default: false
251
240
  },
252
241
  navClass: {
253
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
242
+ type: [Array, Object, String],
254
243
  required: false,
255
244
  default: undefined
256
245
  },
257
246
  navWrapperClass: {
258
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
247
+ type: [Array, Object, String],
259
248
  required: false,
260
249
  default: undefined
261
250
  },
262
251
  noFade: {
263
- type: PROP_TYPE_BOOLEAN,
252
+ type: Boolean,
264
253
  required: false,
265
254
  default: false
266
255
  },
267
256
  noKeyNav: {
268
- type: PROP_TYPE_BOOLEAN,
257
+ type: Boolean,
269
258
  required: false,
270
259
  default: false
271
260
  },
272
261
  noNavStyle: {
273
- type: PROP_TYPE_BOOLEAN,
262
+ type: Boolean,
274
263
  required: false,
275
264
  default: false
276
265
  },
277
266
  tag: {
278
- type: PROP_TYPE_STRING,
267
+ type: String,
279
268
  required: false,
280
269
  default: 'div'
281
270
  }
@@ -286,7 +275,11 @@ const props = sortKeys({
286
275
  // @vue/component
287
276
  const BTabs = /*#__PURE__*/extend({
288
277
  name: NAME_TABS,
289
- mixins: [idMixin, modelMixin, normalizeSlotMixin],
278
+ mixins: [idMixin, normalizeSlotMixin],
279
+ model: {
280
+ prop: MODEL_PROP_NAME,
281
+ event: MODEL_EVENT_NAME
282
+ },
290
283
  provide() {
291
284
  return {
292
285
  getBvTabs: () => this
@@ -439,9 +432,7 @@ const BTabs = /*#__PURE__*/extend({
439
432
 
440
433
  // Else try setting to `currentTab`
441
434
  if (tabIndex < 0) {
442
- const {
443
- currentTab
444
- } = this;
435
+ const currentTab = this.currentTab;
445
436
  if (currentTab >= $tabs.length) {
446
437
  // Handle last tab being removed, so find the last non-disabled tab
447
438
  tabIndex = $tabs.indexOf($tabs.slice().reverse().find(notDisabled));
@@ -479,10 +470,8 @@ const BTabs = /*#__PURE__*/extend({
479
470
  // Activate a tab given a `<b-tab>` instance
480
471
  // Also accessed by `<b-tab>`
481
472
  activateTab($tab) {
482
- const {
483
- currentTab,
484
- tabs: $tabs
485
- } = this;
473
+ const currentTab = this.currentTab,
474
+ $tabs = this.tabs;
486
475
  let result = false;
487
476
  if ($tab) {
488
477
  const index = $tabs.indexOf($tab);
@@ -572,21 +561,19 @@ const BTabs = /*#__PURE__*/extend({
572
561
  }
573
562
  },
574
563
  render(h) {
575
- const {
576
- align,
577
- end,
578
- fill,
579
- firstTab,
580
- justified,
581
- lastTab,
582
- nextTab,
583
- noKeyNav,
584
- noNavStyle,
585
- pills,
586
- previousTab,
587
- small,
588
- tabs: $tabs
589
- } = this;
564
+ const align = this.align,
565
+ end = this.end,
566
+ fill = this.fill,
567
+ firstTab = this.firstTab,
568
+ justified = this.justified,
569
+ lastTab = this.lastTab,
570
+ nextTab = this.nextTab,
571
+ noKeyNav = this.noKeyNav,
572
+ noNavStyle = this.noNavStyle,
573
+ pills = this.pills,
574
+ previousTab = this.previousTab,
575
+ small = this.small,
576
+ $tabs = this.tabs;
590
577
 
591
578
  // Currently active tab
592
579
  const $activeTab = $tabs.find($tab => $tab.localActive && !$tab.disabled);
@@ -596,9 +583,7 @@ const BTabs = /*#__PURE__*/extend({
596
583
 
597
584
  // For each `<b-tab>` found create the tab buttons
598
585
  const $buttons = $tabs.map(($tab, index) => {
599
- const {
600
- safeId
601
- } = $tab;
586
+ const safeId = $tab.safeId;
602
587
 
603
588
  // Ensure at least one tab button is focusable when keynav enabled (if possible)
604
589
  let tabIndex = null;
@@ -120,9 +120,7 @@ const BVPopper = /*#__PURE__*/extend({
120
120
  return 'unknown';
121
121
  },
122
122
  popperConfig() {
123
- const {
124
- placement
125
- } = this;
123
+ const placement = this.placement;
126
124
  return {
127
125
  placement: this.getAttachment(placement),
128
126
  modifiers: {
@@ -246,9 +244,7 @@ const BVPopper = /*#__PURE__*/extend({
246
244
  }
247
245
  },
248
246
  render(h) {
249
- const {
250
- noFade
251
- } = this;
247
+ const noFade = this.noFade;
252
248
 
253
249
  // Note: 'show' and 'fade' classes are only appled during transition
254
250
  return h(BVTransition, {
@@ -47,11 +47,9 @@ const BVTooltipTemplate = /*#__PURE__*/extend({
47
47
  return 'tooltip';
48
48
  },
49
49
  templateClasses() {
50
- const {
51
- variant,
52
- attachment,
53
- templateType
54
- } = this;
50
+ const variant = this.variant,
51
+ attachment = this.attachment,
52
+ templateType = this.templateType;
55
53
  return [{
56
54
  // Disables pointer events to hide the tooltip when the user
57
55
  // hovers over its content
@@ -62,9 +60,7 @@ const BVTooltipTemplate = /*#__PURE__*/extend({
62
60
  }, this.customClass];
63
61
  },
64
62
  templateAttributes() {
65
- const {
66
- id
67
- } = this;
63
+ const id = this.id;
68
64
  return {
69
65
  // Apply attributes from root tooltip component
70
66
  ...this.bvParent.bvParent.$attrs,
@@ -95,9 +91,7 @@ const BVTooltipTemplate = /*#__PURE__*/extend({
95
91
  },
96
92
  methods: {
97
93
  renderTemplate(h) {
98
- const {
99
- title
100
- } = this;
94
+ const title = this.title;
101
95
 
102
96
  // Title can be a scoped slot function
103
97
  const $title = isFunction(title) ? title({}) : title;
@@ -151,14 +151,12 @@ const BVTooltip = /*#__PURE__*/extend({
151
151
  return false;
152
152
  },
153
153
  computedTemplateData() {
154
- const {
155
- title,
156
- content,
157
- variant,
158
- customClass,
159
- noFade,
160
- interactive
161
- } = this;
154
+ const title = this.title,
155
+ content = this.content,
156
+ variant = this.variant,
157
+ customClass = this.customClass,
158
+ noFade = this.noFade,
159
+ interactive = this.interactive;
162
160
  return {
163
161
  title,
164
162
  content,
@@ -503,9 +501,7 @@ const BVTooltip = /*#__PURE__*/extend({
503
501
  },
504
502
  // --- Helper methods ---
505
503
  getTarget() {
506
- let {
507
- target
508
- } = this;
504
+ let target = this.target;
509
505
  if (isString(target)) {
510
506
  target = getById(target.replace(/^#/, ''));
511
507
  } else if (isFunction(target)) {
@@ -637,9 +633,7 @@ const BVTooltip = /*#__PURE__*/extend({
637
633
  });
638
634
  },
639
635
  emitEvent(bvEvent) {
640
- const {
641
- type
642
- } = bvEvent;
636
+ const type = bvEvent.type;
643
637
  this.emitOnRoot(getRootEventName(this.templateType, type), bvEvent);
644
638
  this.$emit(type, bvEvent);
645
639
  },
@@ -1,7 +1,6 @@
1
1
  import { extend } from '../../vue';
2
2
  import { NAME_TOOLTIP } from '../../constants/components';
3
3
  import { EVENT_NAME_DISABLE, EVENT_NAME_ENABLE, EVENT_NAME_SHOW, EVENT_NAME_SHOWN, EVENT_NAME_HIDE, EVENT_NAME_HIDDEN, EVENT_NAME_DISABLED, EVENT_NAME_ENABLED, EVENT_NAME_OPEN, EVENT_NAME_CLOSE, MODEL_EVENT_NAME_PREFIX } from '../../constants/events';
4
- import { PROP_TYPE_OBJECT, PROP_TYPE_STRING, PROP_TYPE_NUMBER, PROP_TYPE_BOOLEAN, PROP_TYPE_ARRAY, PROP_TYPE_FUNCTION } from '../../constants/props';
5
4
  import { HTMLElement, SVGElement } from '../../constants/safe-types';
6
5
  import { useParentMixin } from '../../mixins/use-parent';
7
6
  import { getScopeId } from '../../utils/get-scope-id';
@@ -26,12 +25,12 @@ const props = {
26
25
  // Element: element reference
27
26
  // Object: Vue component
28
27
  boundary: {
29
- type: [HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
28
+ type: [HTMLElement, Object, String],
30
29
  required: false,
31
30
  default: 'scrollParent'
32
31
  },
33
32
  boundaryPadding: {
34
- type: [PROP_TYPE_NUMBER, PROP_TYPE_STRING],
33
+ type: [Number, String],
35
34
  required: false,
36
35
  default: 5
37
36
  },
@@ -39,61 +38,61 @@ const props = {
39
38
  // HTMLElement: element reference reference
40
39
  // Object: Vue Component
41
40
  container: {
42
- type: [HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
41
+ type: [HTMLElement, Object, String],
43
42
  required: false,
44
43
  default: undefined
45
44
  },
46
45
  customClass: {
47
- type: PROP_TYPE_STRING,
46
+ type: String,
48
47
  required: false,
49
48
  default: 'gl-tooltip'
50
49
  },
51
50
  delay: {
52
- type: [PROP_TYPE_NUMBER, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
51
+ type: [Number, Object, String],
53
52
  required: false,
54
53
  default: () => ({
55
54
  ...TOOLTIP_DELAY
56
55
  })
57
56
  },
58
57
  [MODEL_PROP_NAME_ENABLED]: {
59
- type: PROP_TYPE_BOOLEAN,
58
+ type: Boolean,
60
59
  required: false,
61
60
  default: false
62
61
  },
63
62
  fallbackPlacement: {
64
- type: [PROP_TYPE_ARRAY, PROP_TYPE_STRING],
63
+ type: [Array, String],
65
64
  required: false,
66
65
  default: 'flip'
67
66
  },
68
67
  // ID to use for tooltip element
69
68
  // If not provided on will automatically be generated
70
69
  id: {
71
- type: PROP_TYPE_STRING,
70
+ type: String,
72
71
  required: false,
73
72
  default: undefined
74
73
  },
75
74
  noFade: {
76
- type: PROP_TYPE_BOOLEAN,
75
+ type: Boolean,
77
76
  required: false,
78
77
  default: false
79
78
  },
80
79
  noninteractive: {
81
- type: PROP_TYPE_BOOLEAN,
80
+ type: Boolean,
82
81
  required: false,
83
82
  default: false
84
83
  },
85
84
  offset: {
86
- type: [PROP_TYPE_NUMBER, PROP_TYPE_STRING],
85
+ type: [Number, String],
87
86
  required: false,
88
87
  default: 0
89
88
  },
90
89
  placement: {
91
- type: PROP_TYPE_STRING,
90
+ type: String,
92
91
  required: false,
93
92
  default: 'top'
94
93
  },
95
94
  [MODEL_PROP_NAME_SHOW]: {
96
- type: PROP_TYPE_BOOLEAN,
95
+ type: Boolean,
97
96
  required: false,
98
97
  default: false
99
98
  },
@@ -101,21 +100,21 @@ const props = {
101
100
  // Or function that returns one of the above
102
101
  // Required
103
102
  target: {
104
- type: [HTMLElement, SVGElement, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
103
+ type: [HTMLElement, SVGElement, Function, Object, String],
105
104
  required: true
106
105
  },
107
106
  title: {
108
- type: PROP_TYPE_STRING,
107
+ type: String,
109
108
  required: false,
110
109
  default: undefined
111
110
  },
112
111
  triggers: {
113
- type: [PROP_TYPE_ARRAY, PROP_TYPE_STRING],
112
+ type: [Array, String],
114
113
  required: false,
115
114
  default: 'hover focus'
116
115
  },
117
116
  variant: {
118
- type: PROP_TYPE_STRING,
117
+ type: String,
119
118
  required: false,
120
119
  default: undefined
121
120
  }
@@ -149,10 +148,8 @@ const BTooltip = /*#__PURE__*/extend({
149
148
  },
150
149
  // Used to watch for changes to the title and content props
151
150
  templateTitleContent() {
152
- const {
153
- title,
154
- content
155
- } = this;
151
+ const title = this.title,
152
+ content = this.content;
156
153
  return {
157
154
  title,
158
155
  content
@@ -1,6 +1,5 @@
1
1
  import { extend, mergeData } from '../../vue';
2
2
  import { NAME_TRANSITION } from '../../constants/components';
3
- import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING, PROP_TYPE_OBJECT } from '../../constants/props';
4
3
  import { isPlainObject } from '../../utils/inspect';
5
4
 
6
5
  // Generic Bootstrap v4 fade (no-fade) transition component
@@ -32,26 +31,26 @@ const FADE_PROPS = {
32
31
  const props = {
33
32
  // Has no effect if `trans-props` provided
34
33
  appear: {
35
- type: PROP_TYPE_BOOLEAN,
34
+ type: Boolean,
36
35
  required: false,
37
36
  default: false
38
37
  },
39
38
  // Can be overridden by user supplied `trans-props`
40
39
  mode: {
41
- type: PROP_TYPE_STRING,
40
+ type: String,
42
41
  required: false,
43
42
  default: undefined
44
43
  },
45
44
  // Only applicable to the built in transition
46
45
  // Has no effect if `trans-props` provided
47
46
  noFade: {
48
- type: PROP_TYPE_BOOLEAN,
47
+ type: Boolean,
49
48
  required: false,
50
49
  default: false
51
50
  },
52
51
  // For user supplied transitions (if needed)
53
52
  transProps: {
54
- type: PROP_TYPE_OBJECT,
53
+ type: Object,
55
54
  required: false,
56
55
  default: undefined
57
56
  }
@@ -66,11 +65,9 @@ const BVTransition = /*#__PURE__*/extend({
66
65
  functional: true,
67
66
  props,
68
67
  render(h, _ref) {
69
- let {
70
- children,
71
- data,
72
- props
73
- } = _ref;
68
+ let children = _ref.children,
69
+ data = _ref.data,
70
+ props = _ref.props;
74
71
  let transProps = props.transProps;
75
72
  if (!isPlainObject(transProps)) {
76
73
  transProps = props.noFade ? NO_FADE_PROPS : FADE_PROPS;
@@ -1,7 +1,6 @@
1
1
  import { extend, isVue3 } from '../../vue';
2
2
  import { NAME_TRANSPORTER, NAME_TRANSPORTER_TARGET } from '../../constants/components';
3
3
  import { IS_BROWSER } from '../../constants/env';
4
- import { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN, PROP_TYPE_ARRAY, PROP_TYPE_FUNCTION } from '../../constants/props';
5
4
  import { HTMLElement } from '../../constants/safe-types';
6
5
  import { concat } from '../../utils/array';
7
6
  import { select, removeNode } from '../../utils/dom';
@@ -36,7 +35,7 @@ const BVTransporterTarget = /*#__PURE__*/extend({
36
35
  // Even though we only support a single root element,
37
36
  // VNodes are always passed as an array
38
37
  nodes: {
39
- type: [PROP_TYPE_ARRAY, PROP_TYPE_FUNCTION],
38
+ type: [Array, Function],
40
39
  required: false,
41
40
  default: undefined
42
41
  }
@@ -50,9 +49,7 @@ const BVTransporterTarget = /*#__PURE__*/extend({
50
49
  removeNode(this.$el);
51
50
  },
52
51
  render(h) {
53
- const {
54
- updatedNodes
55
- } = this;
52
+ const updatedNodes = this.updatedNodes;
56
53
  let $nodes = isFunction(updatedNodes) ? updatedNodes({}) : updatedNodes;
57
54
  $nodes = concat($nodes).filter(identity);
58
55
  if ($nodes && $nodes.length > 0 && !$nodes[0].text) {
@@ -71,18 +68,18 @@ const props = {
71
68
  // HTMLElement: Element reference
72
69
  // Mainly needed for tooltips/popovers inside modals
73
70
  container: {
74
- type: [HTMLElement, PROP_TYPE_STRING],
71
+ type: [HTMLElement, String],
75
72
  required: false,
76
73
  default: 'body'
77
74
  },
78
75
  disabled: {
79
- type: PROP_TYPE_BOOLEAN,
76
+ type: Boolean,
80
77
  required: false,
81
78
  default: false
82
79
  },
83
80
  // This should be set to match the root element type
84
81
  tag: {
85
- type: PROP_TYPE_STRING,
82
+ type: String,
86
83
  required: false,
87
84
  default: 'div'
88
85
  }
@@ -138,9 +135,7 @@ const BVTransporter = /*#__PURE__*/extend({
138
135
  getContainer() {
139
136
  /* istanbul ignore else */
140
137
  if (IS_BROWSER) {
141
- const {
142
- container
143
- } = this;
138
+ const container = this.container;
144
139
  return isString(container) ? select(container) : container;
145
140
  } else {
146
141
  return null;
@@ -198,9 +193,7 @@ const BVTransporter = /*#__PURE__*/extend({
198
193
  return $nodes[0];
199
194
  }
200
195
  }
201
- const {
202
- Teleport
203
- } = this.$.appContext.config.globalProperties.constructor;
196
+ const Teleport = this.$.appContext.config.globalProperties.constructor.Teleport;
204
197
  return h(Teleport, {
205
198
  to: this.container
206
199
  }, this.normalizeSlot());