@gitlab/ui 32.17.0 → 32.20.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 (132) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/components/base/accordion/accordion.js +7 -0
  3. package/dist/components/base/accordion/accordion_item.js +11 -0
  4. package/dist/components/base/alert/alert.js +3 -3
  5. package/dist/components/base/button/button.documentation.js +17 -1
  6. package/dist/components/base/button/button.js +10 -10
  7. package/dist/components/base/card/card.documentation.js +2 -26
  8. package/dist/components/base/card/card.js +11 -0
  9. package/dist/components/base/daterange_picker/daterange_picker.js +43 -1
  10. package/dist/components/base/dropdown/dropdown.js +9 -9
  11. package/dist/components/base/form/form_checkbox/form_checkbox.documentation.js +2 -14
  12. package/dist/components/base/form/form_checkbox/form_checkbox.js +21 -1
  13. package/dist/components/base/form/form_checkbox/form_checkbox_group.js +2 -2
  14. package/dist/components/base/form/form_input_group/form_input_group.js +1 -1
  15. package/dist/components/base/form/form_input_group/form_input_group_mixin.js +2 -2
  16. package/dist/components/base/form/form_radio_group/form_radio_group.js +2 -2
  17. package/dist/components/base/tabs/tabs/examples/tabs.basic.example.js +1 -1
  18. package/dist/components/base/tabs/tabs/examples/tabs.counterbadges.example.js +1 -1
  19. package/dist/components/base/tabs/tabs/examples/tabs.custom_title.example.js +1 -1
  20. package/dist/components/base/tabs/tabs/examples/tabs.disabled.example.js +1 -1
  21. package/dist/components/base/tabs/tabs/examples/tabs.justified.example.js +1 -1
  22. package/dist/components/base/tabs/tabs/examples/tabs.scrollable.example.js +2 -2
  23. package/dist/components/base/tabs/tabs/examples/tabs.styles_only.example.js +1 -1
  24. package/dist/components/base/tabs/tabs/tabs.documentation.js +1 -1
  25. package/dist/components/mixins/button_mixin.js +4 -4
  26. package/dist/directives/safe_html/safe_html.js +1 -1
  27. package/dist/index.css +2 -2
  28. package/dist/index.css.map +1 -1
  29. package/dist/index.js +1 -1
  30. package/dist/utility_classes.css +1 -1
  31. package/dist/utility_classes.css.map +1 -1
  32. package/dist/utils/charts/mock_data.js +0 -2
  33. package/dist/utils/constants.js +8 -8
  34. package/dist/utils/use_fake_date.js +4 -4
  35. package/dist/utils/validation_utils.js +0 -2
  36. package/documentation/components_documentation.js +0 -3
  37. package/documentation/documented_stories.js +5 -0
  38. package/index.js +1 -1
  39. package/package.json +12 -12
  40. package/src/components/base/accordion/accordion.md +0 -4
  41. package/src/components/base/accordion/accordion.stories.js +58 -20
  42. package/src/components/base/accordion/accordion.vue +7 -0
  43. package/src/components/base/accordion/accordion_item.md +0 -4
  44. package/src/components/base/accordion/accordion_item.stories.js +56 -11
  45. package/src/components/base/accordion/accordion_item.vue +10 -0
  46. package/src/components/base/alert/alert.spec.js +3 -3
  47. package/src/components/base/alert/alert.vue +3 -3
  48. package/src/components/base/badge/badge.scss +1 -0
  49. package/src/components/base/button/button.documentation.js +18 -0
  50. package/src/components/base/button/button.stories.js +13 -13
  51. package/src/components/base/button/button.vue +15 -15
  52. package/src/components/base/card/card.documentation.js +0 -27
  53. package/src/components/base/card/card.md +0 -4
  54. package/src/components/base/card/card.stories.js +32 -18
  55. package/src/components/base/card/card.vue +12 -0
  56. package/src/components/base/datepicker/datepicker.scss +9 -0
  57. package/src/components/base/datepicker/datepicker.stories.js +1 -1
  58. package/src/components/base/daterange_picker/daterange_picker.md +0 -4
  59. package/src/components/base/daterange_picker/daterange_picker.stories.js +151 -88
  60. package/src/components/base/daterange_picker/daterange_picker.vue +43 -4
  61. package/src/components/base/dropdown/dropdown.stories.js +5 -5
  62. package/src/components/base/dropdown/dropdown.vue +12 -12
  63. package/src/components/base/form/form_checkbox/form_checkbox.documentation.js +0 -15
  64. package/src/components/base/form/form_checkbox/form_checkbox.md +2 -4
  65. package/src/components/base/form/form_checkbox/form_checkbox.stories.js +31 -39
  66. package/src/components/base/form/form_checkbox/form_checkbox.vue +21 -6
  67. package/src/components/base/form/form_checkbox/form_checkbox_group.vue +1 -1
  68. package/src/components/base/form/form_input_group/form_input_group.vue +1 -1
  69. package/src/components/base/form/form_input_group/form_input_group_mixin.js +1 -1
  70. package/src/components/base/form/form_radio_group/form_radio_group.vue +1 -1
  71. package/src/components/base/tabs/tabs/examples/tabs.basic.example.vue +2 -2
  72. package/src/components/base/tabs/tabs/examples/tabs.counterbadges.example.vue +9 -6
  73. package/src/components/base/tabs/tabs/examples/tabs.custom_title.example.vue +3 -3
  74. package/src/components/base/tabs/tabs/examples/tabs.disabled.example.vue +3 -3
  75. package/src/components/base/tabs/tabs/examples/tabs.justified.example.vue +2 -2
  76. package/src/components/base/tabs/tabs/examples/tabs.scrollable.example.vue +2 -2
  77. package/src/components/base/tabs/tabs/examples/tabs.styles_only.example.vue +4 -4
  78. package/src/components/base/tabs/tabs/tabs.md +8 -8
  79. package/src/components/base/tabs/tabs/tabs.stories.js +42 -40
  80. package/src/components/mixins/button_mixin.js +3 -3
  81. package/src/directives/safe_html/safe_html.js +1 -3
  82. package/src/directives/safe_html/safe_html.spec.js +1 -1
  83. package/src/scss/utilities.scss +8 -0
  84. package/src/scss/utility-mixins/sizing.scss +4 -0
  85. package/src/utils/charts/mock_data.js +0 -2
  86. package/src/utils/constants.js +7 -7
  87. package/src/utils/use_fake_date.js +2 -2
  88. package/src/utils/validation_utils.js +0 -2
  89. package/dist/components/base/accordion/accordion.documentation.js +0 -20
  90. package/dist/components/base/accordion/accordion_item.documentation.js +0 -22
  91. package/dist/components/base/accordion/examples/accordion.auto_collapse.example.js +0 -38
  92. package/dist/components/base/accordion/examples/accordion.basic.example.js +0 -38
  93. package/dist/components/base/accordion/examples/accordion.initial_visible.example.js +0 -38
  94. package/dist/components/base/accordion/examples/index.js +0 -25
  95. package/dist/components/base/card/examples/card.basic.example.js +0 -38
  96. package/dist/components/base/card/examples/card.headerfooter.example.js +0 -38
  97. package/dist/components/base/card/examples/index.js +0 -19
  98. package/dist/components/base/daterange_picker/daterange_picker.documentation.js +0 -29
  99. package/dist/components/base/daterange_picker/examples/daterange_picker.basic.example.js +0 -49
  100. package/dist/components/base/daterange_picker/examples/index.js +0 -12
  101. package/dist/components/base/form/form_checkbox/examples/form_checkbox.checked.example.js +0 -48
  102. package/dist/components/base/form/form_checkbox/examples/form_checkbox.checked_disabled.example.js +0 -48
  103. package/dist/components/base/form/form_checkbox/examples/form_checkbox.disabled.example.js +0 -38
  104. package/dist/components/base/form/form_checkbox/examples/form_checkbox.help.example.js +0 -38
  105. package/dist/components/base/form/form_checkbox/examples/form_checkbox.indeterminant.example.js +0 -38
  106. package/dist/components/base/form/form_checkbox/examples/form_checkbox.unchecked.example.js +0 -38
  107. package/dist/components/base/form/form_checkbox/examples/form_checkbox.values.example.js +0 -48
  108. package/dist/components/base/form/form_checkbox/examples/form_checkbox_group.options_array.example.js +0 -58
  109. package/dist/components/base/form/form_checkbox/examples/form_checkbox_group.slots.example.js +0 -38
  110. package/dist/components/base/form/form_checkbox/examples/index.js +0 -55
  111. package/src/components/base/accordion/accordion.documentation.js +0 -19
  112. package/src/components/base/accordion/accordion_item.documentation.js +0 -20
  113. package/src/components/base/accordion/examples/accordion.auto_collapse.example.vue +0 -16
  114. package/src/components/base/accordion/examples/accordion.basic.example.vue +0 -17
  115. package/src/components/base/accordion/examples/accordion.initial_visible.example.vue +0 -16
  116. package/src/components/base/accordion/examples/index.js +0 -29
  117. package/src/components/base/card/examples/card.basic.example.vue +0 -3
  118. package/src/components/base/card/examples/card.headerfooter.example.vue +0 -11
  119. package/src/components/base/card/examples/index.js +0 -22
  120. package/src/components/base/daterange_picker/daterange_picker.documentation.js +0 -34
  121. package/src/components/base/daterange_picker/examples/daterange_picker.basic.example.vue +0 -13
  122. package/src/components/base/daterange_picker/examples/index.js +0 -14
  123. package/src/components/base/form/form_checkbox/examples/form_checkbox.checked.example.vue +0 -13
  124. package/src/components/base/form/form_checkbox/examples/form_checkbox.checked_disabled.example.vue +0 -13
  125. package/src/components/base/form/form_checkbox/examples/form_checkbox.disabled.example.vue +0 -3
  126. package/src/components/base/form/form_checkbox/examples/form_checkbox.help.example.vue +0 -6
  127. package/src/components/base/form/form_checkbox/examples/form_checkbox.indeterminant.example.vue +0 -3
  128. package/src/components/base/form/form_checkbox/examples/form_checkbox.unchecked.example.vue +0 -3
  129. package/src/components/base/form/form_checkbox/examples/form_checkbox.values.example.vue +0 -15
  130. package/src/components/base/form/form_checkbox/examples/form_checkbox_group.options_array.example.vue +0 -27
  131. package/src/components/base/form/form_checkbox/examples/form_checkbox_group.slots.example.vue +0 -11
  132. package/src/components/base/form/form_checkbox/examples/index.js +0 -67
