@splunk/react-ui 5.3.0 → 5.5.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 (114) hide show
  1. package/Accordion.js +31 -31
  2. package/Avatar.js +13 -13
  3. package/Badge.js +154 -0
  4. package/Breadcrumbs.js +66 -63
  5. package/ButtonSimple.js +52 -52
  6. package/CHANGELOG.md +43 -0
  7. package/CardLayout.js +39 -36
  8. package/Clickable.js +5 -6
  9. package/Code.js +917 -424
  10. package/CollapsiblePanel.js +1 -1
  11. package/Color.js +904 -1025
  12. package/ComboBox.js +6 -5
  13. package/DefinitionList.js +1 -1
  14. package/FormRows.js +13 -11
  15. package/JSONTree.js +682 -1408
  16. package/Link.js +74 -44
  17. package/MIGRATION.md +32 -1
  18. package/Markdown.js +9 -5
  19. package/Menu.js +100 -97
  20. package/Multiselect.js +1223 -2858
  21. package/Number.js +3 -3
  22. package/PhoneNumber.d.ts +2 -0
  23. package/PhoneNumber.js +769 -0
  24. package/Popover.js +235 -232
  25. package/RadioList.js +166 -151
  26. package/Resize.js +11 -8
  27. package/ResultsMenu.js +911 -1030
  28. package/ScreenReaderContent.js +86 -130
  29. package/Scroll.js +366 -425
  30. package/Select.js +267 -1947
  31. package/SelectBase.d.ts +2 -0
  32. package/SelectBase.js +1681 -0
  33. package/Slider.js +202 -199
  34. package/SlidingPanels.js +170 -175
  35. package/StepBar.js +123 -97
  36. package/Switch.js +137 -118
  37. package/TabBar.js +296 -295
  38. package/TabLayout.js +14 -14
  39. package/Table.js +1562 -1516
  40. package/TextArea.js +596 -684
  41. package/TransitionOpen.js +82 -74
  42. package/Tree.js +638 -682
  43. package/docker-compose.yml +99 -52
  44. package/package.json +16 -12
  45. package/stubs-splunkui.d.ts +0 -86
  46. package/test-runner-jest.config.js +1 -0
  47. package/types/src/Badge/Badge.d.ts +29 -0
  48. package/types/src/Badge/docs/examples/Basic.d.ts +5 -0
  49. package/types/src/Badge/docs/examples/Count.d.ts +6 -0
  50. package/types/src/Badge/docs/examples/CustomColors.d.ts +8 -0
  51. package/types/src/Badge/docs/examples/Icon.d.ts +6 -0
  52. package/types/src/Badge/index.d.ts +2 -0
  53. package/types/src/Breadcrumbs/Breadcrumbs.d.ts +1 -5
  54. package/types/src/Breadcrumbs/BreadcrumbsContext.d.ts +7 -0
  55. package/types/src/Breadcrumbs/Item.d.ts +1 -1
  56. package/types/src/ButtonSimple/mixin.d.ts +1 -1
  57. package/types/src/Code/Code.d.ts +4 -3
  58. package/types/src/Code/index.d.ts +1 -0
  59. package/types/src/JSONTree/JSONTreeItem.d.ts +1 -1
  60. package/types/src/JSONTree/renderTreeItems.d.ts +1 -1
  61. package/types/src/Link/Link.d.ts +4 -0
  62. package/types/src/Link/LinkContext.d.ts +14 -0
  63. package/types/src/Link/docs/examples/Visited.d.ts +7 -0
  64. package/types/src/Link/index.d.ts +1 -0
  65. package/types/src/Modal/ModalContext.d.ts +1 -1
  66. package/types/src/Multiselect/Compact.d.ts +3 -3
  67. package/types/src/Multiselect/Multiselect.d.ts +1 -1
  68. package/types/src/Multiselect/Normal.d.ts +2 -2
  69. package/types/src/Number/utils.d.ts +1 -1
  70. package/types/src/PhoneNumber/PhoneNumber.d.ts +139 -0
  71. package/types/src/PhoneNumber/docs/examples/Controlled.d.ts +7 -0
  72. package/types/src/PhoneNumber/docs/examples/DefaultCountry.d.ts +7 -0
  73. package/types/src/PhoneNumber/docs/examples/Disabled.d.ts +6 -0
  74. package/types/src/PhoneNumber/docs/examples/Error.d.ts +6 -0
  75. package/types/src/PhoneNumber/docs/examples/Inline.d.ts +7 -0
  76. package/types/src/PhoneNumber/docs/examples/Uncontrolled.d.ts +7 -0
  77. package/types/src/PhoneNumber/index.d.ts +2 -0
  78. package/types/src/PhoneNumber/utils.d.ts +47 -0
  79. package/types/src/Popover/getPlacement.d.ts +1 -1
  80. package/types/src/RadioList/Option.d.ts +7 -2
  81. package/types/src/RadioList/RadioListContext.d.ts +1 -1
  82. package/types/src/RadioList/docs/examples/Description.d.ts +6 -0
  83. package/types/src/Select/Option.d.ts +8 -3
  84. package/types/src/Select/Select.d.ts +1 -1
  85. package/types/src/{Select → SelectBase}/OptionBase.d.ts +8 -2
  86. package/types/src/{Select → SelectBase}/SelectBase.d.ts +3 -1
  87. package/types/src/SelectBase/index.d.ts +2 -0
  88. package/types/src/StepBar/StepBar.d.ts +4 -1
  89. package/types/src/StepBar/StepBarContext.d.ts +1 -0
  90. package/types/src/StepBar/docs/examples/Vertical.d.ts +6 -0
  91. package/types/src/Switch/Switch.d.ts +10 -1
  92. package/types/src/TabBar/Tab.d.ts +3 -1
  93. package/types/src/TabBar/docs/examples/Icons.d.ts +4 -0
  94. package/types/src/TabBar/docs/examples/Tooltips.d.ts +3 -0
  95. package/types/src/TabLayout/Panel.d.ts +2 -0
  96. package/types/src/Table/Body.d.ts +6 -1
  97. package/types/src/Table/Cell.d.ts +5 -1
  98. package/types/src/Table/Head.d.ts +6 -2
  99. package/types/src/Table/HeadCell.d.ts +5 -1
  100. package/types/src/Table/Row.d.ts +5 -1
  101. package/types/src/Table/Table.d.ts +21 -1
  102. package/types/src/Table/TableContext.d.ts +1 -0
  103. package/types/src/Table/docs/examples/HorizontalOverflowScroll.d.ts +8 -0
  104. package/types/src/Table/docs/examples/PinActionColumn.d.ts +7 -0
  105. package/types/src/TransitionOpen/TransitionOpen.d.ts +3 -1
  106. package/types/src/Tree/TreeContext.d.ts +1 -1
  107. package/types/src/useResizeObserver/useResizeObserver.d.ts +2 -0
  108. package/types/src/useRovingFocus/useRovingFocus.d.ts +8 -1
  109. package/useControlled.js +61 -97
  110. package/usePrevious.d.ts +2 -0
  111. package/usePrevious.js +30 -62
  112. package/useResizeObserver.js +71 -136
  113. package/useRovingFocus.js +96 -41
  114. /package/types/src/{Select → SelectBase}/SelectAllOption.d.ts +0 -0
