@splunk/react-ui 4.17.0 → 4.18.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 (82) hide show
  1. package/Accordion.js +2 -2
  2. package/AnimationToggle.js +5 -5
  3. package/Button.js +7 -7
  4. package/ButtonSimple.js +2 -2
  5. package/CHANGELOG.md +40 -7
  6. package/Calendar.js +7 -5
  7. package/CloseButton.js +5 -5
  8. package/Code.js +7 -6
  9. package/Color.js +206 -179
  10. package/ColumnLayout.js +8 -8
  11. package/ComboBox.js +2 -0
  12. package/Concertina.js +10 -10
  13. package/DefinitionList.js +2 -2
  14. package/Dropdown.js +7 -7
  15. package/DualListbox.js +11 -8
  16. package/File.js +9 -9
  17. package/FormRows.js +4 -4
  18. package/Heading.js +8 -4
  19. package/JSONTree.js +30 -28
  20. package/Layer.js +10 -10
  21. package/Link.js +4 -4
  22. package/List.js +7 -4
  23. package/MIGRATION.mdx +295 -0
  24. package/Markdown.js +12 -7
  25. package/Menu.js +19 -19
  26. package/Message.js +25 -25
  27. package/MessageBar.js +21 -21
  28. package/Modal.js +7 -7
  29. package/Multiselect.js +46 -36
  30. package/Number.js +3 -2
  31. package/Paginator.js +6 -6
  32. package/Popover.js +17 -13
  33. package/Progress.js +2 -2
  34. package/RadioBar.js +2 -2
  35. package/RadioList.js +2 -2
  36. package/Resize.js +2 -2
  37. package/Scroll.js +2 -2
  38. package/Select.js +14 -13
  39. package/SidePanel.js +2 -2
  40. package/Slider.js +7 -7
  41. package/StepBar.js +8 -8
  42. package/Switch.js +2 -2
  43. package/TabBar.js +85 -54
  44. package/Table.js +13 -13
  45. package/Text.js +7 -7
  46. package/TextArea.js +8 -6
  47. package/Typography.js +2 -2
  48. package/package.json +10 -15
  49. package/stubs-dependencies.d.ts +0 -9
  50. package/stubs-splunkui.d.ts +0 -24
  51. package/types/src/Button/Button.d.ts +5 -3
  52. package/types/src/Clickable/Clickable.d.ts +2 -1
  53. package/types/src/CollapsiblePanel/CollapsiblePanel.d.ts +1 -0
  54. package/types/src/Color/Color.d.ts +6 -6
  55. package/types/src/Color/Palette.d.ts +46 -0
  56. package/types/src/Concertina/Panel.d.ts +1 -0
  57. package/types/src/FormRows/Row.d.ts +1 -0
  58. package/types/src/Heading/Heading.d.ts +7 -2
  59. package/types/src/JSONTree/JSONTree.d.ts +2 -1
  60. package/types/src/Layer/Layer.d.ts +2 -0
  61. package/types/src/List/List.d.ts +9 -1
  62. package/types/src/List/docs/examples/CustomizedList.d.ts +2 -0
  63. package/types/src/List/docs/examples/OrderedList.d.ts +2 -0
  64. package/types/src/List/docs/examples/UnorderedList.d.ts +2 -0
  65. package/types/src/Markdown/Markdown.d.ts +1 -0
  66. package/types/src/Markdown/renderers/MarkdownList.d.ts +2 -0
  67. package/types/src/Multiselect/Normal.d.ts +1 -1
  68. package/types/src/Number/Number.d.ts +9 -4
  69. package/types/src/Popover/Popover.d.ts +2 -0
  70. package/types/src/TabBar/Tab.d.ts +5 -1
  71. package/types/src/Table/Head.d.ts +1 -0
  72. package/types/src/Table/HeadCell.d.ts +1 -0
  73. package/types/src/Table/HeadDropdownCell.d.ts +1 -0
  74. package/types/src/Table/Table.d.ts +3 -1
  75. package/types/src/Text/Text.d.ts +3 -1
  76. package/types/src/TextArea/TextArea.d.ts +13 -4
  77. package/types/src/TextArea/docs/examples/ClearContent.d.ts +2 -0
  78. package/MIGRATION.md +0 -49
  79. package/types/src/List/docs/examples/Decimal.d.ts +0 -2
  80. package/types/src/List/docs/examples/Disc.d.ts +0 -2
  81. package/types/src/List/docs/examples/LowerAlpha.d.ts +0 -2
  82. package/types/src/List/docs/examples/UpperAlpha.d.ts +0 -2
