@gitlab/ui 132.1.0 → 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 (232) 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 +37 -21
  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 +25 -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 +9 -7
  149. package/src/scss/gitlab_ui.scss +3 -0
  150. package/src/scss/storybook.scss +3 -0
  151. package/src/scss/themes.scss +84 -0
  152. package/src/tokens/build/css/tokens.css +142 -142
  153. package/src/tokens/build/css/tokens.dark.css +138 -138
  154. package/src/tokens/build/docs/tokens-tailwind-docs.dark.json +580 -580
  155. package/src/tokens/build/docs/tokens-tailwind-docs.json +495 -495
  156. package/src/tokens/build/figma/constants.dark.json +799 -799
  157. package/src/tokens/build/figma/constants.json +799 -799
  158. package/src/tokens/build/js/tokens.dark.js +95 -95
  159. package/src/tokens/build/js/tokens.js +74 -74
  160. package/src/tokens/build/json/tokens.dark.json +1668 -1668
  161. package/src/tokens/build/json/tokens.json +1647 -1647
  162. package/src/tokens/build/scss/_tokens.dark.scss +138 -138
  163. package/src/tokens/build/scss/_tokens.scss +142 -142
  164. package/src/tokens/build/scss/_tokens_custom_properties.scss +73 -73
  165. package/src/tokens/constant/color.blue.tokens.json +182 -0
  166. package/src/tokens/constant/color.brand.tokens.json +252 -0
  167. package/src/tokens/constant/color.data.tokens.json +894 -0
  168. package/src/tokens/constant/color.green.tokens.json +182 -0
  169. package/src/tokens/constant/color.neutral.tokens.json +230 -0
  170. package/src/tokens/constant/color.orange.tokens.json +182 -0
  171. package/src/tokens/constant/color.purple.tokens.json +182 -0
  172. package/src/tokens/constant/color.red.tokens.json +182 -0
  173. package/src/tokens/constant/color.theme.tokens.json +1168 -0
  174. package/src/tokens/deprecated/deprecated.color.tokens.json +134 -1340
  175. package/src/utils/constants.js +9 -0
  176. package/src/vendor/bootstrap-vue/src/components/button/button-close.js +4 -5
  177. package/src/vendor/bootstrap-vue/src/components/button/button.js +7 -8
  178. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +1 -2
  179. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +2 -8
  180. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +6 -7
  181. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +3 -4
  182. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +6 -12
  183. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +2 -3
  184. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +3 -4
  185. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +19 -26
  186. package/src/vendor/bootstrap-vue/src/components/form/form-text.js +4 -6
  187. package/src/vendor/bootstrap-vue/src/components/form/form.js +4 -6
  188. package/src/vendor/bootstrap-vue/src/components/form-group/form-group.js +14 -20
  189. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +1 -2
  190. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +1 -4
  191. package/src/vendor/bootstrap-vue/src/components/form-select/form-select.js +13 -14
  192. package/src/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +5 -6
  193. package/src/vendor/bootstrap-vue/src/components/modal/modal.js +53 -62
  194. package/src/vendor/bootstrap-vue/src/components/popover/popover.js +4 -10
  195. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-busy.js +1 -2
  196. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js +2 -3
  197. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-empty.js +5 -6
  198. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-filtering.js +5 -13
  199. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js +12 -21
  200. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-pagination.js +2 -3
  201. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-provider.js +5 -11
  202. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-selectable.js +4 -5
  203. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-sorting.js +14 -21
  204. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js +1 -2
  205. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js +14 -20
  206. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js +3 -9
  207. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js +1 -2
  208. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js +5 -11
  209. package/src/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js +4 -5
  210. package/src/vendor/bootstrap-vue/src/components/table/tbody.js +2 -3
  211. package/src/vendor/bootstrap-vue/src/components/table/td.js +5 -6
  212. package/src/vendor/bootstrap-vue/src/components/table/tfoot.js +1 -2
  213. package/src/vendor/bootstrap-vue/src/components/table/thead.js +1 -2
  214. package/src/vendor/bootstrap-vue/src/components/table/tr.js +1 -2
  215. package/src/vendor/bootstrap-vue/src/components/tabs/tab.js +10 -16
  216. package/src/vendor/bootstrap-vue/src/components/tabs/tabs.js +33 -39
  217. package/src/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +17 -25
  218. package/src/vendor/bootstrap-vue/src/components/transition/bv-transition.js +4 -5
  219. package/src/vendor/bootstrap-vue/src/components/transporter/transporter.js +4 -10
  220. package/src/vendor/bootstrap-vue/src/mixins/dropdown.js +9 -15
  221. package/src/vendor/bootstrap-vue/src/mixins/form-control.js +6 -7
  222. package/src/vendor/bootstrap-vue/src/mixins/form-custom.js +1 -2
  223. package/src/vendor/bootstrap-vue/src/mixins/form-options.js +5 -6
  224. package/src/vendor/bootstrap-vue/src/mixins/form-size.js +1 -2
  225. package/src/vendor/bootstrap-vue/src/mixins/form-state.js +1 -2
  226. package/src/vendor/bootstrap-vue/src/mixins/form-text.js +21 -33
  227. package/src/vendor/bootstrap-vue/src/mixins/id.js +1 -2
  228. package/dist/vendor/bootstrap-vue/src/mixins/model.js +0 -10
  229. package/dist/vendor/bootstrap-vue/src/utils/model.js +0 -33
  230. package/src/tokens/constant/color.tokens.json +0 -3422
  231. package/src/vendor/bootstrap-vue/src/mixins/model.js +0 -5
  232. package/src/vendor/bootstrap-vue/src/utils/model.js +0 -29
