@splunk/react-ui 5.9.0 → 5.9.1

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 (53) hide show
  1. package/ButtonSimple.js +1 -1
  2. package/CHANGELOG.md +16 -0
  3. package/Code.js +177 -170
  4. package/ColumnLayout.js +69 -45
  5. package/Dropdown.js +74 -68
  6. package/LICENSE +1 -1
  7. package/MIGRATION.md +40 -0
  8. package/Markdown.js +331 -306
  9. package/Menu.js +2 -2
  10. package/Multiselect.js +59 -59
  11. package/Number.js +236 -242
  12. package/SimpleTable.d.ts +2 -0
  13. package/SimpleTable.js +433 -0
  14. package/SlidingPanels.js +224 -153
  15. package/SpotLight.d.ts +2 -0
  16. package/SpotLight.js +687 -0
  17. package/Table.js +1230 -1233
  18. package/docker-compose.yml +12 -18
  19. package/docs-llm/Avatar.md +2 -2
  20. package/docs-llm/Collapsible Panel.md +11 -57
  21. package/docs-llm/Column Layout.md +2 -2
  22. package/docs-llm/Divider.md +33 -0
  23. package/docs-llm/Message Bar.md +4 -1
  24. package/docs-llm/Multiselect.md +180 -159
  25. package/docs-llm/Table.md +7 -7
  26. package/docs-llm/Typography.md +1 -1
  27. package/docs-llm/llms.txt +1 -1
  28. package/package.json +9 -11
  29. package/test-runner-jest.config.js +4 -53
  30. package/types/src/CollapsiblePanel/docs/examples/Actions.d.ts +1 -1
  31. package/types/src/ColumnLayout/ColumnLayout.d.ts +2 -2
  32. package/types/src/Divider/docs/examples/VerticalWithAlignItems.d.ts +8 -0
  33. package/types/src/Markdown/Markdown.d.ts +14 -2
  34. package/types/src/Markdown/renderers/MarkdownTable.d.ts +2 -22
  35. package/types/src/Markdown/renderers/MarkdownWrapper.d.ts +11 -0
  36. package/types/src/Markdown/renderers/index.d.ts +3 -1
  37. package/types/src/Multiselect/Compact.d.ts +4 -0
  38. package/types/src/Multiselect/Multiselect.d.ts +4 -0
  39. package/types/src/Multiselect/docs/examples/LoadMoreWithSelectAll.d.ts +9 -0
  40. package/types/src/SelectBase/SelectBase.d.ts +4 -0
  41. package/types/src/SimpleTable/Body.d.ts +25 -0
  42. package/types/src/SimpleTable/Cell.d.ts +20 -0
  43. package/types/src/SimpleTable/Head.d.ts +20 -0
  44. package/types/src/SimpleTable/HeadCell.d.ts +20 -0
  45. package/types/src/SimpleTable/Row.d.ts +20 -0
  46. package/types/src/SimpleTable/SimpleTable.d.ts +37 -0
  47. package/types/src/SimpleTable/index.d.ts +3 -0
  48. package/types/src/SpotLight/SpotLight.d.ts +88 -0
  49. package/types/src/SpotLight/index.d.ts +2 -0
  50. package/types/src/Table/Row.d.ts +1 -1
  51. package/types/src/Table/Table.d.ts +1 -1
  52. package/types/src/Typography/Typography.d.ts +1 -1
  53. package/types/src/Multiselect/docs/examples/LoadMoreOnScrollBottom.d.ts +0 -7
package/ColumnLayout.js CHANGED
@@ -62,8 +62,8 @@
62
62
  // EXPORTS
63
63
  e.d(r, {
64
64
  Column: () => /* reexport */ m,
65
- Row: () => /* reexport */ _,
66
- default: () => /* reexport */ T
65
+ Row: () => /* reexport */ E,
66
+ default: () => /* reexport */ z
67
67
  });
68
68
  // CONCATENATED MODULE: external "react"
69
69
  const t = require("react");
@@ -72,12 +72,12 @@
72
72
  const a = require("prop-types");
73
73
  var i = e.n(a);
74
74
  // CONCATENATED MODULE: external "styled-components"
75
- const l = require("styled-components");
76
- var o = e.n(l);
75
+ const o = require("styled-components");
76
+ var l = e.n(o);
77
77
  // CONCATENATED MODULE: external "@splunk/themes"
78
78
  const c = require("@splunk/themes");
79
79
  // CONCATENATED MODULE: ./src/ColumnLayout/ColumnStyles.ts
80
- var u = o().div.withConfig({
80
+ var u = l().div.withConfig({
81
81
  displayName: "ColumnStyles__Styled",
82
82
  componentId: "sc-1pchz98-0"
83
83
  })([ "", " flex:", ";", "" ], c.mixins.reset("block"), (function(e) {
@@ -86,10 +86,10 @@
86
86
  }), (function(e) {
87
87
  var r = e.$gutter, t = e.$span;
88
88
  if (r === 0) {
89
- return (0, l.css)([ "width:", "%;" ], 100 / 12 * t);
89
+ return (0, o.css)([ "width:", "%;" ], 100 / 12 * t);
90
90
  }
91
91
  var n = r !== undefined ? "".concat(r, "px") : c.variables.spacingXLarge;
92
- return (0, l.css)([ "width:calc( (100% - 11 * ", ") * ", " + (", " * ", ") );" ], n, t / 12, n, t - 1);
92
+ return (0, o.css)([ "width:calc( (100% - 11 * ", ") * ", " + (", " * ", ") );" ], n, t / 12, n, t - 1);
93
93
  }));
94
94
  // CONCATENATED MODULE: ./src/ColumnLayout/Column.tsx
95
95
  function s() {
@@ -133,15 +133,15 @@
133
133
  span: i().number
134
134
  };
135
135
  function p(e) {
136
- var r = e.children, t = e.elementRef, a = e.gutter, i = e.span, l = i === void 0 ? 1 : i, o = d(e, [ "children", "elementRef", "gutter", "span" ]);
136
+ var r = e.children, t = e.elementRef, a = e.gutter, i = e.span, o = i === void 0 ? 1 : i, l = d(e, [ "children", "elementRef", "gutter", "span" ]);
137
137
  // @docs-props-type ColumnPropsBase
138
138
 
139
139
  return n().createElement(u, s({
140
140
  "data-test": "column",
141
141
  ref: t,
142
142
  $gutter: a,
143
- $span: l
144
- }, o), r);
143
+ $span: o
144
+ }, l), r);
145
145
  }
146
146
  p.propTypes = v;
147
147
  /* harmony default export */ const m = p;
@@ -149,34 +149,34 @@
149
149
  const g = require("@splunk/react-ui/Divider");
150
150
  var y = e.n(g);
151
151
  // CONCATENATED MODULE: ./src/ColumnLayout/ColumnLayoutStyles.ts