package/RadioList.js CHANGED
@@ -82,7 +82,7 @@ module.exports =
82
82
  /******/
83
83
  /******/
84
84
  /******/ // Load entry module and return exports
85
- /******/ return __webpack_require__(__webpack_require__.s = 185);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 187);
86
86
  /******/ })
87
87
  /************************************************************************/
88
88
  /******/ ({
@@ -101,7 +101,7 @@ module.exports = require("prop-types");
101
101
 
102
102
  /***/ }),
103
103
 
104
- /***/ 185:
104
+ /***/ 187:
105
105
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
106
106
 
107
107
  "use strict";
package/Resize.js CHANGED
@@ -135,7 +135,7 @@ module.exports = require("@splunk/react-ui/ScreenReaderContent");
135
135
 
136
136
  /***/ }),
137
137
 
138
- /***/ 15:
138
+ /***/ 16:
139
139
  /***/ (function(module, exports) {
140
140
 
141
141
  module.exports = require("@splunk/react-ui/EventListener");
@@ -176,7 +176,7 @@ var omit_ = __webpack_require__(5);
176
176
  var omit_default = /*#__PURE__*/__webpack_require__.n(omit_);
177
177
 
178
178
  // EXTERNAL MODULE: external "@splunk/react-ui/EventListener"
179
- var EventListener_ = __webpack_require__(15);
179
+ var EventListener_ = __webpack_require__(16);
180
180
  var EventListener_default = /*#__PURE__*/__webpack_require__.n(EventListener_);
181
181
 
182
182
  // EXTERNAL MODULE: external "@splunk/react-ui/ScreenReaderContent"
package/Scroll.js CHANGED
@@ -128,7 +128,7 @@ function updateReactRef(ref, current) {
128
128
 
129
129
  /***/ }),
130
130
 
131
- /***/ 15:
131
+ /***/ 16:
132
132
  /***/ (function(module, exports) {
133
133
 
134
134
  module.exports = require("@splunk/react-ui/EventListener");
@@ -193,7 +193,7 @@ var omit_default = /*#__PURE__*/__webpack_require__.n(omit_);
193
193
  var external_react_spring_ = __webpack_require__(24);
194
194
 
195
195
  // EXTERNAL MODULE: external "@splunk/react-ui/EventListener"
196
- var EventListener_ = __webpack_require__(15);
196
+ var EventListener_ = __webpack_require__(16);
197
197
  var EventListener_default = /*#__PURE__*/__webpack_require__.n(EventListener_);
198
198
 
199
199
  // EXTERNAL MODULE: external "@splunk/react-ui/ScrollContainerContext"
package/Select.js CHANGED
@@ -108,14 +108,14 @@ module.exports = require("lodash/has");
108
108
 
109
109
  /***/ }),
110
110
 
111
- /***/ 103:
111
+ /***/ 102:
112
112
  /***/ (function(module, exports) {
113
113
 
114
114
  module.exports = require("lodash/forEachRight");
115
115
 
116
116
  /***/ }),
117
117
 
118
- /***/ 104:
118
+ /***/ 103:
119
119
  /***/ (function(module, exports) {
120
120
 
121
121
  module.exports = require("lodash/uniq");
@@ -129,7 +129,7 @@ module.exports = require("@splunk/react-ui/Menu");
129
129
 
130
130
  /***/ }),
131
131
 
132
- /***/ 16:
132
+ /***/ 15:
133
133
  /***/ (function(module, exports) {
134
134
 
135
135
  module.exports = require("lodash/includes");
@@ -1007,7 +1007,7 @@ var external_prop_types_ = __webpack_require__(1);
1007
1007
  var external_prop_types_default = /*#__PURE__*/__webpack_require__.n(external_prop_types_);
1008
1008
 
1009
1009
  // EXTERNAL MODULE: external "lodash/castArray"
1010
- var castArray_ = __webpack_require__(64);
1010
+ var castArray_ = __webpack_require__(65);
1011
1011
  var castArray_default = /*#__PURE__*/__webpack_require__.n(castArray_);
1012
1012
 
1013
1013
  // EXTERNAL MODULE: external "lodash/find"
@@ -1015,7 +1015,7 @@ var find_ = __webpack_require__(52);
1015
1015
  var find_default = /*#__PURE__*/__webpack_require__.n(find_);
1016
1016
 
1017
1017
  // EXTERNAL MODULE: external "lodash/forEachRight"
1018
- var forEachRight_ = __webpack_require__(103);
1018
+ var forEachRight_ = __webpack_require__(102);
1019
1019
  var forEachRight_default = /*#__PURE__*/__webpack_require__.n(forEachRight_);
1020
1020
 
1021
1021
  // EXTERNAL MODULE: external "lodash/has"
@@ -1023,7 +1023,7 @@ var has_ = __webpack_require__(10);
1023
1023
  var has_default = /*#__PURE__*/__webpack_require__.n(has_);
1024
1024
 
1025
1025
  // EXTERNAL MODULE: external "lodash/includes"
1026
- var includes_ = __webpack_require__(16);
1026
+ var includes_ = __webpack_require__(15);
1027
1027
  var includes_default = /*#__PURE__*/__webpack_require__.n(includes_);
1028
1028
 
1029
1029
  // EXTERNAL MODULE: external "lodash/isUndefined"
@@ -1043,7 +1043,7 @@ var pick_ = __webpack_require__(41);
1043
1043
  var pick_default = /*#__PURE__*/__webpack_require__.n(pick_);
1044
1044
 
1045
1045
  // EXTERNAL MODULE: external "lodash/uniq"
1046
- var uniq_ = __webpack_require__(104);
1046
+ var uniq_ = __webpack_require__(103);
1047
1047
  var uniq_default = /*#__PURE__*/__webpack_require__.n(uniq_);
1048
1048
 
1049
1049
  // EXTERNAL MODULE: external "lodash/without"
@@ -1824,7 +1824,7 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1824
1824
  'aria-describedby': describedBy,
1825
1825
  'aria-label': "".concat(labelText ? "".concat(labelText, ", ") : '').concat(ariaLabel),
1826
1826
  'aria-labelledby': labelText ? undefined : labelledBy,
1827
- 'aria-multiselectable': multiple,
1827
+ 'aria-multiselectable': multiple || undefined,
1828
1828
  'aria-required': required,
1829
1829
  'data-select-appearance': appearance,
1830
1830
  'data-test': multiple ? 'multiselect' : 'select',
@@ -1860,7 +1860,8 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
1860
1860
  icon: icon,
1861
1861
  inline: inline,
1862
1862
  isMenu: true,
1863
- role: "listbox" // @ts-expect-error - accept inconsistency with Button
1863
+ "aria-haspopup": "listbox",
1864
+ "aria-owns": _this.menuId // @ts-expect-error - accept inconsistency with Button
1864
1865
  ,
1865
1866
  onClick: _this.props.onClick
1866
1867
  }, pick_default()(_this.props, SelectBase.invalidLinkAppearanceProps)), !!currentValues.length && multiple && /*#__PURE__*/external_react_default.a.createElement(StyledCount, {
@@ -2266,7 +2267,6 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
2266
2267
  "aria-expanded": "true",
2267
2268
  "aria-label": Object(i18n_["_"])('Filter'),
2268
2269
  "aria-activedescendant": this.activeItemId,
2269
- "aria-controls": this.menuId,
2270
2270
  inputRef: inputRef,
2271
2271
  inputId: inputId,
2272
2272
  canClear: true,
@@ -2308,8 +2308,9 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
2308
2308
  minWidth: anchorWidth !== null && anchorWidth !== void 0 ? anchorWidth : undefined,
2309
2309
  maxWidth: Math.max(anchorWidth !== null && anchorWidth !== void 0 ? anchorWidth : 0, 300)
2310
2310
  };
2311
+ var tabIndex = currentValues.length > 0 && !isAnyValueSelected && !_this2.hasFilter() ? 0 : undefined;
2311
2312
  return /*#__PURE__*/external_react_default.a.createElement(ResultsMenu_default.a, _extends({
2312
- "aria-multiselectable": multiple,
2313
+ "aria-multiselectable": multiple || undefined,
2313
2314
  childrenStart: _this2.renderControls({
2314
2315
  placement: placement,
2315
2316
  hasChildren: !!finalChildren.length
@@ -2323,7 +2324,7 @@ var SelectBase_SelectBase = /*#__PURE__*/function (_Component) {
2323
2324
  id: _this2.menuId
2324
2325
  }, pick_default()(_this2.props, 'noOptionsMessage', 'footerMessage', 'animateLoading', 'loadingMessage', 'onScroll'), {
2325
2326
  style: _objectSpread(_objectSpread({}, internalMenuStyle), _this2.props.menuStyle),
2326
- tabIndex: currentValues.length > 0 && !isAnyValueSelected ? 0 : undefined
2327
+ tabIndex: tabIndex
2327
2328
  }), finalChildren);
2328
2329
  };
2329
2330
 
@@ -2367,7 +2368,7 @@ _defineProperty(SelectBase_SelectBase, "invalidLinkAppearanceProps", ['append',
2367
2368
 
2368
2369
  /***/ }),
2369
2370
 
2370
- /***/ 64:
2371
+ /***/ 65:
2371
2372
  /***/ (function(module, exports) {
2372
2373
 
2373
2374
  module.exports = require("lodash/castArray");
package/SidePanel.js CHANGED
@@ -101,7 +101,7 @@ module.exports = require("prop-types");
101
101
 
102
102
  /***/ }),
103
103
 
104
- /***/ 102:
104
+ /***/ 101:
105
105
  /***/ (function(module, exports) {
106
106
 
107
107
  module.exports = require("@splunk/react-ui/ModalLayer");
@@ -142,7 +142,7 @@ var omit_ = __webpack_require__(5);
142
142
  var omit_default = /*#__PURE__*/__webpack_require__.n(omit_);
143
143
 
144
144
  // EXTERNAL MODULE: external "@splunk/react-ui/ModalLayer"
145
- var ModalLayer_ = __webpack_require__(102);
145
+ var ModalLayer_ = __webpack_require__(101);
146
146
  var ModalLayer_default = /*#__PURE__*/__webpack_require__.n(ModalLayer_);
147
147
 
148
148
  // EXTERNAL MODULE: external "styled-components"
package/Slider.js CHANGED
@@ -108,17 +108,17 @@ module.exports = require("lodash/has");
108
108
 
109
109
  /***/ }),
110
110
 
111
- /***/ 15:
111
+ /***/ 153:
112
112
  /***/ (function(module, exports) {
113
113
 
114
- module.exports = require("@splunk/react-ui/EventListener");
114
+ module.exports = require("decimal.js-light");
115
115
 
116
116
  /***/ }),
117
117
 
118
- /***/ 153:
118
+ /***/ 16:
119
119
  /***/ (function(module, exports) {
120
120
 
121
- module.exports = require("decimal.js-light");
121
+ module.exports = require("@splunk/react-ui/EventListener");
122
122
 
123
123
  /***/ }),
124
124
 
@@ -177,7 +177,7 @@ var keyboard_ = __webpack_require__(7);
177
177
  var themes_ = __webpack_require__(0);
178
178
 
179
179
  // EXTERNAL MODULE: external "@splunk/react-ui/EventListener"
180
- var EventListener_ = __webpack_require__(15);
180
+ var EventListener_ = __webpack_require__(16);
181
181
  var EventListener_default = /*#__PURE__*/__webpack_require__.n(EventListener_);
182
182
 
183
183
  // EXTERNAL MODULE: external "@splunk/react-ui/Popover"
@@ -189,7 +189,7 @@ var external_styled_components_ = __webpack_require__(3);
189
189
  var external_styled_components_default = /*#__PURE__*/__webpack_require__.n(external_styled_components_);
190
190
 
191
191
  // EXTERNAL MODULE: external "tinycolor2"
192
- var external_tinycolor2_ = __webpack_require__(66);
192
+ var external_tinycolor2_ = __webpack_require__(67);
193
193
  var external_tinycolor2_default = /*#__PURE__*/__webpack_require__.n(external_tinycolor2_);
194
194
 
195
195
  // EXTERNAL MODULE: external "@splunk/react-ui/Box"
@@ -819,7 +819,7 @@ module.exports = require("@splunk/react-ui/Box");
819
819
 
820
820
  /***/ }),
821
821
 
822
- /***/ 66:
822
+ /***/ 67:
823
823
  /***/ (function(module, exports) {
824
824
 
825
825
  module.exports = require("tinycolor2");
package/StepBar.js CHANGED
@@ -82,7 +82,7 @@ module.exports =
82
82
  /******/
83
83
  /******/
84
84
  /******/ // Load entry module and return exports
85
- /******/ return __webpack_require__(__webpack_require__.s = 186);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 188);
86
86
  /******/ })
87
87
  /************************************************************************/
88
88
  /******/ ({
@@ -101,7 +101,7 @@ module.exports = require("prop-types");
101
101
 
102
102
  /***/ }),
103
103
 
104
- /***/ 186:
104
+ /***/ 188:
105
105
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
106
106
 
107
107
  "use strict";
@@ -124,7 +124,7 @@ var external_prop_types_default = /*#__PURE__*/__webpack_require__.n(external_pr
124
124
  var id_ = __webpack_require__(8);
125
125
 
126
126
  // EXTERNAL MODULE: external "@splunk/themes/useSplunkTheme"
127
- var useSplunkTheme_ = __webpack_require__(67);
127
+ var useSplunkTheme_ = __webpack_require__(68);
128
128
  var useSplunkTheme_default = /*#__PURE__*/__webpack_require__.n(useSplunkTheme_);
129
129
 
130
130
  // EXTERNAL MODULE: external "styled-components"
@@ -132,11 +132,11 @@ var external_styled_components_ = __webpack_require__(3);
132
132
  var external_styled_components_default = /*#__PURE__*/__webpack_require__.n(external_styled_components_);
133
133
 
134
134
  // EXTERNAL MODULE: external "@splunk/react-icons/CheckCircle"
135
- var CheckCircle_ = __webpack_require__(69);
135
+ var CheckCircle_ = __webpack_require__(70);
136
136
  var CheckCircle_default = /*#__PURE__*/__webpack_require__.n(CheckCircle_);
137
137
 
138
138
  // EXTERNAL MODULE: external "@splunk/react-icons/ExclamationCircle"
139
- var ExclamationCircle_ = __webpack_require__(70);
139
+ var ExclamationCircle_ = __webpack_require__(71);
140
140
  var ExclamationCircle_default = /*#__PURE__*/__webpack_require__.n(ExclamationCircle_);
141
141
 
142
142
  // EXTERNAL MODULE: external "@splunk/themes"
@@ -437,21 +437,21 @@ module.exports = require("styled-components");
437
437
 
438
438
  /***/ }),