package/TransitionOpen.js CHANGED
@@ -72,8 +72,8 @@
72
72
  // CONCATENATED MODULE: external "@splunk/react-ui/Animation"
73
73
  const a = require("@splunk/react-ui/Animation");
74
74
  // CONCATENATED MODULE: external "@splunk/react-ui/usePrevious"
75
- const u = require("@splunk/react-ui/usePrevious");
76
- var l = e.n(u);
75
+ const l = require("@splunk/react-ui/usePrevious");
76
+ var u = e.n(l);
77
77
  // CONCATENATED MODULE: external "@splunk/ui-utils/focus"
78
78
  const s = require("@splunk/ui-utils/focus");
79
79
  // CONCATENATED MODULE: external "@splunk/ui-utils/style"
@@ -137,7 +137,7 @@
137
137
  }, g.apply(null, arguments);
138
138
  }
139
139
  function O(e, t) {
140
- return k(e) || P(e, t) || j(e, t) || S();
140
+ return P(e) || F(e, t) || j(e, t) || S();
141
141
  }
142
142
  function S() {
143
143
  throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
@@ -156,34 +156,34 @@
156
156
  }
157
157
  return n;
158
158
  }
159
- function P(e, t) {
159
+ function F(e, t) {
160
160
  var r = null == e ? null : "undefined" != typeof Symbol && e[Symbol.iterator] || e["@@iterator"];
161
161
  if (null != r) {
162
- var n, o, i, a, u = [], l = !0, s = !1;
162
+ var n, o, i, a, l = [], u = !0, s = !1;
163
163
  try {
164
164
  if (i = (r = r.call(e)).next, 0 === t) {
165
165
  if (Object(r) !== r) return;
166
- l = !1;
167
- } else for (;!(l = (n = i.call(r)).done) && (u.push(n.value), u.length !== t); l = !0) {
166
+ u = !1;
167
+ } else for (;!(u = (n = i.call(r)).done) && (l.push(n.value), l.length !== t); u = !0) {
168
168
  }
169
169
  } catch (e) {
170
170
  s = !0, o = e;
171
171
  } finally {
172
172
  try {
173
- if (!l && null != r["return"] && (a = r["return"](), Object(a) !== a)) return;
173
+ if (!u && null != r["return"] && (a = r["return"](), Object(a) !== a)) return;
174
174
  } finally {
175
175
  if (s) throw o;
176
176
  }
177
177
  }
178
- return u;
178
+ return l;
179
179
  }
180
180
  }
181
- function k(e) {
181
+ function P(e) {
182
182
  if (Array.isArray(e)) return e;
183
183
  }
184
- function x(e, t) {
184
+ function k(e, t) {
185
185
  if (null == e) return {};
186
- var r, n, o = F(e, t);
186
+ var r, n, o = x(e, t);
187
187
  if (Object.getOwnPropertySymbols) {
188
188
  var i = Object.getOwnPropertySymbols(e);
189
189
  for (n = 0; n < i.length; n++) {
@@ -192,7 +192,7 @@
192
192
  }
193
193
  return o;
194
194
  }
195
- function F(e, t) {
195
+ function x(e, t) {
196
196
  if (null == e) return {};
197
197
  var r = {};
198
198
  for (var n in e) {
@@ -217,26 +217,26 @@
217
217
  for (var t = 1; t < arguments.length; t++) {
218
218
  var r = null != arguments[t] ? arguments[t] : {};
219
219
  t % 2 ? C(Object(r), !0).forEach((function(t) {
220
- T(e, t, r[t]);
220
+ A(e, t, r[t]);
221
221
  })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : C(Object(r)).forEach((function(t) {
222
222
  Object.defineProperty(e, t, Object.getOwnPropertyDescriptor(r, t));
223
223
  }));
224
224
  }
225
225
  return e;
226
226
  }
227
- function T(e, t, r) {
228
- return (t = E(t)) in e ? Object.defineProperty(e, t, {
227
+ function A(e, t, r) {
228
+ return (t = T(t)) in e ? Object.defineProperty(e, t, {
229
229
  value: r,
230
230
  enumerable: !0,
231
231
  configurable: !0,
232
232
  writable: !0
233
233
  }) : e[t] = r, e;
234
234
  }
235
- function E(e) {
236
- var t = A(e, "string");
235
+ function T(e) {
236
+ var t = E(e, "string");
237
237
  return "symbol" == h(t) ? t : t + "";
238
238
  }
239
- function A(e, t) {
239
+ function E(e, t) {
240
240
  if ("object" != h(e) || !e) return e;
241
241
  var r = e[Symbol.toPrimitive];
242
242
  if (void 0 !== r) {
@@ -256,6 +256,7 @@
256
256
  innerClassName: i().string,
257
257
  innerStyle: i().object,
258
258
  onAnimationEnd: i().func,
259
+ onAnimationStart: i().func,
259
260
  open: i().bool,
260
261
  outerClassName: i().string,
261
262
  outerId: i().string,
@@ -293,7 +294,7 @@
293
294
  var a = {
294
295
  value: n ? 0 : o
295
296
  };
296
- var u = {
297
+ var l = {
297
298
  precision: 1
298
299
  };
299
300
  // Only use precision when not using transform, otherwise transform animation will break
@@ -301,7 +302,7 @@
301
302
  if (r === "expandWidth" || r === "expandHeight" || r === "none") {
302
303
  return {
303
304
  to: i,
304
- config: u
305
+ config: l
305
306
  };
306
307
  }
307
308
  // Slide transitions require a valid value, render without transition first.
@@ -313,14 +314,14 @@
313
314
  return {
314
315
  to: i,
315
316
  from: a,
316
- config: u
317
+ config: l
317
318
  };
318
319
  }
319
320
  // The top and left directions require an additional transform of their inner content to match the outer dimension animation.
320
321
  // This is needed to achieve a clipping effect from the outer div, rather than the consumer providing their own.
321
- var l = r === "slideFromTop" ? "Y" : "X";
322
- var s = "translate".concat(l, "(").concat(n ? 0 : -o, "px)");
323
- var c = "translate".concat(l, "(").concat(n ? -o : 0, "px)");
322
+ var u = r === "slideFromTop" ? "Y" : "X";
323
+ var s = "translate".concat(u, "(").concat(n ? 0 : -o, "px)");
324
+ var c = "translate".concat(u, "(").concat(n ? -o : 0, "px)");
324
325
  return {
325
326
  to: N({
326
327
  transform: s
@@ -330,7 +331,7 @@
330
331
  }, a)
331
332
  };
332
333
  };
333
- var _ = function e(t) {
334
+ var R = function e(t) {
334
335
  var r = t.animation, n = t.el, o = t.takeFocusProp;
335
336
  var i = 0;
336
337
  if (n) {
@@ -353,90 +354,97 @@
353
354
  }
354
355
  return i;
355
356
  };
356
- var R = {};
357
+ var _ = {};
357
358
  var W = {};
358
359
  function D(e) {
359
- var t = e.animation, o = t === void 0 ? "expandHeight" : t, i = e.animateOnMount, u = e.children, f = e.className, d = e.elementRef, m = e.id, p = e.innerClassName, h = e.innerStyle, S = h === void 0 ? R : h, j = e.onAnimationEnd, w = e.open, P = e.outerClassName, k = e.outerId, F = e.outerStyle, C = F === void 0 ? W : F, E = e.renderChildrenWhenCollapsed, A = e.retainFocus, I = e.takeFocus, D = x(e, [ "animation", "animateOnMount", "children", "className", "elementRef", "id", "innerClassName", "innerStyle", "onAnimationEnd", "open", "outerClassName", "outerId", "outerStyle", "renderChildrenWhenCollapsed", "retainFocus", "takeFocus" ]);
360
+ var t = e.animation, o = t === void 0 ? "expandHeight" : t, i = e.animateOnMount, l = e.children, f = e.className, d = e.elementRef, m = e.id, p = e.innerClassName, h = e.innerStyle, S = h === void 0 ? _ : h, j = e.onAnimationEnd, w = e.onAnimationStart, F = e.open, P = e.outerClassName, x = e.outerId, C = e.outerStyle, T = C === void 0 ? W : C, E = e.renderChildrenWhenCollapsed, I = e.retainFocus, D = e.takeFocus, H = k(e, [ "animation", "animateOnMount", "children", "className", "elementRef", "id", "innerClassName", "innerStyle", "onAnimationEnd", "onAnimationStart", "open", "outerClassName", "outerId", "outerStyle", "renderChildrenWhenCollapsed", "retainFocus", "takeFocus" ]);
360
361
  // @docs-props-type TransitionOpenPropsBase
361
- var H = l()(w);
362
- var L = (0, r.useRef)(true);
363
- var $ = (0, r.useState)(i ? w : false), B = O($, 2), K = B[0], U = B[1];
364
- var X = (0, r.useState)(null), Y = O(X, 2), z = Y[0], G = Y[1];
365
- var J = (0, r.useState)(0), Q = O(J, 2), V = Q[0], Z = Q[1];
362
+ var L = u()(F);
363
+ var B = (0, r.useRef)(true);
364
+ var $ = (0, r.useState)(i ? F : false), K = O($, 2), U = K[0], X = K[1];
365
+ var Y = (0, r.useState)(null), z = O(Y, 2), G = z[0], J = z[1];
366
+ var Q = (0, r.useState)(0), V = O(Q, 2), Z = V[0], ee = V[1];
366
367
  (0, r.useEffect)((function() {
367
368
  // prevOpen starts undefined, and we don't want to make the comparison in that situation
368
- if (H !== undefined && w !== H) {
369
- U(true);
369
+ if (L !== undefined && F !== L) {
370
+ X(true);
370
371
  }
371
- }), [ w, H ]);
372
+ }), [ F, L ]);
372
373
  // equivalent to componentDidMount and componentWillUnmount
373
374
  (0, r.useEffect)((function() {
374
375
  // we need to set this to true on every mount because React.StrictMode will call the effect twice
375
376
  // and we need to ensure that allowAnimationUpdates is true while the component is mounted
376
- L.current = true;
377
+ B.current = true;
377
378
  return function() {
378
- L.current = false;
379
+ B.current = false;
379
380
  };
380
381
  }), []);
381
- var ee = (0, r.useCallback)((function(e) {
382
- G(e);
383
- Z(_({
382
+ var te = (0, r.useCallback)((function(e) {
383
+ J(e);
384
+ ee(R({
384
385
  animation: o,
385
386
  el: e,
386
- takeFocusProp: I
387
+ takeFocusProp: D
387
388
  }));
388
389
  b(d, e);
389
- }), [ o, I, d ]);
390
- var te = (0, r.useCallback)((function() {
391
- if (L.current) {
392
- U(false);
390
+ }), [ o, D, d ]);
391
+ var re = (0, r.useCallback)((function() {
392
+ w === null || w === void 0 ? void 0 : w();
393
+ }), [ w ]);
394
+ var ne = (0, r.useCallback)((function() {
395
+ if (B.current) {
396
+ X(false);
393
397
  }
394
398
  j === null || j === void 0 ? void 0 : j();
395
399
  }), [ j ]);
396
- var re = (0, r.useCallback)((function(e) {
397
- if (z) {
398
- (0, s.handleTab)(z, e);
400
+ var oe = (0, r.useCallback)((function(e) {
401
+ if (G) {
402
+ (0, s.handleTab)(G, e);
399
403
  }
400
- }), [ z ]);
401
- var ne = (0, a.useAnimation)(N(N({}, M({
404
+ }), [ G ]);
405
+ var ie = (0, a.useAnimation)(N(N({}, M({
402
406
  animation: o,
403
- open: w,
404
- value: V
407
+ open: F,
408
+ value: Z
405
409
  })), {}, {
406
410
  immediate: o === "none",
407
- onRest: te
408
- })), oe = ne.value, ie = ne.transform;
409
- var ae;
410
- if (K || E) {
411
- ae = q(o);
411
+ onRest: ne,
412
+ onStart: re
413
+ })), ae = ie.value, le = ie.transform;
414
+ var ue;
415
+ var se = [ "slideFromTop", "slideFromRight", "slideFromBottom", "slideFromLeft" ].includes(o);
416
+ /* to avoid setting and unsetting dimension which causes flickering
417
+ we always set the dimension if it is a slide animation
418
+ else only set it when animating || renderChildrenWhenCollapsed */ if (se || U || E) {
419
+ ue = q(o);
412
420
  }
413
421
  // if renderChildrenWhenCollapsed is true, we hide the content by setting the height of the wrapper to 0
414
- var ue = E && !w && !K ? 0 : oe;
415
- var le = (0, r.useMemo)((function() {
416
- return N(N({}, C), ae && T({}, ae, ue));
417
- }), [ ae, ue, C ]);
418
- var se = (0, r.useMemo)((function() {
422
+ var ce = E && !F && !U ? 0 : ae;
423
+ var fe = (0, r.useMemo)((function() {
424
+ return N(N({}, T), ue && A({}, ue, ce));
425
+ }), [ ue, ce, T ]);
426
+ var de = (0, r.useMemo)((function() {
419
427
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
420
428
  return N(N({}, S), {}, {
421
- transform: ie
429
+ transform: le
422
430
  });
423
- }), [ S, ie ]);
431
+ }), [ S, le ]);
424
432
 
425
433
  return n().createElement(v, {
426
- $hideOverflow: !w || K || false,
434
+ $hideOverflow: !F || U || false,
427
435
  className: (0, c.toClassName)(f, P),
428
- style: le,
429
- id: k
430
- }, (w || K || E) && n().createElement(y, g({
436
+ style: fe,
437
+ id: x
438
+ }, (F || U || E) && n().createElement(y, g({
431
439
  "data-test": "transition-open"
432
- }, D, {
433
- ref: ee,
440
+ }, H, {
441
+ ref: te,
434
442
  tabIndex: -1,
435
443
  className: p,
436
444
  id: m,
437
- onKeyDown: A ? re : undefined,
438
- style: se
439
- }), u));
445
+ onKeyDown: I ? oe : undefined,
446
+ style: de
447
+ }), l));
440
448
  }
441
449
  D.propTypes = I;
442
450
  /* harmony default export */ const H = D;