@splunk/react-ui 5.8.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 (69) hide show
  1. package/Anchor.js +2 -1
  2. package/ButtonSimple.js +1 -1
  3. package/CHANGELOG.md +38 -0
  4. package/Calendar.js +134 -134
  5. package/Clickable.js +131 -94
  6. package/Code.js +177 -170
  7. package/CollapsiblePanel.js +173 -135
  8. package/ColumnLayout.js +69 -45
  9. package/ComboBox.js +1 -0
  10. package/Dropdown.js +87 -72
  11. package/File.js +35 -35
  12. package/LICENSE +1 -1
  13. package/MIGRATION.md +40 -0
  14. package/Markdown.js +331 -306
  15. package/Menu.js +259 -215
  16. package/Modal.js +174 -181
  17. package/Monogram.js +2 -2
  18. package/Multiselect.js +414 -334
  19. package/Number.js +237 -242
  20. package/Search.js +15 -14
  21. package/SelectBase.js +777 -719
  22. package/SimpleTable.d.ts +2 -0
  23. package/SimpleTable.js +433 -0
  24. package/SlidingPanels.js +224 -153
  25. package/SpotLight.d.ts +2 -0
  26. package/SpotLight.js +687 -0
  27. package/Table.js +1232 -1238
  28. package/Text.js +26 -26
  29. package/docker-compose.yml +12 -18
  30. package/docs-llm/Avatar.md +2 -8
  31. package/docs-llm/Collapsible Panel.md +11 -57
  32. package/docs-llm/Column Layout.md +2 -2
  33. package/docs-llm/Divider.md +33 -0
  34. package/docs-llm/Message Bar.md +4 -1
  35. package/docs-llm/Multiselect.md +185 -162
  36. package/docs-llm/Notifications.md +46 -0
  37. package/docs-llm/Table.md +7 -7
  38. package/docs-llm/Tree.md +7 -2
  39. package/docs-llm/Typography.md +1 -1
  40. package/docs-llm/llms.txt +7 -3
  41. package/package.json +9 -11
  42. package/test-runner-jest.config.js +4 -53
  43. package/types/src/CollapsiblePanel/docs/examples/Actions.d.ts +1 -1
  44. package/types/src/ColumnLayout/ColumnLayout.d.ts +2 -2
  45. package/types/src/Divider/docs/examples/VerticalWithAlignItems.d.ts +8 -0
  46. package/types/src/Markdown/Markdown.d.ts +14 -2
  47. package/types/src/Markdown/renderers/MarkdownTable.d.ts +2 -22
  48. package/types/src/Markdown/renderers/MarkdownWrapper.d.ts +11 -0
  49. package/types/src/Markdown/renderers/index.d.ts +3 -1
  50. package/types/src/Multiselect/Compact.d.ts +12 -3
  51. package/types/src/Multiselect/Multiselect.d.ts +12 -3
  52. package/types/src/Multiselect/Normal.d.ts +8 -3
  53. package/types/src/Multiselect/Option.d.ts +6 -3
  54. package/types/src/Multiselect/docs/examples/Disabled.d.ts +1 -0
  55. package/types/src/Multiselect/docs/examples/LoadMoreWithSelectAll.d.ts +9 -0
  56. package/types/src/SelectBase/SelectBase.d.ts +5 -1
  57. package/types/src/SimpleTable/Body.d.ts +25 -0
  58. package/types/src/SimpleTable/Cell.d.ts +20 -0
  59. package/types/src/SimpleTable/Head.d.ts +20 -0
  60. package/types/src/SimpleTable/HeadCell.d.ts +20 -0
  61. package/types/src/SimpleTable/Row.d.ts +20 -0
  62. package/types/src/SimpleTable/SimpleTable.d.ts +37 -0
  63. package/types/src/SimpleTable/index.d.ts +3 -0
  64. package/types/src/SpotLight/SpotLight.d.ts +88 -0
  65. package/types/src/SpotLight/index.d.ts +2 -0
  66. package/types/src/Table/Row.d.ts +1 -1
  67. package/types/src/Table/Table.d.ts +1 -1
  68. package/types/src/Typography/Typography.d.ts +1 -1
  69. 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/ComboBox.js CHANGED
@@ -578,6 +578,7 @@
578
578
  switch (o) {
579
579
  case "Enter":
580
580
  {
581
+ e.preventDefault();
581
582
  if (t) {
582
583
  Ye(e, {
583
584
  value: t
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, K = e.retainFocus, j = K === void 0 ? false : K, D = e.takeFocus, M = D === void 0 ? true : D, 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,27 +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
- var Z = (0, n.useCallback)((function(e) {
202
- var o, n;
203
- (o = (n = T.props).onKeyDown) === null || o === void 0 ? void 0 : o.call(n, e);
201
+ var Z = T.props.disabled;
202
+ var ee = Z === true || Z === "disabled" || Z === "dimmed";
203
+ var oe = (0, r.useCallback)((function(e) {
204
+ var o, r;
205
+ if (ee) {
206
+ return;
207
+ }
208
+ (o = (r = T.props).onKeyDown) === null || o === void 0 ? void 0 : o.call(r, e);
204
209
  if (!S) {
205
210
  return;
206
211
  }
207
- var r = e.key;
208
- if (r === "ArrowUp" || r === "ArrowDown") {
212
+ var n = e.key;
213
+ if (n === "ArrowUp" || n === "ArrowDown") {
209
214
  e.preventDefault();
210
215
  I === null || I === void 0 ? void 0 : I(e, {
211
216
  reason: "toggleKeydown"
@@ -214,21 +219,21 @@
214
219
  z(true);
215
220
  }
216
221
  }
217
- }), [ $, S, I, T ]);
218
- var ee = (0, n.useCallback)((function(e) {
219
- var o = e.event, n = e.reason;
220
- if (o && n === "clickAway") {
221
- var r = o.target;
222
- while (r) {
222
+ }), [ $, ee, S, I, T ]);
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) {
223
228
  // Ignore clicks on toggle.
224
- if (V.current === r) {
229
+ if (V.current === n) {
225
230
  return;
226
231
  }
227
- r = r.parentNode;
232
+ n = n.parentNode;
228
233
  }
229
234
  }
230
- if (B && y.includes(n)) {
231
- if (O.includes(n)) {
235
+ if (B && g.includes(r)) {
236
+ if (O.includes(r)) {
232
237
  var t;
233
238
  (t = V.current) === null || t === void 0 ? void 0 : t.focus();
234
239
  }
@@ -237,18 +242,28 @@
237
242
  }
238
243
  A === null || A === void 0 ? void 0 : A(e);
239
244
  }
240
- }), [ y, O, $, B, A ]);
241
- var oe = (0, n.useCallback)((function(e) {
242
- ee({
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({
243
254
  reason: "contentClick",
244
255
  event: e
245
256
  });
246
- }), [ ee ]);
247
- var ne = (0, n.useCallback)((function(e) {
248
- var o, n;
249
- (o = (n = T.props).onClick) === null || o === void 0 ? void 0 : o.call(n, e);
257
+ }), [ re ]);
258
+ var te = (0, r.useCallback)((function(e) {
259
+ var o, r;
260
+ if (ee) {
261
+ e.preventDefault();
262
+ return;
263
+ }
264
+ (o = (r = T.props).onClick) === null || o === void 0 ? void 0 : o.call(r, e);
250
265
  if (B) {
251
- ee({
266
+ re({
252
267
  reason: "toggleClick",
253
268
  event: e
254
269
  });
@@ -260,10 +275,10 @@
260
275
  z(true);
261
276
  }
262
277
  }
263
- }), [ ee, $, B, I, T ]);
264
- var re = (0, n.cloneElement)(T, {
265
- onClick: ne,
266
- onKeyDown: Z,
278
+ }), [ re, $, B, ee, I, T ]);
279
+ var ae = (0, r.cloneElement)(T, {
280
+ onClick: te,
281
+ onKeyDown: oe,
267
282
  ref: Y,
268
283
  "aria-controls": B ? L : undefined,
269
284
  "aria-haspopup": T.props["aria-haspopup"] || true,
@@ -273,16 +288,16 @@
273
288
  id: X
274
289
  });
275
290
 
276
- return r().createElement(r().Fragment, null, re, r().createElement(i(), {
291
+ return n().createElement(n().Fragment, null, ae, n().createElement(i(), {
277
292
  align: a,
278
293
  open: !!N && B,
279
- autoCloseWhenOffScreen: y.includes("offScreen"),
294
+ autoCloseWhenOffScreen: g.includes("offScreen"),
280
295
  anchor: N,
281
296
  canCoverAnchor: u,
282
297
  elementRef: m,
283
- retainFocus: j,
298
+ retainFocus: K,
284
299
  defaultPlacement: b,
285
- onRequestClose: ee,
300
+ onRequestClose: re,
286
301
  repositionMode: P,
287
302
  id: L,
288
303
  "aria-labelledby": "".concat(o !== null && o !== void 0 ? o : "", " ").concat(X).trim(),
@@ -291,14 +306,14 @@
291
306
  }, typeof p === "function" ? function() {
292
307
 
293
308
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
294
- return r().createElement("div", {
295
- onClick: oe
309
+ return n().createElement("div", {
310
+ onClick: ne
296
311
  }, p.apply(void 0, arguments));
297
312
  } :
298
313
 
299
314
  // eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions
300
- r().createElement("div", {
301
- onClick: oe
315
+ n().createElement("div", {
316
+ onClick: ne
302
317
  }, p)));
303
318
  }
304
319
  O.propTypes = h;