439
439
 
440
- /***/ 67:
440
+ /***/ 68:
441
441
  /***/ (function(module, exports) {
442
442
 
443
443
  module.exports = require("@splunk/themes/useSplunkTheme");
444
444
 
445
445
  /***/ }),
446
446
 
447
- /***/ 69:
447
+ /***/ 70:
448
448
  /***/ (function(module, exports) {
449
449
 
450
450
  module.exports = require("@splunk/react-icons/CheckCircle");
451
451
 
452
452
  /***/ }),
453
453
 
454
- /***/ 70:
454
+ /***/ 71:
455
455
  /***/ (function(module, exports) {
456
456
 
457
457
  module.exports = require("@splunk/react-icons/ExclamationCircle");
package/Switch.js CHANGED
@@ -152,7 +152,7 @@ var ScreenReaderContent_default = /*#__PURE__*/__webpack_require__.n(ScreenReade
152
152
  var id_ = __webpack_require__(8);
153
153
 
154
154
  // EXTERNAL MODULE: external "@splunk/react-icons/enterprise/Check"
155
- var Check_ = __webpack_require__(95);
155
+ var Check_ = __webpack_require__(94);
156
156
  var Check_default = /*#__PURE__*/__webpack_require__.n(Check_);
157
157
 
158
158
  // EXTERNAL MODULE: external "@splunk/themes"
@@ -759,7 +759,7 @@ module.exports = require("@splunk/ui-utils/id");
759
759
 
760
760
  /***/ }),
761
761
 
762
- /***/ 95:
762
+ /***/ 94:
763
763
  /***/ (function(module, exports) {
764
764
 
765
765
  module.exports = require("@splunk/react-icons/enterprise/Check");
package/TabBar.js CHANGED
@@ -82,7 +82,7 @@ module.exports =
82
82
  /******/
83
83
  /******/
84
84
  /******/ // Load entry module and return exports
85
- /******/ return __webpack_require__(__webpack_require__.s = 187);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 183);
86
86
  /******/ })
