@gitlab/ui 128.16.1 → 128.17.1

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 (120) hide show
  1. package/dist/components/base/filtered_search/filtered_search_token.js +1 -1
  2. package/dist/components/base/filtered_search/filtered_search_token_segment.js +1 -1
  3. package/dist/components/base/tooltip/tooltip.js +1 -3
  4. package/dist/components/dashboards/dashboard_layout/dashboard_layout.js +1 -1
  5. package/dist/config.js +0 -37
  6. package/dist/index.css +1 -1
  7. package/dist/index.css.map +1 -1
  8. package/dist/tailwind.css +1 -1
  9. package/dist/tailwind.css.map +1 -1
  10. package/dist/utils/constants.js +1 -7
  11. package/dist/vendor/bootstrap-vue/src/components/button/button-close.js +3 -3
  12. package/dist/vendor/bootstrap-vue/src/components/button/button.js +3 -3
  13. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +3 -3
  14. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +3 -3
  15. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +3 -3
  16. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +3 -3
  17. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +3 -3
  18. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +3 -3
  19. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +3 -3
  20. package/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +3 -3
  21. package/dist/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +3 -3
  22. package/dist/vendor/bootstrap-vue/src/components/form/form-text.js +3 -3
  23. package/dist/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +3 -3
  24. package/dist/vendor/bootstrap-vue/src/components/form/form.js +3 -3
  25. package/dist/vendor/bootstrap-vue/src/components/form-group/form-group.js +3 -3
  26. package/dist/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.js +1 -2
  27. package/dist/vendor/bootstrap-vue/src/components/form-radio/form-radio.js +1 -2
  28. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +3 -3
  29. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +3 -3
  30. package/dist/vendor/bootstrap-vue/src/components/form-select/form-select.js +3 -3
  31. package/dist/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +3 -3
  32. package/dist/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +3 -3
  33. package/dist/vendor/bootstrap-vue/src/components/layout/col.js +3 -3
  34. package/dist/vendor/bootstrap-vue/src/components/layout/form-row.js +3 -3
  35. package/dist/vendor/bootstrap-vue/src/components/modal/modal.js +3 -3
  36. package/dist/vendor/bootstrap-vue/src/components/popover/popover.js +8 -4
  37. package/dist/vendor/bootstrap-vue/src/components/table/table-lite.js +2 -3
  38. package/dist/vendor/bootstrap-vue/src/components/table/table-simple.js +2 -3
  39. package/dist/vendor/bootstrap-vue/src/components/table/table.js +2 -3
  40. package/dist/vendor/bootstrap-vue/src/components/table/tbody.js +3 -3
  41. package/dist/vendor/bootstrap-vue/src/components/table/td.js +3 -3
  42. package/dist/vendor/bootstrap-vue/src/components/table/tfoot.js +3 -3
  43. package/dist/vendor/bootstrap-vue/src/components/table/th.js +1 -2
  44. package/dist/vendor/bootstrap-vue/src/components/table/thead.js +3 -3
  45. package/dist/vendor/bootstrap-vue/src/components/table/tr.js +3 -3
  46. package/dist/vendor/bootstrap-vue/src/components/tabs/tab.js +3 -3
  47. package/dist/vendor/bootstrap-vue/src/components/tabs/tabs.js +3 -3
  48. package/dist/vendor/bootstrap-vue/src/components/toast/toast.js +3 -3
  49. package/dist/vendor/bootstrap-vue/src/components/toast/toaster.js +3 -3
  50. package/dist/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +7 -6
  51. package/dist/vendor/bootstrap-vue/src/constants/config.js +7 -1
  52. package/dist/vendor/bootstrap-vue/src/directives/tooltip/tooltip.js +6 -7
  53. package/dist/vendor/bootstrap-vue/src/mixins/dropdown.js +3 -3
  54. package/dist/vendor/bootstrap-vue/src/mixins/form-control.js +3 -3
  55. package/dist/vendor/bootstrap-vue/src/mixins/form-custom.js +3 -3
  56. package/dist/vendor/bootstrap-vue/src/mixins/form-options.js +3 -3
  57. package/dist/vendor/bootstrap-vue/src/mixins/form-radio-check-group.js +3 -3
  58. package/dist/vendor/bootstrap-vue/src/mixins/form-radio-check.js +3 -3
  59. package/dist/vendor/bootstrap-vue/src/mixins/form-size.js +3 -3
  60. package/dist/vendor/bootstrap-vue/src/mixins/form-state.js +3 -3
  61. package/dist/vendor/bootstrap-vue/src/mixins/form-text.js +3 -3
  62. package/package.json +1 -1
  63. package/src/components/base/filtered_search/filtered_search_token.vue +5 -0
  64. package/src/components/base/filtered_search/filtered_search_token_segment.scss +14 -0
  65. package/src/components/base/filtered_search/filtered_search_token_segment.vue +14 -12
  66. package/src/components/base/tooltip/tooltip.vue +0 -3
  67. package/src/components/dashboards/dashboard_layout/dashboard_layout.vue +1 -1
  68. package/src/config.js +0 -40
  69. package/src/utils/constants.js +0 -6
  70. package/src/vendor/bootstrap-vue/src/components/button/button-close.js +7 -10
  71. package/src/vendor/bootstrap-vue/src/components/button/button.js +13 -16
  72. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.js +4 -7
  73. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js +6 -9
  74. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.js +9 -12
  75. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js +6 -9
  76. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.js +9 -12
  77. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.js +6 -9
  78. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js +6 -9
  79. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown.js +27 -30
  80. package/src/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.js +11 -14
  81. package/src/vendor/bootstrap-vue/src/components/form/form-text.js +7 -10
  82. package/src/vendor/bootstrap-vue/src/components/form/form-valid-feedback.js +11 -14
  83. package/src/vendor/bootstrap-vue/src/components/form/form.js +7 -10
  84. package/src/vendor/bootstrap-vue/src/components/form-group/form-group.js +27 -30
  85. package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.js +1 -2
  86. package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio.js +1 -2
  87. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.js +5 -8
  88. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option.js +5 -8
  89. package/src/vendor/bootstrap-vue/src/components/form-select/form-select.js +14 -17
  90. package/src/vendor/bootstrap-vue/src/components/form-select/helpers/mixin-options.js +6 -9
  91. package/src/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.js +17 -20
  92. package/src/vendor/bootstrap-vue/src/components/layout/col.js +16 -19
  93. package/src/vendor/bootstrap-vue/src/components/layout/form-row.js +4 -7
  94. package/src/vendor/bootstrap-vue/src/components/modal/modal.js +59 -62
  95. package/src/vendor/bootstrap-vue/src/components/popover/popover.js +13 -11
  96. package/src/vendor/bootstrap-vue/src/components/table/table-lite.js +11 -15
  97. package/src/vendor/bootstrap-vue/src/components/table/table-simple.js +5 -9
  98. package/src/vendor/bootstrap-vue/src/components/table/table.js +20 -24
  99. package/src/vendor/bootstrap-vue/src/components/table/tbody.js +5 -8
  100. package/src/vendor/bootstrap-vue/src/components/table/td.js +8 -11
  101. package/src/vendor/bootstrap-vue/src/components/table/tfoot.js +5 -8
  102. package/src/vendor/bootstrap-vue/src/components/table/th.js +1 -2
  103. package/src/vendor/bootstrap-vue/src/components/table/thead.js +6 -9
  104. package/src/vendor/bootstrap-vue/src/components/table/tr.js +4 -7
  105. package/src/vendor/bootstrap-vue/src/components/tabs/tab.js +16 -19
  106. package/src/vendor/bootstrap-vue/src/components/tabs/tabs.js +22 -25
  107. package/src/vendor/bootstrap-vue/src/components/toast/toast.js +23 -26
  108. package/src/vendor/bootstrap-vue/src/components/toast/toaster.js +9 -12
  109. package/src/vendor/bootstrap-vue/src/components/tooltip/tooltip.js +36 -38
  110. package/src/vendor/bootstrap-vue/src/constants/config.js +6 -0
  111. package/src/vendor/bootstrap-vue/src/directives/tooltip/tooltip.js +6 -7
  112. package/src/vendor/bootstrap-vue/src/mixins/dropdown.js +22 -25
  113. package/src/vendor/bootstrap-vue/src/mixins/form-control.js +9 -12
  114. package/src/vendor/bootstrap-vue/src/mixins/form-custom.js +4 -7
  115. package/src/vendor/bootstrap-vue/src/mixins/form-options.js +8 -11
  116. package/src/vendor/bootstrap-vue/src/mixins/form-radio-check-group.js +13 -16
  117. package/src/vendor/bootstrap-vue/src/mixins/form-radio-check.js +13 -16
  118. package/src/vendor/bootstrap-vue/src/mixins/form-size.js +4 -7
  119. package/src/vendor/bootstrap-vue/src/mixins/form-state.js +5 -8
  120. package/src/vendor/bootstrap-vue/src/mixins/form-text.js +17 -20