package/CHANGELOG.md CHANGED
@@ -1,3 +1,31 @@
1
+ # [32.20.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v32.19.1...v32.20.0) (2021-10-14)
2
+
3
+
4
+ ### Features
5
+
6
+ * **Tabs:** Badge counter should use SR only ([4706ff0](https://gitlab.com/gitlab-org/gitlab-ui/commit/4706ff0fb1f6b550133d904868d19bc39d01ef45))
7
+
8
+ ## [32.19.1](https://gitlab.com/gitlab-org/gitlab-ui/compare/v32.19.0...v32.19.1) (2021-10-11)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **badge:** Override bootstrap hover style ([c065687](https://gitlab.com/gitlab-org/gitlab-ui/commit/c065687b05ad1d8f5e3a45da0d120517825dae41))
14
+
15
+ # [32.19.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v32.18.0...v32.19.0) (2021-10-08)
16
+
17
+
18
+ ### Features
19
+
20
+ * **css:** add `gl-min-w-20` utility ([8340335](https://gitlab.com/gitlab-org/gitlab-ui/commit/8340335ec7c8d76989298154c1cfc761c492bc4a))
21
+
22
+ # [32.18.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v32.17.0...v32.18.0) (2021-10-05)
23
+
24
+
25
+ ### Features
26
+
27
+ * **Datepicker:** Add hover and disabled styles ([d5e1a81](https://gitlab.com/gitlab-org/gitlab-ui/commit/d5e1a8180f24a1238c5d86725d490b7e4829f6e7))
28
+
1
29
  # [32.17.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v32.16.0...v32.17.0) (2021-10-04)
2
30
 
3
31
 
@@ -12,11 +12,18 @@ var script = {
12
12
  },
13
13
 
14
14
  props: {
15
+ /*
16
+ When true, will have the effect of closing other accordion items when one accordion item is visible.
17
+ */
15
18
  autoCollapse: {
16
19
  type: Boolean,
17
20
  required: false,
18
21
  default: false
19
22
  },
23
+
24
+ /*
25
+ The header tag used in the accordion (h1/h2/h3/h4/h5/h6). This overrides the value provided by GlAccordion. For accessibility this should be set to an appropriate value in the context where the accordion is used.
26
+ */
20
27
  headerLevel: {
21
28
  type: Number,
22
29
  required: true,
@@ -16,15 +16,26 @@ var script = {
16
16
  inject: ['accordionSetId', 'defaultHeaderLevel'],
17
17
  inheritAttrs: false,
18
18
  props: {
19
+ /*
20
+ Used to set the title of accordion link
21
+ */
19
22
  title: {
20
23
  type: String,
21
24
  required: true
22
25
  },
26
+
27
+ /*
28
+ When set, it will ensure the accordion item is initially visible
29
+ */
23
30
  visible: {
24
31
  type: Boolean,
25
32
  default: false,
26
33
  required: false
27
34
  },
35
+
36
+ /*
37
+ The header tag used in the accordion (h1/h2/h3/h4/h5/h6). This overrides the value provided by GlAccordion. For accessibility this should be set to an appropriate value in the context where the accordion is used.,
38
+ */
28
39
  headerLevel: {
29
40
  type: Number,
30
41
  required: false,
@@ -1,4 +1,4 @@
1
- import { alertVariantOptions, alertVariantIconMap, newButtonCategoryOptions } from '../../../utils/constants';
1
+ import { alertVariantOptions, alertVariantIconMap, buttonCategoryOptions } from '../../../utils/constants';
2
2
  import CloseButton from '../../shared_components/close_button/close_button';
3
3
  import GlButton from '../button/button';
4
4
  import GlIcon from '../icon/icon';
@@ -106,7 +106,7 @@ var script = {
106
106
  attrs: {
107
107
  href: this.primaryButtonLink,
108
108
  variant: 'confirm',
109
- category: newButtonCategoryOptions.primary
109
+ category: buttonCategoryOptions.primary
110
110
  },
111
111
  listeners: {
112
112
  click: this.primaryButtonClicked
@@ -116,7 +116,7 @@ var script = {
116
116
  attrs: {
117
117
  href: this.secondaryButtonLink,
118
118
  variant: 'default',
119
- category: newButtonCategoryOptions.secondary
119
+ category: buttonCategoryOptions.secondary
120
120
  },
121
121
  listeners: {
122
122
  click: this.secondaryButtonClicked
@@ -2,7 +2,23 @@ var description = "Buttons execute an action, either in the background or foregr
2
2
 
3
3
  var button_documentation = {
4
4
  description,
5
- followsDesignSystem: true
5
+ followsDesignSystem: true,
6
+ bootstrapComponent: 'b-button',
7
+ bootstrapPropsInfo: {
8
+ category: {
9
+ enum: 'buttonCategoryOptions'
10
+ },
11
+ variant: {
12
+ enum: 'buttonVariantOptions'
13
+ },
14
+ size: {
15
+ enum: 'buttonSizeOptions'
16
+ }
17
+ },
18
+ events: [{
19
+ event: 'click',
20
+ description: 'Emitted when clicked on button'
21
+ }]
6
22
  };
7
23
 
8
24
  export default button_documentation;
@@ -1,5 +1,5 @@
1
1
  import { BButton } from 'bootstrap-vue/esm/index.js';
2
- import { newButtonCategoryOptions, newButtonVariantOptions, newButtonSizeOptions, newButtonSizeOptionsMap } from '../../../utils/constants';
2
+ import { buttonCategoryOptions, buttonVariantOptions, buttonSizeOptions, buttonSizeOptionsMap } from '../../../utils/constants';
3
3
  import { logWarning } from '../../../utils/utils';
4
4
  import { SafeLinkMixin } from '../../mixins/safe_link_mixin';
5
5
  import GlIcon from '../icon/icon';
@@ -17,20 +17,20 @@ var script = {
17
17
  category: {
18
18
  type: String,
19
19
  required: false,
20
- default: newButtonCategoryOptions.primary,
21
- validator: value => Object.keys(newButtonCategoryOptions).includes(value)
20
+ default: buttonCategoryOptions.primary,
21
+ validator: value => Object.keys(buttonCategoryOptions).includes(value)
22
22
  },
23
23
  variant: {
24
24
  type: String,
25
25
  required: false,
26
- default: newButtonVariantOptions.default,
27
- validator: value => Object.keys(newButtonVariantOptions).includes(value)
26
+ default: buttonVariantOptions.default,
27
+ validator: value => Object.keys(buttonVariantOptions).includes(value)
28
28
  },
29
29
  size: {
30
30
  type: String,
31
31
  required: false,
32
- default: newButtonSizeOptions.medium,
33
- validator: value => Object.keys(newButtonSizeOptions).includes(value)
32
+ default: buttonSizeOptions.medium,
33
+ validator: value => Object.keys(buttonSizeOptions).includes(value)
34
34
  },
35
35
  selected: {
36
36
  type: Boolean,
@@ -78,9 +78,9 @@ var script = {
78
78
 
79
79
  buttonClasses() {
80
80
  const classes = ['gl-button'];
81
- const nonCategoryVariants = [newButtonVariantOptions.dashed, newButtonVariantOptions.link, newButtonVariantOptions.reset];
81
+ const nonCategoryVariants = [buttonVariantOptions.dashed, buttonVariantOptions.link, buttonVariantOptions.reset];
82
82
 
83
- if (!nonCategoryVariants.includes(this.variant) && this.category !== newButtonCategoryOptions.primary) {
83
+ if (!nonCategoryVariants.includes(this.variant) && this.category !== buttonCategoryOptions.primary) {
84
84
  classes.push(`btn-${this.variant}-${this.category}`);
85
85
  }
86
86
 
@@ -98,7 +98,7 @@ var script = {
98
98
  },
99
99
 
100
100
  buttonSize() {
101
- return newButtonSizeOptionsMap[this.size];
101
+ return buttonSizeOptionsMap[this.size];
102
102
  }
103
103
 
104
104
  },
@@ -1,6 +1,4 @@
1
- import examples from './examples';
2
-
3
- var card = "# GlCard\n\n<!-- STORY -->\n\nCards are a flexible component used to display content and actions in a variety of contexts.\nThey are generally restricted to a single topic and it should be easy for users to scan relevant and\nactionable information. Content, such as images and text, should be positioned within them in a\nmanner that demonstrates their intended hierarchy.\n";
1
+ var card = "Cards are a flexible component used to display content and actions in a variety of contexts.\nThey are generally restricted to a single topic and it should be easy for users to scan relevant and\nactionable information. Content, such as images and text, should be positioned within them in a\nmanner that demonstrates their intended hierarchy.\n";
4
2
 
5
3
  var description = /*#__PURE__*/Object.freeze({
6
4
  __proto__: null,
@@ -9,29 +7,7 @@ var description = /*#__PURE__*/Object.freeze({
9
7
 
10
8
  var card_documentation = {
11
9
  followsDesignSystem: true,
12
- description,
13
- examples,
14
- propsInfo: {
15
- headerClass: {
16
- additionalInfo: 'Additional CSS class(es) to be applied to the header'
17
- },
18
- bodyClass: {
19
- additionalInfo: 'Additional CSS class(es) to be applied to the body'
20
- },
21
- footerClass: {
22
- additionalInfo: 'Additional CSS class(es) to be applied to the footer'
23
- }
24
- },
25
- slots: [{
26
- name: 'header',
27
- description: "The card's header content"
28
- }, {
29
- name: 'default',
30
- description: "The card's main content."
31
- }, {
32
- name: 'footer',
33
- description: "The card's footer content"
34
- }]
10
+ description
35
11
  };
36
12
 
37
13
  export default card_documentation;
@@ -2,16 +2,27 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
2
2
 
3
3
  var script = {
4
4
  props: {
5
+ /**
6
+ * Additional CSS class(es) to be applied to the header.
7
+ */
5
8
  headerClass: {
6
9
  type: [String, Object, Array],
7
10
  required: false,
8
11
  default: ''
9
12
  },
13
+
14
+ /**
15
+ * Additional CSS class(es) to be applied to the body.
16
+ */
10
17
  bodyClass: {
11
18
  type: [String, Object, Array],
12
19
  required: false,
13
20
  default: ''
14
21
  },
22
+
23
+ /**
24
+ * Additional CSS class(es) to be applied to the footer.
25
+ */
15
26
  footerClass: {
16
27
  type: [String, Object, Array],
17
28
  required: false,
@@ -205,10 +205,52 @@ var script = {
205
205
  onEndDateSelected(endDate) {
206
206
  this.openToCalendar = false;
207
207
  this.endDate = endDate;
208
+ /**
209
+ * Emitted when start or end date selected with {startDate, endDate} value
210
+ *
211
+ * @event input
212
+ * */
213
+
208
214
  this.$emit('input', {
209
215
  startDate: this.startDate,
210
216
  endDate
211
217
  });
218
+ },
219
+
220
+ onStartPickerOpen() {
221
+ /**
222
+ * Emitted when the primary action button is clicked.
223
+ *
224
+ * @event start-picker-open
225
+ * */
226
+ this.$emit('start-picker-open');
227
+ },
228
+
229
+ onStartPickerClose() {
230
+ /**
231
+ * Emitted when the start date datepicker is hidden.
232
+ *
233
+ * @event start-picker-close
234
+ * */
235
+ this.$emit('start-picker-close');
236
+ },
237
+
238
+ onEndPickerOpen() {
239
+ /**
240
+ * Emitted when the end date datepicker becomes visible.
241
+ *
242
+ * @event end-picker-open
243
+ * */
244
+ this.$emit('end-picker-open');
245
+ },
246
+
247
+ onEndPickerClose() {
248
+ /**
249
+ * Emitted when the end date datepicker is hidden.
250
+ *
251
+ * @event end-picker-close
252
+ * */
253
+ this.$emit('end-picker-close');
212
254
  }
213
255
 
214
256
  }
@@ -218,7 +260,7 @@ var script = {
218
260
  const __vue_script__ = script;
219
261
 
220
262
  /* template */
221
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-daterange-picker"},[_c('div',{class:_vm.startPickerClass},[_c('label',{class:_vm.labelClass},[_vm._v(_vm._s(_vm.fromLabel))]),_vm._v(" "),_c('gl-datepicker',{attrs:{"min-date":_vm.defaultMinDate,"max-date":_vm.fromCalendarMaxDate,"start-range":_vm.defaultMinDate,"end-range":_vm.fromCalendarMaxDate,"theme":_vm.theme,"i18n":_vm.i18n,"target":_vm.startPickerTarget,"container":_vm.startPickerContainer},on:{"input":_vm.onStartDateSelected,"open":function($event){return _vm.$emit('start-picker-open')},"close":function($event){return _vm.$emit('start-picker-close')}},model:{value:(_vm.startDate),callback:function ($$v) {_vm.startDate=$$v;},expression:"startDate"}})],1),_vm._v(" "),_c('div',{class:_vm.endPickerClass},[_c('label',{class:_vm.labelClass},[_vm._v(_vm._s(_vm.toLabel))]),_vm._v(" "),_c('gl-datepicker',{key:_vm.numericStartTime,attrs:{"min-date":_vm.toCalendarMinDate,"max-date":_vm.toCalendarMaxDate,"start-range":_vm.toCalendarMinDate,"end-range":_vm.toCalendarMaxDate,"theme":_vm.theme,"i18n":_vm.i18n,"target":_vm.endPickerTarget,"container":_vm.endPickerContainer,"start-opened":_vm.openToCalendar,"default-date":_vm.toCalendarDefaultDate},on:{"input":_vm.onEndDateSelected,"open":function($event){return _vm.$emit('end-picker-open')},"close":function($event){return _vm.$emit('end-picker-close')}},model:{value:(_vm.endDate),callback:function ($$v) {_vm.endDate=$$v;},expression:"endDate"}})],1),_vm._v(" "),_c('div',{staticClass:"gl-display-flex gl-flex-direction-row gl-align-items-center gl-text-gray-500 gl-ml-2",class:_vm.dateRangeIndicatorClass,attrs:{"data-testid":"daterange-picker-indicator"}},[_vm._t("default",null,null,{ daysSelected: _vm.numberOfDays }),_vm._v(" "),(_vm.tooltip)?_c('gl-icon',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],staticClass:"gl-ml-2",attrs:{"name":"information-o","title":_vm.tooltip,"size":16}}):_vm._e()],2)])};
263
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-daterange-picker"},[_c('div',{class:_vm.startPickerClass},[_c('label',{class:_vm.labelClass},[_vm._v(_vm._s(_vm.fromLabel))]),_vm._v(" "),_c('gl-datepicker',{attrs:{"min-date":_vm.defaultMinDate,"max-date":_vm.fromCalendarMaxDate,"start-range":_vm.defaultMinDate,"end-range":_vm.fromCalendarMaxDate,"theme":_vm.theme,"i18n":_vm.i18n,"target":_vm.startPickerTarget,"container":_vm.startPickerContainer},on:{"input":_vm.onStartDateSelected,"open":_vm.onStartPickerOpen,"close":_vm.onStartPickerClose},model:{value:(_vm.startDate),callback:function ($$v) {_vm.startDate=$$v;},expression:"startDate"}})],1),_vm._v(" "),_c('div',{class:_vm.endPickerClass},[_c('label',{class:_vm.labelClass},[_vm._v(_vm._s(_vm.toLabel))]),_vm._v(" "),_c('gl-datepicker',{key:_vm.numericStartTime,attrs:{"min-date":_vm.toCalendarMinDate,"max-date":_vm.toCalendarMaxDate,"start-range":_vm.toCalendarMinDate,"end-range":_vm.toCalendarMaxDate,"theme":_vm.theme,"i18n":_vm.i18n,"target":_vm.endPickerTarget,"container":_vm.endPickerContainer,"start-opened":_vm.openToCalendar,"default-date":_vm.toCalendarDefaultDate},on:{"input":_vm.onEndDateSelected,"open":_vm.onEndPickerOpen,"close":_vm.onEndPickerClose},model:{value:(_vm.endDate),callback:function ($$v) {_vm.endDate=$$v;},expression:"endDate"}})],1),_vm._v(" "),_c('div',{staticClass:"gl-display-flex gl-flex-direction-row gl-align-items-center gl-text-gray-500 gl-ml-2",class:_vm.dateRangeIndicatorClass,attrs:{"data-testid":"daterange-picker-indicator"}},[_vm._t("default",null,null,{ daysSelected: _vm.numberOfDays }),_vm._v(" "),(_vm.tooltip)?_c('gl-icon',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip"}],staticClass:"gl-ml-2",attrs:{"name":"information-o","title":_vm.tooltip,"size":16}}):_vm._e()],2)])};
222
264
  var __vue_staticRenderFns__ = [];
223
265
 
224
266
  /* style */
@@ -1,7 +1,7 @@
1
1
  import { BDropdown } from 'bootstrap-vue/esm/index.js';
2
2
  import { selectAll, isVisible } from 'bootstrap-vue/esm/utils/dom';
3
- import { newButtonCategoryOptions, newDropdownVariantOptions, newButtonSizeOptions } from '../../../utils/constants';
4
- import ButtonMixin from '../../mixins/button_mixin';
3
+ import { buttonCategoryOptions, newDropdownVariantOptions, buttonSizeOptions } from '../../../utils/constants';
4
+ import { ButtonMixin } from '../../mixins/button_mixin';
5
5
  import GlButton from '../button/button';
6
6
  import GlIcon from '../icon/icon';
7
7
  import GlLoadingIcon from '../loading_icon/loading_icon';
@@ -93,8 +93,8 @@ var script = {
93
93
  category: {
94
94
  type: String,
95
95
  required: false,
96
- default: newButtonCategoryOptions.primary,
97
- validator: value => Object.keys(newButtonCategoryOptions).includes(value)
96
+ default: buttonCategoryOptions.primary,
97
+ validator: value => Object.keys(buttonCategoryOptions).includes(value)
98
98
  },
99
99
  variant: {
100
100
  type: String,
@@ -105,8 +105,8 @@ var script = {
105
105
  size: {
106
106
  type: String,
107
107
  required: false,
108
- default: newButtonSizeOptions.medium,
109
- validator: value => Object.keys(newButtonSizeOptions).includes(value)
108
+ default: buttonSizeOptions.medium,
109
+ validator: value => Object.keys(buttonSizeOptions).includes(value)
110
110
  },
111
111
  icon: {
112
112
  type: String,
@@ -160,8 +160,8 @@ var script = {
160
160
  return [this.toggleClass, {
161
161
  'gl-button': true,
162
162
  'gl-dropdown-toggle': true,
163
- [`btn-${this.variant}-secondary`]: this.category === newButtonCategoryOptions.secondary || this.category === newButtonCategoryOptions.tertiary && this.split,
164
- [`btn-${this.variant}-tertiary`]: this.category === newButtonCategoryOptions.tertiary && !this.split,
163
+ [`btn-${this.variant}-secondary`]: this.category === buttonCategoryOptions.secondary || this.category === buttonCategoryOptions.tertiary && this.split,
164
+ [`btn-${this.variant}-tertiary`]: this.category === buttonCategoryOptions.tertiary && !this.split,
165
165
  'dropdown-icon-only': this.isIconOnly,
166
166
  'dropdown-icon-text': this.isIconWithText
167
167
  }];
@@ -172,7 +172,7 @@ var script = {
172
172
  'gl-button': true,
173
173
  'split-content-button': Boolean(this.text),
174
174
  'icon-split-content-button': Boolean(this.icon),
175
- [`btn-${this.variant}-secondary`]: this.category === newButtonCategoryOptions.secondary || this.category === newButtonCategoryOptions.tertiary
175
+ [`btn-${this.variant}-secondary`]: this.category === buttonCategoryOptions.secondary || this.category === buttonCategoryOptions.tertiary
176
176
  }];
177
177
  },
178
178
 
@@ -1,20 +1,8 @@
1
- import examples from './examples';
2
-
3
- var description = "# Form Checkbox\n\nForm checkbox groups for general use inside forms.\n\n## Stacked\n\nBy default, the GitLab Design guide mandates the `<gl-form-checkbox-group>` be `stacked` by default\nand is non-changeable at this time.\n";
1
+ var description = "Form checkbox groups for general use inside forms.\n\n## Stacked\n\nBy default, the GitLab Design guide mandates the `<gl-form-checkbox-group>` be `stacked` and is\nnon-changeable at this time.\n";
4
2
 
5
3
  var form_checkbox_documentation = {
6
4
  description,
7
- examples,
8
- bootstrapComponent: 'b-form-checkbox',
9
- followsDesignSystem: true,
10
- events: [{
11
- event: 'input',
12
- description: 'Emitted when checked state changes',
13
- args: [{
14
- arg: 'checked',
15
- description: 'Whether the checkbox is checked'
16
- }]
17
- }]
5
+ followsDesignSystem: true
18
6
  };
19
7
 
20
8
  export default form_checkbox_documentation;
@@ -10,6 +10,26 @@ var script = {
10
10
  model: {
11
11
  prop: 'checked',
12
12
  event: 'input'
13
+ },
14
+ methods: {
15
+ change($event) {
16
+ /**
17
+ * Emitted when selected value(s) is changed due to user interaction.
18
+ *
19
+ * @event change
20
+ */
21
+ this.$emit('change', $event);
22
+ },
23
+
24
+ input($event) {
25
+ /**
26
+ * Emitted when checked state is changed.
27
+ *
28
+ * @event input
29
+ */
30
+ this.$emit('input', $event);
31
+ }
32
+
13
33
  }
14
34
  };
15
35
 
@@ -17,7 +37,7 @@ var script = {
17
37
  const __vue_script__ = script;
18
38
 
19
39
  /* template */
20
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-checkbox',_vm._b({staticClass:"gl-form-checkbox",on:{"change":function($event){return _vm.$emit('change', $event)},"input":function($event){return _vm.$emit('input', $event)}}},'b-form-checkbox',_vm.$attrs,false),[_vm._t("default"),_vm._v(" "),(Boolean(_vm.$scopedSlots.help))?_c('p',{staticClass:"help-text"},[_vm._t("help")],2):_vm._e()],2)};
40
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-form-checkbox',_vm._b({staticClass:"gl-form-checkbox",on:{"change":_vm.change,"input":_vm.input}},'b-form-checkbox',_vm.$attrs,false),[_vm._t("default"),_vm._v(" "),(Boolean(_vm.$scopedSlots.help))?_c('p',{staticClass:"help-text"},[_vm._t("help")],2):_vm._e()],2)};
21
41
  var __vue_staticRenderFns__ = [];
22
42
 
23
43
  /* style */
@@ -1,6 +1,6 @@
1
1
  import { BFormCheckboxGroup } from 'bootstrap-vue/esm/index.js';
2
2
  import formOptionsMixin from 'bootstrap-vue/esm/mixins/form-options';
3
- import SafeHtml from '../../../../directives/safe_html/safe_html';
3
+ import { SafeHtmlDirective } from '../../../../directives/safe_html/safe_html';
4
4
  import GlFormCheckbox from './form_checkbox';
5
5
  import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
6
6
 
@@ -11,7 +11,7 @@ var script = {
11
11
  GlFormCheckbox
12
12
  },
13
13
  directives: {
14
- SafeHtml
14
+ SafeHtml: SafeHtmlDirective
15
15
  },
16
16
  mixins: [formOptionsMixin],
17
17
  inheritAttrs: false,
@@ -1,7 +1,7 @@
1
1
  import { BInputGroup, BInputGroupPrepend, BInputGroupAppend, BFormInput } from 'bootstrap-vue/esm/index.js';
2
2
  import GlDropdown from '../../dropdown/dropdown';
3
3
  import GlDropdownItem from '../../dropdown/dropdown_item';
4
- import InputGroupMixin from './form_input_group_mixin';
4
+ import { InputGroupMixin } from './form_input_group_mixin';
5
5
  import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
6
6
 
7
7
  var script = {
@@ -1,4 +1,4 @@
1
- var form_input_group_mixin = {
1
+ const InputGroupMixin = {
2
2
  props: {
3
3
  value: {
4
4
  type: [String, Number],
@@ -46,4 +46,4 @@ var form_input_group_mixin = {
46
46
  }
47
47
  };
48
48
 
49
- export default form_input_group_mixin;
49
+ export { InputGroupMixin };
@@ -1,6 +1,6 @@
1
1
  import { BFormRadioGroup } from 'bootstrap-vue/esm/index.js';
2
2
  import formOptionsMixin from 'bootstrap-vue/esm/mixins/form-options';
3
- import SafeHtml from '../../../../directives/safe_html/safe_html';
3
+ import { SafeHtmlDirective } from '../../../../directives/safe_html/safe_html';
4
4
  import GlFormRadio from '../form_radio/form_radio';
5
5
  import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
6
6
 
@@ -13,7 +13,7 @@ var script = {
13
13
  GlFormRadio
14
14
  },
15
15
  directives: {
16
- SafeHtml
16
+ SafeHtml: SafeHtmlDirective
17
17
  },
18
18
  mixins: [formOptionsMixin],
19
19
  inheritAttrs: false,
@@ -3,7 +3,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
3
3
  /* script */
4
4
 
5
5
  /* template */
6
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{attrs:{"title":"First"}},[_vm._v("first content")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Second"}},[_vm._v("second content")])],1)};
6
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{attrs:{"title":"Tab 1"}},[_vm._v("Tab panel 1")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Tab 2"}},[_vm._v("Tab panel 2")])],1)};
7
7
  var __vue_staticRenderFns__ = [];
8
8
 
9
9
  /* style */
@@ -3,7 +3,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
3
3
  /* script */
4
4
 
5
5
  /* template */
6
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('span',[_vm._v("1st")]),_vm._v(" "),_c('gl-badge',{staticClass:"gl-tab-counter-badge",attrs:{"size":"sm"}},[_vm._v("500")])]},proxy:true}])},[_vm._v("\n first content\n ")]),_vm._v(" "),_c('gl-tab',{scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('span',[_vm._v("2nd")]),_vm._v(" "),_c('gl-badge',{staticClass:"gl-tab-counter-badge",attrs:{"size":"sm"}},[_vm._v("250")])]},proxy:true}])},[_vm._v("\n second content\n ")]),_vm._v(" "),_c('gl-tab',{scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('span',[_vm._v("3rd")]),_vm._v(" "),_c('gl-badge',{staticClass:"gl-tab-counter-badge",attrs:{"size":"sm"}},[_vm._v("250")])]},proxy:true}])},[_vm._v("\n third content\n ")])],1)};
6
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('span',[_vm._v("Tab")]),_vm._v(" "),_c('gl-badge',{staticClass:"gl-tab-counter-badge",attrs:{"size":"sm"}},[_vm._v("500")]),_vm._v(" "),_c('span',{staticClass:"sr-only"},[_vm._v("items")])]},proxy:true}])},[_vm._v("\n Tab panel 1\n ")]),_vm._v(" "),_c('gl-tab',{scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('span',[_vm._v("Tab")]),_vm._v(" "),_c('gl-badge',{staticClass:"gl-tab-counter-badge",attrs:{"size":"sm"}},[_vm._v("250")]),_vm._v(" "),_c('span',{staticClass:"sr-only"},[_vm._v("items")])]},proxy:true}])},[_vm._v("\n Tab panel 2\n ")]),_vm._v(" "),_c('gl-tab',{scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('span',[_vm._v("Tab")]),_vm._v(" "),_c('gl-badge',{staticClass:"gl-tab-counter-badge",attrs:{"size":"sm"}},[_vm._v("250")]),_vm._v(" "),_c('span',{staticClass:"sr-only"},[_vm._v("items")])]},proxy:true}])},[_vm._v("\n Tab panel 3\n ")])],1)};
7
7
  var __vue_staticRenderFns__ = [];
