@gitlab/ui 34.0.0 → 36.1.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 (153) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/components/base/filtered_search/filtered_search.documentation.js +6 -0
  3. package/dist/components/base/filtered_search/filtered_search.js +12 -2
  4. package/dist/components/base/filtered_search/filtered_search_term.documentation.js +6 -0
  5. package/dist/components/base/filtered_search/filtered_search_term.js +11 -1
  6. package/dist/components/base/filtered_search/filtered_search_token_segment.documentation.js +6 -0
  7. package/dist/components/base/filtered_search/filtered_search_token_segment.js +11 -1
  8. package/dist/components/base/nav/nav.documentation.js +2 -7
  9. package/dist/components/base/search_box_by_click/search_box_by_click.documentation.js +3 -0
  10. package/dist/components/base/search_box_by_click/search_box_by_click.js +6 -1
  11. package/dist/components/base/tabs/tabs/tabs.documentation.js +1 -1
  12. package/dist/components/base/tabs/tabs/tabs.js +2 -12
  13. package/dist/components/utilities/truncate/truncate.documentation.js +2 -17
  14. package/dist/components/utilities/truncate/truncate.js +11 -0
  15. package/dist/index.css +1 -1
  16. package/dist/index.css.map +1 -1
  17. package/dist/utility_classes.css +1 -1
  18. package/dist/utility_classes.css.map +1 -1
  19. package/documentation/all_components.js +2 -2
  20. package/documentation/components_documentation.js +0 -2
  21. package/documentation/documented_stories.js +4 -0
  22. package/package.json +7 -10
  23. package/src/charts.js +19 -0
  24. package/src/components/base/alert/alert.stories.js +1 -1
  25. package/src/components/base/avatar/avatar.stories.js +8 -0
  26. package/src/components/base/avatar_labeled/avatar_labeled.stories.js +7 -0
  27. package/src/components/base/avatar_link/avatar_link.stories.js +7 -0
  28. package/src/components/base/avatars_inline/avatars_inline.stories.js +1 -1
  29. package/src/components/base/badge/badge.stories.js +115 -10
  30. package/src/components/base/banner/banner.stories.js +1 -1
  31. package/src/components/base/breadcrumb/breadcrumb.stories.js +1 -1
  32. package/src/components/base/broadcast_message/broadcast_message.stories.js +3 -3
  33. package/src/components/base/button/button.stories.js +11 -11
  34. package/src/components/base/button_group/button_group.stories.js +1 -1
  35. package/src/components/base/collapse/collapse.stories.js +1 -1
  36. package/src/components/base/drawer/drawer.stories.js +1 -1
  37. package/src/components/base/dropdown/dropdown.stories.js +5 -3
  38. package/src/components/base/dropdown/dropdown_divider.stories.js +1 -1
  39. package/src/components/base/dropdown/dropdown_form.stories.js +1 -1
  40. package/src/components/base/dropdown/dropdown_item.stories.js +1 -1
  41. package/src/components/base/dropdown/dropdown_section_header.stories.js +1 -1
  42. package/src/components/base/dropdown/dropdown_text.stories.js +1 -1
  43. package/src/components/base/filtered_search/filtered_search.documentation.js +6 -0
  44. package/src/components/base/filtered_search/filtered_search.spec.js +81 -47
  45. package/src/components/base/filtered_search/filtered_search.stories.js +11 -1
  46. package/src/components/base/filtered_search/filtered_search.vue +13 -0
  47. package/src/components/base/filtered_search/filtered_search_suggestion.stories.js +2 -0
  48. package/src/components/base/filtered_search/filtered_search_suggestion_list.stories.js +2 -0
  49. package/src/components/base/filtered_search/filtered_search_term.documentation.js +6 -0
  50. package/src/components/base/filtered_search/filtered_search_term.spec.js +42 -9
  51. package/src/components/base/filtered_search/filtered_search_term.vue +13 -0
  52. package/src/components/base/filtered_search/filtered_search_token.stories.js +2 -0
  53. package/src/components/base/filtered_search/filtered_search_token_segment.documentation.js +6 -0
  54. package/src/components/base/filtered_search/filtered_search_token_segment.spec.js +53 -0
  55. package/src/components/base/filtered_search/filtered_search_token_segment.stories.js +2 -0
  56. package/src/components/base/filtered_search/filtered_search_token_segment.vue +12 -0
  57. package/src/components/base/form/form.stories.js +1 -1
  58. package/src/components/base/form/form_checkbox/form_checkbox.stories.js +1 -1
  59. package/src/components/base/form/form_group/form_group.stories.js +6 -5
  60. package/src/components/base/form/form_input/form_input.stories.js +1 -1
  61. package/src/components/base/form/form_input_group/form_input_group.stories.js +1 -1
  62. package/src/components/base/form/form_radio/form_radio.stories.js +1 -1
  63. package/src/components/base/form/form_radio_group/form_radio_group.stories.js +2 -1
  64. package/src/components/base/form/form_select/form_select.stories.js +1 -1
  65. package/src/components/base/form/form_text/form_text.vue +3 -1
  66. package/src/components/base/form/form_textarea/form_textarea.stories.js +1 -1
  67. package/src/components/base/icon/icon.stories.js +1 -1
  68. package/src/components/base/infinite_scroll/infinite_scroll.stories.js +1 -1
  69. package/src/components/base/label/label.stories.js +1 -1
  70. package/src/components/base/link/link.stories.js +1 -1
  71. package/src/components/base/loading_icon/loading_icon.stories.js +2 -1
  72. package/src/components/base/modal/modal.scss +5 -2
  73. package/src/components/base/modal/modal.stories.js +1 -1
  74. package/src/components/base/nav/nav.documentation.js +0 -4
  75. package/src/components/base/nav/nav.md +8 -5
  76. package/src/components/base/nav/nav.stories.js +52 -15
  77. package/src/components/base/navbar/navbar.stories.js +1 -1
  78. package/src/components/base/paginated_list/paginated_list.stories.js +1 -1
  79. package/src/components/base/pagination/pagination.stories.js +7 -0
  80. package/src/components/base/path/path.stories.js +2 -2
  81. package/src/components/base/popover/popover.stories.js +6 -0
  82. package/src/components/base/progress_bar/progress_bar.stories.js +1 -1
  83. package/src/components/base/search_box_by_click/search_box_by_click.documentation.js +3 -0
  84. package/src/components/base/search_box_by_click/search_box_by_click.spec.js +14 -3
  85. package/src/components/base/search_box_by_click/search_box_by_click.stories.js +1 -1
  86. package/src/components/base/search_box_by_click/search_box_by_click.vue +7 -0
  87. package/src/components/base/search_box_by_type/search_box_by_type.stories.js +1 -1
  88. package/src/components/base/segmented_control/segmented_control.stories.js +1 -1
  89. package/src/components/base/skeleton_loader/skeleton_loader.stories.js +1 -1
  90. package/src/components/base/skeleton_loading/skeleton_loading.stories.js +1 -1
  91. package/src/components/base/sorting/sorting.stories.js +1 -1
  92. package/src/components/base/sorting/sorting_item.stories.js +1 -1
  93. package/src/components/base/table/table.stories.js +6 -1
  94. package/src/components/base/tabs/tabs/scrollable_tabs.spec.js +0 -1
  95. package/src/components/base/tabs/tabs/tabs.md +2 -2
  96. package/src/components/base/tabs/tabs/tabs.scss +3 -115
  97. package/src/components/base/tabs/tabs/tabs.spec.js +8 -5
  98. package/src/components/base/tabs/tabs/tabs.stories.js +9 -13
  99. package/src/components/base/tabs/tabs/tabs.vue +2 -11
  100. package/src/components/base/toast/toast.stories.js +6 -4
  101. package/src/components/base/toggle/toggle.stories.js +1 -1
  102. package/src/components/base/token/token.stories.js +2 -2
  103. package/src/components/base/tooltip/tooltip.stories.js +2 -1
  104. package/src/components/charts/area/area.stories.js +1 -1
  105. package/src/components/charts/bar/bar.stories.js +1 -1
  106. package/src/components/charts/chart/chart.stories.js +2 -2
  107. package/src/components/charts/column/column.stories.js +1 -1
  108. package/src/components/charts/discrete_scatter/discrete_scatter.stories.js +1 -1
  109. package/src/components/charts/heatmap/heatmap.stories.js +1 -1
  110. package/src/components/charts/legend/legend.stories.js +1 -1
  111. package/src/components/charts/line/line.stories.js +1 -1
  112. package/src/components/charts/series_label/series_label.stories.js +1 -1
  113. package/src/components/charts/single_stat/single_stat.stories.js +1 -1
  114. package/src/components/charts/sparkline/sparkline.stories.js +1 -1
  115. package/src/components/charts/stacked_column/stacked_column.stories.js +1 -1
  116. package/src/components/charts/tooltip/tooltip.stories.js +1 -1
  117. package/src/components/regions/dashboard_skeleton/dashboard_skeleton.stories.js +1 -1
  118. package/src/components/regions/empty_state/empty_state.stories.js +1 -1
  119. package/src/components/utilities/friendly_wrap/friendly_wrap.stories.js +1 -1
  120. package/src/components/utilities/intersection_observer/intersection_observer.stories.js +1 -1
  121. package/src/components/utilities/intersperse/intersperse.stories.js +1 -1
  122. package/src/components/utilities/sprintf/sprintf.stories.js +1 -1
  123. package/src/components/utilities/truncate/truncate.documentation.js +0 -14
  124. package/src/components/utilities/truncate/truncate.md +0 -4
  125. package/src/components/utilities/truncate/truncate.stories.js +38 -27
  126. package/src/components/utilities/truncate/truncate.vue +9 -0
  127. package/{config.js → src/config.js} +1 -1
  128. package/src/directives/hover_load/hover_load.stories.js +1 -1
  129. package/src/directives/outside/outside.stories.js +1 -1
  130. package/src/directives/resize_observer/resize_observer.stories.js +1 -1
  131. package/src/directives/safe_html/safe_html.stories.js +1 -1
  132. package/src/index.js +111 -0
  133. package/src/scss/utilities.scss +8 -0
  134. package/src/scss/utility-mixins/box-shadow.scss +4 -0
  135. package/{utils.js → src/utils.js} +1 -1
  136. package/charts.js +0 -19
  137. package/dist/components/base/nav/examples/index.js +0 -13
  138. package/dist/components/base/nav/examples/nav.basic.example.js +0 -38
  139. package/dist/components/base/nav/nav_item.documentation.js +0 -13
  140. package/dist/components/base/nav/nav_item_dropdown.documentation.js +0 -14
  141. package/dist/components/utilities/truncate/examples/index.js +0 -13
  142. package/dist/components/utilities/truncate/examples/truncate.basic.example.js +0 -38
  143. package/index.js +0 -111
  144. package/src/components/base/nav/examples/index.js +0 -15
  145. package/src/components/base/nav/examples/nav.basic.example.vue +0 -8
  146. package/src/components/base/nav/nav_item.documentation.js +0 -6
  147. package/src/components/base/nav/nav_item.md +0 -7
  148. package/src/components/base/nav/nav_item.stories.js +0 -23
  149. package/src/components/base/nav/nav_item_dropdown.documentation.js +0 -7
  150. package/src/components/base/nav/nav_item_dropdown.md +0 -7
  151. package/src/components/base/nav/nav_item_dropdown.stories.js +0 -51
  152. package/src/components/utilities/truncate/examples/index.js +0 -15
  153. package/src/components/utilities/truncate/examples/truncate.basic.example.vue +0 -5