@@ -2,6 +2,55 @@ import { isVisible } from '../vendor/bootstrap-vue/src/utils/dom';
2
2
  export { isVisible } from '../vendor/bootstrap-vue/src/utils/dom';
3
3
  import { COMMA, labelColorOptions, CONTRAST_LEVELS, focusableTags } from './constants';
4
4
 
5
+ function _arrayLikeToArray(r, a) {
6
+ (null == a || a > r.length) && (a = r.length);
7
+ for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
8
+ return n;
9
+ }
10
+ function _arrayWithHoles(r) {
11
+ if (Array.isArray(r)) return r;
12
+ }
13
+ function _iterableToArrayLimit(r, l) {
14
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
15
+ if (null != t) {
16
+ var e,
17
+ n,
18
+ i,
19
+ u,
20
+ a = [],
21
+ f = !0,
22
+ o = !1;
23
+ try {
24
+ if (i = (t = t.call(r)).next, 0 === l) {
25
+ if (Object(t) !== t) return;
26
+ f = !1;
27
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
28
+ } catch (r) {
29
+ o = !0, n = r;
30
+ } finally {
31
+ try {
32
+ if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;
33
+ } finally {
34
+ if (o) throw n;
35
+ }
36
+ }
37
+ return a;
38
+ }
39
+ }
40
+ function _nonIterableRest() {
41
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
42
+ }
43
+ function _slicedToArray(r, e) {
44
+ return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();
45
+ }
46
+ function _unsupportedIterableToArray(r, a) {
47
+ if (r) {
48
+ if ("string" == typeof r) return _arrayLikeToArray(r, a);
49
+ var t = {}.toString.call(r).slice(8, -1);
50
+ return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
51
+ }
52
+ }
53
+
5
54
  function debounceByAnimationFrame(fn) {
6
55
  let requestId;
7
56
  return function debounced() {
@@ -32,17 +81,29 @@ function throttle(fn) {
32
81
  function rgbFromHex(hex) {
33
82
  const cleanHex = hex.replace('#', '');
34
83
  const rgb = cleanHex.length === 3 ? cleanHex.split('').map(val => val + val) : cleanHex.match(/[\da-f]{2}/gi);
35
- const [r, g, b] = rgb.map(val => parseInt(val, 16));
84
+ const _rgb$map = rgb.map(val => parseInt(val, 16)),
85
+ _rgb$map2 = _slicedToArray(_rgb$map, 3),
86
+ r = _rgb$map2[0],
87
+ g = _rgb$map2[1],
88
+ b = _rgb$map2[2];
36
89
  return [r, g, b];
37
90
  }
38
91
  function rgbFromString(color, sub) {
39
92
  const rgb = color.substring(sub, color.length - 1).split(COMMA);
40
- const [r, g, b] = rgb.map(i => parseInt(i, 10));
93
+ const _rgb$map3 = rgb.map(i => parseInt(i, 10)),
94
+ _rgb$map4 = _slicedToArray(_rgb$map3, 3),
95
+ r = _rgb$map4[0],
96
+ g = _rgb$map4[1],
97
+ b = _rgb$map4[2];
41
98
  return [r, g, b];
42
99
  }
43
100
  function hexToRgba(hex) {
44
101
  let opacity = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
45
- const [r, g, b] = rgbFromHex(hex);
102
+ const _rgbFromHex = rgbFromHex(hex),
103
+ _rgbFromHex2 = _slicedToArray(_rgbFromHex, 3),
104
+ r = _rgbFromHex2[0],
105
+ g = _rgbFromHex2[1],
106
+ b = _rgbFromHex2[2];
46
107
  return `rgba(${r}, ${g}, ${b}, ${opacity})`;
47
108
  }
48
109
  function toSrgb(value) {
@@ -88,10 +149,8 @@ function getColorContrast(foreground, background) {
88
149
  score = 1 / score;
89
150
  }
90
151
  const level = CONTRAST_LEVELS.find(_ref => {
91
- let {
92
- min,
93
- max
94
- } = _ref;
152
+ let min = _ref.min,
153
+ max = _ref.max;
95
154
  return score >= min && score < max;
96
155
  });
97
156
  return {
@@ -111,9 +170,7 @@ function uid() {
111
170
 
112
171
  function isElementFocusable(elt) {
113
172
  if (!elt) return false;
114
- const {
115
- tagName
116
- } = elt;
173
+ const tagName = elt.tagName;
117
174
  const isValidTag = focusableTags.includes(tagName);
118
175
  const hasValidType = elt.getAttribute('type') !== 'hidden';
119
176
  const isDisabled = elt.getAttribute('disabled') === '' || elt.getAttribute('disabled');
@@ -165,10 +222,8 @@ function isDev() {
165
222
  function logWarning(message) {
166
223
  let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
167
224
  if (isDev()) {
168
- const {
169
- name,
170
- element
171
- } = context;
225
+ const name = context.name,
226
+ element = context.element;
172
227
  const formattedMessage = name ? `[${name}] ${message}` : message;
173
228
  const args = element ? [formattedMessage, element] : [formattedMessage];
174
229
  console.warn(...args); // eslint-disable-line no-console
@@ -179,11 +234,13 @@ function logWarning(message) {
179
234
  * Stop default event handling and propagation
180
235
  */
181
236
  function stopEvent(event) {
182
- let {
183
- preventDefault = true,
184
- stopPropagation = true,
185
- stopImmediatePropagation = false
186
- } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
237
+ let _ref2 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
238
+ _ref2$preventDefault = _ref2.preventDefault,
239
+ preventDefault = _ref2$preventDefault === void 0 ? true : _ref2$preventDefault,
240
+ _ref2$stopPropagation = _ref2.stopPropagation,
241
+ stopPropagation = _ref2$stopPropagation === void 0 ? true : _ref2$stopPropagation,
242
+ _ref2$stopImmediatePr = _ref2.stopImmediatePropagation,
243
+ stopImmediatePropagation = _ref2$stopImmediatePr === void 0 ? false : _ref2$stopImmediatePr;
187
244
  if (preventDefault) {
188
245
  event.preventDefault();
189
246
  }
@@ -1,6 +1,5 @@
1
1
  import { extend, mergeData } from '../../vue';
2
2
  import { NAME_BUTTON_CLOSE } from '../../constants/components';
3
- import { PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } 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
  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: '&times;'
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
  }
@@ -39,12 +38,10 @@ const BButtonClose = /*#__PURE__*/extend({
39
38
  functional: true,
40
39
  props,
41
40
  render(h, _ref) {
42
- let {
43
- props,
44
- data,
45
- slots,
46
- scopedSlots
47
- } = _ref;
41
+ let props = _ref.props,
42
+ data = _ref.data,
43
+ slots = _ref.slots,
44
+ scopedSlots = _ref.scopedSlots;
48
45
  const $slots = slots();
49
46
  const $scopedSlots = scopedSlots || {};
50
47
  const componentData = {
@@ -1,7 +1,6 @@
1
1
  import { extend, mergeData } from '../../vue';
2
2
  import { NAME_BUTTON } from '../../constants/components';
3
3
  import { CODE_SPACE, CODE_ENTER } 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 { isTag, addClass, removeClass } from '../../utils/dom';
7
6
  import { stopEvent } from '../../utils/events';
@@ -19,39 +18,39 @@ delete linkProps.to.default;
19
18
  const props = sortKeys({
20
19
  ...linkProps,
21
20
  block: {
22
- type: PROP_TYPE_BOOLEAN,
21
+ type: Boolean,
23
22
  required: false,
24
23
  default: false
25
24
  },
26
25
  disabled: {
27
- type: PROP_TYPE_BOOLEAN,
26
+ type: Boolean,
28
27
  required: false,
29
28
  default: false
30
29
  },
31
30
  // Tri-state: `true`, `false` or `null`
32
31
  // => On, off, not a toggle
33
32
  pressed: {
34
- type: PROP_TYPE_BOOLEAN,
33
+ type: Boolean,
35
34
  required: false,
36
35
  default: null
37
36
  },
38
37
  size: {
39
- type: PROP_TYPE_STRING,
38
+ type: String,
40
39
  required: false,
41
40
  default: undefined
42
41
  },
43
42
  tag: {
44
- type: PROP_TYPE_STRING,
43
+ type: String,
45
44
  required: false,
46
45
  default: 'button'
47
46
  },
48
47
  type: {
49
- type: PROP_TYPE_STRING,
48
+ type: String,
50
49
  required: false,
51
50
  default: 'button'
52
51
  },
53
52
  variant: {
54
- type: PROP_TYPE_STRING,
53
+ type: String,
55
54
  required: false,
56
55
  default: 'secondary'
57
56
  }
@@ -137,12 +136,10 @@ const BButton = /*#__PURE__*/extend({
137
136
  functional: true,
138
137
  props,
139
138
  render(h, _ref) {
140
- let {
141
- props,
142
- data,
143
- listeners,
144
- children
145
- } = _ref;
139
+ let props = _ref.props,
140
+ data = _ref.data,
141
+ listeners = _ref.listeners,
142
+ children = _ref.children;
146
143
  const toggle = isToggle(props);
147
144
  const link = isLink(props);
148
145
  const nonStandardTag = isNonStandardTag(props);
@@ -155,9 +152,7 @@ const BButton = /*#__PURE__*/extend({
155
152
  if (props.disabled || !(nonStandardTag || hashLink)) {
156
153
  return;
157
154
  }
158
- const {
159
- keyCode
160
- } = event;
155
+ const keyCode = event.keyCode;
161
156
  // Add CODE_SPACE handler for `href="#"` and CODE_ENTER handler for non-standard tags
162
157
  if (keyCode === CODE_SPACE || keyCode === CODE_ENTER && nonStandardTag) {
163
158
  const target = event.currentTarget || event.target;
@@ -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
  const props = {
9
8
  tag: {
10
- type: PROP_TYPE_STRING,
9
+ type: String,
11
10
  required: false,
12
11
  default: 'hr'
13
12
  }
@@ -21,10 +20,8 @@ const BDropdownDivider = /*#__PURE__*/extend({
21
20
  functional: true,
22
21
  props,
23
22
  render(h, _ref) {
24
- let {
25
- props,
26
- data
27
- } = _ref;
23
+ let props = _ref.props,
24
+ data = _ref.data;
28
25
  return h('li', mergeData(omit(data, ['attrs']), {
29
26
  attrs: {
30
27
  role: 'presentation'
@@ -1,6 +1,5 @@
1
1
  import { extend, mergeData } from '../../vue';
2
2
  import { NAME_DROPDOWN_FORM } from '../../constants/components';
3
- import { PROP_TYPE_BOOLEAN, PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING } from '../../constants/props';
4
3
  import { sortKeys, omit } from '../../utils/object';
5
4
  import { props as props$1, BForm } from '../form/form';
6
5
 
@@ -9,12 +8,12 @@ import { props as props$1, BForm } from '../form/form';
9
8
  const props = sortKeys({
10
9
  ...props$1,
11
10
  disabled: {
12
- type: PROP_TYPE_BOOLEAN,
11
+ type: Boolean,
13
12
  required: false,
14
13
  default: false
15
14
  },
16
15
  formClass: {
17
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
16
+ type: [Array, Object, String],
18
17
  required: false,
19
18
  default: undefined
20
19
  }
@@ -28,12 +27,10 @@ const BDropdownForm = /*#__PURE__*/extend({
28
27
  functional: true,
29
28
  props,
30
29
  render(h, _ref) {
31
- let {
32
- props,
33
- data,
34
- listeners,
35
- children
36
- } = _ref;
30
+ let props = _ref.props,
31
+ data = _ref.data,
32
+ listeners = _ref.listeners,
33
+ children = _ref.children;
37
34
  return h('li', mergeData(omit(data, ['attrs', 'on']), {
38
35
  attrs: {
39
36
  role: 'presentation'
@@ -1,6 +1,5 @@
1
1
  import { extend, mergeData } from '../../vue';
2
2
  import { NAME_DROPDOWN_GROUP } from '../../constants/components';
3
- import { PROP_TYPE_STRING, PROP_TYPE_ARRAY, PROP_TYPE_OBJECT } from '../../constants/props';
4
3
  import { SLOT_NAME_HEADER, SLOT_NAME_DEFAULT } 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
  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
  }
@@ -50,18 +49,14 @@ const BDropdownGroup = /*#__PURE__*/extend({
50
49
  functional: true,
51
50
  props,
52
51
  render(h, _ref) {
53
- let {
54
- props,
55
- data,
56
- slots,
57
- scopedSlots
58
- } = _ref;
59
- const {
60
- id,
61
- variant,
62
- header,
63
- headerTag
64
- } = props;
52
+ let props = _ref.props,
53
+ data = _ref.data,
54
+ slots = _ref.slots,
55
+ scopedSlots = _ref.scopedSlots;
56
+ const id = props.id,
57
+ variant = props.variant,
58
+ header = props.header,
59
+ headerTag = props.headerTag;
65
60
  const $slots = slots();
66
61
  const $scopedSlots = scopedSlots || {};
67
62
  const slotScope = {};
@@ -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
  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
  }
@@ -32,15 +31,11 @@ const BDropdownHeader = /*#__PURE__*/extend({
32
31
  functional: true,
33
32
  props,
34
33
  render(h, _ref) {
35
- let {
36
- props,
37
- data,
38
- children
39
- } = _ref;
40
- const {
41
- tag,
42
- variant
43
- } = props;
34
+ let props = _ref.props,
35
+ data = _ref.data,
36
+ children = _ref.children;
37
+ const tag = props.tag,
38
+ variant = props.variant;
44
39
  return h('li', mergeData(omit(data, ['attrs']), {
45
40
  attrs: {
46
41
  role: 'presentation'
@@ -1,7 +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 { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING, PROP_TYPE_ARRAY, PROP_TYPE_OBJECT } from '../../constants/props';
5
4
  import { attrsMixin } from '../../mixins/attrs';
6
5
  import { normalizeSlotMixin } from '../../mixins/normalize-slot';
7
6
 
@@ -9,32 +8,32 @@ import { normalizeSlotMixin } from '../../mixins/normalize-slot';
9
8
 
10
9
  const props = {
11
10
  active: {
12
- type: PROP_TYPE_BOOLEAN,
11
+ type: Boolean,
13
12
  required: false,
14
13
  default: false
15
14
  },
16
15
  activeClass: {
17
- type: PROP_TYPE_STRING,
16
+ type: String,
18
17
  required: false,
19
18
  default: 'active'
20
19
  },
21
20
  buttonClass: {
22
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
21
+ type: [Array, Object, String],
23
22
  required: false,
24
23
  default: undefined
25
24
  },
26
25
  disabled: {
27
- type: PROP_TYPE_BOOLEAN,
26
+ type: Boolean,
28
27
  required: false,
29
28
  default: false
30
29
  },
31
30
  variant: {
32
- type: PROP_TYPE_STRING,
31
+ type: String,
33
32
  required: false,
34
33
  default: undefined
35
34
  },
36
35
  role: {
37
- type: PROP_TYPE_STRING,
36
+ type: String,
38
37
  required: false,
39
38
  default: 'menuitem'
40
39
  }
@@ -79,11 +78,9 @@ const BDropdownItemButton = /*#__PURE__*/extend({
79
78
  }
80
79
  },
81
80
  render(h) {
82
- const {
83
- active,
84
- variant,
85
- bvAttrs
86
- } = this;
81
+ const active = this.active,
82
+ variant = this.variant,
83
+ bvAttrs = this.bvAttrs;
87
84
  return h('li', {
88
85
  class: bvAttrs.class,
89
86
  style: bvAttrs.style,
@@ -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';
@@ -15,12 +14,12 @@ const linkProps = omit(props$1, ['event', 'routerTag']);
15
14
  const props = sortKeys({
16
15
  ...linkProps,
17
16
  linkClass: {
18
- type: [PROP_TYPE_ARRAY, PROP_TYPE_OBJECT, PROP_TYPE_STRING],
17
+ type: [Array, Object, String],
19
18
  required: false,
20
19
  default: undefined
21
20
  },
22
21
  variant: {
23
- type: PROP_TYPE_STRING,
22
+ type: String,
24
23
  required: false,
25
24
  default: undefined
26
25
  }
@@ -65,14 +64,12 @@ const BDropdownItem = /*#__PURE__*/extend({
65
64
  }
66
65
  },
67
66
  render(h) {
68
- const {
69
- linkClass,
70
- variant,
71
- active,
72
- disabled,
73
- onClick,
74
- bvAttrs
75
- } = this;
67
+ const linkClass = this.linkClass,
68
+ variant = this.variant,
69
+ active = this.active,
70
+ disabled = this.disabled,
71
+ onClick = this.onClick,
72
+ bvAttrs = this.bvAttrs;
76
73
  return h('li', {
77
74
  class: bvAttrs.class,
78
75
  style: bvAttrs.style,
@@ -1,23 +1,22 @@
1
1
  import { extend, mergeData } from '../../vue';
2
2
  import { NAME_DROPDOWN_TEXT } from '../../constants/components';
3
- import { PROP_TYPE_STRING, PROP_TYPE_ARRAY, PROP_TYPE_OBJECT } from '../../constants/props';
4
3
  import { omit } from '../../utils/object';
5
4
 
6
5
  // --- Props ---
7
6
 
8
7
  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
  }
@@ -31,16 +30,12 @@ const BDropdownText = /*#__PURE__*/extend({
31
30
  functional: true,
32
31
  props,
33
32
  render(h, _ref) {
34
- let {
35
- props,
36
- data,
37
- children
38
- } = _ref;
39
- const {
40
- tag,
41
- textClass,
42
- variant
43
- } = props;
33
+ let props = _ref.props,
34
+ data = _ref.data,
35
+ children = _ref.children;
36
+ const tag = props.tag,
37
+ textClass = props.textClass,
38
+ variant = props.variant;
44
39
  return h('li', mergeData(omit(data, ['attrs']), {
45
40
  attrs: {
46
41
  role: 'presentation'