87
87
  /************************************************************************/
88
88
  /******/ ({
@@ -142,7 +142,7 @@ module.exports = require("@splunk/react-ui/ScreenReaderContent");
142
142
 
143
143
  /***/ }),
144
144
 
145
- /***/ 187:
145
+ /***/ 183:
146
146
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
147
147
 
148
148
  "use strict";
@@ -194,9 +194,6 @@ var Styled = external_styled_components_default.a.div.withConfig({
194
194
  }
195
195
  }));
196
196
 
197
- // EXTERNAL MODULE: external "@splunk/ui-utils/id"
198
- var id_ = __webpack_require__(8);
199
-
200
197
  // EXTERNAL MODULE: external "@splunk/react-ui/Popover"
201
198
  var Popover_ = __webpack_require__(21);
202
199
  var Popover_default = /*#__PURE__*/__webpack_require__.n(Popover_);
@@ -205,6 +202,9 @@ var Popover_default = /*#__PURE__*/__webpack_require__.n(Popover_);
205
202
  var ScreenReaderContent_ = __webpack_require__(14);
206
203
  var ScreenReaderContent_default = /*#__PURE__*/__webpack_require__.n(ScreenReaderContent_);
207
204
 
205
+ // EXTERNAL MODULE: external "@splunk/ui-utils/id"
206
+ var id_ = __webpack_require__(8);
207
+
208
208
  // EXTERNAL MODULE: external "@splunk/react-ui/Clickable"
209
209
  var Clickable_ = __webpack_require__(12);
210
210
  var Clickable_default = /*#__PURE__*/__webpack_require__.n(Clickable_);
@@ -253,7 +253,7 @@ var StyledClickable = external_styled_components_default()(Clickable_default.a).
253
253
  var StyledUnderline = external_styled_components_default.a.div.withConfig({
254
254
  displayName: "TabStyles__StyledUnderline",
255
255
  componentId: "sc-1ry8mzj-1"
256
- })(["position:absolute;", " ", ";[aria-selected='true'] > &{background-color:", ";", ";}", ":hover:not([disabled]) > &{", ";}"], Object(themes_["pick"])({
256
+ })(["position:absolute;", " ", ";[aria-selected='true'] > &&{background-color:", ";", ";}", ":hover:not([disabled]) > &&{", ";}"], Object(themes_["pick"])({
257
257
  enterprise: Object(external_styled_components_["css"])(["background:", ";"], themes_["variables"].borderLightColor)
258
258
  }), Object(themes_["pickVariant"])('$layout', {
259
259
  horizontal: Object(external_styled_components_["css"])(["height:0;box-sizing:border-box;width:", ";", " transition:height 0.2s;"], Object(themes_["pick"])({
@@ -333,14 +333,23 @@ var StyledTooltipContent = external_styled_components_default.a.div.withConfig({
333
333
  componentId: "sc-1ry8mzj-5"
334
334
  })(["padding:8px;font-size:", ";"], themes_["variables"].fontSizeSmall);
335
335
 
336
- // EXTERNAL MODULE: ./src/utils/updateReactRef.ts
337
- var updateReactRef = __webpack_require__(11);
338
-
339
336
  // CONCATENATED MODULE: ./src/TabBar/TabBarContext.tsx
340
337
 
341
338
  var TabBarContext = /*#__PURE__*/Object(external_react_["createContext"])({});
342
339
  TabBarContext.displayName = 'TabBar';
343
340
  /* harmony default export */ var TabBar_TabBarContext = (TabBarContext);
341
+ // CONCATENATED MODULE: ./src/utils/getCountValue.ts
342
+ // A utility for max count
343
+ var maxCountValue = function maxCountValue(count, maxCount) {
344
+ if (count > maxCount) {
345
+ return "".concat(maxCount, "+");
346
+ }
347
+
348
+ return count;
349
+ };
350
+ // EXTERNAL MODULE: ./src/utils/updateReactRef.ts
351
+ var updateReactRef = __webpack_require__(11);
352
+
344
353
  // CONCATENATED MODULE: ./src/TabBar/Tab.tsx
345
354
  function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
346
355
 
@@ -380,6 +389,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
380
389
 
381
390
 
382
391
 
392
+
383
393
  var propTypes = {
384
394
  /** @private. Is the tab active. */
385
395
  active: external_prop_types_default.a.bool,
@@ -390,6 +400,9 @@ var propTypes = {
390
400
  icon: external_prop_types_default.a.node,
391
401
  id: external_prop_types_default.a.string,
392
402
  label: external_prop_types_default.a.oneOfType([external_prop_types_default.a.string, external_prop_types_default.a.element]),
403
+
404
+ /** @private Maximum count number in tab label */
405
+ maxCount: external_prop_types_default.a.number,
393
406
  tabId: external_prop_types_default.a.string,
394
407
 
395
408
  /** @private. The internal key of the tab */
@@ -416,6 +429,8 @@ var Tab_Tab = /*#__PURE__*/function (_Component) {
416
429
 
417
430
  _defineProperty(_assertThisInitialized(_this), "popoverId", void 0);
418
431
 
432
+ _defineProperty(_assertThisInitialized(_this), "ariaId", void 0);
433
+
419
434
  _defineProperty(_assertThisInitialized(_this), "handleMount", function (el) {
420
435
  _this.setState({
421
436
  anchor: el
@@ -471,6 +486,7 @@ var Tab_Tab = /*#__PURE__*/function (_Component) {
471
486
  });
472
487
 
473
488
  _this.popoverId = Object(id_["createDOMID"])('popover');
489
+ _this.ariaId = Object(id_["createDOMID"])('aria-id');
474
490
  _this.state = {
475
491
  open: false,
476
492
  anchor: null
@@ -496,9 +512,10 @@ var Tab_Tab = /*#__PURE__*/function (_Component) {
496
512
  icon = _this$props3.icon,
497
513
  label = _this$props3.label,
498
514
  tabId = _this$props3.tabId,
515
+ maxCount = _this$props3.maxCount,
499
516
  to = _this$props3.to,
500
517
  tooltip = _this$props3.tooltip,
501
- otherProps = _objectWithoutProperties(_this$props3, ["active", "ariaControls", "count", "disabled", "icon", "label", "tabId", "to", "tooltip"]);
518
+ otherProps = _objectWithoutProperties(_this$props3, ["active", "ariaControls", "count", "disabled", "icon", "label", "tabId", "maxCount", "to", "tooltip"]);
502
519
 
503
520
  var _this$state = this.state,
504
521
  anchor = _this$state.anchor,
@@ -510,55 +527,69 @@ var Tab_Tab = /*#__PURE__*/function (_Component) {
510
527
  layout = _this$context.layout,
511
528
  widthContext = _this$context.width;
512
529
  var style = otherProps.style;
513
- var disabledValue = disabledContext || disabled;
530
+ var disabledValue = disabledContext || disabled || false;
514
531
  var iconSizeValue = iconSize || 'inline';
515
532
  var layoutValue = layout || 'horizontal';
516
533
  var styleValue = widthContext ? {
517
534
  width: widthContext
518
535
  } : style;
519
- return /*#__PURE__*/external_react_default.a.createElement(StyledClickable, _extends({
520
- "aria-controls": ariaControls,
521
- "aria-selected": active,
522
- "data-test": "tab",
523
- "data-test-tab-id": tabId,
524
- "data-test-popover-id": tooltip ? this.popoverId : undefined,
525
- $layout: layoutValue,
526
- $icon: icon && iconSizeValue !== 'inline' ? true : undefined,
527
- disabled: disabledValue,
528
- elementRef: this.handleMount,
529
- style: styleValue
530
- }, otherProps, {
531
- onClick: this.handleClick,
532
- onFocus: this.handleFocus,
533
- onMouseEnter: this.handleTooltipOpen,
534
- onBlur: this.handleTooltipClose,
535
- onMouseLeave: this.handleTooltipClose,
536
- role: "tab",
537
- tabIndex: active ? undefined : -1 // @ts-expect-error - this is problematic, since the label
538
- // prop is of type React.ReactNode, which means title
539
- // can end up showing as "[object Object]"
540
- ,
541
- title: label,
542
- to: to
543
- }), /*#__PURE__*/external_react_default.a.createElement(StyledLabel, {
544
- "data-test": "label",
545
- $withUnderline: appearance === 'navigation'
546
- }, icon && /*#__PURE__*/external_react_default.a.createElement(StyledIcon, {
547
- $iconSize: iconSizeValue
548
- }, icon), label, (count === 0 || count) && /*#__PURE__*/external_react_default.a.createElement(StyledCount, {
549
- "data-test": "count",
550
- disabled: disabledValue
551
- }, count)), /*#__PURE__*/external_react_default.a.createElement(StyledUnderline, {
552
- $layout: layoutValue,
553
- $withUnderline: appearance === 'navigation'
554
- }), !disabled && tooltip && /*#__PURE__*/external_react_default.a.createElement(Popover_default.a, {
555
- anchor: anchor,
556
- appearance: "inverted",
557
- closeReasons: [],
558
- defaultPlacement: layoutValue === 'vertical' ? 'right' : 'above',
559
- id: this.popoverId,
560
- open: !!anchor && open
561
- }, /*#__PURE__*/external_react_default.a.createElement(StyledTooltipContent, null, tooltip)), tooltip && /*#__PURE__*/external_react_default.a.createElement(ScreenReaderContent_default.a, null, tooltip));
536
+ return (
537
+ /*#__PURE__*/
538
+ // TODO: Fix the ts error: https://splunk.atlassian.net/browse/SUI-5569
539
+ // eslint-disable-next-line
540
+ // @ts-ignore-next-line
541
+ external_react_default.a.createElement(StyledClickable, _extends({
542
+ "aria-controls": ariaControls,
543
+ "aria-selected": active,
544
+ "aria-labelledby": this.ariaId,
545
+ "data-test": "tab",
546
+ "data-test-tab-id": tabId,
547
+ "data-test-popover-id": tooltip ? this.popoverId : undefined,
548
+ $layout: layoutValue,
549
+ $icon: icon && iconSizeValue !== 'inline' ? true : undefined,
550
+ disabled: disabledValue,
551
+ elementRef: this.handleMount,
552
+ style: styleValue
553
+ }, otherProps, {
554
+ onClick: this.handleClick,
555
+ onFocus: this.handleFocus,
556
+ onMouseEnter: this.handleTooltipOpen,
557
+ onBlur: this.handleTooltipClose,
558
+ onMouseLeave: this.handleTooltipClose,
559
+ role: "tab",
560
+ tabIndex: active ? undefined : -1,
561
+ to: to
562
+ }), /*#__PURE__*/external_react_default.a.createElement(StyledLabel, {
563
+ "data-test": "label",
564
+ $withUnderline: appearance === 'navigation'
565
+ }, icon && /*#__PURE__*/external_react_default.a.createElement(StyledIcon, {
566
+ $iconSize: iconSizeValue
567
+ }, icon), label, (count === 0 || count) && /*#__PURE__*/external_react_default.a.createElement(StyledCount, {
568
+ "data-test": "count",
569
+ disabled: disabledValue
570
+ }, maxCount ? maxCountValue(count, maxCount) : count)), /*#__PURE__*/external_react_default.a.createElement(StyledUnderline, {
571
+ $layout: layoutValue,
572
+ $withUnderline: appearance === 'navigation'
573
+ }), !disabled && tooltip && /*#__PURE__*/external_react_default.a.createElement(Popover_default.a, {
574
+ role: "tooltip",
575
+ anchor: anchor // override Popover's default animation to make it faster
576
+ // this keeps the overall amount of time the Tooltip is on-screen the same
577
+ // even with the increased default closeDelay to address SUI-5116
578
+ ,
579
+ animationConfig: {
580
+ tension: 400
581
+ },
582
+ appearance: "inverted",
583
+ closeReasons: ['offScreen', 'escapeKey'],
584
+ defaultPlacement: layoutValue === 'vertical' ? 'right' : 'above',
585
+ id: this.popoverId,
586
+ open: !!anchor && open,
587
+ align: "center"
588
+ }, /*#__PURE__*/external_react_default.a.createElement(StyledTooltipContent, null, tooltip)), tooltip && /*#__PURE__*/external_react_default.a.createElement(ScreenReaderContent_default.a, {
589
+ "aria-hidden": "true",
590
+ id: this.ariaId
591
+ }, tooltip))
592
+ );
562
593
  }
563
594
  }]);
564
595