@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,12 +1,6 @@
1
1
  import { extend } from '../../vue'
2
2
  import { NAME_TAB } from '../../constants/components'
3
3
  import { MODEL_EVENT_NAME_PREFIX } from '../../constants/events'
4
- import {
5
- PROP_TYPE_ARRAY,
6
- PROP_TYPE_BOOLEAN,
7
- PROP_TYPE_OBJECT,
8
- PROP_TYPE_STRING
9
- } from '../../constants/props'
10
4
  import { SLOT_NAME_TITLE } from '../../constants/slots'
11
5
  import { sortKeys } from '../../utils/object'
12
6
  import { idMixin, props as idProps } from '../../mixins/id'
@@ -23,54 +17,54 @@ const MODEL_EVENT_NAME_ACTIVE = MODEL_EVENT_NAME_PREFIX + MODEL_PROP_NAME_ACTIVE
23
17
  export const props = sortKeys({
24
18
  ...idProps,
25
19
  [MODEL_PROP_NAME_ACTIVE]: {
26
- type: PROP_TYPE_BOOLEAN,
20
+ type: Boolean,
27
21
  required: false,
28
22
  default: false
29
23
  },
30
24
  buttonId: {
31
- type: PROP_TYPE_STRING,
25
+ type: String,
32
26
  required: false,
33
27
  default: undefined
34
28
  },
35
29
  disabled: {
36
- type: PROP_TYPE_BOOLEAN,
30
+ type: Boolean,
37
31
  required: false,
38
32
  default: false
39
33
  },
40
34
  lazy: {
41
- type: PROP_TYPE_BOOLEAN,
35
+ type: Boolean,
42
36
  required: false,
43
37
  default: false
44
38
  },
45
39
  noBody: {
46
- type: PROP_TYPE_BOOLEAN,
40
+ type: Boolean,
47
41
  required: false,
48
42
  default: false
49
43
  },
50
44
  tag: {
51
- type: PROP_TYPE_STRING,
45
+ type: String,
52
46
  required: false,
53
47
  default: 'div'
54
48
  },
55
49
  title: {
56
- type: PROP_TYPE_STRING,
50
+ type: String,
57
51
  required: false,
58
52
  default: undefined
59
53
  },
60
54
  // Sniffed by `<b-tabs>` and added to nav `li.nav-item`
61
55
  titleItemClass: {
62
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
56
+ type: [Array, Object, String],
63
57
  required: false,
64
58
  default: undefined
65
59
  },
66
60
  titleLinkAttributes: {
67
- type: PROP_TYPE_OBJECT,
61
+ type: Object,
68
62
  required: false,
69
63
  default: undefined
70
64
  },
71
65
  // Sniffed by `<b-tabs>` and added to nav `a.nav-link`
72
66
  titleLinkClass: {
73
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
67
+ type: [Array, Object, String],
74
68
  required: false,
75
69
  default: undefined
76
70
  }
@@ -6,6 +6,7 @@ import {
6
6
  EVENT_NAME_CHANGED,
7
7
  EVENT_NAME_CLICK,
8
8
  EVENT_NAME_FIRST,
9
+ EVENT_NAME_INPUT,
9
10
  EVENT_NAME_LAST,
10
11
  EVENT_NAME_NEXT,
11
12
  EVENT_NAME_PREV
@@ -19,13 +20,6 @@ import {
19
20
  CODE_SPACE,
20
21
  CODE_UP
21
22
  } from '../../constants/key-codes'
22
- import {
23
- PROP_TYPE_ARRAY,
24
- PROP_TYPE_BOOLEAN,
25
- PROP_TYPE_NUMBER,
26
- PROP_TYPE_OBJECT,
27
- PROP_TYPE_STRING
28
- } from '../../constants/props'
29
23
  import {
30
24
  SLOT_NAME_EMPTY,
31
25
  SLOT_NAME_TABS_END,
@@ -34,7 +28,6 @@ import {
34
28
  SLOT_NAME_TOOLBAR_START,
35
29
  SLOT_NAME_TITLE
36
30
  } from '../../constants/slots'
37
-
38
31
  import { BvEvent } from '../../utils/bv-event.class'
39
32
  import { attemptFocus, selectAll, requestAF } from '../../utils/dom'
40
33
  import { stopEvent } from '../../utils/events'
@@ -42,7 +35,6 @@ import { identity } from '../../utils/identity'
42
35
  import { isEvent } from '../../utils/inspect'
43
36
  import { looseEqual } from '../../utils/loose-equal'
44
37
  import { mathMax } from '../../utils/math'
45
- import { makeModelMixin } from '../../utils/model'
46
38
  import { toInteger } from '../../utils/number'
47
39
  import { sortKeys } from '../../utils/object'
48
40
  import { observeDom } from '../../utils/observe-dom'
@@ -53,12 +45,8 @@ import { BLink } from '../link/link'
53
45
 
54
46
  // --- Constants ---
55
47
 
56
- const {
57
- mixin: modelMixin,
58
- props: modelProps,
59
- prop: MODEL_PROP_NAME,
60
- event: MODEL_EVENT_NAME
61
- } = makeModelMixin('value', { type: PROP_TYPE_NUMBER })
48
+ const MODEL_PROP_NAME = 'value'
49
+ const MODEL_EVENT_NAME = EVENT_NAME_INPUT
62
50
 
63
51
  // --- Helper methods ---
64
52
 
@@ -77,27 +65,27 @@ const BVTabButton = /*#__PURE__*/ extend({
77
65
  },
78
66
  props: {
79
67
  controls: {
80
- type: PROP_TYPE_STRING,
68
+ type: String,
81
69
  required: false,
82
70
  default: undefined
83
71
  },
84
72
  id: {
85
- type: PROP_TYPE_STRING,
73
+ type: String,
86
74
  required: false,
87
75
  default: undefined
88
76
  },
89
77
  noKeyNav: {
90
- type: PROP_TYPE_BOOLEAN,
78
+ type: Boolean,
91
79
  required: false,
92
80
  default: false
93
81
  },
94
82
  posInSet: {
95
- type: PROP_TYPE_NUMBER,
83
+ type: Number,
96
84
  required: false,
97
85
  default: undefined
98
86
  },
99
87
  setSize: {
100
- type: PROP_TYPE_NUMBER,
88
+ type: Number,
101
89
  required: false,
102
90
  default: undefined
103
91
  },
@@ -107,7 +95,7 @@ const BVTabButton = /*#__PURE__*/ extend({
107
95
  default: undefined
108
96
  },
109
97
  tabIndex: {
110
- type: PROP_TYPE_NUMBER,
98
+ type: Number,
111
99
  required: false,
112
100
  default: undefined
113
101
  }
@@ -216,27 +204,27 @@ const BVTabButton = /*#__PURE__*/ extend({
216
204
  // --- Props ---
217
205
  const navProps = {
218
206
  align: {
219
- type: PROP_TYPE_STRING,
207
+ type: String,
220
208
  required: false,
221
209
  default: undefined
222
210
  },
223
211
  fill: {
224
- type: PROP_TYPE_BOOLEAN,
212
+ type: Boolean,
225
213
  required: false,
226
214
  default: false
227
215
  },
228
216
  justified: {
229
- type: PROP_TYPE_BOOLEAN,
217
+ type: Boolean,
230
218
  required: false,
231
219
  default: false
232
220
  },
233
221
  pills: {
234
- type: PROP_TYPE_BOOLEAN,
222
+ type: Boolean,
235
223
  required: false,
236
224
  default: false
237
225
  },
238
226
  small: {
239
- type: PROP_TYPE_BOOLEAN,
227
+ type: Boolean,
240
228
  required: false,
241
229
  default: false
242
230
  }
@@ -244,65 +232,67 @@ const navProps = {
244
232
 
245
233
  export const props = sortKeys({
246
234
  ...idProps,
247
- ...modelProps,
235
+ [MODEL_PROP_NAME]: {
236
+ type: Number
237
+ },
248
238
  ...navProps,
249
239
  // Only applied to the currently active `li`
250
240
  activeNavItemClass: {
251
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
241
+ type: [Array, Object, String],
252
242
  required: false,
253
243
  default: undefined
254
244
  },
255
245
  // Only applied to the currently active `<b-tab>`
256
246
  // This prop is sniffed by the `<b-tab>` child
257
247
  activeTabClass: {
258
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
248
+ type: [Array, Object, String],
259
249
  required: false,
260
250
  default: undefined
261
251
  },
262
252
  contentClass: {
263
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
253
+ type: [Array, Object, String],
264
254
  required: false,
265
255
  default: undefined
266
256
  },
267
257
  // Synonym for 'bottom'
268
258
  end: {
269
- type: PROP_TYPE_BOOLEAN,
259
+ type: Boolean,
270
260
  required: false,
271
261
  default: false
272
262
  },
273
263
  // This prop is sniffed by the `<b-tab>` child
274
264
  lazy: {
275
- type: PROP_TYPE_BOOLEAN,
265
+ type: Boolean,
276
266
  required: false,
277
267
  default: false
278
268
  },
279
269
  navClass: {
280
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
270
+ type: [Array, Object, String],
281
271
  required: false,
282
272
  default: undefined
283
273
  },
284
274
  navWrapperClass: {
285
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
275
+ type: [Array, Object, String],
286
276
  required: false,
287
277
  default: undefined
288
278
  },
289
279
  noFade: {
290
- type: PROP_TYPE_BOOLEAN,
280
+ type: Boolean,
291
281
  required: false,
292
282
  default: false
293
283
  },
294
284
  noKeyNav: {
295
- type: PROP_TYPE_BOOLEAN,
285
+ type: Boolean,
296
286
  required: false,
297
287
  default: false
298
288
  },
299
289
  noNavStyle: {
300
- type: PROP_TYPE_BOOLEAN,
290
+ type: Boolean,
301
291
  required: false,
302
292
  default: false
303
293
  },
304
294
  tag: {
305
- type: PROP_TYPE_STRING,
295
+ type: String,
306
296
  required: false,
307
297
  default: 'div'
308
298
  }
@@ -313,7 +303,11 @@ export const props = sortKeys({
313
303
  // @vue/component
314
304
  export const BTabs = /*#__PURE__*/ extend({
315
305
  name: NAME_TABS,
316
- mixins: [idMixin, modelMixin, normalizeSlotMixin],
306
+ mixins: [idMixin, normalizeSlotMixin],
307
+ model: {
308
+ prop: MODEL_PROP_NAME,
309
+ event: MODEL_EVENT_NAME
310
+ },
317
311
  provide() {
318
312
  return {
319
313
  getBvTabs: () => this
@@ -13,14 +13,6 @@ import {
13
13
  EVENT_NAME_SHOWN,
14
14
  MODEL_EVENT_NAME_PREFIX
15
15
  } from '../../constants/events'
16
- import {
17
- PROP_TYPE_ARRAY,
18
- PROP_TYPE_BOOLEAN,
19
- PROP_TYPE_FUNCTION,
20
- PROP_TYPE_NUMBER,
21
- PROP_TYPE_OBJECT,
22
- PROP_TYPE_STRING
23
- } from '../../constants/props'
24
16
  import { HTMLElement, SVGElement } from '../../constants/safe-types'
25
17
  import { useParentMixin } from '../../mixins/use-parent'
26
18
  import { getScopeId } from '../../utils/get-scope-id'
@@ -46,12 +38,12 @@ export const props = {
46
38
  // Element: element reference
47
39
  // Object: Vue component
48
40
  boundary: {
49
- type: [HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
41
+ type: [HTMLElement, Object, String],
50
42
  required: false,
51
43
  default: 'scrollParent'
52
44
  },
53
45
  boundaryPadding: {
54
- type: [PROP_TYPE_NUMBER, PROP_TYPE_STRING],
46
+ type: [Number, String],
55
47
  required: false,
56
48
  default: 5
57
49
  },
@@ -59,59 +51,59 @@ export const props = {
59
51
  // HTMLElement: element reference reference
60
52
  // Object: Vue Component
61
53
  container: {
62
- type: [HTMLElement, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
54
+ type: [HTMLElement, Object, String],
63
55
  required: false,
64
56
  default: undefined
65
57
  },
66
58
  customClass: {
67
- type: PROP_TYPE_STRING,
59
+ type: String,
68
60
  required: false,
69
61
  default: 'gl-tooltip'
70
62
  },
71
63
  delay: {
72
- type: [PROP_TYPE_NUMBER, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
64
+ type: [Number, Object, String],
73
65
  required: false,
74
66
  default: () => ({ ...TOOLTIP_DELAY })
75
67
  },
76
68
  [MODEL_PROP_NAME_ENABLED]: {
77
- type: PROP_TYPE_BOOLEAN,
69
+ type: Boolean,
78
70
  required: false,
79
71
  default: false
80
72
  },
81
73
  fallbackPlacement: {
82
- type: [PROP_TYPE_ARRAY, PROP_TYPE_STRING],
74
+ type: [Array, String],
83
75
  required: false,
84
76
  default: 'flip'
85
77
  },
86
78
  // ID to use for tooltip element
87
79
  // If not provided on will automatically be generated
88
80
  id: {
89
- type: PROP_TYPE_STRING,
81
+ type: String,
90
82
  required: false,
91
83
  default: undefined
92
84
  },
93
85
  noFade: {
94
- type: PROP_TYPE_BOOLEAN,
86
+ type: Boolean,
95
87
  required: false,
96
88
  default: false
97
89
  },
98
90
  noninteractive: {
99
- type: PROP_TYPE_BOOLEAN,
91
+ type: Boolean,
100
92
  required: false,
101
93
  default: false
102
94
  },
103
95
  offset: {
104
- type: [PROP_TYPE_NUMBER, PROP_TYPE_STRING],
96
+ type: [Number, String],
105
97
  required: false,
106
98
  default: 0
107
99
  },
108
100
  placement: {
109
- type: PROP_TYPE_STRING,
101
+ type: String,
110
102
  required: false,
111
103
  default: 'top'
112
104
  },
113
105
  [MODEL_PROP_NAME_SHOW]: {
114
- type: PROP_TYPE_BOOLEAN,
106
+ type: Boolean,
115
107
  required: false,
116
108
  default: false
117
109
  },
@@ -119,21 +111,21 @@ export const props = {
119
111
  // Or function that returns one of the above
120
112
  // Required
121
113
  target: {
122
- type: [HTMLElement, SVGElement, PROP_TYPE_FUNCTION, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
114
+ type: [HTMLElement, SVGElement, Function, Object, String],
123
115
  required: true
124
116
  },
125
117
  title: {
126
- type: PROP_TYPE_STRING,
118
+ type: String,
127
119
  required: false,
128
120
  default: undefined
129
121
  },
130
122
  triggers: {
131
- type: [PROP_TYPE_ARRAY, PROP_TYPE_STRING],
123
+ type: [Array, String],
132
124
  required: false,
133
125
  default: 'hover focus'
134
126
  },
135
127
  variant: {
136
- type: PROP_TYPE_STRING,
128
+ type: String,
137
129
  required: false,
138
130
  default: undefined
139
131
  }
@@ -6,7 +6,6 @@
6
6
 
7
7
  import { extend, mergeData } from '../../vue'
8
8
  import { NAME_TRANSITION } from '../../constants/components'
9
- import { PROP_TYPE_BOOLEAN, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props'
10
9
  import { isPlainObject } from '../../utils/inspect'
11
10
 
12
11
  // --- Constants ---
@@ -32,26 +31,26 @@ const FADE_PROPS = {
32
31
  export 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
  }
@@ -1,12 +1,6 @@
1
1
  import { isVue3, extend } from '../../vue'
2
2
  import { NAME_TRANSPORTER, NAME_TRANSPORTER_TARGET } from '../../constants/components'
3
3
  import { IS_BROWSER } from '../../constants/env'
4
- import {
5
- PROP_TYPE_ARRAY,
6
- PROP_TYPE_BOOLEAN,
7
- PROP_TYPE_FUNCTION,
8
- PROP_TYPE_STRING
9
- } from '../../constants/props'
10
4
  import { HTMLElement } from '../../constants/safe-types'
11
5
  import { concat } from '../../utils/array'
12
6
  import { removeNode, select } from '../../utils/dom'
@@ -41,7 +35,7 @@ const BVTransporterTarget = /*#__PURE__*/ extend({
41
35
  // Even though we only support a single root element,
42
36
  // VNodes are always passed as an array
43
37
  nodes: {
44
- type: [PROP_TYPE_ARRAY, PROP_TYPE_FUNCTION],
38
+ type: [Array, Function],
45
39
  required: false,
46
40
  default: undefined
47
41
  }
@@ -75,18 +69,18 @@ export const props = {
75
69
  // HTMLElement: Element reference
76
70
  // Mainly needed for tooltips/popovers inside modals
77
71
  container: {
78
- type: [HTMLElement, PROP_TYPE_STRING],
72
+ type: [HTMLElement, String],
79
73
  required: false,
80
74
  default: 'body'
81
75
  },
82
76
  disabled: {
83
- type: PROP_TYPE_BOOLEAN,
77
+ type: Boolean,
84
78
  required: false,
85
79
  default: false
86
80
  },
87
81
  // This should be set to match the root element type
88
82
  tag: {
89
- type: PROP_TYPE_STRING,
83
+ type: String,
90
84
  required: false,
91
85
  default: 'div'
92
86
  }
@@ -18,12 +18,6 @@ import {
18
18
  PLACEMENT_RIGHT_START,
19
19
  PLACEMENT_LEFT_START
20
20
  } from '../constants/popper'
21
- import {
22
- PROP_TYPE_BOOLEAN,
23
- PROP_TYPE_NUMBER,
24
- PROP_TYPE_OBJECT,
25
- PROP_TYPE_STRING
26
- } from '../constants/props'
27
21
  import { HTMLElement } from '../constants/safe-types'
28
22
  import { BvEvent } from '../utils/bv-event.class'
29
23
  import { attemptFocus, closest, contains, isVisible, requestAF, selectAll } from '../utils/dom'
@@ -62,54 +56,54 @@ export const props = sortKeys({
62
56
  // String: `scrollParent`, `window` or `viewport`
63
57
  // HTMLElement: HTML Element reference
64
58
  boundary: {
65
- type: [HTMLElement, PROP_TYPE_STRING],
59
+ type: [HTMLElement, String],
66
60
  required: false,
67
61
  default: 'scrollParent'
68
62
  },
69
63
  disabled: {
70
- type: PROP_TYPE_BOOLEAN,
64
+ type: Boolean,
71
65
  required: false,
72
66
  default: false
73
67
  },
74
68
  // Place left if possible
75
69
  dropleft: {
76
- type: PROP_TYPE_BOOLEAN,
70
+ type: Boolean,
77
71
  required: false,
78
72
  default: false
79
73
  },
80
74
  // Place right if possible
81
75
  dropright: {
82
- type: PROP_TYPE_BOOLEAN,
76
+ type: Boolean,
83
77
  required: false,
84
78
  default: false
85
79
  },
86
80
  // Place on top if possible
87
81
  dropup: {
88
- type: PROP_TYPE_BOOLEAN,
82
+ type: Boolean,
89
83
  required: false,
90
84
  default: false
91
85
  },
92
86
  // Disable auto-flipping of menu from bottom <=> top
93
87
  noFlip: {
94
- type: PROP_TYPE_BOOLEAN,
88
+ type: Boolean,
95
89
  required: false,
96
90
  default: false
97
91
  },
98
92
  // Number of pixels or a CSS unit value to offset menu
99
93
  // (i.e. `1px`, `1rem`, etc.)
100
94
  offset: {
101
- type: [PROP_TYPE_NUMBER, PROP_TYPE_STRING],
95
+ type: [Number, String],
102
96
  required: false,
103
97
  default: 0
104
98
  },
105
99
  popperOpts: {
106
- type: PROP_TYPE_OBJECT,
100
+ type: Object,
107
101
  required: false,
108
102
  default: () => ({})
109
103
  },
110
104
  // Right align menu (default is left align)
111
105
  right: {
112
- type: PROP_TYPE_BOOLEAN,
106
+ type: Boolean,
113
107
  required: false,
114
108
  default: false
115
109
  }
@@ -1,5 +1,4 @@
1
1
  import { extend } from '../vue'
2
- import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../constants/props'
3
2
  import { attemptFocus, isVisible, matches, requestAF, select } from '../utils/dom'
4
3
 
5
4
  // --- Constants ---
@@ -10,32 +9,32 @@ const SELECTOR = 'input, textarea, select'
10
9
 
11
10
  export const props = {
12
11
  autofocus: {
13
- type: PROP_TYPE_BOOLEAN,
12
+ type: Boolean,
14
13
  required: false,
15
14
  default: false
16
15
  },
17
16
  disabled: {
18
- type: PROP_TYPE_BOOLEAN,
17
+ type: Boolean,
19
18
  required: false,
20
19
  default: false
21
20
  },
22
21
  form: {
23
- type: PROP_TYPE_STRING,
22
+ type: String,
24
23
  required: false,
25
24
  default: undefined
26
25
  },
27
26
  id: {
28
- type: PROP_TYPE_STRING,
27
+ type: String,
29
28
  required: false,
30
29
  default: undefined
31
30
  },
32
31
  name: {
33
- type: PROP_TYPE_STRING,
32
+ type: String,
34
33
  required: false,
35
34
  default: undefined
36
35
  },
37
36
  required: {
38
- type: PROP_TYPE_BOOLEAN,
37
+ type: Boolean,
39
38
  required: false,
40
39
  default: false
41
40
  }
@@ -1,11 +1,10 @@
1
1
  import { extend } from '../vue'
2
- import { PROP_TYPE_BOOLEAN } from '../constants/props'
3
2
 
4
3
  // --- Props ---
5
4
 
6
5
  export const props = {
7
6
  plain: {
8
- type: PROP_TYPE_BOOLEAN,
7
+ type: Boolean,
9
8
  required: false,
10
9
  default: false
11
10
  }
@@ -1,5 +1,4 @@
1
1
  import { extend } from '../vue'
2
- import { PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../constants/props'
3
2
  import { get } from '../utils/get'
4
3
  import { stripTags } from '../utils/html'
5
4
  import { isArray, isPlainObject, isUndefined } from '../utils/inspect'
@@ -15,27 +14,27 @@ const OPTIONS_OBJECT_DEPRECATED_MSG =
15
14
 
16
15
  export const props = {
17
16
  disabledField: {
18
- type: PROP_TYPE_STRING,
17
+ type: String,
19
18
  required: false,
20
19
  default: 'disabled'
21
20
  },
22
21
  htmlField: {
23
- type: PROP_TYPE_STRING,
22
+ type: String,
24
23
  required: false,
25
24
  default: 'html'
26
25
  },
27
26
  options: {
28
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT],
27
+ type: [Array, Object],
29
28
  required: false,
30
29
  default: () => []
31
30
  },
32
31
  textField: {
33
- type: PROP_TYPE_STRING,
32
+ type: String,
34
33
  required: false,
35
34
  default: 'text'
36
35
  },
37
36
  valueField: {
38
- type: PROP_TYPE_STRING,
37
+ type: String,
39
38
  required: false,
40
39
  default: 'value'
41
40
  }
@@ -1,11 +1,10 @@
1
1
  import { extend } from '../vue'
2
- import { PROP_TYPE_STRING } from '../constants/props'
3
2
 
4
3
  // --- Props ---
5
4
 
6
5
  export const props = {
7
6
  size: {
8
- type: PROP_TYPE_STRING,
7
+ type: String,
9
8
  required: false,
10
9
  default: undefined
11
10
  }