@@ -6,7 +6,7 @@ import { isBoolean } from '../utils/inspect';
6
6
  import { looseEqual } from '../utils/loose-equal';
7
7
  import { makeModelMixin } from '../utils/model';
8
8
  import { sortKeys } from '../utils/object';
9
- import { makePropsConfigurable, makeProp } from '../utils/props';
9
+ import { makeProp } from '../utils/props';
10
10
  import { attrsMixin } from './attrs';
11
11
  import { props as props$2, formControlMixin } from './form-control';
12
12
  import { props as props$5, formCustomMixin } from './form-custom';
@@ -28,7 +28,7 @@ const {
28
28
 
29
29
  // --- Props ---
30
30
 
31
- const props = makePropsConfigurable(sortKeys({
31
+ const props = sortKeys({
32
32
  ...props$1,
33
33
  ...modelProps,
34
34
  ...props$2,
@@ -39,7 +39,7 @@ const props = makePropsConfigurable(sortKeys({
39
39
  ariaLabelledby: makeProp(PROP_TYPE_STRING),
40
40
  inline: makeProp(PROP_TYPE_BOOLEAN, false),
41
41
  value: makeProp(PROP_TYPE_ANY)
42
- }), 'formRadioCheckControls');
42
+ });
43
43
 
44
44
  // --- Mixin ---
45
45
 
@@ -1,12 +1,12 @@
1
1
  import { extend } from '../vue';
2
2
  import { PROP_TYPE_STRING } from '../constants/props';
3
- import { makePropsConfigurable, makeProp } from '../utils/props';
3
+ import { makeProp } from '../utils/props';
4
4
 
5
5
  // --- Props ---
6
6
 
7
- const props = makePropsConfigurable({
7
+ const props = {
8
8
  size: makeProp(PROP_TYPE_STRING)
9
- }, 'formControls');
9
+ };
10
10
 
11
11
  // --- Mixin ---
12
12
 
@@ -1,7 +1,7 @@
1
1
  import { extend } from '../vue';
2
2
  import { PROP_TYPE_BOOLEAN } from '../constants/props';
3
3
  import { isBoolean } from '../utils/inspect';
4
- import { makePropsConfigurable, makeProp } from '../utils/props';
4
+ import { makeProp } from '../utils/props';
5
5
  import { safeVueInstance } from '../utils/safe-vue-instance';
6
6
 
7
7
  /* Form control contextual state class computation
@@ -15,10 +15,10 @@ import { safeVueInstance } from '../utils/safe-vue-instance';
15
15
 
16
16
  // --- Props ---
17
17
 
18
- const props = makePropsConfigurable({
18
+ const props = {
19
19
  // Tri-state prop: true, false, null (or undefined)
20
20
  state: makeProp(PROP_TYPE_BOOLEAN, null)
21
- }, 'formState');
21
+ };
22
22
 
23
23
  // --- Mixin ---
24
24
 
@@ -7,7 +7,7 @@ import { mathMax } from '../utils/math';
7
7
  import { makeModelMixin } from '../utils/model';
8
8
  import { toInteger, toFloat } from '../utils/number';
9
9
  import { sortKeys } from '../utils/object';
10
- import { makePropsConfigurable, makeProp, hasPropFunction } from '../utils/props';
10
+ import { makeProp, hasPropFunction } from '../utils/props';
11
11
  import { toString } from '../utils/string';
12
12
 
13
13
  // --- Constants ---
@@ -25,7 +25,7 @@ const {
25
25
 
26
26
  // --- Props ---
27
27
 
28
- const props = makePropsConfigurable(sortKeys({
28
+ const props = sortKeys({
29
29
  ...modelProps,
30
30
  ariaInvalid: makeProp(PROP_TYPE_BOOLEAN_STRING, false),
31
31
  autocomplete: makeProp(PROP_TYPE_STRING),
@@ -40,7 +40,7 @@ const props = makePropsConfigurable(sortKeys({
40
40
  plaintext: makeProp(PROP_TYPE_BOOLEAN, false),
41
41
  readonly: makeProp(PROP_TYPE_BOOLEAN, false),
42
42
  trim: makeProp(PROP_TYPE_BOOLEAN, false)
43
- }), 'formTextControls');
43
+ });
44
44
 
45
45
  // --- Mixin ---
46
46
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitlab/ui",
3
- "version": "128.16.1",
3
+ "version": "128.17.1",
4
4
  "description": "GitLab UI Components",
5
5
  "license": "MIT",
6
6
  "main": "dist/index.js",
@@ -441,6 +441,11 @@ export default {
441
441
  <template #before-input="scope">
442
442
  <slot name="before-data-segment-input" v-bind="scope"></slot>
443
443
  </template>
444
+
445
+ <template #input="scope">
446
+ <slot name="data-segment-input" v-bind="scope"></slot>
447
+ </template>
448
+
444
449
  <template #suggestions>
445
450
  <!-- @slot The suggestions (implemented with GlFilteredSearchSuggestion). -->
446
451
 
@@ -20,6 +20,20 @@
20
20
  min-width: $gl-dropdown-width;
21
21
  }
22
22
 
23
+ .gl-filtered-search-token-segment-input.gl-form-date input:not(.form-control-plaintext) {
24
+ @apply gl-rounded-none;
25
+ @apply gl-p-0;
26
+ @apply gl-h-full;
27
+ @apply gl-bg-transparent;
28
+ @apply gl-shadow-none;
29
+ width: auto;
30
+
31
+ &:hover,
32
+ &:focus {
33
+ @apply gl-shadow-none;
34
+ }
35
+ }
36
+
23
37
  .gl-filtered-search-token-segment-input-disabled {
24
38
  background: var(--gl-control-background-color-disabled);
25
39
  }
@@ -450,18 +450,20 @@ export default {
450
450
  >
451
451
  <template v-if="active">
452
452
  <slot name="before-input" v-bind="{ submitValue: applySuggestion }"></slot>
453
- <input
454
- ref="input"
455
- v-bind="searchInputAttributes"
456
- v-model="inputValue"
457
- class="gl-filtered-search-token-segment-input"
458
- :class="{ 'gl-filtered-search-token-segment-input-disabled': viewOnly }"
459
- data-testid="filtered-search-token-segment-input"
460
- :aria-label="label"
461
- :disabled="viewOnly"
462
- @keydown="handleInputKeydown"
463
- @blur="handleBlur"
464
- />
453
+ <slot name="input" v-bind="{ submitValue: applySuggestion }">
454
+ <input
455
+ ref="input"
456
+ v-bind="searchInputAttributes"
457
+ v-model="inputValue"
458
+ class="gl-filtered-search-token-segment-input"
459
+ :class="{ 'gl-filtered-search-token-segment-input-disabled': viewOnly }"
460
+ data-testid="filtered-search-token-segment-input"
461
+ :aria-label="label"
462
+ :disabled="viewOnly"
463
+ @keydown="handleInputKeydown"
464
+ @blur="handleBlur"
465
+ />
466
+ </slot>
465
467
  <portal :key="`operator-${_uid}`" :to="portalName">
466
468
  <gl-filtered-search-suggestion-list
467
469
  v-if="hasOptionsOrSuggestions"
@@ -1,6 +1,5 @@
1
1
  <script>
2
2
  import { BTooltip } from '../../../vendor/bootstrap-vue/src/components/tooltip/tooltip';
3
- import { tooltipDelay } from '../../../utils/constants';
4
3
  import tooltipMixin from '../../mixins/tooltip_mixin';
5
4
  import { getGlTooltipDefaultContainer } from '../../../directives/tooltip/container';
6
5
 
@@ -8,7 +7,6 @@ const tooltipRefName = 'bvTooltip';
8
7
 
9
8
  export default {
10
9
  name: 'GlTooltip',
11
- tooltipDelay,
12
10
  components: {
13
11
  BTooltip,
14
12
  },
@@ -24,7 +22,6 @@ export default {
24
22
  :ref="$options.tooltipRefName"
25
23
  v-bind="$attrs"
26
24
  :container="$attrs.container || $options.getGlTooltipDefaultContainer()"
27
- :delay="$options.tooltipDelay"
28
25
  v-on="$listeners"
29
26
  >
30
27
  <!-- @slot Tooltip content -->
@@ -108,7 +108,7 @@ export default {
108
108
  </div>
109
109
  </section>
110
110
  <div class="gl-flex">
111
- <div class="gl-flex gl-grow gl-flex-col">
111
+ <div class="gl-flex gl-min-w-0 gl-grow gl-flex-col">
112
112
  <!-- @slot For dashboard-level alerts. -->
113
113
  <slot name="alert"></slot>
114
114
 
package/src/config.js CHANGED
@@ -1,37 +1,4 @@
1
- import Vue from 'vue';
2
1
  import translationKeys from '../translations';
3
- import { BVConfigPlugin } from './vendor/bootstrap-vue/src/bv-config';
4
- import { tooltipDelay } from './utils/constants';
5
-
6
- const tooltipGlobalConfig = {
7
- // Work around for https://github.com/bootstrap-vue/bootstrap-vue/issues/6507
8
- boundaryPadding: 5,
9
- customClass: 'gl-tooltip',
10
- delay: tooltipDelay,
11
- };
12
-
13
- const popoverDelayConfig = {
14
- show: 50, // BootstrapVue's default delay on show.
15
- hide: 150, // Increased hide delay so that it doesn't disappear to quickly when user attempts to interact with the content.
16
- };
17
-
18
- /**
19
- * Guard against nonexistent localStorage,
20
- * or corrupted localStorage
21
- *
22
- * localStorage access is not possible in certain environments like
23
- * - in iframe usage in Chrome if embedded on another domain
24
- * - tests / node
25
- */
26
- try {
27
- const glTooltipDelay = localStorage.getItem('gl-tooltip-delay');
28
-
29
- if (glTooltipDelay) {
30
- tooltipGlobalConfig.delay = JSON.parse(glTooltipDelay);
31
- }
32
- } catch {
33
- // localStorage doesn't exist (or the value is not properly formatted)
34
- }
35
2
 
36
3
  export const i18n = translationKeys;
37
4
 
@@ -61,13 +28,6 @@ const setConfigs = ({ translations, firstDayOfWeek } = {}) => {
61
28
  }
62
29
  configured = true;
63
30
 
64
- Vue.use(BVConfigPlugin, {
65
- BTooltip: tooltipGlobalConfig,
66
- BPopover: {
67
- delay: popoverDelayConfig,
68
- },
69
- });
70
-
71
31
  if (typeof firstDayOfWeek === 'number' && firstDayOfWeek >= 0 && firstDayOfWeek <= 6) {
72
32
  defaultConfig.firstDayOfWeek = firstDayOfWeek;
73
33
  }
@@ -242,12 +242,6 @@ export const tooltipPlacements = {
242
242
  bottom: 'bottom',
243
243
  };
244
244
 
245
- // in milliseconds
246
- export const tooltipDelay = {
247
- show: 500,
248
- hide: 0,
249
- };
250
-
251
245
  export const popoverPlacements = {
252
246
  top: 'top',
253
247
  right: 'right',
@@ -4,20 +4,17 @@ import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props'
4
4
  import { SLOT_NAME_DEFAULT } from '../../constants/slots'
5
5
  import { stopEvent } from '../../utils/events'
6
6
  import { isEvent } from '../../utils/inspect'
7
- import { makeProp, makePropsConfigurable } from '../../utils/props'
7
+ import { makeProp } from '../../utils/props'
8
8
  import { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'
9
9
 
10
10
  // --- Props ---
11
11
 
12
- export const props = makePropsConfigurable(
13
- {
14
- ariaLabel: makeProp(PROP_TYPE_STRING, 'Close'),
15
- content: makeProp(PROP_TYPE_STRING, '&times;'),
16
- disabled: makeProp(PROP_TYPE_BOOLEAN, false),
17
- textVariant: makeProp(PROP_TYPE_STRING)
18
- },
19
- NAME_BUTTON_CLOSE
20
- )
12
+ export const props = {
13
+ ariaLabel: makeProp(PROP_TYPE_STRING, 'Close'),
14
+ content: makeProp(PROP_TYPE_STRING, '&times;'),
15
+ disabled: makeProp(PROP_TYPE_BOOLEAN, false),
16
+ textVariant: makeProp(PROP_TYPE_STRING)
17
+ }
21
18
 
22
19
  // --- Main component ---
23
20
 
@@ -7,7 +7,7 @@ import { addClass, isTag, removeClass } from '../../utils/dom'
7
7
  import { stopEvent } from '../../utils/events'
8
8
  import { isBoolean, isEvent, isFunction } from '../../utils/inspect'
9
9
  import { omit, sortKeys } from '../../utils/object'
10
- import { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props'
10
+ import { makeProp, pluckProps } from '../../utils/props'
11
11
  import { isLink as isLinkStrict } from '../../utils/router'
12
12
  import { BLink, props as BLinkProps } from '../link/link'
13
13
 
@@ -17,21 +17,18 @@ const linkProps = omit(BLinkProps, ['event', 'routerTag'])
17
17
  delete linkProps.href.default
18
18
  delete linkProps.to.default
19
19
 
20
- export const props = makePropsConfigurable(
21
- sortKeys({
22
- ...linkProps,
23
- block: makeProp(PROP_TYPE_BOOLEAN, false),
24
- disabled: makeProp(PROP_TYPE_BOOLEAN, false),
25
- // Tri-state: `true`, `false` or `null`
26
- // => On, off, not a toggle
27
- pressed: makeProp(PROP_TYPE_BOOLEAN, null),
28
- size: makeProp(PROP_TYPE_STRING),
29
- tag: makeProp(PROP_TYPE_STRING, 'button'),
30
- type: makeProp(PROP_TYPE_STRING, 'button'),
31
- variant: makeProp(PROP_TYPE_STRING, 'secondary')
32
- }),
33
- NAME_BUTTON
34
- )
20
+ export const props = sortKeys({
21
+ ...linkProps,
22
+ block: makeProp(PROP_TYPE_BOOLEAN, false),
23
+ disabled: makeProp(PROP_TYPE_BOOLEAN, false),
24
+ // Tri-state: `true`, `false` or `null`
25
+ // => On, off, not a toggle
26
+ pressed: makeProp(PROP_TYPE_BOOLEAN, null),
27
+ size: makeProp(PROP_TYPE_STRING),
28
+ tag: makeProp(PROP_TYPE_STRING, 'button'),
29
+ type: makeProp(PROP_TYPE_STRING, 'button'),
30
+ variant: makeProp(PROP_TYPE_STRING, 'secondary')
31
+ })
35
32
 
36
33
  // --- Helper methods ---
37
34
 
@@ -1,17 +1,14 @@
1
1
  import { extend, mergeData } from '../../vue'
2
2
  import { NAME_DROPDOWN_DIVIDER } from '../../constants/components'
3
3
  import { PROP_TYPE_STRING } from '../../constants/props'
4
- import { makeProp, makePropsConfigurable } from '../../utils/props'
4
+ import { makeProp } from '../../utils/props'
5
5
  import { omit } from '../../utils/object'
6
6
 
7
7
  // --- Props ---
8
8
 
9
- export const props = makePropsConfigurable(
10
- {
11
- tag: makeProp(PROP_TYPE_STRING, 'hr')
12
- },
13
- NAME_DROPDOWN_DIVIDER
14
- )
9
+ export const props = {
10
+ tag: makeProp(PROP_TYPE_STRING, 'hr')
11
+ }
15
12
 
16
13
  // --- Main component ---
17
14
 
@@ -2,19 +2,16 @@ import { extend, mergeData } from '../../vue'
2
2
  import { NAME_DROPDOWN_FORM } from '../../constants/components'
3
3
  import { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props'
4
4
  import { omit, sortKeys } from '../../utils/object'
5
- import { makeProp, makePropsConfigurable } from '../../utils/props'
5
+ import { makeProp } from '../../utils/props'
6
6
  import { BForm, props as formControlProps } from '../form/form'
7
7
 
8
8
  // --- Props ---
9
9
 
10
- export const props = makePropsConfigurable(
11
- sortKeys({
12
- ...formControlProps,
13
- disabled: makeProp(PROP_TYPE_BOOLEAN, false),
14
- formClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)
15
- }),
16
- NAME_DROPDOWN_FORM
17
- )
10
+ export const props = sortKeys({
11
+ ...formControlProps,
12
+ disabled: makeProp(PROP_TYPE_BOOLEAN, false),
13
+ formClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)
14
+ })
18
15
 
19
16
  // --- Main component ---
20
17
 
@@ -6,21 +6,18 @@ import { isTag } from '../../utils/dom'
6
6
  import { identity } from '../../utils/identity'
7
7
  import { hasNormalizedSlot, normalizeSlot } from '../../utils/normalize-slot'
8
8
  import { omit } from '../../utils/object'
9
- import { makeProp, makePropsConfigurable } from '../../utils/props'
9
+ import { makeProp } from '../../utils/props'
10
10
 
11
11
  // --- Props ---
12
12
 
13
- export const props = makePropsConfigurable(
14
- {
15
- ariaDescribedby: makeProp(PROP_TYPE_STRING),
16
- header: makeProp(PROP_TYPE_STRING),
17
- headerClasses: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
18
- headerTag: makeProp(PROP_TYPE_STRING, 'header'),
19
- headerVariant: makeProp(PROP_TYPE_STRING),
20
- id: makeProp(PROP_TYPE_STRING)
21
- },
22
- NAME_DROPDOWN_GROUP
23
- )
13
+ export const props = {
14
+ ariaDescribedby: makeProp(PROP_TYPE_STRING),
15
+ header: makeProp(PROP_TYPE_STRING),
16
+ headerClasses: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
17
+ headerTag: makeProp(PROP_TYPE_STRING, 'header'),
18
+ headerVariant: makeProp(PROP_TYPE_STRING),
19
+ id: makeProp(PROP_TYPE_STRING)
20
+ }
24
21
 
25
22
  // --- Main component ---
26
23
 
@@ -3,18 +3,15 @@ import { NAME_DROPDOWN_HEADER } from '../../constants/components'
3
3
  import { PROP_TYPE_STRING } from '../../constants/props'
4
4
  import { isTag } from '../../utils/dom'
5
5
  import { omit } from '../../utils/object'
6
- import { makeProp, makePropsConfigurable } from '../../utils/props'
6
+ import { makeProp } from '../../utils/props'
7
7
 
8
8
  // --- Props ---
9
9
 
10
- export const props = makePropsConfigurable(
11
- {
12
- id: makeProp(PROP_TYPE_STRING),
13
- tag: makeProp(PROP_TYPE_STRING, 'header'),
14
- variant: makeProp(PROP_TYPE_STRING)
15
- },
16
- NAME_DROPDOWN_HEADER
17
- )
10
+ export const props = {
11
+ id: makeProp(PROP_TYPE_STRING),
12
+ tag: makeProp(PROP_TYPE_STRING, 'header'),
13
+ variant: makeProp(PROP_TYPE_STRING)
14
+ }
18
15
 
19
16
  // --- Main component ---
20
17
 
@@ -6,23 +6,20 @@ import {
6
6
  PROP_TYPE_BOOLEAN,
7
7
  PROP_TYPE_STRING
8
8
  } from '../../constants/props'
9
- import { makeProp, makePropsConfigurable } from '../../utils/props'
9
+ import { makeProp } from '../../utils/props'
10
10
  import { attrsMixin } from '../../mixins/attrs'
11
11
  import { normalizeSlotMixin } from '../../mixins/normalize-slot'
12
12
 
13
13
  // --- Props ---
14
14
 
15
- export const props = makePropsConfigurable(
16
- {
17
- active: makeProp(PROP_TYPE_BOOLEAN, false),
18
- activeClass: makeProp(PROP_TYPE_STRING, 'active'),
19
- buttonClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
20
- disabled: makeProp(PROP_TYPE_BOOLEAN, false),
21
- variant: makeProp(PROP_TYPE_STRING),
22
- role: makeProp(PROP_TYPE_STRING, 'menuitem')
23
- },
24
- NAME_DROPDOWN_ITEM_BUTTON
25
- )
15
+ export const props = {
16
+ active: makeProp(PROP_TYPE_BOOLEAN, false),
17
+ activeClass: makeProp(PROP_TYPE_STRING, 'active'),
18
+ buttonClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
19
+ disabled: makeProp(PROP_TYPE_BOOLEAN, false),
20
+ variant: makeProp(PROP_TYPE_STRING),
21
+ role: makeProp(PROP_TYPE_STRING, 'menuitem')
22
+ }
26
23
 
27
24
  // --- Main component ---
28
25
 
@@ -4,7 +4,7 @@ import { EVENT_NAME_CLICK } from '../../constants/events'
4
4
  import { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props'
5
5
  import { requestAF } from '../../utils/dom'
6
6
  import { omit, sortKeys } from '../../utils/object'
7
- import { makeProp, makePropsConfigurable, pluckProps } from '../../utils/props'
7
+ import { makeProp, pluckProps } from '../../utils/props'
8
8
  import { attrsMixin } from '../../mixins/attrs'
9
9
  import { normalizeSlotMixin } from '../../mixins/normalize-slot'
10
10
  import { BLink, props as BLinkProps } from '../link/link'
@@ -13,14 +13,11 @@ import { BLink, props as BLinkProps } from '../link/link'
13
13
 
14
14
  const linkProps = omit(BLinkProps, ['event', 'routerTag'])
15
15
 
16
- export const props = makePropsConfigurable(
17
- sortKeys({
18
- ...linkProps,
19
- linkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
20
- variant: makeProp(PROP_TYPE_STRING)
21
- }),
22
- NAME_DROPDOWN_ITEM
23
- )
16
+ export const props = sortKeys({
17
+ ...linkProps,
18
+ linkClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
19
+ variant: makeProp(PROP_TYPE_STRING)
20
+ })
24
21
 
25
22
  // --- Main component ---
26
23
 
@@ -2,18 +2,15 @@ import { extend, mergeData } from '../../vue'
2
2
  import { NAME_DROPDOWN_TEXT } from '../../constants/components'
3
3
  import { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../constants/props'
4
4
  import { omit } from '../../utils/object'
5
- import { makeProp, makePropsConfigurable } from '../../utils/props'
5
+ import { makeProp } from '../../utils/props'
6
6
 
7
7
  // --- Props ---
8
8
 
9
- export const props = makePropsConfigurable(
10
- {
11
- tag: makeProp(PROP_TYPE_STRING, 'p'),
12
- textClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
13
- variant: makeProp(PROP_TYPE_STRING)
14
- },
15
- NAME_DROPDOWN_TEXT
16
- )
9
+ export const props = {
10
+ tag: makeProp(PROP_TYPE_STRING, 'p'),
11
+ textClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
12
+ variant: makeProp(PROP_TYPE_STRING)
13
+ }
17
14
 
18
15
  // --- Main component ---
19
16
 
@@ -10,7 +10,7 @@ import {
10
10
  import { SLOT_NAME_BUTTON_CONTENT, SLOT_NAME_DEFAULT } from '../../constants/slots'
11
11
  import { arrayIncludes } from '../../utils/array'
12
12
  import { htmlOrText } from '../../utils/html'
13
- import { makeProp, makePropsConfigurable } from '../../utils/props'
13
+ import { makeProp } from '../../utils/props'
14
14
  import { toString } from '../../utils/string'
15
15
  import { dropdownMixin, props as dropdownProps } from '../../mixins/dropdown'
16
16
  import { idMixin, props as idProps } from '../../mixins/id'
@@ -20,36 +20,33 @@ import { sortKeys } from '../../utils/object'
20
20
 
21
21
  // --- Props ---
22
22
 
23
- export const props = makePropsConfigurable(
24
- sortKeys({
25
- ...idProps,
26
- ...dropdownProps,
27
- block: makeProp(PROP_TYPE_BOOLEAN, false),
28
- html: makeProp(PROP_TYPE_STRING),
29
- // If `true`, only render menu contents when open
30
- lazy: makeProp(PROP_TYPE_BOOLEAN, false),
31
- menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
32
- noCaret: makeProp(PROP_TYPE_BOOLEAN, false),
33
- role: makeProp(PROP_TYPE_STRING, 'menu'),
34
- size: makeProp(PROP_TYPE_STRING),
35
- split: makeProp(PROP_TYPE_BOOLEAN, false),
36
- splitButtonType: makeProp(PROP_TYPE_STRING, 'button', value => {
37
- return arrayIncludes(['button', 'submit', 'reset'], value)
38
- }),
39
- splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
40
- splitHref: makeProp(PROP_TYPE_STRING),
41
- splitTo: makeProp(PROP_TYPE_OBJECT_STRING),
42
- splitVariant: makeProp(PROP_TYPE_STRING),
43
- text: makeProp(PROP_TYPE_STRING),
44
- toggleAttrs: makeProp(PROP_TYPE_OBJECT, {}),
45
- toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
46
- toggleTag: makeProp(PROP_TYPE_STRING, 'button'),
47
- // TODO: This really should be `toggleLabel`
48
- toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),
49
- variant: makeProp(PROP_TYPE_STRING, 'secondary')
23
+ export const props = sortKeys({
24
+ ...idProps,
25
+ ...dropdownProps,
26
+ block: makeProp(PROP_TYPE_BOOLEAN, false),
27
+ html: makeProp(PROP_TYPE_STRING),
28
+ // If `true`, only render menu contents when open
29
+ lazy: makeProp(PROP_TYPE_BOOLEAN, false),
30
+ menuClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
31
+ noCaret: makeProp(PROP_TYPE_BOOLEAN, false),
32
+ role: makeProp(PROP_TYPE_STRING, 'menu'),
33
+ size: makeProp(PROP_TYPE_STRING),
34
+ split: makeProp(PROP_TYPE_BOOLEAN, false),
35
+ splitButtonType: makeProp(PROP_TYPE_STRING, 'button', value => {
36
+ return arrayIncludes(['button', 'submit', 'reset'], value)
50
37
  }),
51
- NAME_DROPDOWN
52
- )
38
+ splitClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
39
+ splitHref: makeProp(PROP_TYPE_STRING),
40
+ splitTo: makeProp(PROP_TYPE_OBJECT_STRING),
41
+ splitVariant: makeProp(PROP_TYPE_STRING),
42
+ text: makeProp(PROP_TYPE_STRING),
43
+ toggleAttrs: makeProp(PROP_TYPE_OBJECT, {}),
44
+ toggleClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),
45
+ toggleTag: makeProp(PROP_TYPE_STRING, 'button'),
46
+ // TODO: This really should be `toggleLabel`
47
+ toggleText: makeProp(PROP_TYPE_STRING, 'Toggle dropdown'),
48
+ variant: makeProp(PROP_TYPE_STRING, 'secondary')
49
+ })
53
50
 
54
51
  // --- Main component ---
55
52
 
@@ -1,23 +1,20 @@
1
1
  import { extend, mergeData } from '../../vue'
2
2
  import { NAME_FORM_INVALID_FEEDBACK } from '../../constants/components'
3
3
  import { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props'
4
- import { makeProp, makePropsConfigurable } from '../../utils/props'
4
+ import { makeProp } from '../../utils/props'
5
5
 
6
6
  // --- Props ---
7
7
 
8
- export const props = makePropsConfigurable(
9
- {
10
- ariaLive: makeProp(PROP_TYPE_STRING),
11
- forceShow: makeProp(PROP_TYPE_BOOLEAN, false),
12
- id: makeProp(PROP_TYPE_STRING),
13
- role: makeProp(PROP_TYPE_STRING),
14
- // Tri-state prop: `true`, `false`, or `null`
15
- state: makeProp(PROP_TYPE_BOOLEAN, null),
16
- tag: makeProp(PROP_TYPE_STRING, 'div'),
17
- tooltip: makeProp(PROP_TYPE_BOOLEAN, false)
18
- },
19
- NAME_FORM_INVALID_FEEDBACK
20
- )
8
+ export const props = {
9
+ ariaLive: makeProp(PROP_TYPE_STRING),
10
+ forceShow: makeProp(PROP_TYPE_BOOLEAN, false),
11
+ id: makeProp(PROP_TYPE_STRING),
12
+ role: makeProp(PROP_TYPE_STRING),
13
+ // Tri-state prop: `true`, `false`, or `null`
14
+ state: makeProp(PROP_TYPE_BOOLEAN, null),
15
+ tag: makeProp(PROP_TYPE_STRING, 'div'),
16
+ tooltip: makeProp(PROP_TYPE_BOOLEAN, false)
17
+ }
21
18
 
22
19
  // --- Main component ---
23
20