@splunk/react-ui 5.7.1 → 5.9.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 (152) hide show
  1. package/Accordion.js +6 -6
  2. package/Anchor.js +2 -1
  3. package/Box.js +83 -34
  4. package/CHANGELOG.md +51 -0
  5. package/Calendar.js +134 -134
  6. package/Clickable.js +131 -94
  7. package/CollapsiblePanel.js +175 -137
  8. package/ComboBox.js +32 -27
  9. package/ControlGroup.js +92 -91
  10. package/DefinitionList.js +9 -9
  11. package/Drawer.d.ts +2 -0
  12. package/Drawer.js +679 -0
  13. package/Dropdown.js +27 -18
  14. package/DualListbox.js +1 -1
  15. package/File.js +35 -35
  16. package/JSONTree.js +73 -72
  17. package/Link.js +2 -2
  18. package/MIGRATION.md +10 -0
  19. package/Menu.js +403 -261
  20. package/Modal.js +263 -252
  21. package/Monogram.js +2 -2
  22. package/Multiselect.js +551 -385
  23. package/Number.js +2 -1
  24. package/Paginator.js +14 -12
  25. package/Popover.js +4 -1
  26. package/README.md +11 -0
  27. package/RadioBar.js +1 -1
  28. package/Search.js +111 -95
  29. package/Select.js +42 -40
  30. package/SelectBase.js +819 -715
  31. package/SidePanel.js +346 -167
  32. package/SlidingPanels.js +11 -11
  33. package/StepBar.js +7 -7
  34. package/Switch.js +5 -5
  35. package/Table.js +116 -119
  36. package/Text.js +48 -48
  37. package/TextArea.js +7 -7
  38. package/TransitionOpen.js +188 -169
  39. package/docs-llm/Accordion.md +267 -0
  40. package/docs-llm/Anchor Menu.md +115 -0
  41. package/docs-llm/Anchor.md +54 -0
  42. package/docs-llm/AnimationToggle.md +254 -0
  43. package/docs-llm/Avatar.md +292 -0
  44. package/docs-llm/Badge.md +212 -0
  45. package/docs-llm/Breadcrumbs.md +306 -0
  46. package/docs-llm/Button Group.md +53 -0
  47. package/docs-llm/Button.md +361 -0
  48. package/docs-llm/Card Layout.md +286 -0
  49. package/docs-llm/Card.md +619 -0
  50. package/docs-llm/Checkbox.md +218 -0
  51. package/docs-llm/Chip.md +291 -0
  52. package/docs-llm/Clickable.md +160 -0
  53. package/docs-llm/Code.md +292 -0
  54. package/docs-llm/Collapsible Panel.md +744 -0
  55. package/docs-llm/Color.md +253 -0
  56. package/docs-llm/Column Layout.md +391 -0
  57. package/docs-llm/Combo Box.md +540 -0
  58. package/docs-llm/Control Group.md +594 -0
  59. package/docs-llm/Date.md +270 -0
  60. package/docs-llm/Definition List.md +278 -0
  61. package/docs-llm/Divider.md +216 -0
  62. package/docs-llm/Drawer.md +414 -0
  63. package/docs-llm/Dropdown.md +472 -0
  64. package/docs-llm/Dual Listbox.md +325 -0
  65. package/docs-llm/File.md +653 -0
  66. package/docs-llm/Form Rows.md +374 -0
  67. package/docs-llm/Heading.md +179 -0
  68. package/docs-llm/Image.md +109 -0
  69. package/docs-llm/JSON Tree.md +260 -0
  70. package/docs-llm/Layer.md +74 -0
  71. package/docs-llm/Layout.md +50 -0
  72. package/docs-llm/Link.md +318 -0
  73. package/docs-llm/List.md +189 -0
  74. package/docs-llm/Markdown.md +179 -0
  75. package/docs-llm/Menu.md +735 -0
  76. package/docs-llm/Message Bar.md +236 -0
  77. package/docs-llm/Message.md +248 -0
  78. package/docs-llm/Modal.md +443 -0
  79. package/docs-llm/Monogram.md +159 -0
  80. package/docs-llm/Multiselect.md +939 -0
  81. package/docs-llm/Notifications.md +46 -0
  82. package/docs-llm/Number.md +298 -0
  83. package/docs-llm/Paginator.md +395 -0
  84. package/docs-llm/Paragraph.md +148 -0
  85. package/docs-llm/Phone Number.md +254 -0
  86. package/docs-llm/Popover.md +166 -0
  87. package/docs-llm/Progress.md +141 -0
  88. package/docs-llm/Radio Bar.md +303 -0
  89. package/docs-llm/Radio List.md +350 -0
  90. package/docs-llm/Resize.md +362 -0
  91. package/docs-llm/Screen Reader Content.md +73 -0
  92. package/docs-llm/Scroll Container Context.md +155 -0
  93. package/docs-llm/Scroll.md +152 -0
  94. package/docs-llm/Search.md +381 -0
  95. package/docs-llm/Select.md +985 -0
  96. package/docs-llm/Side Panel.md +777 -0
  97. package/docs-llm/Slider.md +339 -0
  98. package/docs-llm/Sliding Panels.md +340 -0
  99. package/docs-llm/Split Button.md +295 -0
  100. package/docs-llm/Static Content.md +90 -0
  101. package/docs-llm/Step Bar.md +292 -0
  102. package/docs-llm/Switch.md +268 -0
  103. package/docs-llm/Tab Bar.md +439 -0
  104. package/docs-llm/Tab Layout.md +398 -0
  105. package/docs-llm/Table.md +2642 -0
  106. package/docs-llm/Text Area.md +253 -0
  107. package/docs-llm/Text.md +339 -0
  108. package/docs-llm/Tooltip.md +325 -0
  109. package/docs-llm/Transition Open.md +406 -0
  110. package/docs-llm/Tree.md +591 -0
  111. package/docs-llm/Typography.md +125 -0
  112. package/docs-llm/Wait Spinner.md +121 -0
  113. package/docs-llm/llms.txt +101 -0
  114. package/package.json +6 -5
  115. package/types/src/Box/Box.d.ts +2 -10
  116. package/types/src/Drawer/Body.d.ts +17 -0
  117. package/types/src/Drawer/Drawer.d.ts +114 -0
  118. package/types/src/Drawer/DrawerContext.d.ts +11 -0
  119. package/types/src/Drawer/Footer.d.ts +25 -0
  120. package/types/src/Drawer/Header.d.ts +41 -0
  121. package/types/src/Drawer/docs/examples/Basic.d.ts +6 -0
  122. package/types/src/Drawer/docs/examples/ContainerPosition.d.ts +7 -0
  123. package/types/src/Drawer/docs/examples/InitialFocus.d.ts +9 -0
  124. package/types/src/Drawer/docs/examples/InlinePosition.d.ts +7 -0
  125. package/types/src/Drawer/docs/examples/PagePosition.d.ts +7 -0
  126. package/types/src/Drawer/index.d.ts +2 -0
  127. package/types/src/JSONTree/JSONTree.d.ts +12 -5
  128. package/types/src/JSONTree/renderTreeItems.d.ts +2 -1
  129. package/types/src/Menu/Item.d.ts +2 -1
  130. package/types/src/Menu/docs/examples/SelectableCheckbox.d.ts +7 -0
  131. package/types/src/Modal/Modal.d.ts +1 -2
  132. package/types/src/Multiselect/Compact.d.ts +8 -3
  133. package/types/src/Multiselect/Multiselect.d.ts +8 -3
  134. package/types/src/Multiselect/Normal.d.ts +8 -3
  135. package/types/src/Multiselect/Option.d.ts +6 -3
  136. package/types/src/Multiselect/docs/examples/Disabled.d.ts +1 -0
  137. package/types/src/Select/Option.d.ts +6 -3
  138. package/types/src/Select/Select.d.ts +8 -5
  139. package/types/src/Select/docs/examples/Dimmed.d.ts +7 -0
  140. package/types/src/SelectBase/OptionBase.d.ts +6 -3
  141. package/types/src/SelectBase/SelectBase.d.ts +8 -3
  142. package/types/src/SidePanel/SidePanel.d.ts +43 -2
  143. package/types/src/SidePanel/docs/examples/DockLayout.d.ts +17 -0
  144. package/types/src/SidePanel/docs/examples/InitialFocus.d.ts +9 -0
  145. package/types/src/TransitionOpen/TransitionOpen.d.ts +29 -4
  146. package/types/src/useKeyPress/index.d.ts +9 -2
  147. package/types/src/useOnClickOutside/index.d.ts +2 -0
  148. package/types/src/useOnClickOutside/useOnClickOutside.d.ts +4 -0
  149. package/useKeyPress.js +23 -18
  150. package/useOnClickOutside.d.ts +2 -0
  151. package/useOnClickOutside.js +79 -0
  152. 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/Anchor.js CHANGED