8
8
 
9
9
  /* style */
@@ -3,7 +3,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
3
3
  /* script */
4
4
 
5
5
  /* template */
6
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{attrs:{"title":"First"},scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('i',[_vm._v("custom")]),_vm._v(" "),_c('strong',[_vm._v("Title")])]},proxy:true}])},[_vm._v("\n first content\n ")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Second"}},[_vm._v("second content")])],1)};
6
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{attrs:{"title":"Tab 1"},scopedSlots:_vm._u([{key:"title",fn:function(){return [_c('i',[_vm._v("custom")]),_vm._v(" "),_c('strong',[_vm._v("Title")])]},proxy:true}])},[_vm._v("\n Tab panel 1\n ")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Tab 2"}},[_vm._v("Tab panel 2")])],1)};
7
7
  var __vue_staticRenderFns__ = [];
8
8
 
9
9
  /* style */
@@ -3,7 +3,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
3
3
  /* script */
4
4
 
5
5
  /* template */
6
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{attrs:{"title":"First"}},[_vm._v("first content")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Second"}},[_vm._v("second content")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Disabled","disabled":""}},[_vm._v("disabled")])],1)};
6
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',[_c('gl-tab',{attrs:{"title":"Tab 1"}},[_vm._v("Tab panel 1")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Tab 2"}},[_vm._v("Tab panel 2")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Tab 3","disabled":""}},[_vm._v("Disabled tab panel")])],1)};
7
7
  var __vue_staticRenderFns__ = [];
8
8
 
9
9
  /* style */
@@ -3,7 +3,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
3
3
  /* script */
4
4
 
5
5
  /* template */
6
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',{attrs:{"justified":""}},[_c('gl-tab',{attrs:{"title":"First tab"}},[_vm._v("First content")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Second tab"}},[_vm._v("Second content")])],1)};
6
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-tabs',{attrs:{"justified":""}},[_c('gl-tab',{attrs:{"title":"Tab 1"}},[_vm._v("Tab panel 1")]),_vm._v(" "),_c('gl-tab',{attrs:{"title":"Tab 2"}},[_vm._v("Tab panel 2")])],1)};
7
7
  var __vue_staticRenderFns__ = [];
8
8
 
9
9
  /* style */
@@ -3,8 +3,8 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
3
3
  var script = {
4
4
  tabs: Array(20).fill(1).map((_, index) => index + 1).map(id => ({
5
5
  id,
6
- title: `Lorem ${id}`,
7
- content: `(${id}) Lorem ipsum dolar sit amit...`
6
+ title: `Tab ${id}`,
7
+ content: `Tab panel ${id} content...`
8
8
  }))
9
9
  };
10
10
 
@@ -4,7 +4,7 @@ import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
4
4
 
5
5
  /* template */
6
6
  var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;_vm._self._c||_h;return _vm._m(0)};
7
- var __vue_staticRenderFns__ = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"tabs gl-tabs"},[_c('ul',{staticClass:"nav gl-tabs-nav",attrs:{"role":"tablist"}},[_c('li',{staticClass:"nav-item",attrs:{"role":"presentation"}},[_c('a',{staticClass:"nav-link gl-tab-nav-item gl-tab-nav-item-active gl-tab-nav-item-active-indigo",attrs:{"role":"tab","target":"_self","href":"#"}},[_vm._v("First")])]),_vm._v(" "),_c('li',{staticClass:"nav-item",attrs:{"role":"presentation"}},[_c('a',{staticClass:"nav-link gl-tab-nav-item",attrs:{"role":"tab","target":"_self","href":"#"}},[_vm._v("Second")])])]),_vm._v(" "),_c('div',{staticClass:"tab-content gl-tab-content"},[_c('div',{staticClass:"tab-pane active",attrs:{"role":"tabpanel"}},[_vm._v("first content")]),_vm._v(" "),_c('div',{staticClass:"tab-pane",attrs:{"role":"tabpanel"}},[_vm._v("second content")])])])}];
7
+ var __vue_staticRenderFns__ = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"tabs gl-tabs"},[_c('ul',{staticClass:"nav gl-tabs-nav",attrs:{"role":"tablist"}},[_c('li',{staticClass:"nav-item",attrs:{"role":"presentation"}},[_c('a',{staticClass:"nav-link gl-tab-nav-item gl-tab-nav-item-active gl-tab-nav-item-active-indigo",attrs:{"role":"tab","target":"_self","href":"#"}},[_vm._v("Tab 1")])]),_vm._v(" "),_c('li',{staticClass:"nav-item",attrs:{"role":"presentation"}},[_c('a',{staticClass:"nav-link gl-tab-nav-item",attrs:{"role":"tab","target":"_self","href":"#"}},[_vm._v("Tab 2")])])]),_vm._v(" "),_c('div',{staticClass:"tab-content gl-tab-content"},[_c('div',{staticClass:"tab-pane active",attrs:{"role":"tabpanel"}},[_vm._v("Tab panel 1")]),_vm._v(" "),_c('div',{staticClass:"tab-pane",attrs:{"role":"tabpanel"}},[_vm._v("Tab panel 2")])])])}];
8
8
 