package/CHANGELOG.md CHANGED
@@ -1,3 +1,48 @@
1
+ # [36.1.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v36.0.0...v36.1.0) (2022-02-08)
2
+
3
+
4
+ ### Features
5
+
6
+ * **GlFilteredSearch:** add props for adding additional HTML attributes ([b26ea14](https://gitlab.com/gitlab-org/gitlab-ui/commit/b26ea14b818cef389c48617cb3443ae493cc49aa))
7
+
8
+ # [36.0.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v35.1.0...v36.0.0) (2022-02-07)
9
+
10
+
11
+ ### Code Refactoring
12
+
13
+ * Move entry points to src/ ([7226b2d](https://gitlab.com/gitlab-org/gitlab-ui/commit/7226b2df695ea1c25b4083739a8ff71bc01433b8))
14
+
15
+
16
+ ### BREAKING CHANGES
17
+
18
+ * If you consumed GitLab UI from source (e.g.
19
+ `@gitlab/ui/index.js`, you need to adjust the import to
20
+ `@gitlab/ui/src/index.js`
21
+
22
+ # [35.1.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v35.0.0...v35.1.0) (2022-02-04)
23
+
24
+
25
+ ### Features
26
+
27
+ * **GlModal:** unbox component by removing borders ([03598c9](https://gitlab.com/gitlab-org/gitlab-ui/commit/03598c984a2df4867a8d356bf82a4e9343450275))
28
+
29
+ # [35.0.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v34.0.0...v35.0.0) (2022-01-31)
30
+
31
+
32
+ ### Features
33
+
34
+ * **GlTabs:** Apply theme via CSS custom property ([beaf2bc](https://gitlab.com/gitlab-org/gitlab-ui/commit/beaf2bc4aa9fb26f6aa212fdec614fd8d3003c47))
35
+ * **GlTabs:** Remove theme prop ([3de63e6](https://gitlab.com/gitlab-org/gitlab-ui/commit/3de63e60426052731a626330168091466d8894ba))
36
+
37
+
38
+ ### BREAKING CHANGES
39
+
40
+ * **GlTabs:** The theme prop of `GlTabs` has been removed. Instead,
41
+ the theme color is set automatically according to the
42
+ `--gl-theme-accent` CSS custom property.
43
+
44
+ Part of https://gitlab.com/gitlab-org/gitlab-ui/-/issues/1683.
45
+
1
46
  # [34.0.0](https://gitlab.com/gitlab-org/gitlab-ui/compare/v33.1.2...v34.0.0) (2022-01-28)
2
47
 
3
48
 
@@ -39,6 +39,12 @@ var filtered_search_documentation = {
39
39
  },
40
40
  suggestionsListClass: {
41
41
  additionalInfo: 'Additional classes to add to the suggestion list menu. NOTE: this not reactive, and the value must be available and fixed when the component is instantiated'
42
+ },
43
+ searchButtonAttributes: {
44
+ additionalInfo: 'HTML attributes to add to the search button'
45
+ },
46
+ searchInputAttributes: {
47
+ additionalInfo: 'HTML attributes to add to the search input'
42
48
  }
43
49
  },
44
50
  events: [{
@@ -83,6 +83,16 @@ var script = {
83
83
  type: Boolean,
84
84
  required: false,
85
85
  default: false
86
+ },
87
+ searchButtonAttributes: {
88
+ type: Object,
89
+ required: false,
90
+ default: () => ({})
91
+ },
92
+ searchInputAttributes: {
93
+ type: Object,
94
+ required: false,
95
+ default: () => ({})
86
96
  }
87
97
  },
88
98
 
@@ -269,9 +279,9 @@ var script = {
269
279
  const __vue_script__ = script;
270
280
 
271
281
  /* template */
272
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-search-box-by-click',_vm._b({attrs:{"value":_vm.tokens,"history-items":_vm.historyItems,"clearable":_vm.hasValue,"data-testid":"filtered-search-input"},on:{"submit":_vm.submit,"input":_vm.applyNewValue,"history-item-selected":function($event){return _vm.$emit('history-item-selected', $event)},"clear":function($event){return _vm.$emit('clear')},"clear-history":function($event){return _vm.$emit('clear-history')}},scopedSlots:_vm._u([{key:"history-item",fn:function(slotScope){return [_vm._t("history-item",null,null,slotScope)]}},{key:"input",fn:function(){return [_c('div',{staticClass:"gl-filtered-search-scrollable"},[_vm._l((_vm.tokens),function(token,idx){return [_c(_vm.getTokenComponent(token.type),{key:((token.type) + "-" + idx),ref:"tokens",refInFor:true,tag:"component",staticClass:"gl-filtered-search-item",class:{
282
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-search-box-by-click',_vm._b({attrs:{"value":_vm.tokens,"history-items":_vm.historyItems,"clearable":_vm.hasValue,"search-button-attributes":_vm.searchButtonAttributes,"data-testid":"filtered-search-input"},on:{"submit":_vm.submit,"input":_vm.applyNewValue,"history-item-selected":function($event){return _vm.$emit('history-item-selected', $event)},"clear":function($event){return _vm.$emit('clear')},"clear-history":function($event){return _vm.$emit('clear-history')}},scopedSlots:_vm._u([{key:"history-item",fn:function(slotScope){return [_vm._t("history-item",null,null,slotScope)]}},{key:"input",fn:function(){return [_c('div',{staticClass:"gl-filtered-search-scrollable"},[_vm._l((_vm.tokens),function(token,idx){return [_c(_vm.getTokenComponent(token.type),{key:((token.type) + "-" + idx),ref:"tokens",refInFor:true,tag:"component",staticClass:"gl-filtered-search-item",class:{
273
283
  'gl-filtered-search-last-item': _vm.isLastToken(idx),
274
- },attrs:{"config":_vm.getTokenEntry(token.type),"active":_vm.activeTokenIdx === idx,"available-tokens":_vm.currentAvailableTokens,"current-value":_vm.tokens,"index":idx,"placeholder":_vm.termPlaceholder,"show-friendly-text":_vm.showFriendlyText},on:{"activate":function($event){return _vm.activate(idx)},"deactivate":function($event){return _vm.deactivate(token)},"destroy":function($event){return _vm.destroyToken(idx)},"replace":function($event){return _vm.replaceToken(idx, $event)},"complete":_vm.completeToken,"submit":_vm.submit,"split":function($event){return _vm.createTokens(idx, $event)}},model:{value:(token.value),callback:function ($$v) {_vm.$set(token, "value", $$v);},expression:"token.value"}})]})],2),_vm._v(" "),_c('portal-target',{key:_vm.activeTokenIdx,ref:"menu",style:(_vm.suggestionsStyle),attrs:{"name":_vm.portalName,"slim":""}})]},proxy:true}],null,true)},'gl-search-box-by-click',_vm.$attrs,false))};
284
+ },attrs:{"config":_vm.getTokenEntry(token.type),"active":_vm.activeTokenIdx === idx,"available-tokens":_vm.currentAvailableTokens,"current-value":_vm.tokens,"index":idx,"placeholder":_vm.termPlaceholder,"show-friendly-text":_vm.showFriendlyText,"search-input-attributes":_vm.searchInputAttributes,"is-last-token":_vm.isLastToken(idx)},on:{"activate":function($event){return _vm.activate(idx)},"deactivate":function($event){return _vm.deactivate(token)},"destroy":function($event){return _vm.destroyToken(idx)},"replace":function($event){return _vm.replaceToken(idx, $event)},"complete":_vm.completeToken,"submit":_vm.submit,"split":function($event){return _vm.createTokens(idx, $event)}},model:{value:(token.value),callback:function ($$v) {_vm.$set(token, "value", $$v);},expression:"token.value"}})]})],2),_vm._v(" "),_c('portal-target',{key:_vm.activeTokenIdx,ref:"menu",style:(_vm.suggestionsStyle),attrs:{"name":_vm.portalName,"slim":""}})]},proxy:true}],null,true)},'gl-search-box-by-click',_vm.$attrs,false))};
275
285
  var __vue_staticRenderFns__ = [];