@@ -127,7 +127,8 @@
127
127
 
128
128
  return n().createElement(f, s({
129
129
  "data-test": "anchor",
130
- ref: t
130
+ ref: t,
131
+ id: o
131
132
  }, i, {
132
133
  name: o,
133
134
  href: "#".concat(o)
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,57 @@
1
1
  Change Log
2
2
  ============
3
3
 
4
+ 5.9.0 - March 5, 2026
5
+ ----------
6
+ New Features:
7
+ * `Multiselect` now supports `"dimmed"` and `"disabled"` values for the `disabled` prop (SUI-8521).
8
+
9
+ Bug Fixes:
10
+ * `Dropdown` now prevents interaction when the toggle is `disabled` or `dimmed` (SUI-8607).
11
+ * Fixed a bug where unsupported values for the `disabled` prop would cause components to render disabled: e.g. `disabled="foo"`. Unsupported values now cause the `disabled` prop to be ignored.
12
+ * Affects `Clickable`, `CollapsiblePanel`, and `Menu.Item`.
13
+ * `CollapsiblePanel` and `Accordion` now correctly use `backgroundColorSection` in Enterprise themes (SUI-8669).
14
+ * `Number` no longer renders horizontal rule between increment and decrement buttons (SUI-8641).
15
+ * `Table.Cell` and `Table.Row` hover styles use `neutral100` across stripe and non-stripe variants (SUI-8552).
16
+ * `Anchor` will now set `id` from the `name` prop if an `id` has not been provided to resolve scroll-to-anchor not working correctly in Firefox and Safari (SUI-8670).
17
+ * `Calendar` and `File`components now use correct `interactiveColorBorder` tokens instead of generic `borderColor` (SUI-8687).
18
+ * `Text`'s height is now consistent with and without adornments in Magnetic themes (SUI-9695)
19
+ * Affects `ComboBox`, `Date`, `Number`, `PhoneNumber`, `Search` and `Select`.
20
+ * `ComboBox`, `Search`, and `Multiselect` no longer submit parent forms when selecting an option with `Enter` (SUI-8664).
21
+ * `CollapsiblePanel`'s toggle button in actions headers no longer stretches when the title wraps to multiple lines (SUI-8690).
22
+
23
+ Docs:
24
+ * Updated `Tree` ClickableExpansion examples alignment and padding (SUI-8525).
25
+
26
+ 5.8.0 - February 10, 2026
27
+ ----------
28
+ New Features:
29
+ * `TransitionOpen` now supports setting either open or close animation to `none` using the `animation` prop (SUI-8438).
30
+ * `useKeyPress` now supports an optional configuration param with the following properties (SUI-8593):
31
+ * `enabled` allows the hook to be conditionally used
32
+ * `eventType` allows specifying `keyup` or `keydown` for controlling which events trigger the hook
33
+ * `SidePanel` now has a `dockLayout` prop that supports new `'container'` and `'inline'` layouts (SUI-8585).
34
+ * `Select` now supports `"dimmed"` and `"disabled"` values for the `disabled` prop (SUI-8521).
35
+ * `SidePanel` now supports setting initial and return focus using `initialFocus` and `returnFocus` props (SUI-8604).
36
+ * New `Drawer` component (SUI-8411).
37
+ * `Modal` now supports `closeOnClickAway` to allow dismissal by clicking outside the modal (SUI-8542).
38
+
39
+ Bug Fixes:
40
+ * `StepBar` vertical layout now wraps long words to prevent container overflow (SUI-8481).
41
+ * `JSONTree` with `overflow="scroll"` now renders newlines rather than collapsing them (SUI-6199).
42
+ * `ComboBox.Option`, `Multiselect.Option`, `Search.Option`, and `Select.Option` are no longer keyboard navigable when `disabled` (SUI-8547).
43
+ * `Multiselect` now safely handles document access in server-side rendering environments (SUI-8541).
44
+ * `Popover` now maintains its width when resizing window (SUI-8136).
45
+ * `Tooltip` added to `Menu.Item` when `truncate={true}` to display the full text on hover. (SUI-6219)
46
+ * `DefinitionList`'s spacing is now consistent across `layout="auto"`, `layout="fixed"`, and `layout="stacked"` (SUI-8539).
47
+ * `Multiselect` Compact `Clear all` no longer leaves some items selected when options are loaded incrementally via `onScrollBottom` (SUI-5132).
48
+ * `Paginator` now displays correct page buttons when `numPageLinks` has a value of `3` (SUI-7709).
49
+ * `ControlGroup`'s focus ring now renders above error messages (SUI-8613).
50
+ * `Multiselect` now prevents removal of chips for disabled Options (SUI-8597).
51
+
52
+ Docs:
53
+ * LLM-optimized documentation (docs-llm) is now included (SUI-8228).
54
+
4
55
  5.7.1 - January 6, 2026
5
56
  ----------
6
57
  Bug Fixes: