@gitlab/ui 114.0.1 → 114.1.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 (136) hide show
  1. package/package.json +9 -28
  2. package/CHANGELOG.md +0 -13132
  3. package/src/vendor/bootstrap/LICENSE +0 -11
  4. package/src/vendor/bootstrap-vue/LICENSE +0 -11
  5. package/src/vendor/bootstrap-vue/package.json +0 -144
  6. package/src/vendor/bootstrap-vue/src/components/button/MODIFICATIONS.md +0 -16
  7. package/src/vendor/bootstrap-vue/src/components/button/README.md +0 -240
  8. package/src/vendor/bootstrap-vue/src/components/button/button-close.spec.js +0 -210
  9. package/src/vendor/bootstrap-vue/src/components/button/button.spec.js +0 -349
  10. package/src/vendor/bootstrap-vue/src/components/button/package.json +0 -105
  11. package/src/vendor/bootstrap-vue/src/components/dropdown/README.md +0 -730
  12. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-divider.spec.js +0 -58
  13. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.spec.js +0 -110
  14. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-group.spec.js +0 -94
  15. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.spec.js +0 -73
  16. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item-button.spec.js +0 -117
  17. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-item.spec.js +0 -147
  18. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.spec.js +0 -59
  19. package/src/vendor/bootstrap-vue/src/components/dropdown/dropdown.spec.js +0 -1121
  20. package/src/vendor/bootstrap-vue/src/components/dropdown/package.json +0 -368
  21. package/src/vendor/bootstrap-vue/src/components/form/README.md +0 -365
  22. package/src/vendor/bootstrap-vue/src/components/form/form-invalid-feedback.spec.js +0 -170
  23. package/src/vendor/bootstrap-vue/src/components/form/form-text.spec.js +0 -93
  24. package/src/vendor/bootstrap-vue/src/components/form/form-valid-feedback.spec.js +0 -157
  25. package/src/vendor/bootstrap-vue/src/components/form/form.spec.js +0 -97
  26. package/src/vendor/bootstrap-vue/src/components/form/package.json +0 -112
  27. package/src/vendor/bootstrap-vue/src/components/form-checkbox/README.md +0 -691
  28. package/src/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox-group.spec.js +0 -525
  29. package/src/vendor/bootstrap-vue/src/components/form-checkbox/form-checkbox.spec.js +0 -922
  30. package/src/vendor/bootstrap-vue/src/components/form-checkbox/package.json +0 -172
  31. package/src/vendor/bootstrap-vue/src/components/form-group/README.md +0 -339
  32. package/src/vendor/bootstrap-vue/src/components/form-group/form-group.spec.js +0 -477
  33. package/src/vendor/bootstrap-vue/src/components/form-group/package.json +0 -183
  34. package/src/vendor/bootstrap-vue/src/components/form-radio/README.md +0 -437
  35. package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.spec.js +0 -357
  36. package/src/vendor/bootstrap-vue/src/components/form-radio/form-radio.spec.js +0 -587
  37. package/src/vendor/bootstrap-vue/src/components/form-radio/package.json +0 -162
  38. package/src/vendor/bootstrap-vue/src/components/form-select/README.md +0 -504
  39. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option-group.spec.js +0 -138
  40. package/src/vendor/bootstrap-vue/src/components/form-select/form-select-option.spec.js +0 -75
  41. package/src/vendor/bootstrap-vue/src/components/form-select/form-select.spec.js +0 -723
  42. package/src/vendor/bootstrap-vue/src/components/form-select/package.json +0 -132
  43. package/src/vendor/bootstrap-vue/src/components/form-textarea/README.md +0 -453
  44. package/src/vendor/bootstrap-vue/src/components/form-textarea/form-textarea.spec.js +0 -1000
  45. package/src/vendor/bootstrap-vue/src/components/form-textarea/package.json +0 -122
  46. package/src/vendor/bootstrap-vue/src/components/layout/README.md +0 -791
  47. package/src/vendor/bootstrap-vue/src/components/layout/col.spec.js +0 -192
  48. package/src/vendor/bootstrap-vue/src/components/layout/form-row.spec.js +0 -45
  49. package/src/vendor/bootstrap-vue/src/components/layout/package.json +0 -99
  50. package/src/vendor/bootstrap-vue/src/components/link/README.md +0 -76
  51. package/src/vendor/bootstrap-vue/src/components/link/link.spec.js +0 -434
  52. package/src/vendor/bootstrap-vue/src/components/link/package.json +0 -57
  53. package/src/vendor/bootstrap-vue/src/components/modal/MODIFICATIONS.md +0 -30
  54. package/src/vendor/bootstrap-vue/src/components/modal/README.md +0 -1067
  55. package/src/vendor/bootstrap-vue/src/components/modal/helpers/bv-modal-event.class.spec.js +0 -82
  56. package/src/vendor/bootstrap-vue/src/components/modal/modal.spec.js +0 -1418
  57. package/src/vendor/bootstrap-vue/src/components/modal/package.json +0 -544
  58. package/src/vendor/bootstrap-vue/src/components/nav/README.md +0 -362
  59. package/src/vendor/bootstrap-vue/src/components/nav/nav-item.spec.js +0 -127
  60. package/src/vendor/bootstrap-vue/src/components/nav/nav.spec.js +0 -177
  61. package/src/vendor/bootstrap-vue/src/components/nav/package.json +0 -73
  62. package/src/vendor/bootstrap-vue/src/components/popover/README.md +0 -919
  63. package/src/vendor/bootstrap-vue/src/components/popover/package.json +0 -261
  64. package/src/vendor/bootstrap-vue/src/components/popover/popover.spec.js +0 -198
  65. package/src/vendor/bootstrap-vue/src/components/table/README.md +0 -3157
  66. package/src/vendor/bootstrap-vue/src/components/table/helpers/default-sort-compare.spec.js +0 -112
  67. package/src/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.spec.js +0 -93
  68. package/src/vendor/bootstrap-vue/src/components/table/package.json +0 -1763
  69. package/src/vendor/bootstrap-vue/src/components/table/table-busy.spec.js +0 -150
  70. package/src/vendor/bootstrap-vue/src/components/table/table-caption.spec.js +0 -176
  71. package/src/vendor/bootstrap-vue/src/components/table/table-colgroup.spec.js +0 -81
  72. package/src/vendor/bootstrap-vue/src/components/table/table-filtering.spec.js +0 -409
  73. package/src/vendor/bootstrap-vue/src/components/table/table-item-formatter.spec.js +0 -56
  74. package/src/vendor/bootstrap-vue/src/components/table/table-lite.spec.js +0 -682
  75. package/src/vendor/bootstrap-vue/src/components/table/table-pagination.spec.js +0 -133
  76. package/src/vendor/bootstrap-vue/src/components/table/table-primarykey.spec.js +0 -83
  77. package/src/vendor/bootstrap-vue/src/components/table/table-provider.spec.js +0 -411
  78. package/src/vendor/bootstrap-vue/src/components/table/table-row-details.spec.js +0 -459
  79. package/src/vendor/bootstrap-vue/src/components/table/table-selectable.spec.js +0 -1182
  80. package/src/vendor/bootstrap-vue/src/components/table/table-simple.spec.js +0 -206
  81. package/src/vendor/bootstrap-vue/src/components/table/table-sorting.spec.js +0 -858
  82. package/src/vendor/bootstrap-vue/src/components/table/table-sticky-column.spec.js +0 -377
  83. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-bottom-row.spec.js +0 -94
  84. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-row-events.spec.js +0 -529
  85. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-top-row.spec.js +0 -88
  86. package/src/vendor/bootstrap-vue/src/components/table/table-tbody-transition.spec.js +0 -83
  87. package/src/vendor/bootstrap-vue/src/components/table/table-tfoot-custom.spec.js +0 -91
  88. package/src/vendor/bootstrap-vue/src/components/table/table-tfoot-events.spec.js +0 -137
  89. package/src/vendor/bootstrap-vue/src/components/table/table-thead-events.spec.js +0 -155
  90. package/src/vendor/bootstrap-vue/src/components/table/table-thead-top.spec.js +0 -96
  91. package/src/vendor/bootstrap-vue/src/components/table/table.spec.js +0 -692
  92. package/src/vendor/bootstrap-vue/src/components/tabs/README.md +0 -433
  93. package/src/vendor/bootstrap-vue/src/components/tabs/package.json +0 -205
  94. package/src/vendor/bootstrap-vue/src/components/tabs/tab.spec.js +0 -330
  95. package/src/vendor/bootstrap-vue/src/components/tabs/tabs.spec.js +0 -778
  96. package/src/vendor/bootstrap-vue/src/components/toast/README.md +0 -655
  97. package/src/vendor/bootstrap-vue/src/components/toast/helpers/bv-toast.spec.js +0 -117
  98. package/src/vendor/bootstrap-vue/src/components/toast/package.json +0 -184
  99. package/src/vendor/bootstrap-vue/src/components/toast/toast.spec.js +0 -294
  100. package/src/vendor/bootstrap-vue/src/components/toast/toaster.spec.js +0 -77
  101. package/src/vendor/bootstrap-vue/src/components/tooltip/README.md +0 -559
  102. package/src/vendor/bootstrap-vue/src/components/tooltip/package.json +0 -258
  103. package/src/vendor/bootstrap-vue/src/components/tooltip/tooltip.spec.js +0 -1240
  104. package/src/vendor/bootstrap-vue/src/components/transition/package.json +0 -5
  105. package/src/vendor/bootstrap-vue/src/components/transporter/package.json +0 -5
  106. package/src/vendor/bootstrap-vue/src/components/transporter/transporter.spec.js +0 -85
  107. package/src/vendor/bootstrap-vue/src/directives/modal/modal.spec.js +0 -191
  108. package/src/vendor/bootstrap-vue/src/directives/tooltip/README.md +0 -521
  109. package/src/vendor/bootstrap-vue/src/directives/tooltip/package.json +0 -131
  110. package/src/vendor/bootstrap-vue/src/directives/tooltip/tooltip.spec.js +0 -190
  111. package/src/vendor/bootstrap-vue/src/directives/visible/README.md +0 -244
  112. package/src/vendor/bootstrap-vue/src/directives/visible/package.json +0 -24
  113. package/src/vendor/bootstrap-vue/src/mixins/attrs.spec.js +0 -194
  114. package/src/vendor/bootstrap-vue/src/mixins/click-out.spec.js +0 -52
  115. package/src/vendor/bootstrap-vue/src/mixins/focus-in.spec.js +0 -53
  116. package/src/vendor/bootstrap-vue/src/mixins/listen-on-document.spec.js +0 -117
  117. package/src/vendor/bootstrap-vue/src/mixins/listen-on-root.spec.js +0 -77
  118. package/src/vendor/bootstrap-vue/src/mixins/listen-on-window.spec.js +0 -115
  119. package/src/vendor/bootstrap-vue/src/mixins/listeners.spec.js +0 -245
  120. package/src/vendor/bootstrap-vue/src/utils/bv-event.class.spec.js +0 -66
  121. package/src/vendor/bootstrap-vue/src/utils/clone-deep.spec.js +0 -70
  122. package/src/vendor/bootstrap-vue/src/utils/config.spec.js +0 -169
  123. package/src/vendor/bootstrap-vue/src/utils/css-escape.spec.js +0 -82
  124. package/src/vendor/bootstrap-vue/src/utils/dom.spec.js +0 -291
  125. package/src/vendor/bootstrap-vue/src/utils/events.spec.js +0 -41
  126. package/src/vendor/bootstrap-vue/src/utils/get.spec.js +0 -109
  127. package/src/vendor/bootstrap-vue/src/utils/inspect.spec.js +0 -251
  128. package/src/vendor/bootstrap-vue/src/utils/loose-equal.spec.js +0 -203
  129. package/src/vendor/bootstrap-vue/src/utils/normalize-slot.spec.js +0 -63
  130. package/src/vendor/bootstrap-vue/src/utils/number.spec.js +0 -72
  131. package/src/vendor/bootstrap-vue/src/utils/object.spec.js +0 -61
  132. package/src/vendor/bootstrap-vue/src/utils/props.spec.js +0 -112
  133. package/src/vendor/bootstrap-vue/src/utils/router.spec.js +0 -248
  134. package/src/vendor/bootstrap-vue/src/utils/string.spec.js +0 -65
  135. package/src/vendor/bootstrap-vue/src/utils/stringify-object-values.spec.js +0 -47
  136. package/src/vendor/bootstrap-vue/src/utils/warn.spec.js +0 -54
@@ -1,730 +0,0 @@
1
- # Dropdown
2
-
3
- > Dropdowns are toggleable, contextual overlays for displaying lists of links and actions in a
4
- > dropdown menu format.
5
-
6
- `<b-dropdown>` (or known by its shorter alias of `<b-dd>`) components are toggleable, contextual
7
- overlays for displaying lists of links and more. They're toggled by clicking (or pressing space or
8
- enter when focused), not by hovering; this is an
9
- [intentional design decision](https://markdotto.com/2012/02/27/bootstrap-explained-dropdowns/).
10
-
11
- ```html
12
- <div>
13
- <b-dropdown id="dropdown-1" text="Dropdown Button" class="m-md-2">
14
- <b-dropdown-item>First Action</b-dropdown-item>
15
- <b-dropdown-item>Second Action</b-dropdown-item>
16
- <b-dropdown-item>Third Action</b-dropdown-item>
17
- <b-dropdown-divider></b-dropdown-divider>
18
- <b-dropdown-item active>Active action</b-dropdown-item>
19
- <b-dropdown-item disabled>Disabled action</b-dropdown-item>
20
- </b-dropdown>
21
- </div>
22
-
23
- <!-- b-dropdown.vue -->
24
- ```
25
-
26
- ## Button content
27
-
28
- You can customize the text of the dropdown button by using either the `text` prop (shown in previous
29
- examples), or use the `button-content` slot instead of the `text` prop. The `button-content` slot
30
- allows you to use basic HTML and icons in the button content.
31
-
32
- If both the prop `text` and slot `button-content` are present, the slot `button-content` will take
33
- precedence.
34
-
35
- ```html
36
- <div>
37
- <b-dropdown text="Button text via Prop">
38
- <b-dropdown-item href="#">An item</b-dropdown-item>
39
- <b-dropdown-item href="#">Another item</b-dropdown-item>
40
- </b-dropdown>
41
-
42
- <b-dropdown>
43
- <template #button-content>
44
- Custom <strong>Content</strong> with <em>HTML</em> via Slot
45
- </template>
46
- <b-dropdown-item href="#">An item</b-dropdown-item>
47
- <b-dropdown-item href="#">Another item</b-dropdown-item>
48
- </b-dropdown>
49
- </div>
50
-
51
- <!-- b-dropdown-button-content.vue -->
52
- ```
53
-
54
- ## Positioning
55
-
56
- Dropdown supports various positioning such as left and right aligned, dropdown and dropup, and
57
- supports auto-flipping (dropdown to dropup, and vice-versa) when the menu would overflow off of the
58
- visible screen area.
59
-
60
- ### Menu alignment
61
-
62
- The dropdown menu can either be left aligned (default) or right aligned with respect to the button
63
- above it. To have the dropdown aligned on the right, set the `right` prop.
64
-
65
- ```html
66
- <div>
67
- <b-dropdown id="dropdown-left" text="Left align" variant="primary" class="m-2">
68
- <b-dropdown-item href="#">Action</b-dropdown-item>
69
- <b-dropdown-item href="#">Another action</b-dropdown-item>
70
- <b-dropdown-item href="#">Something else here</b-dropdown-item>
71
- </b-dropdown>
72
-
73
- <b-dropdown id="dropdown-right" right text="Right align" variant="primary" class="m-2">
74
- <b-dropdown-item href="#">Action</b-dropdown-item>
75
- <b-dropdown-item href="#">Another action</b-dropdown-item>
76
- <b-dropdown-item href="#">Something else here</b-dropdown-item>
77
- </b-dropdown>
78
- </div>
79
-
80
- <!-- b-dropdown-right.vue -->
81
- ```
82
-
83
- ### Dropup
84
-
85
- Turn your dropdown menu into a drop-up menu by setting the `dropup` prop.
86
-
87
- ```html
88
- <div>
89
- <b-dropdown id="dropdown-dropup" dropup text="Drop-Up" variant="primary" class="m-2">
90
- <b-dropdown-item href="#">Action</b-dropdown-item>
91
- <b-dropdown-item href="#">Another action</b-dropdown-item>
92
- <b-dropdown-item href="#">Something else here</b-dropdown-item>
93
- </b-dropdown>
94
- </div>
95
-
96
- <!-- b-dropdown-dropup.vue -->
97
- ```
98
-
99
- ### Drop right or left
100
-
101
- Turn your dropdown menu into a drop-right menu by setting the `dropright` prop. Or, turn it into a
102
- drop-left menu by setting the `dropleft` right prop to true.
103
-
104
- `dropright` takes precedence over `dropleft`. Neither `dropright` or `dropleft` have any effect if
105
- `dropup` is set.
106
-
107
- ```html
108
- <div>
109
- <b-dropdown id="dropdown-dropright" dropright text="Drop-Right" variant="primary" class="m-2">
110
- <b-dropdown-item href="#">Action</b-dropdown-item>
111
- <b-dropdown-item href="#">Another action</b-dropdown-item>
112
- <b-dropdown-item href="#">Something else here</b-dropdown-item>
113
- </b-dropdown>
114
-
115
- <b-dropdown id="dropdown-dropleft" dropleft text="Drop-Left" variant="primary" class="m-2">
116
- <b-dropdown-item href="#">Action</b-dropdown-item>
117
- <b-dropdown-item href="#">Another action</b-dropdown-item>
118
- <b-dropdown-item href="#">Something else here</b-dropdown-item>
119
- </b-dropdown>
120
- </div>
121
-
122
- <!-- b-dropdown-dropright-dropleft.vue -->
123
- ```
124
-
125
- ### Auto "flipping"
126
-
127
- By default, dropdowns may flip to the top, or to the bottom, based on their current position in the
128
- viewport. To disable this auto-flip feature, set the `no-flip` prop.
129
-
130
- ### Menu offset
131
-
132
- Like to move your menu away from the toggle buttons a bit? Then use the `offset` prop to specify the
133
- number of pixels to push right (or left when negative) from the toggle button:
134
-
135
- - Specified as a number of pixels: positive for right shift, negative for left shift.
136
- - Specify the distance in CSS units (i.e. `0.3rem`, `4px`, `1.2em`, etc.) passed as a string.
137
-
138
- ```html
139
- <div>
140
- <b-dropdown id="dropdown-offset" offset="25" text="Offset Dropdown" class="m-2">
141
- <b-dropdown-item href="#">Action</b-dropdown-item>
142
- <b-dropdown-item href="#">Another action</b-dropdown-item>
143
- <b-dropdown-item href="#">Something else here</b-dropdown-item>
144
- </b-dropdown>
145
- </div>
146
-
147
- <!-- b-dropdown-offset.vue -->
148
- ```
149
-
150
- ### Boundary constraint
151
-
152
- By default, dropdowns are visually constrained to its scroll parent, which will suffice in most
153
- situations. However, if you place a dropdown inside an element that has `overflow: scroll` (or
154
- similar) set, the dropdown menu may - in some situations - get cut off. To get around this, you can
155
- specify a boundary element via the `boundary` prop. Supported values are `'scrollParent'` (the
156
- default), `'viewport'`, `'window'` or a reference to an HTML element. The boundary value is passed
157
- directly to Popper.js's `boundariesElement` configuration option.
158
-
159
- **Note:** When `boundary` is any value other than the default of `'scrollParent'`, the style
160
- `position: static` is applied to to the dropdown component's root element in order to allow the menu
161
- to "break-out" of its scroll container. In some situations this may affect your layout or
162
- positioning of the dropdown trigger button. In these cases you may need to wrap your dropdown inside
163
- another element.
164
-
165
- ### Advanced Popper.js configuration
166
-
167
- If you need some advanced Popper.js configuration to make dropdowns behave to your needs, you can
168
- use the `popper-opts` prop to pass down a custom configuration object which will be deeply merged
169
- with the BootstrapVue defaults.
170
-
171
- Head to the [Popper.js docs](https://popper.js.org/docs/v1/) to see all the configuration options.
172
-
173
- **Note**: The props `offset`, `boundary` and `no-flip` may loose their effect when you overwrite the
174
- Popper.js configuration.
175
-
176
- ## Split button support
177
-
178
- Create a split dropdown button, where the left button provides standard `click` event and link
179
- support, while the right hand side is the dropdown menu toggle button.
180
-
181
- ```html
182
- <div>
183
- <b-dropdown split text="Split Dropdown" class="m-2">
184
- <b-dropdown-item href="#">Action</b-dropdown-item>
185
- <b-dropdown-item href="#">Another action</b-dropdown-item>
186
- <b-dropdown-item href="#">Something else here...</b-dropdown-item>
187
- </b-dropdown>
188
- </div>
189
-
190
- <!-- b-dropdown-split.vue -->
191
- ```
192
-
193
- ### Split button link support
194
-
195
- The left split button defaults to an element of type `<button>` (a `<b-button>` to be exact). To
196
- convert this button into a link or `<router-link>`, specify the href via the `split-href` prop or a
197
- router link `to` value via the `split-to` prop, while maintaining the look of a button.
198
-
199
- ```html
200
- <div>
201
- <b-dropdown split split-href="#foo/bar" text="Split Link" class="m-2">
202
- <b-dropdown-item href="#">Action</b-dropdown-item>
203
- <b-dropdown-item href="#">Another action</b-dropdown-item>
204
- <b-dropdown-item href="#">Something else here...</b-dropdown-item>
205
- </b-dropdown>
206
- </div>
207
-
208
- <!-- b-dropdown-split-link.vue -->
209
- ```
210
-
211
- ### Split button type
212
-
213
- The split button defaults to a button `type` of `'button'`. You can specify an alternate type via
214
- the `split-button-type` prop. Supported values are: `'button'`, `'submit'` and `'reset'`.
215
-
216
- If props `split-to` or `split-href` are set, the `split-button-type` prop will be ignored.
217
-
218
- ## Styling options
219
-
220
- Dropdowns support various props for styling the dropdown trigger button.
221
-
222
- ### Sizing
223
-
224
- Dropdowns work with trigger buttons of all sizes, including default and split dropdown buttons.
225
-
226
- Set the `size` prop to either `sm` for small button(s), or `lg` for large button(s).
227
-
228
- ```html
229
- <div>
230
- <div>
231
- <b-dropdown size="lg" text="Large" class="m-2">
232
- <b-dropdown-item-button>Action</b-dropdown-item-button>
233
- <b-dropdown-item-button>Another action</b-dropdown-item-button>
234
- <b-dropdown-item-button>Something else here</b-dropdown-item-button>
235
- </b-dropdown>
236
-
237
- <b-dropdown size="lg" split text="Large Split" class="m-2">
238
- <b-dropdown-item-button>Action</b-dropdown-item-button>
239
- <b-dropdown-item-button>Another action</b-dropdown-item-button>
240
- <b-dropdown-item-button>Something else here...</b-dropdown-item-button>
241
- </b-dropdown>
242
- </div>
243
- <div>
244
- <b-dropdown size="sm" text="Small" class="m-2">
245
- <b-dropdown-item-button>Action</b-dropdown-item-button>
246
- <b-dropdown-item-button>Another action</b-dropdown-item-button>
247
- <b-dropdown-item-button>Something else here...</b-dropdown-item-button>
248
- </b-dropdown>
249
-
250
- <b-dropdown size="sm" split text="Small Split" class="m-2">
251
- <b-dropdown-item-button>Action</b-dropdown-item-button>
252
- <b-dropdown-item-button>Another action</b-dropdown-item-button>
253
- <b-dropdown-item-button>Something else here...</b-dropdown-item-button>
254
- </b-dropdown>
255
- </div>
256
- </div>
257
-
258
- <!-- b-dropdown-sizes.vue -->
259
- ```
260
-
261
- **Note:** _changing the size of the button(s) does not affect the size of the menu items!_
262
-
263
- ### Dropdown color variants
264
-
265
- The dropdown toggle button can have one of the standard Bootstrap contextual variants applied by
266
- setting the prop `variant` to `success`, `primary`, `info`, `danger`, `link`, `outline-dark`, etc.
267
- (or custom variants, if defined). The default variant is `secondary`.
268
-
269
- See the [Variant Reference](/docs/reference/color-variants) for a full list of built-in contextual
270
- variants.
271
-
272
- ```html
273
- <div>
274
- <b-dropdown text="Primary" variant="primary" class="m-2">
275
- <b-dropdown-item href="#">Action</b-dropdown-item>
276
- <b-dropdown-item href="#">Another action</b-dropdown-item>
277
- <b-dropdown-item href="#">Something else here</b-dropdown-item>
278
- </b-dropdown>
279
-
280
- <b-dropdown text="Success" variant="success" class="m-2">
281
- <b-dropdown-item href="#">Action</b-dropdown-item>
282
- <b-dropdown-item href="#">Another action</b-dropdown-item>
283
- <b-dropdown-item href="#">Something else here</b-dropdown-item>
284
- </b-dropdown>
285
-
286
- <b-dropdown text="Outline Danger" variant="outline-danger" class="m-2">
287
- <b-dropdown-item href="#">Action</b-dropdown-item>
288
- <b-dropdown-item href="#">Another action</b-dropdown-item>
289
- <b-dropdown-item href="#">Something else here</b-dropdown-item>
290
- </b-dropdown>
291
- </div>
292
-
293
- <!-- b-dropdown-variants.vue -->
294
- ```
295
-
296
- You can also apply arbitrary classes to the toggle button via the `toggle-class` prop. This prop
297
- accepts either a string or array of strings.
298
-
299
- ### Split button color variant
300
-
301
- By default the left split button uses the same `variant` as the `toggle` button. You can give the
302
- split button its own variant via the `split-variant` prop.
303
-
304
- ```html
305
- <div>
306
- <b-dropdown
307
- split
308
- split-variant="outline-primary"
309
- variant="primary"
310
- text="Split Variant Dropdown"
311
- class="m-2"
312
- >
313
- <b-dropdown-item href="#">Action</b-dropdown-item>
314
- <b-dropdown-item href="#">Another action</b-dropdown-item>
315
- <b-dropdown-item href="#">Something else here...</b-dropdown-item>
316
- </b-dropdown>
317
- </div>
318
-
319
- <!-- b-dropdown-split-variant.vue -->
320
- ```
321
-
322
- ### Block level dropdowns
323
-
324
- By default dropdowns act like buttons and are displayed inline. To create block level dropdowns
325
- (that span to the full width of a parent) set the `block` prop. Both, regular and split button
326
- dropdowns are supported.
327
-
328
- ```html
329
- <div>
330
- <b-dropdown text="Block Level Dropdown" block variant="primary" class="m-2">
331
- <b-dropdown-item href="#">Action</b-dropdown-item>
332
- <b-dropdown-item href="#">Another action</b-dropdown-item>
333
- <b-dropdown-item href="#">Something else here</b-dropdown-item>
334
- </b-dropdown>
335
-
336
- <b-dropdown
337
- text="Block Level Split Dropdown"
338
- block
339
- split
340
- split-variant="outline-primary"
341
- variant="primary"
342
- class="m-2"
343
- >
344
- <b-dropdown-item href="#">Action</b-dropdown-item>
345
- <b-dropdown-item href="#">Another action</b-dropdown-item>
346
- <b-dropdown-item href="#">Something else here...</b-dropdown-item>
347
- </b-dropdown>
348
- </div>
349
-
350
- <!-- b-dropdown-block.vue -->
351
- ```
352
-
353
- If you want the dropdown menu to span to the full width of the parent container too, add the `w-100`
354
- utility class to the `menu-class` prop.
355
-
356
- ```html
357
- <div>
358
- <b-dropdown
359
- text="Block Level Dropdown Menu"
360
- block
361
- variant="primary"
362
- class="m-2"
363
- menu-class="w-100"
364
- >
365
- <b-dropdown-item href="#">Action</b-dropdown-item>
366
- <b-dropdown-item href="#">Another action</b-dropdown-item>
367
- <b-dropdown-item href="#">Something else here</b-dropdown-item>
368
- </b-dropdown>
369
- </div>
370
-
371
- <!-- b-dropdown-block-menu.vue -->
372
- ```
373
-
374
- ### Dropdown sub-component color variants
375
-
376
- Many of the supported dropdown [sub-components](#dropdown-supported-sub-components) provide a
377
- `variant` prop for controlling their text color.
378
-
379
- ### Hidden caret
380
-
381
- The dropdown can be created with the toggle's caret visually hidden by setting the `no-caret` prop
382
- to `true`. This is useful when the dropdown is to be displayed as an icon.
383
-
384
- ```html
385
- <div>
386
- <b-dropdown size="lg" variant="link" toggle-class="text-decoration-none" no-caret>
387
- <template #button-content>
388
- &#x1f50d;<span class="sr-only">Search</span>
389
- </template>
390
- <b-dropdown-item href="#">Action</b-dropdown-item>
391
- <b-dropdown-item href="#">Another action</b-dropdown-item>
392
- <b-dropdown-item href="#">Something else here...</b-dropdown-item>
393
- </b-dropdown>
394
- </div>
395
-
396
- <!-- b-dropdown-hidden-caret.vue -->
397
- ```
398
-
399
- **Note:** The caret will always be shown when using `split` mode.
400
-
401
- ## Lazy dropdown
402
-
403
- By default, `<b-dropdown>` renders the menu contents in the DOM even when the menu is not shown.
404
- When there are a large number of dropdowns rendered on the same page, performance could be impacted
405
- due to larger overall memory utilization. You can instruct `<b-dropdown>` to render the menu
406
- contents only when it is shown by setting the `lazy` prop to true.
407
-
408
- ## Dropdown supported sub-components
409
-
410
- The following components can be placed inside of your dropdowns. Using any other component or markup
411
- may break layout and/or keyboard navigation.
412
-
413
- | Sub-component | Description | Aliases |
414
- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- |
415
- | `<b-dropdown-item>` | Action items that provide click, link, and `<router-link>`/`<nuxt-link>` functionality. Renders as an `<a>` element by default. | `<b-dd-item>` |
416
- | `<b-dropdown-item-button>` | An alternative to `<b-dropdown-item>` that renders a menu item using a `<button>` element. | `<b-dropdown-item-btn>`, `<b-dd-item-button>`, `<b-dd-item-btn>` |
417
- | `<b-dropdown-divider>` | A divider / spacer which can be used to separate dropdown items. | `<b-dd-divider>` |
418
- | `<b-dropdown-text>` | Free flowing text content in a menu. | `<b-dd-text>` |
419
- | `<b-dropdown-form>` | For placing form controls within a dropdown menu. | `<b-dd-form>` |
420
- | `<b-dropdown-group>` | For grouping dropdown sub components with an optional header. | `<b-dd-group>` |
421
- | `<b-dropdown-header>` | A header item, used to help identify a group of dropdown items. | `<b-dd-header>` |
422
-
423
- **Note:** _Nested sub-menus are **not** supported._
424
-
425
- ### `<b-dropdown-item>`
426
-
427
- The `<b-dropdown-item>` is typically used to create a navigation link inside your menu. Use either
428
- the `href` prop or the `to` prop (for router link support) to generate the appropriate navigation
429
- link. If neither `href` nor `to` are provided, a standard `<a>` link will be generated with an
430
- `href` of `#` (with an event handler that will prevent scroll to top behaviour by preventing the
431
- default link action).
432
-
433
- Disabled the dropdown item by setting the `disabled` prop.
434
-
435
- ### `<b-dropdown-item-button>`
436
-
437
- Historically dropdown menu contents had to be links (`<b-dropdown-item>`), but that's no longer the
438
- case with Bootstrap v4. Now you can optionally create `<button>` elements in your dropdowns by using
439
- the `<b-dropdown-item-button>` sub-component. `<b-dropdown-item-button>` does not support the `href`
440
- or `to` props.
441
-
442
- Disabled the dropdown item button by setting the `disabled` prop.
443
-
444
- ```html
445
- <div>
446
- <b-dropdown id="dropdown-buttons" text="Dropdown using buttons as menu items" class="m-2">
447
- <b-dropdown-item-button>I'm a button</b-dropdown-item-button>
448
- <b-dropdown-item-button active>I'm a active button</b-dropdown-item-button>
449
- <b-dropdown-item-button disabled>I'm a button, but disabled!</b-dropdown-item-button>
450
- <b-dropdown-item-button>I don't look like a button, but I am!</b-dropdown-item-button>
451
- </b-dropdown>
452
- </div>
453
-
454
- <!-- b-dropdown-item-button.vue -->
455
- ```
456
-
457
- When the menu item doesn't trigger navigation, it is recommended to use the
458
- `<b-dropdown-item-button>` sub-component.
459
-
460
- ### `<b-dropdown-divider>`
461
-
462
- Separate groups of related menu items with `<b-dropdown-divider>`.
463
-
464
- ```html
465
- <div>
466
- <b-dropdown id="dropdown-divider" text="Dropdown with divider" class="m-2">
467
- <b-dropdown-item-button>First item</b-dropdown-item-button>
468
- <b-dropdown-item-button>Second item</b-dropdown-item-button>
469
- <b-dropdown-divider></b-dropdown-divider>
470
- <b-dropdown-item-button>Separated Item</b-dropdown-item-button>
471
- </b-dropdown>
472
- </div>
473
-
474
- <!-- b-dropdown-divider.vue -->
475
- ```
476
-
477
- ### `<b-dropdown-text>`
478
-
479
- Place any freeform text within a dropdown menu using the `<b-dropdown-text>` sub component or use
480
- text and use spacing utilities. Note that you'll likely need additional sizing styles to
481
- constrain/set the menu width.
482
-
483
- ```html
484
- <div>
485
- <b-dropdown id="dropdown-text" text="Dropdown with text" class="m-2">
486
- <b-dropdown-text style="width: 240px;">
487
- Some example text that's free-flowing within the dropdown menu.
488
- </b-dropdown-text>
489
- <b-dropdown-text>And this is more example text.</b-dropdown-text>
490
- <b-dropdown-divider></b-dropdown-divider>
491
- <b-dropdown-item-button>First item</b-dropdown-item-button>
492
- <b-dropdown-item-button>Second Item</b-dropdown-item-button>
493
- </b-dropdown>
494
- </div>
495
-
496
- <!-- b-dropdown-text.vue -->
497
- ```
498
-
499
- `<b-dropdown-text>` has the BootstrapVue custom class `.b-dropdown-text` applied to it which sets
500
- some basic styles which are suitable in most situations. By default its width will be the same as
501
- the widest `<b-dropdown-item>` content. You may need to place additional styles or helper classes on
502
- the component.
503
-
504
- By default `<b-dropdown-text>` renders using tag `<p>`. You can change the rendered tag by setting
505
- the `tag` prop to any valid HTML5 tag on the `<b-dropdown-text>` sub-component.
506
-
507
- ### `<b-dropdown-form>`
508
-
509
- Dropdowns support basic forms. Put a `<b-dropdown-form>` within a dropdown menu and place form
510
- controls within the `<b-dropdown-form>`. The `<b-dropdown-form>` is based on the
511
- [`<gl-form>`](?path=/docs/base-form-form--docs) component, and supports the same props and
512
- attributes as a regular form.
513
-
514
- ```html
515
- <template>
516
- <div>
517
- <b-dropdown id="dropdown-form" text="Dropdown with form" ref="dropdown" class="m-2">
518
- <b-dropdown-form>
519
- <b-form-group label="Email" label-for="dropdown-form-email" @submit.stop.prevent>
520
- <b-form-input
521
- id="dropdown-form-email"
522
- size="sm"
523
- placeholder="email@example.com"
524
- ></b-form-input>
525
- </b-form-group>
526
-
527
- <b-form-group label="Password" label-for="dropdown-form-password">
528
- <b-form-input
529
- id="dropdown-form-password"
530
- type="password"
531
- size="sm"
532
- placeholder="Password"
533
- ></b-form-input>
534
- </b-form-group>
535
-
536
- <b-form-checkbox class="mb-3">Remember me</b-form-checkbox>
537
- <b-button variant="primary" size="sm" @click="onClick">Sign In</b-button>
538
- </b-dropdown-form>
539
- <b-dropdown-divider></b-dropdown-divider>
540
- <b-dropdown-item-button>New around here? Sign up</b-dropdown-item-button>
541
- <b-dropdown-item-button>Forgot Password?</b-dropdown-item-button>
542
- </b-dropdown>
543
- </div>
544
- </template>
545
-
546
- <script>
547
- export default {
548
- methods: {
549
- onClick() {
550
- // Close the menu and (by passing true) return focus to the toggle button
551
- this.$refs.dropdown.hide(true)
552
- }
553
- }
554
- }
555
- </script>
556
-
557
- <!-- b-dropdown-form.vue -->
558
- ```
559
-
560
- `<b-dropdown-form>` has the BootstrapVue custom class `.b-dropdown-form` applied to it which sets
561
- some basic styles which are suitable in most situations. By default its width will be the same as
562
- the widest `<b-dropdown-item>` content. You may need to place additional styles or helper classes on
563
- the component.
564
-
565
- ### `<b-dropdown-group>`
566
-
567
- Group a set of dropdown sub components with an optional associated header. Place a
568
- `<b-dropdown-divider>` between your `<b-dropdown-group>` and other groups or non-grouped dropdown
569
- contents
570
-
571
- ```html
572
- <div>
573
- <b-dropdown id="dropdown-grouped" text="Dropdown with group" class="m-2">
574
- <b-dropdown-item-button>
575
- Non-grouped Item
576
- </b-dropdown-item-button>
577
- <b-dropdown-divider></b-dropdown-divider>
578
- <b-dropdown-group id="dropdown-group-1" header="Group 1">
579
- <b-dropdown-item-button>First Grouped item</b-dropdown-item-button>
580
- <b-dropdown-item-button>Second Grouped Item</b-dropdown-item-button>
581
- </b-dropdown-group>
582
- <b-dropdown-group id="dropdown-group-2" header="Group 2">
583
- <b-dropdown-item-button>First Grouped item</b-dropdown-item-button>
584
- <b-dropdown-item-button>Second Grouped Item</b-dropdown-item-button>
585
- </b-dropdown-group>
586
- <b-dropdown-divider></b-dropdown-divider>
587
- <b-dropdown-item-button>
588
- Another Non-grouped Item
589
- </b-dropdown-item-button>
590
- </b-dropdown>
591
- </div>
592
-
593
- <!-- b-dropdown-group.vue -->
594
- ```
595
-
596
- Using `<b-dropdown-group>` instead of `<b-dropdown-header>` is the recommended method for providing
597
- accessible grouped items with a header.
598
-
599
- ### `<b-dropdown-header>`
600
-
601
- Add a header to label sections of actions in any dropdown menu.
602
-
603
- ```html
604
- <div>
605
- <b-dropdown id="dropdown-header" text="Dropdown with header" class="m-2">
606
- <b-dropdown-header id="dropdown-header-label">
607
- Dropdown header
608
- </b-dropdown-header>
609
- <b-dropdown-item-button aria-describedby="dropdown-header-label">
610
- First item
611
- </b-dropdown-item-button>
612
- <b-dropdown-item-button aria-describedby="dropdown-header-label">
613
- Second Item
614
- </b-dropdown-item-button>
615
- </b-dropdown>
616
- </div>
617
-
618
- <!-- b-dropdown-header.vue -->
619
- ```
620
-
621
- See Section [Dropdown headers and accessibility](#dropdown-headers-and-accessibility) for details on
622
- making headers more accessible for users of assistive technologies.
623
-
624
- Using the `<b-dropdown-group>` sub-component simplifies creating accessible grouped dropdown items
625
- with an associated header.
626
-
627
- #### Closing the menu via form interaction
628
-
629
- Clicking buttons inside of a `<b-dropdown-form>` will not automatically close the menu. If you need
630
- to close the menu using a button (or via the form submit event), call the `hide()` method on the
631
- `<b-dropdown>` instance, as is shown in the above example.
632
-
633
- The `hide()` method accepts a single boolean argument. If the argument is `true`, then focus will be
634
- returned to the dropdown toggle button after the menu has closed. Otherwise the document will gain
635
- focus once the menu is closed.
636
-
637
- ## Listening to dropdown changes via \$root events
638
-
639
- To listen to any dropdown opening, use:
640
-
641
- ```js
642
- export default {
643
- mounted() {
644
- this.$root.$on('bv::dropdown::show', bvEvent => {
645
- console.log('Dropdown is about to be shown', bvEvent)
646
- })
647
- }
648
- }
649
- ```
650
-
651
- Refer to the [Events](#component-reference) section of documentation for the full list of events.
652
-
653
- ## Optionally scoped default slot
654
-
655
- The default slot is optionally scoped with the following scope available:
656
-
657
- | Property or Method | Description |
658
- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------- |
659
- | `hide()` | Can be used to close the dropdown menu. Accepts an optional boolean argument, which if `true` returns focus to the toggle button |
660
-
661
- ## Accessibility
662
-
663
- Providing a unique `id` prop ensures ARIA compliance by automatically adding the appropriate
664
- `aria-*` attributes in the rendered markup.
665
-
666
- The default ARIA role is set to `menu`, but you can change this default to another role (such as
667
- `navigation`) via the `role` prop, depending on your user case. The `role` prop value will be used
668
- to determine `aria-haspopup` attribute for the toggle button.
669
-
670
- When a menu item doesn't trigger navigation, it is recommended to use the `<b-dropdown-item-button>`
671
- sub-component (which is not announced as a link) instead of `<b-dropdown-item>` (which is presented
672
- as a link to the user).
673
-
674
- ### Headers and accessibility
675
-
676
- When using `<b-dropdown-header>` components in the dropdown menu, it is recommended to add an `id`
677
- attribute to each of the headers, and then set the `aria-describedby` attribute (set to the `id`
678
- value of the associated header) on each following dropdown items under that header. This will
679
- provide users of assistive technologies (i.e. sight-impaired users) additional context about the
680
- dropdown item:
681
-
682
- ```html
683
- <div>
684
- <b-dropdown id="dropdown-aria" text="Dropdown ARIA" variant="primary" class="m-2">
685
- <b-dropdown-header id="dropdown-header-1">Groups</b-dropdown-header>
686
- <b-dropdown-item-button aria-describedby="dropdown-header-1">Add</b-dropdown-item-button>
687
- <b-dropdown-item-button aria-describedby="dropdown-header-1">Delete</b-dropdown-item-button>
688
-
689
- <b-dropdown-header id="dropdown-header-2">Users</b-dropdown-header>
690
- <b-dropdown-item-button aria-describedby="dropdown-header-2">Add</b-dropdown-item-button>
691
- <b-dropdown-item-button aria-describedby="dropdown-header-2">Delete</b-dropdown-item-button>
692
-
693
- <b-dropdown-divider></b-dropdown-divider>
694
-
695
- <b-dropdown-item-button>
696
- Something <strong>not</strong> associated with Users
697
- </b-dropdown-item-button>
698
-
699
- </b-dropdown>
700
- </div>
701
-
702
- <!-- b-dropdown-aria.vue -->
703
- ```
704
-
705
- As a simplified alternative, use the `<b-dropdown-group>` instead to easily associate header text to
706
- the contained dropdown sub-components.
707
-
708
- ### Keyboard navigation
709
-
710
- Dropdowns support keyboard navigation, emulating native `<select>` behaviour.
711
-
712
- Note that <kbd>Down</kbd> and <kbd>Up</kbd> will not move focus into `<b-dropdown-form>` sub
713
- components, but users can still use <kbd>Tab</kbd> or <kbd>Shift</kbd>+<kbd>Tab</kbd> to move into
714
- form controls within the menu.
715
-
716
- ## Implementation notes
717
-
718
- The dropdown menu is rendered with semantic `<ul>` and `<li>` elements for accessibility reasons.
719
- The `.dropdown-menu` is the `<ul>` element, while dropdown items (items, buttons, text, form,
720
- headers, and dividers) are wrapped in an `<li>` element. If creating custom items to place inside
721
- the dropdown menu, ensure they are wrapped with a plain `<li>`.
722
-
723
- ## See also
724
-
725
- - [`<b-nav-item-dropdown>`](?path=/docs/base-nav--docs#dropdown-support) for dropdown support inside
726
- `<b-nav>`
727
- - [Router Link Support](?path=/docs/base-link--docs#router-link-support) reference for information
728
- about router-link specific props available on `<b-dropdown-item>`
729
-
730
- <!-- Component reference added automatically from component package.json -->