@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
@@ -384,3 +384,12 @@ export const loadingIconVariants = {
384
384
  spinner: 'spinner',
385
385
  dots: 'dots',
386
386
  };
387
+
388
+ export const themes = [
389
+ { class: null, value: 'default', title: 'Default' },
390
+ { class: 'tint-neutral-indigo', value: 'indigo', title: 'Indigo' },
391
+ { class: 'tint-neutral-blue', value: 'blue', title: 'Blue' },
392
+ { class: 'tint-neutral-green', value: 'green', title: 'Green' },
393
+ { class: 'tint-neutral-red', value: 'red', title: 'Red' },
394
+ { class: 'tint-neutral-gray', value: 'gray', title: 'Gray' },
395
+ ];
@@ -1,6 +1,5 @@
1
1
  import { extend, mergeData } from '../../vue'
2
2
  import { NAME_BUTTON_CLOSE } from '../../constants/components'
3
- import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props'
4
3
  import { SLOT_NAME_DEFAULT } from '../../constants/slots'
5
4
  import { stopEvent } from '../../utils/events'
6
5
  import { isEvent } from '../../utils/inspect'
@@ -10,22 +9,22 @@ import { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'
10
9
 
11
10
  export const props = {
12
11
  ariaLabel: {
13
- type: PROP_TYPE_STRING,
12
+ type: String,
14
13
  required: false,
15
14
  default: 'Close'
16
15
  },
17
16
  content: {
18
- type: PROP_TYPE_STRING,
17
+ type: String,
19
18
  required: false,
20
19
  default: '×'
21
20
  },
22
21
  disabled: {
23
- type: PROP_TYPE_BOOLEAN,
22
+ type: Boolean,
24
23
  required: false,
25
24
  default: false
26
25
  },
27
26
  textVariant: {
28
- type: PROP_TYPE_STRING,
27
+ type: String,
29
28
  required: false,
30
29
  default: undefined
31
30
  }
@@ -1,7 +1,6 @@
1
1
  import { extend, mergeData } from '../../vue'
2
2
  import { NAME_BUTTON } from '../../constants/components'
3
3
  import { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes'
4
- import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props'
5
4
  import { concat } from '../../utils/array'
6
5
  import { addClass, isTag, removeClass } from '../../utils/dom'
7
6
  import { stopEvent } from '../../utils/events'
@@ -20,39 +19,39 @@ delete linkProps.to.default
20
19
  export const props = sortKeys({
21
20
  ...linkProps,
22
21
  block: {
23
- type: PROP_TYPE_BOOLEAN,
22
+ type: Boolean,
24
23
  required: false,
25
24
  default: false
26
25
  },
27
26
  disabled: {
28
- type: PROP_TYPE_BOOLEAN,
27
+ type: Boolean,
29
28
  required: false,
30
29
  default: false
31
30
  },
32
31
  // Tri-state: `true`, `false` or `null`
33
32
  // => On, off, not a toggle
34
33
  pressed: {
35
- type: PROP_TYPE_BOOLEAN,
34
+ type: Boolean,
36
35
  required: false,
37
36
  default: null
38
37
  },
39
38
  size: {
40
- type: PROP_TYPE_STRING,
39
+ type: String,
41
40
  required: false,
42
41
  default: undefined
43
42
  },
44
43
  tag: {
45
- type: PROP_TYPE_STRING,
44
+ type: String,
46
45
  required: false,
47
46
  default: 'button'
48
47
  },
49
48
  type: {
50
- type: PROP_TYPE_STRING,
49
+ type: String,
51
50
  required: false,
52
51
  default: 'button'
53
52
  },
54
53
  variant: {
55
- type: PROP_TYPE_STRING,
54
+ type: String,
56
55
  required: false,
57
56
  default: 'secondary'
58
57
  }
@@ -1,13 +1,12 @@
1
1
  import { extend, mergeData } from '../../vue'
2
2
  import { NAME_DROPDOWN_DIVIDER } from '../../constants/components'
3
- import { PROP_TYPE_STRING } from '../../constants/props'
4
3
  import { omit } from '../../utils/object'
5
4
 
6
5
  // --- Props ---
7
6
 
8
7
  export const props = {
9
8
  tag: {
10
- type: PROP_TYPE_STRING,
9
+ type: String,
11
10
  required: false,
12
11
  default: 'hr'
13
12
  }
@@ -1,11 +1,5 @@
1
1
  import { extend, mergeData } from '../../vue'
2
2
  import { NAME_DROPDOWN_FORM } from '../../constants/components'
3
- import {
4
- PROP_TYPE_ARRAY,
5
- PROP_TYPE_BOOLEAN,
6
- PROP_TYPE_OBJECT,
7
- PROP_TYPE_STRING
8
- } from '../../constants/props'
9
3
  import { omit, sortKeys } from '../../utils/object'
10
4
  import { BForm, props as formControlProps } from '../form/form'
11
5
 
@@ -14,12 +8,12 @@ import { BForm, props as formControlProps } from '../form/form'
14
8
  export const props = sortKeys({
15
9
  ...formControlProps,
16
10
  disabled: {
17
- type: PROP_TYPE_BOOLEAN,
11
+ type: Boolean,
18
12
  required: false,
19
13
  default: false
20
14
  },
21
15
  formClass: {
22
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
16
+ type: [Array, Object, String],
23
17
  required: false,
24
18
  default: undefined
25
19
  }
@@ -1,6 +1,5 @@
1
1
  import { extend, mergeData } from '../../vue'
2
2
  import { NAME_DROPDOWN_GROUP } from '../../constants/components'
3
- import { PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props'
4
3
  import { SLOT_NAME_DEFAULT, SLOT_NAME_HEADER } from '../../constants/slots'
5
4
  import { isTag } from '../../utils/dom'
6
5
  import { identity } from '../../utils/identity'
@@ -11,32 +10,32 @@ import { omit } from '../../utils/object'
11
10
 
12
11
  export const props = {
13
12
  ariaDescribedby: {
14
- type: PROP_TYPE_STRING,
13
+ type: String,
15
14
  required: false,
16
15
  default: undefined
17
16
  },
18
17
  header: {
19
- type: PROP_TYPE_STRING,
18
+ type: String,
20
19
  required: false,
21
20
  default: undefined
22
21
  },
23
22
  headerClasses: {
24
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
23
+ type: [Array, Object, String],
25
24
  required: false,
26
25
  default: undefined
27
26
  },
28
27
  headerTag: {
29
- type: PROP_TYPE_STRING,
28
+ type: String,
30
29
  required: false,
31
30
  default: 'header'
32
31
  },
33
32
  headerVariant: {
34
- type: PROP_TYPE_STRING,
33
+ type: String,
35
34
  required: false,
36
35
  default: undefined
37
36
  },
38
37
  id: {
39
- type: PROP_TYPE_STRING,
38
+ type: String,
40
39
  required: false,
41
40
  default: undefined
42
41
  }
@@ -1,6 +1,5 @@
1
1
  import { extend, mergeData } from '../../vue'
2
2
  import { NAME_DROPDOWN_HEADER } from '../../constants/components'
3
- import { PROP_TYPE_STRING } from '../../constants/props'
4
3
  import { isTag } from '../../utils/dom'
5
4
  import { omit } from '../../utils/object'
6
5
 
@@ -8,17 +7,17 @@ import { omit } from '../../utils/object'
8
7
 
9
8
  export const props = {
10
9
  id: {
11
- type: PROP_TYPE_STRING,
10
+ type: String,
12
11
  required: false,
13
12
  default: undefined
14
13
  },
15
14
  tag: {
16
- type: PROP_TYPE_STRING,
15
+ type: String,
17
16
  required: false,
18
17
  default: 'header'
19
18
  },
20
19
  variant: {
21
- type: PROP_TYPE_STRING,
20
+ type: String,
22
21
  required: false,
23
22
  default: undefined
24
23
  }
@@ -1,12 +1,6 @@
1
1
  import { extend } from '../../vue'
2
2
  import { NAME_DROPDOWN_ITEM_BUTTON } from '../../constants/components'
3
3
  import { EVENT_NAME_CLICK } 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 { attrsMixin } from '../../mixins/attrs'
11
5
  import { normalizeSlotMixin } from '../../mixins/normalize-slot'
12
6
 
@@ -14,32 +8,32 @@ import { normalizeSlotMixin } from '../../mixins/normalize-slot'
14
8
 
15
9
  export const props = {
16
10
  active: {
17
- type: PROP_TYPE_BOOLEAN,
11
+ type: Boolean,
18
12
  required: false,
19
13
  default: false
20
14
  },
21
15
  activeClass: {
22
- type: PROP_TYPE_STRING,
16
+ type: String,
23
17
  required: false,
24
18
  default: 'active'
25
19
  },
26
20
  buttonClass: {
27
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
21
+ type: [Array, Object, String],
28
22
  required: false,
29
23
  default: undefined
30
24
  },
31
25
  disabled: {
32
- type: PROP_TYPE_BOOLEAN,
26
+ type: Boolean,
33
27
  required: false,
34
28
  default: false
35
29
  },
36
30
  variant: {
37
- type: PROP_TYPE_STRING,
31
+ type: String,
38
32
  required: false,
39
33
  default: undefined
40
34
  },
41
35
  role: {
42
- type: PROP_TYPE_STRING,
36
+ type: String,
43
37
  required: false,
44
38
  default: 'menuitem'
45
39
  }
@@ -1,7 +1,6 @@
1
1
  import { extend } from '../../vue'
2
2
  import { NAME_DROPDOWN_ITEM } from '../../constants/components'
3
3
  import { EVENT_NAME_CLICK } from '../../constants/events'
4
- import { PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props'
5
4
  import { requestAF } from '../../utils/dom'
6
5
  import { omit, sortKeys } from '../../utils/object'
7
6
  import { pluckProps } from '../../utils/props'
@@ -16,12 +15,12 @@ const linkProps = omit(BLinkProps, ['event', 'routerTag'])
16
15
  export const props = sortKeys({
17
16
  ...linkProps,
18
17
  linkClass: {
19
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
18
+ type: [Array, Object, String],
20
19
  required: false,
21
20
  default: undefined
22
21
  },
23
22
  variant: {
24
- type: PROP_TYPE_STRING,
23
+ type: String,
25
24
  required: false,
26
25
  default: undefined
27
26
  }
@@ -1,23 +1,22 @@
1
1
  import { extend, mergeData } from '../../vue'
2
2
  import { NAME_DROPDOWN_TEXT } from '../../constants/components'
3
- import { PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props'
4
3
  import { omit } from '../../utils/object'
5
4
 
6
5
  // --- Props ---
7
6
 
8
7
  export const props = {
9
8
  tag: {
10
- type: PROP_TYPE_STRING,
9
+ type: String,
11
10
  required: false,
12
11
  default: 'p'
13
12
  },
14
13
  textClass: {
15
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
14
+ type: [Array, Object, String],
16
15
  required: false,
17
16
  default: undefined
18
17
  },
19
18
  variant: {
20
- type: PROP_TYPE_STRING,
19
+ type: String,
21
20
  required: false,
22
21
  default: undefined
23
22
  }
@@ -1,13 +1,6 @@
1
1
  import { extend } from '../../vue'
2
2
  import { NAME_DROPDOWN } from '../../constants/components'
3
- import {
4
- PROP_TYPE_ARRAY,
5
- PROP_TYPE_BOOLEAN,
6
- PROP_TYPE_OBJECT,
7
- PROP_TYPE_STRING
8
- } from '../../constants/props'
9
3
  import { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots'
10
-
11
4
  import { htmlOrText } from '../../utils/html'
12
5
  import { toString } from '../../utils/string'
13
6
  import { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown'
@@ -22,48 +15,48 @@ export const props = sortKeys({
22
15
  ...idProps,
23
16
  ...dropdownProps,
24
17
  block: {
25
- type: PROP_TYPE_BOOLEAN,
18
+ type: Boolean,
26
19
  required: false,
27
20
  default: false
28
21
  },
29
22
  html: {
30
- type: PROP_TYPE_STRING,
23
+ type: String,
31
24
  required: false,
32
25
  default: undefined
33
26
  },
34
27
  // If `true`, only render menu contents when open
35
28
  lazy: {
36
- type: PROP_TYPE_BOOLEAN,
29
+ type: Boolean,
37
30
  required: false,
38
31
  default: false
39
32
  },
40
33
  menuClass: {
41
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
34
+ type: [Array, Object, String],
42
35
  required: false,
43
36
  default: undefined
44
37
  },
45
38
  noCaret: {
46
- type: PROP_TYPE_BOOLEAN,
39
+ type: Boolean,
47
40
  required: false,
48
41
  default: false
49
42
  },
50
43
  role: {
51
- type: PROP_TYPE_STRING,
44
+ type: String,
52
45
  required: false,
53
46
  default: 'menu'
54
47
  },
55
48
  size: {
56
- type: PROP_TYPE_STRING,
49
+ type: String,
57
50
  required: false,
58
51
  default: undefined
59
52
  },
60
53
  split: {
61
- type: PROP_TYPE_BOOLEAN,
54
+ type: Boolean,
62
55
  required: false,
63
56
  default: false
64
57
  },
65
58
  splitButtonType: {
66
- type: PROP_TYPE_STRING,
59
+ type: String,
67
60
  required: false,
68
61
  default: 'button',
69
62
  validator: value => {
@@ -71,53 +64,53 @@ export const props = sortKeys({
71
64
  }
72
65
  },
73
66
  splitClass: {
74
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
67
+ type: [Array, Object, String],
75
68
  required: false,
76
69
  default: undefined
77
70
  },
78
71
  splitHref: {
79
- type: PROP_TYPE_STRING,
72
+ type: String,
80
73
  required: false,
81
74
  default: undefined
82
75
  },
83
76
  splitTo: {
84
- type: [PROP_TYPE_OBJECT, PROP_TYPE_STRING],
77
+ type: [Object, String],
85
78
  required: false,
86
79
  default: undefined
87
80
  },
88
81
  splitVariant: {
89
- type: PROP_TYPE_STRING,
82
+ type: String,
90
83
  required: false,
91
84
  default: undefined
92
85
  },
93
86
  text: {
94
- type: PROP_TYPE_STRING,
87
+ type: String,
95
88
  required: false,
96
89
  default: undefined
97
90
  },
98
91
  toggleAttrs: {
99
- type: PROP_TYPE_OBJECT,
92
+ type: Object,
100
93
  required: false,
101
94
  default: () => ({})
102
95
  },
103
96
  toggleClass: {
104
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
97
+ type: [Array, Object, String],
105
98
  required: false,
106
99
  default: undefined
107
100
  },
108
101
  toggleTag: {
109
- type: PROP_TYPE_STRING,
102
+ type: String,
110
103
  required: false,
111
104
  default: 'button'
112
105
  },
113
106
  // TODO: This really should be `toggleLabel`
114
107
  toggleText: {
115
- type: PROP_TYPE_STRING,
108
+ type: String,
116
109
  required: false,
117
110
  default: 'Toggle dropdown'
118
111
  },
119
112
  variant: {
120
- type: PROP_TYPE_STRING,
113
+ type: String,
121
114
  required: false,
122
115
  default: 'secondary'
123
116
  }
@@ -1,27 +1,25 @@
1
1
  import { extend, mergeData } from '../../vue'
2
2
  import { NAME_FORM_TEXT } from '../../constants/components'
3
- import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props'
4
-
5
3
  // --- Props ---
6
4
 
7
5
  export const props = {
8
6
  id: {
9
- type: PROP_TYPE_STRING,
7
+ type: String,
10
8
  required: false,
11
9
  default: undefined
12
10
  },
13
11
  inline: {
14
- type: PROP_TYPE_BOOLEAN,
12
+ type: Boolean,
15
13
  required: false,
16
14
  default: false
17
15
  },
18
16
  tag: {
19
- type: PROP_TYPE_STRING,
17
+ type: String,
20
18
  required: false,
21
19
  default: 'small'
22
20
  },
23
21
  textVariant: {
24
- type: PROP_TYPE_STRING,
22
+ type: String,
25
23
  required: false,
26
24
  default: 'muted'
27
25
  }
@@ -1,27 +1,25 @@
1
1
  import { extend, mergeData } from '../../vue'
2
2
  import { NAME_FORM } from '../../constants/components'
3
- import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props'
4
-
5
3
  // --- Props ---
6
4
 
7
5
  export const props = {
8
6
  id: {
9
- type: PROP_TYPE_STRING,
7
+ type: String,
10
8
  required: false,
11
9
  default: undefined
12
10
  },
13
11
  inline: {
14
- type: PROP_TYPE_BOOLEAN,
12
+ type: Boolean,
15
13
  required: false,
16
14
  default: false
17
15
  },
18
16
  novalidate: {
19
- type: PROP_TYPE_BOOLEAN,
17
+ type: Boolean,
20
18
  required: false,
21
19
  default: false
22
20
  },
23
21
  validated: {
24
- type: PROP_TYPE_BOOLEAN,
22
+ type: Boolean,
25
23
  required: false,
26
24
  default: false
27
25
  }
@@ -1,11 +1,6 @@
1
1
  import { NAME_FORM_GROUP } from '../../constants/components'
2
2
  import { IS_BROWSER } from '../../constants/env'
3
- import {
4
- PROP_TYPE_ARRAY_OBJECT_STRING,
5
- PROP_TYPE_BOOLEAN,
6
- PROP_TYPE_BOOLEAN_NUMBER_STRING,
7
- PROP_TYPE_STRING
8
- } from '../../constants/props'
3
+ import { PROP_TYPE_BOOLEAN_NUMBER_STRING, PROP_TYPE_STRING } from '../../constants/props'
9
4
  import { RX_SPACE_SPLIT } from '../../constants/regex'
10
5
  import {
11
6
  SLOT_NAME_DEFAULT,
@@ -66,19 +61,71 @@ export const generateProps = () =>
66
61
  props[suffixPropName(breakpoint, 'labelCols')] = makeProp(PROP_TYPE_BOOLEAN_NUMBER_STRING)
67
62
  return props
68
63
  }, create(null)),
69
- description: makeProp(PROP_TYPE_STRING),
70
- disabled: makeProp(PROP_TYPE_BOOLEAN, false),
71
- feedbackAriaLive: makeProp(PROP_TYPE_STRING, 'assertive'),
72
- invalidFeedback: makeProp(PROP_TYPE_STRING),
73
- label: makeProp(PROP_TYPE_STRING),
74
- labelClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
75
- labelFor: makeProp(PROP_TYPE_STRING),
76
- labelId: makeProp(PROP_TYPE_STRING),
77
- labelSize: makeProp(PROP_TYPE_STRING),
78
- labelSrOnly: makeProp(PROP_TYPE_BOOLEAN, false),
79
- tooltip: makeProp(PROP_TYPE_BOOLEAN, false),
80
- validFeedback: makeProp(PROP_TYPE_STRING),
81
- validated: makeProp(PROP_TYPE_BOOLEAN, false)
64
+ description: {
65
+ type: String,
66
+ required: false,
67
+ default: undefined
68
+ },
69
+ disabled: {
70
+ type: Boolean,
71
+ required: false,
72
+ default: false
73
+ },
74
+ feedbackAriaLive: {
75
+ type: String,
76
+ required: false,
77
+ default: 'assertive'
78
+ },
79
+ invalidFeedback: {
80
+ type: String,
81
+ required: false,
82
+ default: undefined
83
+ },
84
+ label: {
85
+ type: String,
86
+ required: false,
87
+ default: undefined
88
+ },
89
+ labelClass: {
90
+ type: [Array, Object, String],
91
+ required: false,
92
+ default: undefined
93
+ },
94
+ labelFor: {
95
+ type: String,
96
+ required: false,
97
+ default: undefined
98
+ },
99
+ labelId: {
100
+ type: String,
101
+ required: false,
102
+ default: undefined
103
+ },
104
+ labelSize: {
105
+ type: String,
106
+ required: false,
107
+ default: undefined
108
+ },
109
+ labelSrOnly: {
110
+ type: Boolean,
111
+ required: false,
112
+ default: false
113
+ },
114
+ tooltip: {
115
+ type: Boolean,
116
+ required: false,
117
+ default: false
118
+ },
119
+ validFeedback: {
120
+ type: String,
121
+ required: false,
122
+ default: undefined
123
+ },
124
+ validated: {
125
+ type: Boolean,
126
+ required: false,
127
+ default: false
128
+ }
82
129
  })
83
130
 
84
131
  // --- Main component ---
@@ -1,6 +1,5 @@
1
1
  import { extend } from '../../vue'
2
2
  import { NAME_FORM_SELECT_OPTION_GROUP } from '../../constants/components'
3
- import { PROP_TYPE_STRING } from '../../constants/props'
4
3
  import { SLOT_NAME_FIRST } from '../../constants/slots'
5
4
  import { htmlOrText } from '../../utils/html'
6
5
  import { sortKeys } from '../../utils/object'
@@ -13,7 +12,7 @@ import { BFormSelectOption } from './form-select-option'
13
12
  export const props = sortKeys({
14
13
  ...formOptionsProps,
15
14
  label: {
16
- type: PROP_TYPE_STRING,
15
+ type: String,
17
16
  required: true
18
17
  }
19
18
  })
@@ -1,17 +1,14 @@
1
1
  import { extend, mergeData } from '../../vue'
2
2
  import { NAME_FORM_SELECT_OPTION } from '../../constants/components'
3
- import { PROP_TYPE_ANY, PROP_TYPE_BOOLEAN } from '../../constants/props'
4
-
5
3
  // --- Props ---
6
4
 
7
5
  export const props = {
8
6
  disabled: {
9
- type: PROP_TYPE_BOOLEAN,
7
+ type: Boolean,
10
8
  required: false,
11
9
  default: false
12
10
  },
13
11
  value: {
14
- type: PROP_TYPE_ANY,
15
12
  required: true
16
13
  }
17
14
  }