152
- var b = o().div.withConfig({
152
+ var b = l().div.withConfig({
153
153
  displayName: "ColumnLayoutStyles__Styled",
154
154
  componentId: "sc-3eatxz-0"
155
155
  })([ "", ";flex-direction:column;", ";" ], c.mixins.reset("flex"), (function(e) {
156
156
  var r = e.$hasDivider, t = e.$gutter;
157
157
  var n = t !== undefined ? "".concat(t, "px") : c.variables.spacingXLarge;
158
158
  if (r) {
159
- return (0, l.css)([ "gap:calc(", " / 2);" ], n);
159
+ return (0, o.css)([ "gap:calc(", " / 2);" ], n);
160
160
  }
161
- return (0, l.css)([ "gap:", ";" ], n);
161
+ return (0, o.css)([ "gap:", ";" ], n);
162
162
  }));
163
- var h = o()(y()).withConfig({
163
+ var h = l()(y()).withConfig({
164
164
  displayName: "ColumnLayoutStyles__StyledDivider",
165
165
  componentId: "sc-3eatxz-1"
166
166
  })([ "border-color:", ";height:0;" ], c.variables.borderColorWeak);
167
167
  // CONCATENATED MODULE: ./src/ColumnLayout/RowStyles.ts
168
- var O = o().div.withConfig({
168
+ var O = l().div.withConfig({
169
169
  displayName: "RowStyles__Styled",
170
170
  componentId: "sc-121ntds-0"
171
171
  })([ "", ";flex-flow:row nowrap;", ";&[data-align-items='start']{align-items:flex-start;}&[data-align-items='end']{align-items:flex-end;}&[data-align-items='center']{align-items:center;}&[data-align-items='stretch']{align-items:stretch;}" ], c.mixins.reset("flex"), (function(e) {
172
172
  var r = e.$hasDivider, t = e.$gutter;
173
173
  var n = t !== undefined ? "".concat(t, "px") : c.variables.spacingXLarge;
174
174
  if (r) {
175
- return (0, l.css)([ "gap:calc(", " / 2);" ], n);
175
+ return (0, o.css)([ "gap:calc(", " / 2);" ], n);
176
176
  }
177
- return (0, l.css)([ "gap:", ";" ], n);
177
+ return (0, o.css)([ "gap:", ";" ], n);
178
178
  }));
179
- var w = o()(y()).withConfig({
179
+ var w = l()(y()).withConfig({
180
180
  displayName: "RowStyles__StyledDivider",
181
181
  componentId: "sc-121ntds-1"
182
182
  })([ "border-color:", ";flex:0 0 1;" ], c.variables.borderColorWeak);
@@ -224,7 +224,7 @@
224
224
  gutter: i().number
225
225
  };
226
226
  function P(e) {
227
- var r = e.alignItems, a = r === void 0 ? "stretch" : r, i = e.children, l = e.divider, o = e.elementRef, c = e.gutter, u = S(e, [ "alignItems", "children", "divider", "elementRef", "gutter" ]);
227
+ var r = e.alignItems, a = r === void 0 ? "stretch" : r, i = e.children, o = e.divider, l = e.elementRef, c = e.gutter, u = S(e, [ "alignItems", "children", "divider", "elementRef", "gutter" ]);
228
228
  // @docs-props-type RowPropsBase
229
229
  if (false) {
230
230
  var s;
@@ -237,7 +237,7 @@
237
237
  }), [ c ]);
238
238
  var f = (0, t.useCallback)((function(e, r, t, a) {
239
239
  e.push(r);
240
- if (l && t < a.length - 1) {
240
+ if (o && t < a.length - 1) {
241
241
  e.push( n().createElement(w, {
242
242
  orientation: "vertical",
243
243
  decorative: true,
@@ -245,22 +245,42 @@
245
245
  }));
246
246
  }
247
247
  return e;
248
- }), [ l ]);
248
+ }), [ o ]);
249
249
  var v = t.Children.toArray(i).filter(t.isValidElement).map(d).reduce(f, []);
250
250
 
251
251
  return n().createElement(O, x({
252
252
  "data-align-items": a,
253
253
  "data-test": "row",
254
- $hasDivider: l,
254
+ $hasDivider: o,
255
255
  $gutter: c,
256
- ref: o
256
+ ref: l
257
257
  }, u), v);
258
258
  }
259
259
  P.propTypes = C;
260
- /* harmony default export */ const _ = P;
260
+ /* harmony default export */ const E = P;
261
+ // CONCATENATED MODULE: ./src/utils/useDeprecate.tsx
262
+ var _ = "is deprecated and will be removed in the next major version.";
263
+ var R = function e(r) {
264
+ var n = r.additionalMessage, a = n === void 0 ? "" : n, i = r.componentName;
265
+ (0, t.useEffect)((function() {
266
+ if (false) {}
267
+ }), [ a, i ]);
268
+ };
269
+ var $ = function e(r) {
270
+ var t = r.additionalMessage, n = t === void 0 ? "" : t, a = r.componentName, i = r.propName, o = r.propValue;
271
+ useEffect((function() {
272
+ if (false) {}
273
+ }), [ n, a, i, o ]);
274
+ };
275
+ var k = function e(r) {
276
+ var t = r.additionalMessage, n = t === void 0 ? "" : t, a = r.componentName, i = r.deprecatedPropValue, o = r.propName, l = r.propValue;
277
+ useEffect((function() {
278
+ if (false) {}
279
+ }), [ n, a, o, l, i ]);
280
+ };
261
281
  // CONCATENATED MODULE: ./src/ColumnLayout/ColumnLayout.tsx
262
- function R() {
263
- return R = Object.assign ? Object.assign.bind() : function(e) {
282
+ function I() {
283
+ return I = Object.assign ? Object.assign.bind() : function(e) {
264
284
  for (var r = 1; r < arguments.length; r++) {
265
285
  var t = arguments[r];
266
286
  for (var n in t) {
@@ -268,11 +288,11 @@
268
288
  }
269
289
  }
270
290
  return e;
271
- }, R.apply(null, arguments);
291
+ }, I.apply(null, arguments);
272
292
  }
273
- function $(e, r) {
293
+ function N(e, r) {
274
294
  if (null == e) return {};
275
- var t, n, a = E(e, r);
295
+ var t, n, a = T(e, r);
276
296
  if (Object.getOwnPropertySymbols) {
277
297
  var i = Object.getOwnPropertySymbols(e);
278
298
  for (n = 0; n < i.length; n++) {
@@ -281,7 +301,7 @@
281
301
  }
282
302
  return a;
283
303
  }
284
- function E(e, r) {
304
+ function T(e, r) {
285
305
  if (null == e) return {};
286
306
  var t = {};
287
307
  for (var n in e) {
@@ -292,25 +312,29 @@
292
312
  }
293
313
  return t;
294
314
  }
295
- var k = {
315
+ var D = {
296
316
  children: i().node,
297
317
  divider: i().oneOf([ "none", "vertical", "horizontal" ]),
298
318
  elementRef: i().oneOfType([ i().func, i().object ]),
299
319
  gutter: i().number
300
320
  };
301
321
  /**
302
- * `ColumnLayout` provides simple API for laying out content into columns. It is based on flexbox
303
- * and has 12 columns.
304
- */ function I(e) {
305
- var r = e.children, a = e.divider, i = a === void 0 ? "none" : a, l = e.elementRef, o = e.gutter, c = $(e, [ "children", "divider", "elementRef", "gutter" ]);
322
+ * @deprecated
323
+ * ColumnLayout has been deprecated and will be removed in a future major version. Use CSS `grid` or `flex` instead.
324
+ */ function M(e) {
325
+ var r = e.children, a = e.divider, i = a === void 0 ? "none" : a, o = e.elementRef, l = e.gutter, c = N(e, [ "children", "divider", "elementRef", "gutter" ]);
306
326
  // @docs-props-type ColumnLayoutPropsBase
307
- var u = (0, t.useCallback)((function(e) {
327
+ R({
328
+ additionalMessage: "Use CSS grid or flexbox instead.",
329
+ componentName: "ColumnLayout"
330
+ });
331
+ var u = (0, t.useCallback)((function(e) {
308
332
 
309
333
  return (0, t.cloneElement)(e, {
310
334
  divider: i === "vertical",
311
- gutter: o
335
+ gutter: l
312
336
  });
313
- }), [ i, o ]);
337
+ }), [ i, l ]);
314
338
  var s = (0, t.useCallback)((function(e, r, t, a) {
315
339
  e.push(r);
316
340
  if (i === "horizontal" && t < a.length - 1) {
@@ -323,17 +347,17 @@
323
347
  }), [ i ]);
324
348
  var d = t.Children.toArray(r).filter(t.isValidElement).map(u).reduce(s, []);
325
349
 
326
- return n().createElement(b, R({
350
+ return n().createElement(b, I({
327
351
  "data-test": "column-layout",
328
- $gutter: o,
352
+ $gutter: l,
329
353
  $hasDivider: i === "horizontal",
330
- ref: l
354
+ ref: o
331
355
  }, c), d);
332
356
  }
333
- I.propTypes = k;
334
- I.Row = _;
335
- I.Column = m;
336
- /* harmony default export */ const T = I;
357
+ M.propTypes = D;
358
+ M.Row = E;
359
+ M.Column = m;
360
+ /* harmony default export */ const z = M;
337
361
  // CONCATENATED MODULE: ./src/ColumnLayout/index.ts
338
362
  module.exports = r;
339
363
  /******/})();
package/Dropdown.js CHANGED
@@ -9,26 +9,26 @@
9
9
  /******/ (() => {
10
10
  /******/ // getDefaultExport function for compatibility with non-harmony modules
11
11
  /******/ e.n = o => {
12
- /******/ var n = o && o.__esModule ?
12
+ /******/ var r = o && o.__esModule ?
13
13
  /******/ () => o["default"]
14
14
  /******/ : () => o
15
15
  /******/;
16
- e.d(n, {
17
- a: n
16
+ e.d(r, {
17
+ a: r
18
18
  });
19
- /******/ return n;
19
+ /******/ return r;
20
20
  /******/ };
21
21
  /******/ })();
22
22
  /******/
23
23
  /******/ /* webpack/runtime/define property getters */
24
24
  /******/ (() => {
25
25
  /******/ // define getter functions for harmony exports
26
- /******/ e.d = (o, n) => {
27
- /******/ for (var r in n) {
28
- /******/ if (e.o(n, r) && !e.o(o, r)) {
29
- /******/ Object.defineProperty(o, r, {
26
+ /******/ e.d = (o, r) => {
27
+ /******/ for (var n in r) {
28
+ /******/ if (e.o(r, n) && !e.o(o, n)) {
29
+ /******/ Object.defineProperty(o, n, {
30
30
  enumerable: true,
31
- get: n[r]
31
+ get: r[n]
32
32
  });
33
33
  /******/ }
34
34
  /******/ }
@@ -64,8 +64,8 @@
64
64
  default: () => /* reexport */ w
65
65
  });
66
66
  // CONCATENATED MODULE: external "react"
67
- const n = require("react");
68
- var r = e.n(n);
67
+ const r = require("react");
68
+ var n = e.n(r);
69
69
  // CONCATENATED MODULE: external "prop-types"
70
70
  const t = require("prop-types");
71
71
  var a = e.n(t);
@@ -84,7 +84,7 @@
84
84
  * @param ref - The React callback or object ref. Can be `null` or `undefined`.
85
85
  * @param current - The new value of the ref.
86
86
  */
87
- function f(e, o) {
87
+ function d(e, o) {
88
88
  if (e) {
89
89
  if (typeof e === "function") {
90
90
  e(o);
@@ -97,41 +97,41 @@
97
97
  }
98
98
  }
99
99
  // CONCATENATED MODULE: ./src/Dropdown/Dropdown.tsx
100
- function d(e, o) {
101
- return b(e) || g(e, o) || v(e, o) || p();
100
+ function f(e, o) {
101
+ return b(e) || y(e, o) || v(e, o) || p();
102
102
  }
103
103
  function p() {
104
104
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
105
105
  }
106
106
  function v(e, o) {
107
107
  if (e) {
108
- if ("string" == typeof e) return y(e, o);
109
- var n = {}.toString.call(e).slice(8, -1);
110
- return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? y(e, o) : void 0;
108
+ if ("string" == typeof e) return g(e, o);
109
+ var r = {}.toString.call(e).slice(8, -1);
110
+ 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) ? g(e, o) : void 0;
111
111
  }
112
112
  }
113
- function y(e, o) {
113
+ function g(e, o) {
114
114
  (null == o || o > e.length) && (o = e.length);
115
- for (var n = 0, r = Array(o); n < o; n++) {
116
- r[n] = e[n];
115
+ for (var r = 0, n = Array(o); r < o; r++) {
116
+ n[r] = e[r];
117
117
  }
118
- return r;
118
+ return n;
119
119
  }
120
- function g(e, o) {
121
- var n = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
122
- if (null != n) {
123
- var r, t, a, l, i = [], u = !0, c = !1;
120
+ function y(e, o) {
121
+ var r = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
122
+ if (null != r) {
123
+ var n, t, a, l, i = [], u = !0, c = !1;
124
124
  try {
125
- if (a = (n = n.call(e)).next, 0 === o) {
126
- if (Object(n) !== n) return;
125
+ if (a = (r = r.call(e)).next, 0 === o) {
126
+ if (Object(r) !== r) return;
127
127
  u = !1;
128
- } else for (;!(u = (r = a.call(n)).done) && (i.push(r.value), i.length !== o); u = !0) {
128
+ } else for (;!(u = (n = a.call(r)).done) && (i.push(n.value), i.length !== o); u = !0) {
129
129
  }
130
130
  } catch (e) {
131
131
  c = !0, t = e;
132
132
  } finally {
133
133
  try {
134
- if (!u && null != n["return"] && (l = n["return"](), Object(l) !== l)) return;
134
+ if (!u && null != r["return"] && (l = r["return"](), Object(l) !== l)) return;
135
135
  } finally {
136
136
  if (c) throw t;
137
137
  }
@@ -171,11 +171,11 @@
171
171
  toggle: a().element.isRequired
172
172
  };
173
173
  function O(e) {
174
- var o = e["aria-labelledby"], t = e.align, a = t === void 0 ? "center" : t, l = e.canCoverAnchor, u = l === void 0 ? true : l, p = e.children, v = e.closeReasons, y = v === void 0 ? C : v, g = e.defaultPlacement, b = g === void 0 ? "below" : g, m = e.elementRef, h = e.focusToggleReasons, O = h === void 0 ? k : h, w = e.inputId, R = e.open, S = e.openWithArrowKeys, A = e.onRequestClose, I = e.onRequestOpen, q = e.repositionMode, P = q === void 0 ? "flip" : q, D = e.retainFocus, K = D === void 0 ? false : D, j = e.takeFocus, M = j === void 0 ? true : j, T = e.toggle;
174
+ var o = e["aria-labelledby"], t = e.align, a = t === void 0 ? "center" : t, l = e.canCoverAnchor, u = l === void 0 ? true : l, p = e.children, v = e.closeReasons, g = v === void 0 ? C : v, y = e.defaultPlacement, b = y === void 0 ? "below" : y, m = e.elementRef, h = e.focusToggleReasons, O = h === void 0 ? k : h, w = e.inputId, R = e.open, S = e.openWithArrowKeys, A = e.onRequestClose, I = e.onRequestOpen, q = e.repositionMode, P = q === void 0 ? "flip" : q, D = e.retainFocus, K = D === void 0 ? false : D, j = e.takeFocus, M = j === void 0 ? true : j, T = e.toggle;
175
175
  // @docs-props-type DropdownPropsBase
176
- var F = (0, n.useState)(null), E = d(F, 2), N = E[0], _ = E[1];
177
- var x = (0, n.useState)(false), W = d(x, 2), U = W[0], z = W[1];
178
- var V = (0, n.useRef)(null);
176
+ var F = (0, r.useState)(null), E = f(F, 2), N = E[0], _ = E[1];
177
+ var x = (0, r.useState)(false), W = f(x, 2), U = W[0], z = W[1];
178
+ var V = (0, r.useRef)(null);
179
179
  var $ = c()({
180
180
  componentName: "Dropdown",
181
181
  /* eslint-disable-next-line prefer-rest-params */
@@ -185,32 +185,32 @@
185
185
  valuePropName: "open"
186
186
  });
187
187
  var B = $ ? R : U;
188
- var G = (0, n.useState)((function() {
188
+ var G = (0, r.useState)((function() {
189
189
  return {
190
190
  popoverId: (0, s.createDOMID)("popover"),
191
191
  toggleId: (0, s.createDOMID)("toggle")
192
192
  };
193
- })), H = d(G, 1), J = H[0], L = J.popoverId, Q = J.toggleId;
193
+ })), H = f(G, 1), J = H[0], L = J.popoverId, Q = J.toggleId;
194
194
  var X = w || T.props.id || Q;
195
- var Y = (0, n.useCallback)((function(e) {
195
+ var Y = (0, r.useCallback)((function(e) {
196
196
  V.current = e;
197
197
  _(e);
198
198
  // TS: ref does not exist on React.ReactElement - technically, this is undocumented API
199
- f(T.ref, e);
199
+ d(T.ref, e);
200
200
  }), [ T ]);
201
201
  var Z = T.props.disabled;
202
202
  var ee = Z === true || Z === "disabled" || Z === "dimmed";
203
- var oe = (0, n.useCallback)((function(e) {
204
- var o, n;
203
+ var oe = (0, r.useCallback)((function(e) {
204
+ var o, r;
205
205
  if (ee) {
206
206
  return;
207
207
  }
208
- (o = (n = T.props).onKeyDown) === null || o === void 0 ? void 0 : o.call(n, e);
208
+ (o = (r = T.props).onKeyDown) === null || o === void 0 ? void 0 : o.call(r, e);
209
209
  if (!S) {
210
210
  return;
211
211
  }
212
- var r = e.key;
213
- if (r === "ArrowUp" || r === "ArrowDown") {
212
+ var n = e.key;
213
+ if (n === "ArrowUp" || n === "ArrowDown") {
214
214
  e.preventDefault();
215
215
  I === null || I === void 0 ? void 0 : I(e, {
216
216
  reason: "toggleKeydown"
@@ -220,20 +220,20 @@
220
220
  }
221
221
  }
222
222
  }), [ $, ee, S, I, T ]);
223
- var ne = (0, n.useCallback)((function(e) {
224
- var o = e.event, n = e.reason;
225
- if (o && n === "clickAway") {
226
- var r = o.target;
227
- while (r) {
223
+ var re = (0, r.useCallback)((function(e) {
224
+ var o = e.event, r = e.reason;
225
+ if (o && r === "clickAway") {
226
+ var n = o.target;
227
+ while (n) {
228
228
  // Ignore clicks on toggle.
229
- if (V.current === r) {
229
+ if (V.current === n) {
230
230
  return;
231
231
  }
232
- r = r.parentNode;
232
+ n = n.parentNode;
233
233
  }
234
234
  }
235
- if (B && y.includes(n)) {
236
- if (O.includes(n)) {
235
+ if (B && g.includes(r)) {
236
+ if (O.includes(r)) {
237
237
  var t;
238
238
  (t = V.current) === null || t === void 0 ? void 0 : t.focus();
239
239
  }
@@ -242,22 +242,28 @@
242
242
  }
243
243
  A === null || A === void 0 ? void 0 : A(e);
244
244
  }
245
- }), [ y, O, $, B, A ]);
246
- var re = (0, n.useCallback)((function(e) {
247
- ne({
245
+ }), [ g, O, $, B, A ]);
246
+ var ne = (0, r.useCallback)((function(e) {
247
+ var o, r;
248
+ // Don't close the dropdown when clicking a disabled item.
249
+ var n = (o = (r = e.target).closest) === null || o === void 0 ? void 0 : o.call(r, '[aria-disabled="true"]');
250
+ if (n && e.currentTarget.contains(n)) {
251
+ return;
252
+ }
253
+ re({
248
254
  reason: "contentClick",
249
255
  event: e
250
256
  });
251
- }), [ ne ]);
252
- var te = (0, n.useCallback)((function(e) {
253
- var o, n;
257
+ }), [ re ]);
258
+ var te = (0, r.useCallback)((function(e) {
259
+ var o, r;
254
260
  if (ee) {
255
261
  e.preventDefault();
256
262
  return;
257
263
  }
258
- (o = (n = T.props).onClick) === null || o === void 0 ? void 0 : o.call(n, e);
264
+ (o = (r = T.props).onClick) === null || o === void 0 ? void 0 : o.call(r, e);
259
265
  if (B) {
260
- ne({
266
+ re({
261
267
  reason: "toggleClick",
262
268
  event: e
263
269
  });
@@ -269,8 +275,8 @@
269
275
  z(true);
270
276
  }
271
277
  }
272
- }), [ ne, $, B, ee, I, T ]);
273
- var ae = (0, n.cloneElement)(T, {
278
+ }), [ re, $, B, ee, I, T ]);
279
+ var ae = (0, r.cloneElement)(T, {
274
280
  onClick: te,
275
281
  onKeyDown: oe,
276
282
  ref: Y,
@@ -282,16 +288,16 @@
282
288
  id: X
283
289
  });
284
290
 
285
- return r().createElement(r().Fragment, null, ae, r().createElement(i(), {
291
+ return n().createElement(n().Fragment, null, ae, n().createElement(i(), {
286
292
  align: a,
287
293
  open: !!N && B,
288
- autoCloseWhenOffScreen: y.includes("offScreen"),
294
+ autoCloseWhenOffScreen: g.includes("offScreen"),
289
295
  anchor: N,
290
296
  canCoverAnchor: u,
291
297
  elementRef: m,
292
298
  retainFocus: K,
293
299
  defaultPlacement: b,
294
- onRequestClose: ne,
300
+ onRequestClose: re,
295
301
  repositionMode: P,
296
302
  id: L,
297
303
  "aria-labelledby": "".concat(o !== null && o !== void 0 ? o : "", " ").concat(X).trim(),
@@ -300,14 +306,14 @@
300
306
  }, typeof p === "function" ? function() {
301
307
 
302
308
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
303
- return r().createElement("div", {
304
- onClick: re
309
+ return n().createElement("div", {
310
+ onClick: ne
305
311
  }, p.apply(void 0, arguments));
306
312
  } :
307
313
 
308
314
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
309
- r().createElement("div", {
310
- onClick: re
315
+ n().createElement("div", {
316
+ onClick: ne
311
317
  }, p)));
312
318
  }
313
319
  O.propTypes = h;
package/LICENSE CHANGED
@@ -187,7 +187,7 @@
187
187
  same "printed page" as the copyright notice for easier
188
188
  identification within third-party archives.
189
189
 
190
- Copyright [yyyy] [name of copyright owner]
190
+ Copyright 2026 Cisco Systems, Inc.
191
191
 
192
192
  Licensed under the Apache License, Version 2.0 (the "License");
193
193
  you may not use this file except in compliance with the License.
package/MIGRATION.md CHANGED
@@ -2,6 +2,46 @@
2
2
 
3
3
  This document lists migration guidance for new features and breaking changes.
4
4
 
5
+ ## 5.10.0
6
+
7
+ ### Deprecated `ColumnLayout`
8
+
9
+ #### Change
10
+ `ColumnLayout` has been deprecated and will be removed in a future major version.
11
+
12
+ #### Context
13
+ `ColumnLayout` is a flexbox-based component that provides a 12-column grid abstraction. It exists for historical and backwards-compatibility reasons. We recommend migrating to CSS `grid` directly, which provides better styling control, supports intrinsic sizing, allows the use of design tokens for spacing, and avoids the overhead of a React component.
14
+
15
+ #### Migration steps
16
+ If you aren't familiar with CSS grid layout, explore some of the following resources before migrating:
17
+ - [CSS grid layout guide](https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Grid_layout)
18
+ - [Basic concepts of grid layout](https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Grid_layout/Basic_concepts)
19
+ - [CSS grid property reference](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/grid)
20
+
21
+ Replace `ColumnLayout`, `ColumnLayout.Row`, and `ColumnLayout.Column` with CSS `grid`. Use `gridColumn` with `span` for column widths, and replace the `gutter` prop with `gap`:
22
+
23
+ ```jsx
24
+ // Before
25
+ <ColumnLayout gutter={8}>
26
+ <ColumnLayout.Row>
27
+ <ColumnLayout.Column span={3}>Column</ColumnLayout.Column>
28
+ <ColumnLayout.Column span={9}>Content</ColumnLayout.Column>
29
+ </ColumnLayout.Row>
30
+ </ColumnLayout>
31
+
32
+ // After
33
+ const StyledGrid = styled.div`
34
+ display: grid;
35
+ grid-template-columns: repeat(12, 1fr);
36
+ gap: ${variables.spacingSmall};
37
+ `;
38
+
39
+ <StyledGrid>
40
+ <div style={{ gridColumn: 'span 3' }}>Column</div>
41
+ <div style={{ gridColumn: 'span 9' }}>Content</div>
42
+ </StyledGrid>
43
+ ```
44
+
5
45
  ## 5.5.0
6
46
 
7
47
  ### Deprecated `Switch`'s `selectedLabel`, `someSelectedLabel`, and `unselectedLabel` props