276
286
 
277
287
  /* style */
@@ -17,6 +17,12 @@ var filtered_search_term_documentation = {
17
17
  },
18
18
  value: {
19
19
  additionalInfo: 'Current term value'
20
+ },
21
+ searchInputAttributes: {
22
+ additionalInfo: 'HTML attributes to add to the search input'
23
+ },
24
+ isLastToken: {
25
+ additionalInfo: 'If this is the last token'
20
26
  }
21
27
  },
22
28
  events: [{
@@ -29,6 +29,16 @@ var script = {
29
29
  type: String,
30
30
  required: false,
31
31
  default: ''
32
+ },
33
+ searchInputAttributes: {
34
+ type: Object,
35
+ required: false,
36
+ default: () => ({})
37
+ },
38
+ isLastToken: {
39
+ type: Boolean,
40
+ required: false,
41
+ default: false
32
42
  }
33
43
  },
34
44
  computed: {
@@ -55,7 +65,7 @@ var script = {
55
65
  const __vue_script__ = script;
56
66
 
57
67
  /* template */
58
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-h-auto gl-filtered-search-term"},[_c('gl-filtered-search-token-segment',{staticClass:"gl-filtered-search-term-token",class:{ 'gl-w-full': _vm.placeholder },attrs:{"active":_vm.active},on:{"activate":function($event){return _vm.$emit('activate')},"deactivate":function($event){return _vm.$emit('deactivate')},"complete":function($event){return _vm.$emit('replace', { type: $event })},"backspace":function($event){return _vm.$emit('destroy')},"submit":function($event){return _vm.$emit('submit')},"split":function($event){return _vm.$emit('split', $event)}},scopedSlots:_vm._u([{key:"suggestions",fn:function(){return _vm._l((_vm.suggestedTokens),function(item,idx){return _c('gl-filtered-search-suggestion',{key:idx,attrs:{"value":item.type,"icon-name":item.icon}},[_vm._v("\n "+_vm._s(item.title)+"\n ")])})},proxy:true},{key:"view",fn:function(){return [(_vm.placeholder)?_c('input',{staticClass:"gl-filtered-search-term-input",attrs:{"placeholder":_vm.placeholder,"aria-label":_vm.placeholder}}):[_vm._v(_vm._s(_vm.value.data))]]},proxy:true}]),model:{value:(_vm.internalValue),callback:function ($$v) {_vm.internalValue=$$v;},expression:"internalValue"}})],1)};
68
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-h-auto gl-filtered-search-term"},[_c('gl-filtered-search-token-segment',{staticClass:"gl-filtered-search-term-token",class:{ 'gl-w-full': _vm.placeholder },attrs:{"active":_vm.active,"search-input-attributes":_vm.searchInputAttributes,"is-last-token":_vm.isLastToken},on:{"activate":function($event){return _vm.$emit('activate')},"deactivate":function($event){return _vm.$emit('deactivate')},"complete":function($event){return _vm.$emit('replace', { type: $event })},"backspace":function($event){return _vm.$emit('destroy')},"submit":function($event){return _vm.$emit('submit')},"split":function($event){return _vm.$emit('split', $event)}},scopedSlots:_vm._u([{key:"suggestions",fn:function(){return _vm._l((_vm.suggestedTokens),function(item,idx){return _c('gl-filtered-search-suggestion',{key:idx,attrs:{"value":item.type,"icon-name":item.icon}},[_vm._v("\n "+_vm._s(item.title)+"\n ")])})},proxy:true},{key:"view",fn:function(){return [(_vm.placeholder)?_c('input',_vm._b({staticClass:"gl-filtered-search-term-input",attrs:{"placeholder":_vm.placeholder,"aria-label":_vm.placeholder}},'input',_vm.searchInputAttributes,false)):[_vm._v(_vm._s(_vm.value.data))]]},proxy:true}]),model:{value:(_vm.internalValue),callback:function ($$v) {_vm.internalValue=$$v;},expression:"internalValue"}})],1)};
59
69
  var __vue_staticRenderFns__ = [];
60
70
 
61
71
  /* style */
@@ -23,6 +23,12 @@ var filtered_search_token_segment_documentation = {
23
23
  },
24
24
  value: {
25
25
  additionalInfo: 'Current term value'
26
+ },
27
+ searchInputAttributes: {
28
+ additionalInfo: 'HTML attributes to add to the search input'
29
+ },
30
+ isLastToken: {
31
+ additionalInfo: 'If this is the last token'
26
32
  }
27
33
  },
28
34
  events: [{
@@ -48,6 +48,16 @@ var script = {
48
48
  value: {
49
49
  required: true,
50
50
  validator: () => true
51
+ },
52
+ searchInputAttributes: {
53
+ type: Object,
54
+ required: false,
55
+ default: () => ({})
56
+ },
57
+ isLastToken: {
58
+ type: Boolean,
59
+ required: false,
60
+ default: false
51
61
  }
52
62
  },
53
63
 
@@ -274,7 +284,7 @@ var script = {
274
284
  const __vue_script__ = script;
275
285
 
276
286
  /* template */
277
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"gl-filtered-search-token-segment",class:{ 'gl-filtered-search-token-segment-active': _vm.active },attrs:{"data-testid":"filtered-search-token-segment"},on:{"mousedown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"left",37,$event.key,["Left","ArrowLeft"])){ return null; }if('button' in $event && $event.button !== 0){ return null; }return _vm.emitIfInactive($event)}}},[(_vm.active)?[_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.inputValue),expression:"inputValue"}],ref:"input",staticClass:"gl-filtered-search-token-segment-input",attrs:{"aria-label":_vm.label},domProps:{"value":(_vm.inputValue)},on:{"keydown":_vm.handleInputKeydown,"blur":_vm.handleBlur,"input":function($event){if($event.target.composing){ return; }_vm.inputValue=$event.target.value;}}}),_vm._v(" "),_c('portal',{key:("operator-" + _vm._uid),attrs:{"to":_vm.portalName}},[(_vm.hasOptionsOrSuggestions)?_c('gl-filtered-search-suggestion-list',{key:("operator-" + _vm._uid),ref:"suggestions",attrs:{"initial-value":_vm.defaultSuggestedValue},on:{"suggestion":_vm.applySuggestion}},[(_vm.options)?_vm._l((_vm.options),function(option,idx){return _c('gl-filtered-search-suggestion',{key:((option.value) + "-" + idx),attrs:{"value":option.value,"icon-name":option.icon}},[_vm._t("option",[_vm._v("\n "+_vm._s(option[_vm.optionTextField])+"\n ")],null,{ option: option })],2)}):_vm._t("suggestions")],2):_vm._e()],1)]:_vm._t("view",[_vm._v(_vm._s(_vm.inputValue))],null,{ inputValue: _vm.inputValue })],2)};
287
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',_vm._b({staticClass:"gl-filtered-search-token-segment",class:{ 'gl-filtered-search-token-segment-active': _vm.active },attrs:{"data-testid":"filtered-search-token-segment"},on:{"mousedown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"left",37,$event.key,["Left","ArrowLeft"])){ return null; }if('button' in $event && $event.button !== 0){ return null; }return _vm.emitIfInactive($event)}}},'div',_vm.isLastToken && !_vm.active && _vm.searchInputAttributes,false),[(_vm.active)?[(((_vm.searchInputAttributes).type)==='checkbox')?_c('input',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputValue),expression:"inputValue"}],ref:"input",staticClass:"gl-filtered-search-token-segment-input",attrs:{"aria-label":_vm.label,"type":"checkbox"},domProps:{"checked":Array.isArray(_vm.inputValue)?_vm._i(_vm.inputValue,null)>-1:(_vm.inputValue)},on:{"keydown":_vm.handleInputKeydown,"blur":_vm.handleBlur,"change":function($event){var $$a=_vm.inputValue,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.inputValue=$$a.concat([$$v]));}else {$$i>-1&&(_vm.inputValue=$$a.slice(0,$$i).concat($$a.slice($$i+1)));}}else {_vm.inputValue=$$c;}}}},'input',_vm.searchInputAttributes,false)):(((_vm.searchInputAttributes).type)==='radio')?_c('input',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputValue),expression:"inputValue"}],ref:"input",staticClass:"gl-filtered-search-token-segment-input",attrs:{"aria-label":_vm.label,"type":"radio"},domProps:{"checked":_vm._q(_vm.inputValue,null)},on:{"keydown":_vm.handleInputKeydown,"blur":_vm.handleBlur,"change":function($event){_vm.inputValue=null;}}},'input',_vm.searchInputAttributes,false)):_c('input',_vm._b({directives:[{name:"model",rawName:"v-model",value:(_vm.inputValue),expression:"inputValue"}],ref:"input",staticClass:"gl-filtered-search-token-segment-input",attrs:{"aria-label":_vm.label,"type":(_vm.searchInputAttributes).type},domProps:{"value":(_vm.inputValue)},on:{"keydown":_vm.handleInputKeydown,"blur":_vm.handleBlur,"input":function($event){if($event.target.composing){ return; }_vm.inputValue=$event.target.value;}}},'input',_vm.searchInputAttributes,false)),_vm._v(" "),_c('portal',{key:("operator-" + _vm._uid),attrs:{"to":_vm.portalName}},[(_vm.hasOptionsOrSuggestions)?_c('gl-filtered-search-suggestion-list',{key:("operator-" + _vm._uid),ref:"suggestions",attrs:{"initial-value":_vm.defaultSuggestedValue},on:{"suggestion":_vm.applySuggestion}},[(_vm.options)?_vm._l((_vm.options),function(option,idx){return _c('gl-filtered-search-suggestion',{key:((option.value) + "-" + idx),attrs:{"value":option.value,"icon-name":option.icon}},[_vm._t("option",[_vm._v("\n "+_vm._s(option[_vm.optionTextField])+"\n ")],null,{ option: option })],2)}):_vm._t("suggestions")],2):_vm._e()],1)]:_vm._t("view",[_vm._v(_vm._s(_vm.inputValue))],null,{ inputValue: _vm.inputValue })],2)};
278
288
  var __vue_staticRenderFns__ = [];
279
289
 
280
290
  /* style */
@@ -1,6 +1,4 @@
1
- import examples from './examples';
2
-
3
- var nav = "# Nav\n\n<!-- STORY -->\n\n## Usage\n\nThe navigation component is built with flexbox and provides a strong foundation for building all\ntypes of navigation components.\n";
1
+ var nav = "The navigation component is built with flexbox and provides a strong foundation for building all\ntypes of navigation components.\n\n## `GlNavItem`\n\nUse `GlNavItem` to add actionable links (or router links) to your nav. `GlNavItem` wraps [`BNavItem`](https://bootstrap-vue.org/docs/components/navbar#b-nav-item).\n\n## `GlNavItemDropdown`\n\nUse `GlNavItemDropdown` to place dropdown items within your nav.\n`GlNavItemDropdown` wraps [`BNavItemDropdown`](https://bootstrap-vue.org/docs/components/navbar#b-nav-item-dropdown).\n";
4
2
 
5
3
  var description = /*#__PURE__*/Object.freeze({
6
4
  __proto__: null,
@@ -8,10 +6,7 @@ var description = /*#__PURE__*/Object.freeze({
8
6
  });
9
7
 
10
8
  var nav_documentation = {
11
- description,
12
- examples,
13
- bootstrapComponent: 'b-nav',
14
- propsInfo: {}
9
+ description
15
10
  };
16
11
 
17
12
  export default nav_documentation;
@@ -51,6 +51,9 @@ var search_box_by_click_documentation = {
51
51
  },
52
52
  tooltipContainer: {
53
53
  additionalInfo: 'Container for tooltip. Valid values: DOM node, selector string or `false` for default'
54
+ },
55
+ searchButtonAttributes: {
56
+ additionalInfo: 'HTML attributes to add to the search button'
54
57
  }
55
58
  },
56
59
  events: [{
@@ -82,6 +82,11 @@ var script = {
82
82
  required: false,
83
83
  default: false,
84
84
  validator: value => value === false || typeof value === 'string' || value instanceof HTMLElement
85
+ },
86
+ searchButtonAttributes: {
87
+ type: Object,
88
+ required: false,
89
+ default: () => ({})
85
90
  }
86
91
  },
87
92
 
@@ -159,7 +164,7 @@ var script = {
159
164
  const __vue_script__ = script;
160
165
 
161
166
  /* template */
162
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-form-input-group',{staticClass:"gl-search-box-by-click",scopedSlots:_vm._u([(_vm.historyItems)?{key:"prepend",fn:function(){return [_c('gl-dropdown',{ref:"historyDropdown",staticClass:"gl-search-box-by-click-history",attrs:{"menu-class":"gl-search-box-by-click-menu","category":"secondary","disabled":_vm.disabled},scopedSlots:_vm._u([{key:"button-content",fn:function(){return [_c('gl-icon',{staticClass:"gl-search-box-by-click-history-icon",attrs:{"name":"history"}}),_vm._v(" "),_c('gl-icon',{staticClass:"gl-search-box-by-click-history-icon-chevron",attrs:{"name":"chevron-down"}}),_vm._v(" "),_c('span',{staticClass:"gl-sr-only"},[_vm._v("Toggle history")])]},proxy:true}],null,false,2220989388)},[_vm._v(" "),_c('gl-dropdown-text',{staticClass:"gl-search-box-by-click-history-header"},[_vm._v("\n "+_vm._s(_vm.recentSearchesHeader)+"\n "),_c('gl-button',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip.hover",value:({ container: _vm.tooltipContainer }),expression:"{ container: tooltipContainer }",modifiers:{"hover":true}}],ref:"closeHistory",staticClass:"gl-search-box-by-click-close-history-button",attrs:{"title":_vm.closeButtonTitle,"aria-label":_vm.closeButtonTitle,"category":"tertiary","name":"close","icon":"close"},on:{"click":_vm.closeHistoryDropdown}})],1),_vm._v(" "),_c('gl-dropdown-divider'),_vm._v(" "),(_vm.historyItems.length)?[_vm._l((_vm.historyItems),function(item,idx){return _c('gl-dropdown-item',{key:idx,staticClass:"gl-search-box-by-click-history-item",on:{"click":function($event){return _vm.selectHistoryItem(item)}}},[_vm._t("history-item",[_vm._v(_vm._s(item))],{"historyItem":item})],2)}),_vm._v(" "),_c('gl-dropdown-divider'),_vm._v(" "),_c('gl-dropdown-item',{ref:"clearHistory",on:{"click":function($event){return _vm.$emit('clear-history')}}},[_vm._v(_vm._s(_vm.clearRecentSearchesText))])]:_c('gl-dropdown-text',{staticClass:"gl-search-box-by-click-history-no-searches"},[_vm._v(_vm._s(_vm.noRecentSearchesText))])],2)]},proxy:true}:null,{key:"append",fn:function(){return [_c('gl-button',{ref:"searchButton",staticClass:"gl-search-box-by-click-search-button",attrs:{"icon":"search","disabled":_vm.disabled,"aria-label":"Search"},on:{"click":function($event){return _vm.search(_vm.currentValue)}}})]},proxy:true}],null,true)},[_vm._v(" "),_vm._t("input",[_c('gl-form-input',_vm._b({ref:"input",staticClass:"gl-search-box-by-click-input",attrs:{"disabled":_vm.disabled},on:{"focus":function($event){_vm.isFocused = true;},"blur":function($event){_vm.isFocused = false;},"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.search(_vm.currentValue)}},model:{value:(_vm.currentValue),callback:function ($$v) {_vm.currentValue=$$v;},expression:"currentValue"}},'gl-form-input',_vm.inputAttributes,false))]),_vm._v(" "),(_vm.clearable && _vm.hasValue && !_vm.disabled)?_c('gl-clear-icon-button',{staticClass:"gl-search-box-by-click-icon-button gl-search-box-by-click-clear-button gl-clear-icon-button",attrs:{"title":_vm.clearButtonTitle,"tooltip-container":_vm.tooltipContainer,"data-testid":"filtered-search-clear-button"},on:{"click":_vm.clearInput}}):_vm._e()],2)};
167
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('gl-form-input-group',{staticClass:"gl-search-box-by-click",scopedSlots:_vm._u([(_vm.historyItems)?{key:"prepend",fn:function(){return [_c('gl-dropdown',{ref:"historyDropdown",staticClass:"gl-search-box-by-click-history",attrs:{"menu-class":"gl-search-box-by-click-menu","category":"secondary","disabled":_vm.disabled},scopedSlots:_vm._u([{key:"button-content",fn:function(){return [_c('gl-icon',{staticClass:"gl-search-box-by-click-history-icon",attrs:{"name":"history"}}),_vm._v(" "),_c('gl-icon',{staticClass:"gl-search-box-by-click-history-icon-chevron",attrs:{"name":"chevron-down"}}),_vm._v(" "),_c('span',{staticClass:"gl-sr-only"},[_vm._v("Toggle history")])]},proxy:true}],null,false,2220989388)},[_vm._v(" "),_c('gl-dropdown-text',{staticClass:"gl-search-box-by-click-history-header"},[_vm._v("\n "+_vm._s(_vm.recentSearchesHeader)+"\n "),_c('gl-button',{directives:[{name:"gl-tooltip",rawName:"v-gl-tooltip.hover",value:({ container: _vm.tooltipContainer }),expression:"{ container: tooltipContainer }",modifiers:{"hover":true}}],ref:"closeHistory",staticClass:"gl-search-box-by-click-close-history-button",attrs:{"title":_vm.closeButtonTitle,"aria-label":_vm.closeButtonTitle,"category":"tertiary","name":"close","icon":"close"},on:{"click":_vm.closeHistoryDropdown}})],1),_vm._v(" "),_c('gl-dropdown-divider'),_vm._v(" "),(_vm.historyItems.length)?[_vm._l((_vm.historyItems),function(item,idx){return _c('gl-dropdown-item',{key:idx,staticClass:"gl-search-box-by-click-history-item",on:{"click":function($event){return _vm.selectHistoryItem(item)}}},[_vm._t("history-item",[_vm._v(_vm._s(item))],{"historyItem":item})],2)}),_vm._v(" "),_c('gl-dropdown-divider'),_vm._v(" "),_c('gl-dropdown-item',{ref:"clearHistory",on:{"click":function($event){return _vm.$emit('clear-history')}}},[_vm._v(_vm._s(_vm.clearRecentSearchesText))])]:_c('gl-dropdown-text',{staticClass:"gl-search-box-by-click-history-no-searches"},[_vm._v(_vm._s(_vm.noRecentSearchesText))])],2)]},proxy:true}:null,{key:"append",fn:function(){return [_c('gl-button',_vm._b({ref:"searchButton",staticClass:"gl-search-box-by-click-search-button",attrs:{"icon":"search","disabled":_vm.disabled,"aria-label":"Search","data-testid":"search-button"},on:{"click":function($event){return _vm.search(_vm.currentValue)}}},'gl-button',_vm.searchButtonAttributes,false))]},proxy:true}],null,true)},[_vm._v(" "),_vm._t("input",[_c('gl-form-input',_vm._b({ref:"input",staticClass:"gl-search-box-by-click-input",attrs:{"disabled":_vm.disabled},on:{"focus":function($event){_vm.isFocused = true;},"blur":function($event){_vm.isFocused = false;},"keydown":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,"enter",13,$event.key,"Enter")){ return null; }return _vm.search(_vm.currentValue)}},model:{value:(_vm.currentValue),callback:function ($$v) {_vm.currentValue=$$v;},expression:"currentValue"}},'gl-form-input',_vm.inputAttributes,false))]),_vm._v(" "),(_vm.clearable && _vm.hasValue && !_vm.disabled)?_c('gl-clear-icon-button',{staticClass:"gl-search-box-by-click-icon-button gl-search-box-by-click-clear-button gl-clear-icon-button",attrs:{"title":_vm.clearButtonTitle,"tooltip-container":_vm.tooltipContainer,"data-testid":"filtered-search-clear-button"},on:{"click":_vm.clearInput}}):_vm._e()],2)};
163
168
  var __vue_staticRenderFns__ = [];
164
169
 
165
170
  /* style */
@@ -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=\"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";
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>\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>\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,5 +1,5 @@
1
1
  import { BTabs } from 'bootstrap-vue/esm/index.js';
2
- import { colorThemes, tabsButtonDefaults } from '../../../../utils/constants';
2
+ import { tabsButtonDefaults } from '../../../../utils/constants';
3
3
  import GlButton from '../../button/button';
4
4
  import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';
5
5
 
@@ -30,12 +30,6 @@ var script = {
30
30
  default: null,
31
31
  validator: obj => validatorHelper(obj)
32
32
  },
33
- theme: {
34
- type: String,
35
- required: false,
36
- default: 'indigo',
37
- validator: value => Object.keys(colorThemes).includes(value) || value === 'gl-dark'
38
- },
39
33
  contentClass: {
40
34
  type: [String, Array, Object],
41
35
  required: false,
@@ -79,10 +73,6 @@ var script = {
79
73
  return [this.actionPrimary, this.actionSecondary, this.actionTertiary].some(Boolean);
80
74
  },
81
75
 
82
- activeItemBorderClass() {
83
- return `gl-tab-nav-item-active-${this.theme}`;
84
- },
85
-
86
76
  listeners() {
87
77
  return { ...this.$listeners,
88
78
  input: this.handleInput
@@ -216,7 +206,7 @@ var script = {
216
206
  const __vue_script__ = script;
217
207
 
218
208
  /* template */
219
- var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-tabs',_vm._g(_vm._b({ref:"bTabs",staticClass:"gl-tabs",attrs:{"no-nav-style":true,"no-fade":true,"active-nav-item-class":("gl-tab-nav-item-active " + _vm.activeItemBorderClass),"content-class":[_vm.contentClass, 'gl-tab-content'],"nav-class":[_vm.navClass, 'gl-tabs-nav'],"justified":_vm.justified,"value":_vm.activeTabIndex},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$slots)),function(slot){return {key:slot,fn:function(){return [_vm._t(slot)]},proxy:true}}),(_vm.hasActions)?{key:"tabs-start",fn:function(){return [_c('div',{staticClass:"gl-actions-tabs-start",attrs:{"data-testid":"actions-tabs-start"}},[(_vm.actionPrimary)?_c('gl-button',_vm._b({attrs:{"data-testid":"action-primary"},on:{"click":_vm.primary}},'gl-button',_vm.buttonBinding(_vm.actionPrimary, 'actionPrimary'),false),[_vm._v("\n "+_vm._s(_vm.actionPrimary.text)+"\n ")]):_vm._e(),_vm._v(" "),(_vm.actionSecondary)?_c('gl-button',_vm._b({attrs:{"data-testid":"action-secondary"},on:{"click":_vm.secondary}},'gl-button',_vm.buttonBinding(_vm.actionSecondary, 'actionSecondary'),false),[_vm._v("\n "+_vm._s(_vm.actionSecondary.text)+"\n ")]):_vm._e(),_vm._v(" "),(_vm.actionTertiary)?_c('gl-button',_vm._b({attrs:{"data-testid":"action-tertiary"},on:{"click":_vm.tertiary}},'gl-button',_vm.buttonBinding(_vm.actionTertiary, 'actionTertiary'),false),[_vm._v("\n "+_vm._s(_vm.actionTertiary.text)+"\n ")]):_vm._e()],1)]},proxy:true}:null,(_vm.hasActions)?{key:"tabs-end",fn:function(){return [_c('div',{staticClass:"gl-actions-tabs-end",attrs:{"data-testid":"actions-tabs-end"}},[(_vm.actionPrimary)?_c('gl-button',_vm._b({attrs:{"data-testid":"action-primary"},on:{"click":_vm.primary}},'gl-button',_vm.buttonBinding(_vm.actionPrimary, 'actionPrimary'),false),[_vm._v("\n "+_vm._s(_vm.actionPrimary.text)+"\n ")]):_vm._e(),_vm._v(" "),(_vm.actionSecondary)?_c('gl-button',_vm._b({attrs:{"data-testid":"action-secondary"},on:{"click":_vm.secondary}},'gl-button',_vm.buttonBinding(_vm.actionSecondary, 'actionSecondary'),false),[_vm._v("\n "+_vm._s(_vm.actionSecondary.text)+"\n ")]):_vm._e(),_vm._v(" "),(_vm.actionTertiary)?_c('gl-button',_vm._b({attrs:{"data-testid":"action-tertiary"},on:{"click":_vm.tertiary}},'gl-button',_vm.buttonBinding(_vm.actionTertiary, 'actionTertiary'),false),[_vm._v("\n "+_vm._s(_vm.actionTertiary.text)+"\n ")]):_vm._e()],1)]},proxy:true}:null],null,true)},'b-tabs',_vm.$attrs,false),_vm.listeners))};
209
+ var __vue_render__ = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-tabs',_vm._g(_vm._b({ref:"bTabs",staticClass:"gl-tabs",attrs:{"no-nav-style":true,"no-fade":true,"active-nav-item-class":"gl-tab-nav-item-active","content-class":[_vm.contentClass, 'gl-tab-content'],"nav-class":[_vm.navClass, 'gl-tabs-nav'],"justified":_vm.justified,"value":_vm.activeTabIndex},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$slots)),function(slot){return {key:slot,fn:function(){return [_vm._t(slot)]},proxy:true}}),(_vm.hasActions)?{key:"tabs-start",fn:function(){return [_c('div',{staticClass:"gl-actions-tabs-start",attrs:{"data-testid":"actions-tabs-start"}},[(_vm.actionPrimary)?_c('gl-button',_vm._b({attrs:{"data-testid":"action-primary"},on:{"click":_vm.primary}},'gl-button',_vm.buttonBinding(_vm.actionPrimary, 'actionPrimary'),false),[_vm._v("\n "+_vm._s(_vm.actionPrimary.text)+"\n ")]):_vm._e(),_vm._v(" "),(_vm.actionSecondary)?_c('gl-button',_vm._b({attrs:{"data-testid":"action-secondary"},on:{"click":_vm.secondary}},'gl-button',_vm.buttonBinding(_vm.actionSecondary, 'actionSecondary'),false),[_vm._v("\n "+_vm._s(_vm.actionSecondary.text)+"\n ")]):_vm._e(),_vm._v(" "),(_vm.actionTertiary)?_c('gl-button',_vm._b({attrs:{"data-testid":"action-tertiary"},on:{"click":_vm.tertiary}},'gl-button',_vm.buttonBinding(_vm.actionTertiary, 'actionTertiary'),false),[_vm._v("\n "+_vm._s(_vm.actionTertiary.text)+"\n ")]):_vm._e()],1)]},proxy:true}:null,(_vm.hasActions)?{key:"tabs-end",fn:function(){return [_c('div',{staticClass:"gl-actions-tabs-end",attrs:{"data-testid":"actions-tabs-end"}},[(_vm.actionPrimary)?_c('gl-button',_vm._b({attrs:{"data-testid":"action-primary"},on:{"click":_vm.primary}},'gl-button',_vm.buttonBinding(_vm.actionPrimary, 'actionPrimary'),false),[_vm._v("\n "+_vm._s(_vm.actionPrimary.text)+"\n ")]):_vm._e(),_vm._v(" "),(_vm.actionSecondary)?_c('gl-button',_vm._b({attrs:{"data-testid":"action-secondary"},on:{"click":_vm.secondary}},'gl-button',_vm.buttonBinding(_vm.actionSecondary, 'actionSecondary'),false),[_vm._v("\n "+_vm._s(_vm.actionSecondary.text)+"\n ")]):_vm._e(),_vm._v(" "),(_vm.actionTertiary)?_c('gl-button',_vm._b({attrs:{"data-testid":"action-tertiary"},on:{"click":_vm.tertiary}},'gl-button',_vm.buttonBinding(_vm.actionTertiary, 'actionTertiary'),false),[_vm._v("\n "+_vm._s(_vm.actionTertiary.text)+"\n ")]):_vm._e()],1)]},proxy:true}:null],null,true)},'b-tabs',_vm.$attrs,false),_vm.listeners))};
220
210
  var __vue_staticRenderFns__ = [];
221
211
 
222
212
  /* style */
@@ -1,22 +1,7 @@
1
- import examples from './examples';
2
-
3
- var description = "# Truncate\n\nThe `GlTruncate` component lets you truncate the long texts with ellipsis.\n\n<!-- STORY -->\n\n> **Tip:** Try resizing the side panel for truncation.\n\n## Usage\n\n```html\n<gl-truncate :text=\"text\" :position=\"position\" />\n```\n\nBy default, the ellipsis position is at the `end`.\n\nPro Tip: Truncating long filepaths from the `middle` / `start` can help preventing the important\ninformation in the end, i.e. filenames.\n";
1
+ var description = "The `GlTruncate` component lets you truncate the long texts with ellipsis.\n\n> **Tip:** Try resizing the side panel for truncation.\n\n## Usage\n\n```html\n<gl-truncate :text=\"text\" :position=\"position\" />\n```\n\nBy default, the ellipsis position is at the `end`.\n\nPro Tip: Truncating long filepaths from the `middle` / `start` can help preventing the important\ninformation in the end, i.e. filenames.\n";
4
2
 
5
3
  var truncate_documentation = {
6
- description,
7
- examples,
8
- propsInfo: {
9
- text: {
10
- additionalInfo: 'Text to be ellipsized'
11
- },
12
- position: {
13
- additionalInfo: 'Ellipsis position',
14
- enum: 'truncateOptions'
15
- },
16
- withTooltip: {
17
- additionalInfo: 'Display the full text in a tooltip only if it is being truncated'
18
- }
19
- }
4
+ description
20
5
  };
21
6
 
22
7
  export default truncate_documentation;
@@ -10,16 +10,27 @@ var script = {
10
10
  GlResizeObserver: GlResizeObserverDirective
11
11
  },
12
12
  props: {
13
+ /**
14
+ * Text to be ellipsized
15
+ */
13
16
  text: {
14
17
  type: String,
15
18
  required: true
16
19
  },
20
+
21
+ /**
22
+ * Ellipsis position
23
+ */
17
24
  position: {
18
25
  type: String,
19
26
  required: false,
20
27
  default: POSITION.END,
21
28
  validator: value => Object.values(POSITION).includes(value)
22
29
  },
30
+
31
+ /**
32
+ * Display the full text in a tooltip only if it is being truncated
33
+ */
23
34
  withTooltip: {
24
35
  type: Boolean,
25
36
  required: false,