9
9
  /* style */
10
10
  const __vue_inject_styles__ = undefined;
@@ -1,6 +1,6 @@
1
1
  import examples from './examples';
2
2
 
3
- var description = "# Tabs\n\n<!-- STORY -->\n## Usage\n\nTabs are used to divide content into meaningful, related sections. Tabs allow users to focus on one\nspecific view at a time while maintaining sight of all the relevant content options available. Each\ntab, when active, will reveal it’s own unique content.\n\n## Using the component Vue\n\n~~~js\n<gl-tabs theme=\"indigo\">\n <gl-tab title=\"First\">\n first content\n </gl-tab>\n <gl-tab title=\"Second\">\n second content\n </gl-tab>\n</gl-tabs>\n~~~\n\n## Using the component HTML\n\n~~~js\n<div class=\"tabs gl-tabs\">\n <ul role=\"tablist\" class=\"nav gl-tabs-nav\">\n <li role=\"presentation\" class=\"nav-item\">\n <a\n role=\"tab\"\n target=\"_self\"\n href=\"#\"\n class=\"nav-link gl-tab-nav-item gl-tab-nav-item-active gl-tab-nav-item-active-indigo\"\n >First</a>\n </li>\n <li role=\"presentation\" class=\"nav-item\">\n <a role=\"tab\" target=\"_self\" href=\"#\" class=\"nav-link gl-tab-nav-item\">Second</a>\n </li>\n </ul>\n <div class=\"tab-content gl-tab-content\">\n <div role=\"tabpanel\" class=\"tab-pane gl-tab-content active\">first content</div>\n <div role=\"tabpanel\" class=\"tab-pane gl-tab-content\">second content</div>\n </div>\n</div>\n~~~\n\n## Adding Action Buttons to the Tabs\n\nTabs start and end slot can be populated via props: `action-primary`, `action-secondary` and\n`action-tertiary`. These props allow you to handle how a primary, secondary and tertiary button will\nbehave and look. The props receive an object as such:\n\n~~~js\n{\n text: 'Save Changes',\n attributes: [\n { variant: 'info' },\n { disabled: this.someState },\n { class: 'some-class' },\n ...\n ]\n}\n~~~\n\n## Scrollable tab buttons\n\nBy default, `GlTab` will wrap tab buttons when they overflow the container. To\nenable horizontally scrolling for the tab buttons, use the `GlScrollableTabs`\ncomponent. This is a separate Vue component because of some limitations:\n\n- The action props (e.g., `action-primary`) are not respected in `GlScrollableTabs`. At the\n moment, BootstrapVue does not provide a reliable way for us to achieve this desired combination.\n\n`GlScrollableTabs` composes `GlTabs` and passes through every listener, slot, or prop (with the above\nexceptions).\n\n~~~html\n<gl-scrollable-tabs theme=\"indigo\">\n <gl-tab v-for=\"tab in tabs\" :key=\"tab.key\" :title=\"tab.title\"> {{ tab.content }} </gl-tab>\n</gl-scrollable-tabs>\n~~~\n";
3
+ var description = "# Tabs\n\n<!-- STORY -->\n## Usage\n\nTabs are used to divide content into meaningful, related sections. Tabs allow users to focus on one\nspecific view at a time while maintaining sight of all the relevant content options available. Each\ntab, when active, will reveal it’s own unique content.\n\n## Using the component Vue\n\n~~~js\n<gl-tabs theme=\"indigo\">\n <gl-tab title=\"Tab 1\">\n Tab panel 1\n </gl-tab>\n <gl-tab title=\"Tab 2\">\n Tab panel 2\n </gl-tab>\n</gl-tabs>\n~~~\n\n## Using the component HTML\n\n~~~js\n<div class=\"tabs gl-tabs\">\n <ul role=\"tablist\" class=\"nav gl-tabs-nav\">\n <li role=\"presentation\" class=\"nav-item\">\n <a\n role=\"tab\"\n target=\"_self\"\n href=\"#\"\n class=\"nav-link gl-tab-nav-item gl-tab-nav-item-active gl-tab-nav-item-active-indigo\"\n >Tab 1</a>\n </li>\n <li role=\"presentation\" class=\"nav-item\">\n <a role=\"tab\" target=\"_self\" href=\"#\" class=\"nav-link gl-tab-nav-item\">Tab 2</a>\n </li>\n </ul>\n <div class=\"tab-content gl-tab-content\">\n <div role=\"tabpanel\" class=\"tab-pane gl-tab-content active\">Tab panel 1</div>\n <div role=\"tabpanel\" class=\"tab-pane gl-tab-content\">Tab panel 2</div>\n </div>\n</div>\n~~~\n\n## Adding Action Buttons to the Tabs\n\nTabs start and end slot can be populated via props: `action-primary`, `action-secondary` and\n`action-tertiary`. These props allow you to handle how a primary, secondary and tertiary button will\nbehave and look. The props receive an object as such:\n\n~~~js\n{\n text: 'Save Changes',\n attributes: [\n { variant: 'info' },\n { disabled: this.someState },\n { class: 'some-class' },\n ...\n ]\n}\n~~~\n\n## Scrollable tab buttons\n\nBy default, `GlTab` will wrap tab buttons when they overflow the container. To\nenable horizontally scrolling for the tab buttons, use the `GlScrollableTabs`\ncomponent. This is a separate Vue component because of some limitations:\n\n- The action props (e.g., `action-primary`) are not respected in `GlScrollableTabs`. At the\n moment, BootstrapVue does not provide a reliable way for us to achieve this desired combination.\n\n`GlScrollableTabs` composes `GlTabs` and passes through every listener, slot, or prop (with the above\nexceptions).\n\n~~~html\n<gl-scrollable-tabs theme=\"indigo\">\n <gl-tab v-for=\"tab in tabs\" :key=\"tab.key\" :title=\"tab.title\"> {{ tab.content }} </gl-tab>\n</gl-scrollable-tabs>\n~~~\n";
4
4
 
5
5
  var tabs_documentation = {
6
6
  description,
@@ -1,12 +1,12 @@
1
- import { newButtonSizeOptionsMap } from '../../utils/constants';
1
+ import { buttonSizeOptionsMap } from '../../utils/constants';
2
2
 
3
- var button_mixin = {
3
+ const ButtonMixin = {
4
4
  computed: {
5
5
  buttonSize() {
6
- return newButtonSizeOptionsMap[this.size];
6
+ return buttonSizeOptionsMap[this.size];
7
7
  }
8
8
 
9
9
  }
10
10
  };
11
11
 
12
- export default button_mixin;
12
+ export { ButtonMixin };
@@ -28,4 +28,4 @@ const SafeHtmlDirective = {
28
28
  update: transform
29
29
  };
30
30
 
31
- export default SafeHtmlDirective;
31
+ export { SafeHtmlDirective };