@splunk/react-ui 5.7.0 → 5.8.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 (138) hide show
  1. package/Accordion.js +6 -6
  2. package/Box.js +83 -34
  3. package/CHANGELOG.md +34 -0
  4. package/CollapsiblePanel.js +11 -11
  5. package/ComboBox.js +31 -27
  6. package/ControlGroup.js +92 -91
  7. package/DefinitionList.js +9 -9
  8. package/Drawer.d.ts +2 -0
  9. package/Drawer.js +679 -0
  10. package/DualListbox.js +1 -1
  11. package/JSONTree.js +73 -72
  12. package/Link.js +2 -2
  13. package/MIGRATION.md +10 -0
  14. package/Menu.js +338 -240
  15. package/Modal.js +127 -109
  16. package/Multiselect.js +437 -351
  17. package/Paginator.js +14 -12
  18. package/Popover.js +4 -1
  19. package/README.md +11 -0
  20. package/RadioBar.js +1 -1
  21. package/Search.js +103 -88
  22. package/Select.js +42 -40
  23. package/SelectBase.js +374 -328
  24. package/SidePanel.js +346 -167
  25. package/SlidingPanels.js +11 -11
  26. package/StepBar.js +7 -7
  27. package/Switch.js +5 -5
  28. package/Text.js +24 -24
  29. package/TextArea.js +7 -7
  30. package/TransitionOpen.js +204 -185
  31. package/docs-llm/Accordion.md +267 -0
  32. package/docs-llm/Anchor Menu.md +115 -0
  33. package/docs-llm/Anchor.md +54 -0
  34. package/docs-llm/AnimationToggle.md +254 -0
  35. package/docs-llm/Avatar.md +298 -0
  36. package/docs-llm/Badge.md +212 -0
  37. package/docs-llm/Breadcrumbs.md +306 -0
  38. package/docs-llm/Button Group.md +53 -0
  39. package/docs-llm/Button.md +361 -0
  40. package/docs-llm/Card Layout.md +286 -0
  41. package/docs-llm/Card.md +619 -0
  42. package/docs-llm/Checkbox.md +218 -0
  43. package/docs-llm/Chip.md +291 -0
  44. package/docs-llm/Clickable.md +160 -0
  45. package/docs-llm/Code.md +292 -0
  46. package/docs-llm/Collapsible Panel.md +744 -0
  47. package/docs-llm/Color.md +253 -0
  48. package/docs-llm/Column Layout.md +391 -0
  49. package/docs-llm/Combo Box.md +540 -0
  50. package/docs-llm/Control Group.md +594 -0
  51. package/docs-llm/Date.md +270 -0
  52. package/docs-llm/Definition List.md +278 -0
  53. package/docs-llm/Divider.md +216 -0
  54. package/docs-llm/Drawer.md +414 -0
  55. package/docs-llm/Dropdown.md +472 -0
  56. package/docs-llm/Dual Listbox.md +325 -0
  57. package/docs-llm/File.md +653 -0
  58. package/docs-llm/Form Rows.md +374 -0
  59. package/docs-llm/Heading.md +179 -0
  60. package/docs-llm/Image.md +109 -0
  61. package/docs-llm/JSON Tree.md +260 -0
  62. package/docs-llm/Layer.md +74 -0
  63. package/docs-llm/Layout.md +50 -0
  64. package/docs-llm/Link.md +318 -0
  65. package/docs-llm/List.md +189 -0
  66. package/docs-llm/Markdown.md +179 -0
  67. package/docs-llm/Menu.md +735 -0
  68. package/docs-llm/Message Bar.md +236 -0
  69. package/docs-llm/Message.md +248 -0
  70. package/docs-llm/Modal.md +443 -0
  71. package/docs-llm/Monogram.md +159 -0
  72. package/docs-llm/Multiselect.md +937 -0
  73. package/docs-llm/Number.md +298 -0
  74. package/docs-llm/Paginator.md +395 -0
  75. package/docs-llm/Paragraph.md +148 -0
  76. package/docs-llm/Phone Number.md +254 -0
  77. package/docs-llm/Popover.md +166 -0
  78. package/docs-llm/Progress.md +141 -0
  79. package/docs-llm/Radio Bar.md +303 -0
  80. package/docs-llm/Radio List.md +350 -0
  81. package/docs-llm/Resize.md +362 -0
  82. package/docs-llm/Screen Reader Content.md +73 -0
  83. package/docs-llm/Scroll Container Context.md +155 -0
  84. package/docs-llm/Scroll.md +152 -0
  85. package/docs-llm/Search.md +381 -0
  86. package/docs-llm/Select.md +985 -0
  87. package/docs-llm/Side Panel.md +777 -0
  88. package/docs-llm/Slider.md +339 -0
  89. package/docs-llm/Sliding Panels.md +340 -0
  90. package/docs-llm/Split Button.md +295 -0
  91. package/docs-llm/Static Content.md +90 -0
  92. package/docs-llm/Step Bar.md +292 -0
  93. package/docs-llm/Switch.md +268 -0
  94. package/docs-llm/Tab Bar.md +439 -0
  95. package/docs-llm/Tab Layout.md +398 -0
  96. package/docs-llm/Table.md +2642 -0
  97. package/docs-llm/Text Area.md +253 -0
  98. package/docs-llm/Text.md +339 -0
  99. package/docs-llm/Tooltip.md +325 -0
  100. package/docs-llm/Transition Open.md +406 -0
  101. package/docs-llm/Tree.md +586 -0
  102. package/docs-llm/Typography.md +125 -0
  103. package/docs-llm/Wait Spinner.md +121 -0
  104. package/docs-llm/llms.txt +97 -0
  105. package/package.json +6 -5
  106. package/types/src/Box/Box.d.ts +2 -10
  107. package/types/src/Drawer/Body.d.ts +17 -0
  108. package/types/src/Drawer/Drawer.d.ts +114 -0
  109. package/types/src/Drawer/DrawerContext.d.ts +11 -0
  110. package/types/src/Drawer/Footer.d.ts +25 -0
  111. package/types/src/Drawer/Header.d.ts +41 -0
  112. package/types/src/Drawer/docs/examples/Basic.d.ts +6 -0
  113. package/types/src/Drawer/docs/examples/ContainerPosition.d.ts +7 -0
  114. package/types/src/Drawer/docs/examples/InitialFocus.d.ts +9 -0
  115. package/types/src/Drawer/docs/examples/InlinePosition.d.ts +7 -0
  116. package/types/src/Drawer/docs/examples/PagePosition.d.ts +7 -0
  117. package/types/src/Drawer/index.d.ts +2 -0
  118. package/types/src/JSONTree/JSONTree.d.ts +12 -5
  119. package/types/src/JSONTree/renderTreeItems.d.ts +2 -1
  120. package/types/src/Menu/Item.d.ts +2 -1
  121. package/types/src/Menu/docs/examples/SelectableCheckbox.d.ts +7 -0
  122. package/types/src/Modal/Modal.d.ts +1 -2
  123. package/types/src/Select/Option.d.ts +6 -3
  124. package/types/src/Select/Select.d.ts +8 -5
  125. package/types/src/Select/docs/examples/Dimmed.d.ts +7 -0
  126. package/types/src/SelectBase/OptionBase.d.ts +6 -3
  127. package/types/src/SelectBase/SelectBase.d.ts +8 -3
  128. package/types/src/SidePanel/SidePanel.d.ts +43 -2
  129. package/types/src/SidePanel/docs/examples/DockLayout.d.ts +17 -0
  130. package/types/src/SidePanel/docs/examples/InitialFocus.d.ts +9 -0
  131. package/types/src/TransitionOpen/TransitionOpen.d.ts +29 -4
  132. package/types/src/useKeyPress/index.d.ts +9 -2
  133. package/types/src/useOnClickOutside/index.d.ts +2 -0
  134. package/types/src/useOnClickOutside/useOnClickOutside.d.ts +4 -0
  135. package/useKeyPress.js +23 -18
  136. package/useOnClickOutside.d.ts +2 -0
  137. package/useOnClickOutside.js +79 -0
  138. package/types/src/RadioList/docs/examples/Row.d.ts +0 -6
package/Accordion.js CHANGED
@@ -200,19 +200,19 @@
200
200
  }, q.apply(null, arguments);
201
201
  }
202
202
  function M(e, n) {
203
- return V(e) || _(e, n) || R(e, n) || k();
203
+ return V(e) || _(e, n) || T(e, n) || k();
204
204
  }
205
205
  function k() {
206
206
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
207
207
  }
208
- function R(e, n) {
208
+ function T(e, n) {
209
209
  if (e) {
210
- if ("string" == typeof e) return T(e, n);
210
+ if ("string" == typeof e) return R(e, n);
211
211
  var r = {}.toString.call(e).slice(8, -1);
212
- return "Object" === r && e.constructor && (r = e.constructor.name), "Map" === r || "Set" === r ? Array.from(e) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? T(e, n) : void 0;
212
+ return "Object" === r && e.constructor && (r = e.constructor.name), "Map" === r || "Set" === r ? Array.from(e) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? R(e, n) : void 0;
213
213
  }
214
214
  }
215
- function T(e, n) {
215
+ function R(e, n) {
216
216
  (null == n || n > e.length) && (n = e.length);
217
217
  for (var r = 0, t = Array(n); r < n; r++) {
218
218
  t[r] = e[r];
@@ -324,7 +324,7 @@
324
324
  return t().createElement(b, q({
325
325
  "data-test": "accordion",
326
326
  "data-test-open-panel-id": P,
327
- elementRef: o
327
+ ref: o
328
328
  }, p), t().createElement(f.Provider, {
329
329
  value: S
330
330
  }, I));
package/Box.js CHANGED
@@ -61,27 +61,66 @@
61
61
  e.r(n);
62
62
  // EXPORTS
63
63
  e.d(n, {
64
- default: () => /* reexport */ v
64
+ default: () => /* reexport */ h
65
65
  });
66
66
  // CONCATENATED MODULE: external "react"
67
67
  const t = require("react");
68
68
  var r = e.n(t);
69
69
  // CONCATENATED MODULE: external "prop-types"
70
- const l = require("prop-types");
71
- var i = e.n(l);
70
+ const a = require("prop-types");
71
+ var o = e.n(a);
72
72
  // CONCATENATED MODULE: external "styled-components"
73
- const o = require("styled-components");
74
- var a = e.n(o);
73
+ const i = require("styled-components");
74
+ var l = e.n(i);
75
75
  // CONCATENATED MODULE: external "@splunk/themes"
76
76
  const f = require("@splunk/themes");
77
77
  // CONCATENATED MODULE: ./src/Box/BoxStyles.ts
78
- var d = a().div.withConfig({
78
+ var d = l().div.withConfig({
79
79
  displayName: "BoxStyles__Styled",
80
80
  componentId: "sc-1h4b5f6-0"
81
81
  })([ "", ";align-items:stretch;align-content:stretch;flex-flow:row nowrap;flex-grow:0;flex-shrink:0;justify-content:flex-start;width:auto;max-width:100%;&[data-inline]{display:inline-block;vertical-align:middle;}&[data-flex]{display:flex;}&[data-flex][data-inline]{display:inline-flex;}" ], f.mixins.reset("block"));
82
+ // CONCATENATED MODULE: ./src/utils/updateReactRef.ts
83
+ /**
84
+ * Updates a React ref. Callback refs and object refs (from `createRef` and `useRef`) are supported.
85
+ *
86
+ * @param ref - The React callback or object ref. Can be `null` or `undefined`.
87
+ * @param current - The new value of the ref.
88
+ */
89
+ function s(e, n) {
90
+ if (e) {
91
+ if (typeof e === "function") {
92
+ e(n);
93
+ } else {
94
+ // the public signature of this util uses React.Ref<T> to mirror the way React types refs.
95
+ // the intention here is to signal "we will take care of setting 'current', not you".
96
+ e.current = n;
97
+ // eslint-disable-line no-param-reassign
98
+ }
99
+ }
100
+ }
101
+ // CONCATENATED MODULE: ./src/utils/useDeprecate.tsx
102
+ var c = "is deprecated and will be removed in the next major version.";
103
+ var u = function e(n) {
104
+ var t = n.additionalMessage, r = t === void 0 ? "" : t, a = n.componentName;
105
+ useEffect((function() {
106
+ if (false) {}
107
+ }), [ r, a ]);
108
+ };
109
+ var p = function e(n) {
110
+ var r = n.additionalMessage, a = r === void 0 ? "" : r, o = n.componentName, i = n.propName, l = n.propValue;
111
+ (0, t.useEffect)((function() {
112
+ if (false) {}
113
+ }), [ a, o, i, l ]);
114
+ };
115
+ var v = function e(n) {
116
+ var t = n.additionalMessage, r = t === void 0 ? "" : t, a = n.componentName, o = n.deprecatedPropValue, i = n.propName, l = n.propValue;
117
+ useEffect((function() {
118
+ if (false) {}
119
+ }), [ r, a, i, l, o ]);
120
+ };
82
121
  // CONCATENATED MODULE: ./src/Box/Box.tsx
83
- function s() {
84
- return s = Object.assign ? Object.assign.bind() : function(e) {
122
+ function m() {
123
+ return m = Object.assign ? Object.assign.bind() : function(e) {
85
124
  for (var n = 1; n < arguments.length; n++) {
86
125
  var t = arguments[n];
87
126
  for (var r in t) {
@@ -89,20 +128,20 @@
89
128
  }
90
129
  }
91
130
  return e;
92
- }, s.apply(null, arguments);
131
+ }, m.apply(null, arguments);
93
132
  }
94
- function c(e, n) {
133
+ function y(e, n) {
95
134
  if (null == e) return {};
96
- var t, r, l = u(e, n);
135
+ var t, r, a = b(e, n);
97
136
  if (Object.getOwnPropertySymbols) {
98
- var i = Object.getOwnPropertySymbols(e);
99
- for (r = 0; r < i.length; r++) {
100
- t = i[r], -1 === n.indexOf(t) && {}.propertyIsEnumerable.call(e, t) && (l[t] = e[t]);
137
+ var o = Object.getOwnPropertySymbols(e);
138
+ for (r = 0; r < o.length; r++) {
139
+ t = o[r], -1 === n.indexOf(t) && {}.propertyIsEnumerable.call(e, t) && (a[t] = e[t]);
101
140
  }
102
141
  }
103
- return l;
142
+ return a;
104
143
  }
105
- function u(e, n) {
144
+ function b(e, n) {
106
145
  if (null == e) return {};
107
146
  var t = {};
108
147
  for (var r in e) {
@@ -113,28 +152,38 @@
113
152
  }
114
153
  return t;
115
154
  }
116
- var p = {
117
- children: i().node,
118
- elementRef: i().oneOfType([ i().func, i().object ]),
119
- flex: i().bool,
120
- inline: i().bool
155
+ var g = {
156
+ children: o().node,
157
+ elementRef: o().oneOfType([ o().func, o().object ]),
158
+ flex: o().bool,
159
+ inline: o().bool
121
160
  };
122
161
  /**
123
162
  * Box is a utility component to normalize and abstract common layout styles.
124
- */ function y(e) {
125
- var n = e.children, t = e.elementRef, l = e.flex, i = l === void 0 ? false : l, o = e.tag, a = o === void 0 ? "div" : o, f = e.inline, u = f === void 0 ? false : f, p = c(e, [ "children", "elementRef", "flex", "tag", "inline" ]);
163
+ */ var x = r().forwardRef((function(e, n) {
164
+ var a = e.children, o = e.elementRef, i = e.flex, l = i === void 0 ? false : i, f = e.tag, c = f === void 0 ? "div" : f, u = e.inline, v = u === void 0 ? false : u, b = y(e, [ "children", "elementRef", "flex", "tag", "inline" ]);
126
165
  // @docs-props-type BoxPropsBase
127
-
128
- return r().createElement(d, s({
129
- as: a,
130
- ref: t
131
- }, p, {
132
- "data-inline": u || undefined,
133
- "data-flex": i || undefined
134
- }), n);
135
- }
136
- y.propTypes = p;
137
- /* harmony default export */ const v = y;
166
+ p({
167
+ additionalMessage: "Use `ref` instead.",
168
+ componentName: "Box",
169
+ propName: "elementRef",
170
+ propValue: o
171
+ });
172
+ var g = (0, t.useCallback)((function(e) {
173
+ s(o, e);
174
+ s(n, e);
175
+ }), [ o, n ]);
176
+
177
+ return r().createElement(d, m({
178
+ as: c,
179
+ ref: g
180
+ }, b, {
181
+ "data-inline": v || undefined,
182
+ "data-flex": l || undefined
183
+ }), a);
184
+ }));
185
+ x.propTypes = g;
186
+ /* harmony default export */ const h = x;
138
187
  // CONCATENATED MODULE: ./src/Box/index.ts
139
188
  module.exports = n;
140
189
  /******/})();
package/CHANGELOG.md CHANGED
@@ -1,6 +1,40 @@
1
1
  Change Log
2
2
  ============
3
3
 
4
+ 5.8.0 - February 10, 2026
5
+ ----------
6
+ New Features:
7
+ * `TransitionOpen` now supports setting either open or close animation to `none` using the `animation` prop (SUI-8438).
8
+ * `useKeyPress` now supports an optional configuration param with the following properties (SUI-8593):
9
+ * `enabled` allows the hook to be conditionally used
10
+ * `eventType` allows specifying `keyup` or `keydown` for controlling which events trigger the hook
11
+ * `SidePanel` now has a `dockLayout` prop that supports new `'container'` and `'inline'` layouts (SUI-8585).
12
+ * `Select` now supports `"dimmed"` and `"disabled"` values for the `disabled` prop (SUI-8521).
13
+ * `SidePanel` now supports setting initial and return focus using `initialFocus` and `returnFocus` props (SUI-8604).
14
+ * New `Drawer` component (SUI-8411).
15
+ * `Modal` now supports `closeOnClickAway` to allow dismissal by clicking outside the modal (SUI-8542).
16
+
17
+ Bug Fixes:
18
+ * `StepBar` vertical layout now wraps long words to prevent container overflow (SUI-8481).
19
+ * `JSONTree` with `overflow="scroll"` now renders newlines rather than collapsing them (SUI-6199).
20
+ * `ComboBox.Option`, `Multiselect.Option`, `Search.Option`, and `Select.Option` are no longer keyboard navigable when `disabled` (SUI-8547).
21
+ * `Multiselect` now safely handles document access in server-side rendering environments (SUI-8541).
22
+ * `Popover` now maintains its width when resizing window (SUI-8136).
23
+ * `Tooltip` added to `Menu.Item` when `truncate={true}` to display the full text on hover. (SUI-6219)
24
+ * `DefinitionList`'s spacing is now consistent across `layout="auto"`, `layout="fixed"`, and `layout="stacked"` (SUI-8539).
25
+ * `Multiselect` Compact `Clear all` no longer leaves some items selected when options are loaded incrementally via `onScrollBottom` (SUI-5132).
26
+ * `Paginator` now displays correct page buttons when `numPageLinks` has a value of `3` (SUI-7709).
27
+ * `ControlGroup`'s focus ring now renders above error messages (SUI-8613).
28
+ * `Multiselect` now prevents removal of chips for disabled Options (SUI-8597).
29
+
30
+ Docs:
31
+ * LLM-optimized documentation (docs-llm) is now included (SUI-8228).
32
+
33
+ 5.7.1 - January 6, 2026
34
+ ----------
35
+ Bug Fixes:
36
+ * `TransitionOpen` now adjusts to change in content size (SUI-8518).
37
+
4
38
  5.7.0 - December 10, 2025
5
39
  ----------
6
40
  New Features:
@@ -186,8 +186,8 @@
186
186
  const T = require("lodash/omit");
187
187
  var M = e.n(T);
188
188
  // CONCATENATED MODULE: ./src/CollapsiblePanel/SingleOpenPanelGroupContext.tsx
189
- var R = (0, t.createContext)({});
190
- /* harmony default export */ const B = R;
189
+ var B = (0, t.createContext)({});
190
+ /* harmony default export */ const R = B;
191
191
  // CONCATENATED MODULE: ./src/CollapsiblePanel/SingleOpenPanelGroup.tsx
192
192
  function L() {
193
193
  return L = Object.assign ? Object.assign.bind() : function(e) {
@@ -322,8 +322,8 @@
322
322
  return r().createElement(k, L({
323
323
  "data-test": "single-open-panel-group",
324
324
  "data-test-open-panel-id": u,
325
- elementRef: l
326
- }, M().apply(void 0, [ d ].concat(W(Object.keys(Z))))), r().createElement(B.Provider, {
325
+ ref: l
326
+ }, M().apply(void 0, [ d ].concat(W(Object.keys(Z))))), r().createElement(R.Provider, {
327
327
  value: S
328
328
  }, h));
329
329
  }
@@ -480,8 +480,8 @@
480
480
  function ge(e) {
481
481
  var n = e.innerBodyStyles, a = e.actions, l = e.appearance, o = l === void 0 ? "default" : l, s = e.children, u = e.defaultOpen, f = u === void 0 ? undefined : u, b = e.description, v = e.disabled, y = e.elementRef, m = e.headingLevel, g = e.onChange, h = e.open, S = e.overflow, O = S === void 0 ? "auto" : S, C = e.panelId, P = e.renderChildrenWhenCollapsed, k = e.title, I = e.inset, T = I === void 0 ? true : I, M = ve(e, [ "innerBodyStyles", "actions", "appearance", "children", "defaultOpen", "description", "disabled", "elementRef", "headingLevel", "onChange", "open", "overflow", "panelId", "renderChildrenWhenCollapsed", "title", "inset" ]);
482
482
  // @docs-props-type CollapsiblePanelPropsBase
483
- var R = (0, t.useContext)(B);
484
- var L = Object.keys(R).length !== 0;
483
+ var B = (0, t.useContext)(R);
484
+ var L = Object.keys(B).length !== 0;
485
485
  var W = c()({
486
486
  componentName: "CollapsiblePanel",
487
487
  /* eslint-disable-next-line prefer-rest-params */
@@ -502,10 +502,10 @@
502
502
  * SingleOpenPanelGroup already takes into account if it is controlled or not in determining openPanelId
503
503
  * so context.openPanelId is used for both the controlled and uncontrolled case.
504
504
  */
505
- return R.openPanelId === C;
505
+ return B.openPanelId === C;
506
506
  }
507
507
  return W ? h : Y;
508
- }), [ R.openPanelId, L, W, h, Y, C ]);
508
+ }), [ B.openPanelId, L, W, h, Y, C ]);
509
509
  // SUI-7877 Must initialize openPanel with value to avoid re-render animation bug
510
510
  var ie = (0, t.useState)(oe), se = ce(ie, 2), ue = se[0], de = se[1];
511
511
  (0, t.useEffect)((function() {
@@ -532,12 +532,12 @@
532
532
  reason: "toggleClick",
533
533
  action: t
534
534
  });
535
- (n = R.onChange) === null || n === void 0 ? void 0 : n.call(R, e, {
535
+ (n = B.onChange) === null || n === void 0 ? void 0 : n.call(B, e, {
536
536
  panelId: C,
537
537
  reason: "toggleClick",
538
538
  action: t
539
539
  });
540
- }), [ R, W, ue, g, C ]);
540
+ }), [ B, W, ue, g, C ]);
541
541
  var fe = (0, t.useCallback)((function() {
542
542
  ae(false);
543
543
  }), []);
@@ -563,7 +563,7 @@
563
563
 
564
564
  return r().createElement(w, re({
565
565
  "data-test": "collapsible-panel",
566
- elementRef: y,
566
+ ref: y,
567
567
  $appearance: o
568
568
  }, M), a != null ? r().createElement(x, {
569
569
  $appearance: o,
package/ComboBox.js CHANGED
@@ -128,8 +128,8 @@
128
128
  }
129
129
  }
130
130
  // CONCATENATED MODULE: ./src/ComboBox/Option.tsx
131
- function q() {
132
- return q = Object.assign ? Object.assign.bind() : function(e) {
131
+ function E() {
132
+ return E = Object.assign ? Object.assign.bind() : function(e) {
133
133
  for (var n = 1; n < arguments.length; n++) {
134
134
  var r = arguments[n];
135
135
  for (var t in r) {
@@ -137,9 +137,9 @@
137
137
  }
138
138
  }
139
139
  return e;
140
- }, q.apply(null, arguments);
140
+ }, E.apply(null, arguments);
141
141
  }
142
- function E(e, n) {
142
+ function q(e, n) {
143
143
  if (null == e) return {};
144
144
  var r, t, o = x(e, n);
145
145
  if (Object.getOwnPropertySymbols) {
@@ -182,7 +182,7 @@
182
182
  /**
183
183
  * An option within a `ComboBox`.
184
184
  */ function D(e) {
185
- var n = e.active, o = e.description, a = e.descriptionPosition, i = a === void 0 ? "bottom" : a, l = e.disabled, u = e.elementRef, c = e.icon, s = e.label, f = e.matchRanges, p = e.onClick, v = e.truncate, b = e.value, m = E(e, [ "active", "description", "descriptionPosition", "disabled", "elementRef", "icon", "label", "matchRanges", "onClick", "truncate", "value" ]);
185
+ var n = e.active, o = e.description, a = e.descriptionPosition, i = a === void 0 ? "bottom" : a, l = e.disabled, u = e.elementRef, c = e.icon, s = e.label, f = e.matchRanges, p = e.onClick, v = e.truncate, b = e.value, m = q(e, [ "active", "description", "descriptionPosition", "disabled", "elementRef", "icon", "label", "matchRanges", "onClick", "truncate", "value" ]);
186
186
  // @docs-props-type OptionPropsBase
187
187
  var y = (0, r.useCallback)((function(e) {
188
188
  if (!l) {
@@ -196,7 +196,7 @@
196
196
  }), [ u ]);
197
197
  var h = s === undefined ? b : s;
198
198
 
199
- return t().createElement(d.Item, q({
199
+ return t().createElement(d.Item, E({
200
200
  active: n,
201
201
  "data-test": "option",
202
202
  "data-test-value": b,
@@ -403,7 +403,7 @@
403
403
  * `ComboBox` allows the user to select a predefined string or enter a new value. Unlike `Select`
404
404
  * and `Multiselect`, `Option` value must always be a string.
405
405
  */ function ne(e) {
406
- var n = e.animateLoading, o = e.append, a = e.children, i = e.controlledFilter, l = e.defaultPlacement, u = l === void 0 ? "vertical" : l, s = e.defaultValue, f = e.describedBy, d = e.disabled, p = e.elementRef, y = e.error, h = e.footerMessage, S = e.inline, q = e.inputId, E = e.inputRef, x = e.isLoadingOptions, B = e.labelledBy, D = e.loadingMessage, I = e.menuStyle, L = I === void 0 ? Z : I, V = e.name, z = e.noOptionsMessage, F = e.onBlur, _ = e.onChange, N = e.onClose, W = e.onFocus, U = e.onKeyDown, X = e.onOpen, $ = e.onScroll, G = e.onScrollBottom, ne = e.onSelect, re = e.placeholder, te = re === void 0 ? ee : re, oe = e.prepend, ae = e.value, ie = e.virtualization, le = Y(e, [ "animateLoading", "append", "children", "controlledFilter", "defaultPlacement", "defaultValue", "describedBy", "disabled", "elementRef", "error", "footerMessage", "inline", "inputId", "inputRef", "isLoadingOptions", "labelledBy", "loadingMessage", "menuStyle", "name", "noOptionsMessage", "onBlur", "onChange", "onClose", "onFocus", "onKeyDown", "onOpen", "onScroll", "onScrollBottom", "onSelect", "placeholder", "prepend", "value", "virtualization" ]);
406
+ var n = e.animateLoading, o = e.append, a = e.children, i = e.controlledFilter, l = e.defaultPlacement, u = l === void 0 ? "vertical" : l, s = e.defaultValue, f = e.describedBy, d = e.disabled, p = e.elementRef, y = e.error, h = e.footerMessage, S = e.inline, E = e.inputId, q = e.inputRef, x = e.isLoadingOptions, B = e.labelledBy, D = e.loadingMessage, I = e.menuStyle, L = I === void 0 ? Z : I, V = e.name, z = e.noOptionsMessage, F = e.onBlur, _ = e.onChange, N = e.onClose, W = e.onFocus, U = e.onKeyDown, X = e.onOpen, $ = e.onScroll, G = e.onScrollBottom, ne = e.onSelect, re = e.placeholder, te = re === void 0 ? ee : re, oe = e.prepend, ae = e.value, ie = e.virtualization, le = Y(e, [ "animateLoading", "append", "children", "controlledFilter", "defaultPlacement", "defaultValue", "describedBy", "disabled", "elementRef", "error", "footerMessage", "inline", "inputId", "inputRef", "isLoadingOptions", "labelledBy", "loadingMessage", "menuStyle", "name", "noOptionsMessage", "onBlur", "onChange", "onClose", "onFocus", "onKeyDown", "onOpen", "onScroll", "onScrollBottom", "onSelect", "placeholder", "prepend", "value", "virtualization" ]);
407
407
  // @docs-props-type ComboBoxPropsBase
408
408
  var ue = O()({
409
409
  componentName: "ComboBox",
@@ -415,7 +415,7 @@
415
415
  var ye = (0, r.useState)(false), ge = K(ye, 2), he = ge[0], Oe = ge[1];
416
416
  var Se = (0, r.useState)(null), ke = K(Se, 2), Ce = ke[0], we = ke[1];
417
417
  var Pe = (0, r.useState)(), je = K(Pe, 2), Re = je[0], Me = je[1];
418
- var qe = (0, r.useState)(s || ""), Ee = K(qe, 2), xe = Ee[0], Be = Ee[1];
418
+ var Ee = (0, r.useState)(s || ""), qe = K(Ee, 2), xe = qe[0], Be = qe[1];
419
419
  var De = k()(fe);
420
420
  var Ae = (0, r.useRef)();
421
421
  var Ie = (0, r.useRef)(0);
@@ -450,8 +450,8 @@
450
450
  }), [ a, Fe, Re ]);
451
451
  var _e = (0, r.useCallback)((function(e) {
452
452
  we(e);
453
- M(E, e);
454
- }), [ E ]);
453
+ M(q, e);
454
+ }), [ q ]);
455
455
  var Ne = (0, r.useCallback)((function(e) {
456
456
  me(e);
457
457
  M(p, e);
@@ -544,29 +544,30 @@
544
544
  // ignore non-Option items such as Headings and Dividers
545
545
  return n;
546
546
  }
547
- var a = Ie.current === fe;
547
+ var a = n.props.label !== undefined ? n.props.label : n.props.value;
548
+ var l = n.props.matchRanges;
549
+ var c = !i && e && (o || t > 0) ? (0, C.keywordLocations)(a, u) || undefined : undefined;
550
+ var s = {
551
+ onClick: Ye,
552
+ matchRanges: l || c
553
+ };
554
+ if (n.props.disabled) {
555
+
556
+ return (0, r.cloneElement)(n, s);
557
+ }
558
+ var f = Ie.current === fe;
548
559
  Ie.current += 1;
549
- var l = n.props.label !== undefined ? n.props.label : n.props.value;
550
- var c = n.props.matchRanges;
551
- var s = !i && e && (o || t > 0) ? (0, C.keywordLocations)(l, u) || undefined : undefined;
552
- if (a) {
553
- if (!n.props.disabled) {
554
- Ae.current = n.props.value;
555
- }
560
+ if (f) {
561
+ Ae.current = n.props.value;
556
562
 
557
- return (0, r.cloneElement)(n, {
563
+ return (0, r.cloneElement)(n, H(H({}, s), {}, {
558
564
  elementRef: We,
559
565
  id: He,
560
- onClick: Ye,
561
- matchRanges: c || s,
562
566
  active: true
563
- });
567
+ }));
564
568
  }
565
569
 
566
- return (0, r.cloneElement)(n, {
567
- onClick: Ye,
568
- matchRanges: c || s
569
- });
570
+ return (0, r.cloneElement)(n, s);
570
571
  }));
571
572
  }), [ fe, He, a, i, Ke, Fe, We, Ye, Re ]);
572
573
  var Ze = (0, r.useCallback)((function(e) {
@@ -590,6 +591,9 @@
590
591
  break;
591
592
 
592
593
  case "ArrowDown":
594
+ if (n <= 0) {
595
+ break;
596
+ }
593
597
  de((function(e) {
594
598
  return Math.min(e + 1, n - 1);
595
599
  }));
@@ -666,7 +670,7 @@
666
670
  elementRef: Ne,
667
671
  error: y,
668
672
  inline: S,
669
- inputId: q,
673
+ inputId: E,
670
674
  inputRef: _e,
671
675
  labelledBy: B,
672
676
  name: V,