@splunk/react-ui 5.2.0 → 5.4.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 +64 -59
  3. package/Box.js +2 -1
  4. package/Breadcrumbs.js +66 -63
  5. package/ButtonSimple.js +52 -52
  6. package/CHANGELOG.md +47 -0
  7. package/Calendar.js +8 -4
  8. package/CardLayout.js +39 -36
  9. package/Checkbox.d.ts +2 -0
  10. package/Checkbox.js +350 -0
  11. package/Clickable.js +5 -6
  12. package/Code.js +451 -536
  13. package/CollapsiblePanel.js +184 -210
  14. package/Color.js +903 -1023
  15. package/ControlGroup.js +2 -1
  16. package/Date.js +123 -119
  17. package/DefinitionList.js +100 -77
  18. package/Dropdown.js +2 -2
  19. package/DualListbox.js +409 -353
  20. package/File.js +102 -99
  21. package/FormRows.js +13 -11
  22. package/JSONTree.js +679 -1391
  23. package/Link.js +7 -7
  24. package/MIGRATION.md +27 -0
  25. package/Markdown.js +171 -156
  26. package/Menu.js +107 -100
  27. package/Modal.js +3 -3
  28. package/Multiselect.js +2698 -2767
  29. package/Paginator.js +2 -1
  30. package/Popover.js +201 -196
  31. package/Resize.js +11 -8
  32. package/ResultsMenu.js +913 -1029
  33. package/ScreenReaderContent.js +86 -130
  34. package/Scroll.js +366 -424
  35. package/Search.js +131 -127
  36. package/Select.js +1741 -1831
  37. package/Slider.js +1 -1
  38. package/SlidingPanels.js +129 -127
  39. package/StepBar.js +123 -97
  40. package/Switch.js +214 -242
  41. package/TabBar.js +10 -10
  42. package/Table.js +1255 -1248
  43. package/Text.js +180 -206
  44. package/TextArea.js +596 -675
  45. package/Tooltip.js +144 -139
  46. package/Tree.js +638 -682
  47. package/package.json +15 -16
  48. package/tsconfig.check-docs.json +8 -0
  49. package/types/src/Avatar/docs/examples/Basic.d.ts +1 -1
  50. package/types/src/Breadcrumbs/Breadcrumbs.d.ts +1 -5
  51. package/types/src/Breadcrumbs/BreadcrumbsContext.d.ts +7 -0
  52. package/types/src/Breadcrumbs/Item.d.ts +1 -1
  53. package/types/src/ButtonSimple/mixin.d.ts +1 -1
  54. package/types/src/Checkbox/Checkbox.d.ts +90 -0
  55. package/types/src/Checkbox/docs/examples/Basic.d.ts +7 -0
  56. package/types/src/Checkbox/docs/examples/Disabled.d.ts +6 -0
  57. package/types/src/Checkbox/docs/examples/Error.d.ts +6 -0
  58. package/types/src/Checkbox/docs/examples/Uncontrolled.d.ts +7 -0
  59. package/types/src/Checkbox/index.d.ts +2 -0
  60. package/types/src/Code/Code.d.ts +4 -1
  61. package/types/src/Code/LineHighlights.d.ts +1 -0
  62. package/types/src/Code/LineNumbers.d.ts +2 -1
  63. package/types/src/Code/docs/examples/CustomizeContainer.d.ts +7 -0
  64. package/types/src/ControlGroup/docs/examples/CustomizedLabelTarget.d.ts +3 -3
  65. package/types/src/Date/Date.d.ts +7 -1
  66. package/types/src/DefinitionList/DefinitionList.d.ts +7 -2
  67. package/types/src/DefinitionList/DefinitionListContext.d.ts +1 -1
  68. package/types/src/DefinitionList/docs/examples/StackedLayout.d.ts +6 -0
  69. package/types/src/DualListbox/DualListbox.d.ts +1 -1
  70. package/types/src/DualListbox/Label.d.ts +7 -7
  71. package/types/src/DualListbox/Listbox.d.ts +2 -2
  72. package/types/src/DualListbox/ListboxContext.d.ts +1 -1
  73. package/types/src/File/File.d.ts +7 -1
  74. package/types/src/JSONTree/JSONTreeItem.d.ts +5 -3
  75. package/types/src/JSONTree/renderTreeItems.d.ts +3 -2
  76. package/types/src/Markdown/renderers/MarkdownCodeBlock.d.ts +2 -1
  77. package/types/src/Menu/docs/examples/Dimmed.d.ts +1 -1
  78. package/types/src/Menu/docs/examples/Disabled.d.ts +1 -0
  79. package/types/src/Modal/ModalContext.d.ts +1 -1
  80. package/types/src/Multiselect/Compact.d.ts +9 -3
  81. package/types/src/Multiselect/Multiselect.d.ts +7 -1
  82. package/types/src/Multiselect/Normal.d.ts +9 -3
  83. package/types/src/Number/utils.d.ts +1 -1
  84. package/types/src/Popover/getPlacement.d.ts +1 -1
  85. package/types/src/RadioList/Option.d.ts +1 -1
  86. package/types/src/RadioList/RadioListContext.d.ts +1 -1
  87. package/types/src/Search/Search.d.ts +5 -1
  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 +13 -1
  92. package/types/src/Switch/docs/examples/Basic.d.ts +2 -10
  93. package/types/src/Switch/docs/examples/Disabled.d.ts +2 -9
  94. package/types/src/TabBar/Tab.d.ts +3 -1
  95. package/types/src/TabBar/docs/examples/Icons.d.ts +4 -0
  96. package/types/src/TabBar/docs/examples/Tooltips.d.ts +3 -0
  97. package/types/src/TabLayout/Panel.d.ts +2 -0
  98. package/types/src/Table/ExpandButton.d.ts +1 -1
  99. package/types/src/Table/Head.d.ts +1 -1
  100. package/types/src/Table/Row.d.ts +1 -1
  101. package/types/src/Table/Table.d.ts +1 -0
  102. package/types/src/Tooltip/Tooltip.d.ts +14 -1
  103. package/types/src/Tree/TreeContext.d.ts +1 -1
  104. package/useControlled.js +61 -97
  105. package/usePrevious.js +30 -62
  106. package/useResizeObserver.js +95 -127
  107. package/NonInteractiveCheckbox.js +0 -101
  108. package/types/src/CollapsiblePanel/icons/ExpandPanel.d.ts +0 -12
  109. package/types/src/NonInteractiveCheckbox/NonInteractiveCheckbox.d.ts +0 -22
  110. package/types/src/NonInteractiveCheckbox/index.d.ts +0 -1
  111. package/types/src/Switch/docs/examples/Error.d.ts +0 -6
  112. package/types/src/Text/IconOutlinedHide.d.ts +0 -3
  113. package/types/src/Text/IconOutlinedView.d.ts +0 -3
  114. /package/cypress/{tsconfig.cypress.json → tsconfig.check-cypress.json} +0 -0
package/Search.js CHANGED
@@ -369,6 +369,7 @@
369
369
  /** @public */
370
370
  /** @public */ var ne = {
371
371
  animateLoading: v().bool,
372
+ append: v().bool,
372
373
  children: v().node,
373
374
  defaultPlacement: v().oneOf([ "above", "below", "vertical" ]),
374
375
  defaultValue: v().string,
@@ -394,6 +395,7 @@
394
395
  onScroll: v().func,
395
396
  onSelect: v().func,
396
397
  placeholder: v().string,
398
+ prepend: v().bool,
397
399
  value: v().string
398
400
  };
399
401
  function re(e, n) {
@@ -411,46 +413,46 @@
411
413
  }));
412
414
  var oe = (0, C._)("Search");
413
415
  function ae(e) {
414
- var n = e.animateLoading, o = n === void 0 ? false : n, a = e.children, i = e.defaultPlacement, l = e.defaultValue, u = e.describedBy, s = e.disabled, f = s === void 0 ? false : s, v = e.elementRef, p = e.error, b = p === void 0 ? false : p, y = e.footerMessage, h = e.inline, S = h === void 0 ? false : h, R = e.inputRef, M = e.isLoadingOptions, A = M === void 0 ? false : M, q = e.labelledBy, x = e.loadingMessage, D = e.menuStyle, E = D === void 0 ? {} : D, B = e.name, T = e.noOptionsMessage, H = e.onChange, L = e.onClose, N = e.onFocus, K = e.onKeyDown, W = e.onOpen, U = e.placeholder, $ = U === void 0 ? (0,
415
- C._)("Search...") : U, X = e.value, Y = Z(e, [ "animateLoading", "children", "defaultPlacement", "defaultValue", "describedBy", "disabled", "elementRef", "error", "footerMessage", "inline", "inputRef", "isLoadingOptions", "labelledBy", "loadingMessage", "menuStyle", "name", "noOptionsMessage", "onChange", "onClose", "onFocus", "onKeyDown", "onOpen", "placeholder", "value" ]);
416
+ var n = e.animateLoading, o = n === void 0 ? false : n, a = e.append, i = e.children, l = e.defaultPlacement, u = e.defaultValue, s = e.describedBy, f = e.disabled, v = f === void 0 ? false : f, p = e.elementRef, b = e.error, y = b === void 0 ? false : b, h = e.footerMessage, S = e.inline, R = S === void 0 ? false : S, M = e.inputRef, A = e.isLoadingOptions, q = A === void 0 ? false : A, x = e.labelledBy, D = e.loadingMessage, E = e.menuStyle, B = E === void 0 ? {} : E, T = e.name, H = e.noOptionsMessage, L = e.onChange, N = e.onClose, K = e.onFocus, W = e.onKeyDown, U = e.onOpen, $ = e.placeholder, X = $ === void 0 ? (0,
417
+ C._)("Search...") : $, Y = e.prepend, G = e.value, J = Z(e, [ "animateLoading", "append", "children", "defaultPlacement", "defaultValue", "describedBy", "disabled", "elementRef", "error", "footerMessage", "inline", "inputRef", "isLoadingOptions", "labelledBy", "loadingMessage", "menuStyle", "name", "noOptionsMessage", "onChange", "onClose", "onFocus", "onKeyDown", "onOpen", "placeholder", "prepend", "value" ]);
416
418
  // @docs-props-type SearchPropsBase
417
- var G = !!a || A;
419
+ var Q = !!i || q;
418
420
  // state
419
- var J = (0, r.useState)(0), Q = z(J, 2), ee = Q[0], ne = Q[1];
420
- var ae = (0, r.useState)(false), ie = z(ae, 2), le = ie[0], ue = ie[1];
421
- var ce = (0, r.useState)(undefined), se = z(ce, 2), de = se[0], fe = se[1];
422
- var ve = (0, r.useState)(l || ""), pe = z(ve, 2), be = pe[0], me = pe[1];
423
- var ye = (0, r.useState)((function() {
421
+ var ee = (0, r.useState)(0), ne = z(ee, 2), ae = ne[0], ie = ne[1];
422
+ var le = (0, r.useState)(false), ue = z(le, 2), ce = ue[0], se = ue[1];
423
+ var de = (0, r.useState)(undefined), fe = z(de, 2), ve = fe[0], pe = fe[1];
424
+ var be = (0, r.useState)(u || ""), me = z(be, 2), ye = me[0], ge = me[1];
425
+ var he = (0, r.useState)((function() {
424
426
  return {
425
427
  popoverId: (0, j.createDOMID)("popover"),
426
428
  menuId: (0, j.createDOMID)("menu"),
427
429
  activeItemId: (0, j.createDOMID)("active-item")
428
430
  };
429
- })), ge = z(ye, 1), he = ge[0], Oe = he.popoverId, Se = he.menuId, we = he.activeItemId;
431
+ })), Oe = z(he, 1), Se = Oe[0], we = Se.popoverId, Ce = Se.menuId, je = Se.activeItemId;
430
432
  // previous state
431
- var Ce = w()(ee);
433
+ var ke = w()(ae);
432
434
  // refs
433
- var je = (0, r.useRef)(null);
434
- var ke = (0, r.useRef)(null);
435
- var Pe = (0, r.useRef)(X !== undefined && X !== null);
436
- var Ie = (0, r.useRef)([]);
437
- var Re = (0, r.useRef)(Ce);
438
- var Me = (0, r.useRef)(undefined);
439
- var Ae = function e(n) {
440
- I(je, n);
441
- I(v, n);
435
+ var Pe = (0, r.useRef)(null);
436
+ var Ie = (0, r.useRef)(null);
437
+ var Re = (0, r.useRef)(G !== undefined && G !== null);
438
+ var Me = (0, r.useRef)([]);
439
+ var Ae = (0, r.useRef)(ke);
440
+ var qe = (0, r.useRef)(undefined);
441
+ var xe = function e(n) {
442
+ I(Pe, n);
443
+ I(p, n);
442
444
  };
443
- var qe = function e(n) {
444
- I(ke, n);
445
- I(R, n);
445
+ var De = function e(n) {
446
+ I(Ie, n);
447
+ I(M, n);
446
448
  };
447
- var xe = function e() {
448
- return Pe.current ? X : be;
449
+ var Ee = function e() {
450
+ return Re.current ? G : ye;
449
451
  };
450
- var De = function e() {
451
- var n = xe();
452
- var t = r.Children.toArray(a).filter(r.isValidElement);
453
- var o = !de && t.find((function(e) {
452
+ var Be = function e() {
453
+ var n = Ee();
454
+ var t = r.Children.toArray(i).filter(r.isValidElement);
455
+ var o = !ve && t.find((function(e) {
454
456
  return e.props.label !== undefined && e.props.value === n;
455
457
  }));
456
458
  if (o) {
@@ -458,45 +460,45 @@
458
460
  }
459
461
  return n;
460
462
  };
461
- var Ee = function e() {
462
- ue(true);
463
- ne(-1);
464
- W === null || W === void 0 ? void 0 : W();
463
+ var Te = function e() {
464
+ se(true);
465
+ ie(-1);
466
+ U === null || U === void 0 ? void 0 : U();
465
467
  };
466
- var Be = function e() {
467
- ue(false);
468
- Re.current = null;
469
- L === null || L === void 0 ? void 0 : L();
468
+ var He = function e() {
469
+ se(false);
470
+ Ae.current = null;
471
+ N === null || N === void 0 ? void 0 : N();
470
472
  };
471
- var Te = function e() {
473
+ var Le = function e() {
472
474
  var n;
473
- (n = ke.current) === null || n === void 0 ? void 0 : n.focus();
475
+ (n = Ie.current) === null || n === void 0 ? void 0 : n.focus();
474
476
  };
475
- var He = function e(n, r) {
476
- Ee();
477
- N === null || N === void 0 ? void 0 : N(n, r);
477
+ var _e = function e(n, r) {
478
+ Te();
479
+ K === null || K === void 0 ? void 0 : K(n, r);
478
480
  };
479
- var Le = function e(n, r) {
481
+ var Ne = function e(n, r) {
480
482
  var t = r.value;
481
- if (!Pe.current) {
482
- me(t);
483
+ if (!Re.current) {
484
+ ge(t);
483
485
  }
484
- ne(-1);
485
- fe(t);
486
- H === null || H === void 0 ? void 0 : H(n, {
486
+ ie(-1);
487
+ pe(t);
488
+ L === null || L === void 0 ? void 0 : L(n, {
487
489
  value: t,
488
- name: B
490
+ name: T
489
491
  });
490
492
  };
491
- var _e = function e(n, r) {
492
- Le(n, F({}, r));
493
- Te();
494
- Be();
493
+ var Ve = function e(n, r) {
494
+ Ne(n, F({}, r));
495
+ Le();
496
+ He();
495
497
  };
496
- var Ne = function e(n) {
497
- var r = Ie.current.length;
498
+ var Ke = function e(n) {
499
+ var r = Me.current.length;
498
500
  var t = n.key;
499
- if (le) {
501
+ if (ce) {
500
502
  switch (t) {
501
503
  case "Enter":
502
504
  {
@@ -504,20 +506,20 @@
504
506
  // triggering onClick so that links can be activated with the keyboard
505
507
  // since the menu items themselves never receive focus
506
508
  // this will implicitly call handleSelectOption()
507
- (o = document.getElementById(we)) === null || o === void 0 ? void 0 : o.click();
509
+ (o = document.getElementById(je)) === null || o === void 0 ? void 0 : o.click();
508
510
  break;
509
511
  }
510
512
 
511
513
  case "Tab":
512
- Be();
514
+ He();
513
515
  break;
514
516
 
515
517
  case "ArrowDown":
516
- ne(Math.min(ee + 1, r - 1));
518
+ ie(Math.min(ae + 1, r - 1));
517
519
  break;
518
520
 
519
521
  case "ArrowUp":
520
- ne(Math.max(ee - 1, 0));
522
+ ie(Math.max(ae - 1, 0));
521
523
  break;
522
524
 
523
525
  default:
@@ -526,38 +528,38 @@
526
528
  } else if ((0, k.addsCharacter)(n.nativeEvent) !== false ||
527
529
  // Safari 9.0 returns undefined
528
530
  t === "Enter" || t === "Backspace" || t === "ArrowDown" || t === "ArrowUp") {
529
- Ee();
531
+ Te();
530
532
  }
531
- K === null || K === void 0 ? void 0 : K(n);
533
+ W === null || W === void 0 ? void 0 : W(n);
532
534
  };
533
- var Ve = function e() {
534
- if (!le && !f) {
535
- Ee();
535
+ var Fe = function e() {
536
+ if (!ce && !v) {
537
+ Te();
536
538
  }
537
539
  };
538
- var Ke = function e(n) {
540
+ var We = function e(n) {
539
541
  var r = n.event, t = n.reason;
540
- var o = t === "offScreen" || t === "escapeKey" || t === "clickAway" && je.current && !re(je.current, r);
542
+ var o = t === "offScreen" || t === "escapeKey" || t === "clickAway" && Pe.current && !re(Pe.current, r);
541
543
  if (o) {
542
- Be();
544
+ He();
543
545
  }
544
546
  };
545
- var Fe = function e(n) {
546
- if (Re.current !== ee) {
547
+ var Ue = function e(n) {
548
+ if (Ae.current !== ae) {
547
549
  if (n) {
548
550
  (0, P.scrollIntoViewIfNeeded)(n);
549
551
  }
550
552
  }
551
553
  };
552
- var We = function e(n) {
553
- var i = n.anchorWidth, l = n.maxHeight;
554
- var u = r.Children.toArray(a).filter(r.isValidElement);
554
+ var $e = function e(n) {
555
+ var a = n.anchorWidth, l = n.maxHeight;
556
+ var u = r.Children.toArray(i).filter(r.isValidElement);
555
557
  // Highlight Active
556
- Me.current = undefined;
558
+ qe.current = undefined;
557
559
  // Only update the menu options if they are valid and the dropdown is open.
558
560
  // This is necessary to handle the outro animation of the dropdown.
559
- if (G && le) {
560
- Ie.current = u.map((function(e, n) {
561
+ if (Q && ce) {
562
+ Me.current = u.map((function(e, n) {
561
563
  if (e.type.as !== "Item") {
562
564
  // ignore non-Option items such as Headings and Dividers
563
565
  return e;
@@ -566,17 +568,17 @@
566
568
  var o, a;
567
569
  var i = (o = (a = e.props).onClick) === null || o === void 0 ? void 0 : o.call(a, r, t);
568
570
  if (i !== false) {
569
- _e(r, t);
571
+ Ve(r, t);
570
572
  }
571
573
  };
572
- if (n === ee) {
574
+ if (n === ae) {
573
575
  if (!e.props.disabled) {
574
- Me.current = e.props.value;
576
+ qe.current = e.props.value;
575
577
  }
576
578
 
577
579
  return (0, r.cloneElement)(e, {
578
- elementRef: Fe,
579
- id: we,
580
+ elementRef: Ue,
581
+ id: je,
580
582
  onClick: t,
581
583
  active: true
582
584
  });
@@ -588,78 +590,80 @@
588
590
  }));
589
591
  }
590
592
  var c = te({
591
- anchorWidth: i,
593
+ anchorWidth: a,
592
594
  maxHeight: l,
593
- menuStyle: E
595
+ menuStyle: B
594
596
  });
595
597
 
596
598
  return t().createElement(g(), V({
597
599
  style: c,
598
600
  focusMode: "never",
599
- isLoading: A
600
- }, d()(Y, "onScroll"), {
601
- noOptionsMessage: T,
602
- footerMessage: y,
601
+ isLoading: q
602
+ }, d()(J, "onScroll"), {
603
+ noOptionsMessage: H,
604
+ footerMessage: h,
603
605
  animateLoading: o,
604
- loadingMessage: x,
605
- menuId: Se
606
- }), Ie.current);
606
+ loadingMessage: D,
607
+ menuId: Ce
608
+ }), Me.current);
607
609
  };
608
- var Ue = xe();
609
- var $e = De();
610
- var ze = le && !!je.current && G;
611
- var Xe = G ? "combobox" : "searchbox";
612
- var Ye = {
613
- "aria-activedescendant": ze && ee > -1 ? we : undefined,
614
- "aria-expanded": G ? le && !!je.current : undefined,
615
- "aria-controls": ze ? Se : undefined
610
+ var ze = Ee();
611
+ var Xe = Be();
612
+ var Ye = ce && !!Pe.current && Q;
613
+ var Ge = Q ? "combobox" : "searchbox";
614
+ var Je = {
615
+ "aria-activedescendant": Ye && ae > -1 ? je : undefined,
616
+ "aria-expanded": Q ? ce && !!Pe.current : undefined,
617
+ "aria-controls": Ye ? Ce : undefined
616
618
  };
617
- var Ge = t().createElement(_, {
618
- $disabled: f,
619
+ var Qe = t().createElement(_, {
620
+ $disabled: v,
619
621
  "aria-label": oe,
620
622
  "data-test": "search-icon"
621
623
  });
622
624
 
623
625
  return t().createElement(O(), V({
624
626
  "data-test": "search"
625
- }, c()(Y, "onScroll"), {
627
+ }, c()(J, "onScroll"), {
628
+ append: a,
626
629
  autoCapitalize: "off",
627
630
  autoComplete: "off",
628
631
  autoCorrect: "off",
629
632
  canClear: true,
630
- "data-test-popover-id": Oe,
631
- "data-test-label": $e,
632
- "data-test-value": Ue,
633
- "data-test-open": ze,
634
- describedBy: u,
635
- disabled: f,
636
- elementRef: Ae,
637
- error: b,
638
- inline: S,
639
- inputRef: qe,
640
- labelledBy: q,
641
- name: B,
642
- onFocus: He,
643
- onClick: Ve,
644
- onChange: Le,
645
- onKeyDown: Ne,
646
- placeholder: $,
633
+ "data-test-popover-id": we,
634
+ "data-test-label": Xe,
635
+ "data-test-value": ze,
636
+ "data-test-open": Ye,
637
+ describedBy: s,
638
+ disabled: v,
639
+ elementRef: xe,
640
+ error: y,
641
+ inline: R,
642
+ inputRef: De,
643
+ labelledBy: x,
644
+ name: T,
645
+ onFocus: _e,
646
+ onClick: Fe,
647
+ onChange: Ne,
648
+ onKeyDown: Ke,
649
+ placeholder: X,
650
+ prepend: Y,
647
651
  spellCheck: false,
648
- startAdornment: Ge,
649
- value: $e,
650
- role: Xe
651
- }, Ye), t().createElement(m(), {
652
+ startAdornment: Qe,
653
+ value: Xe,
654
+ role: Ge
655
+ }, Je), t().createElement(m(), {
652
656
  anchor: function() {
653
- return je.current;
657
+ return Pe.current;
654
658
  }(),
655
659
  autoCloseWhenOffScreen: true,
656
660
  canCoverAnchor: false,
657
- defaultPlacement: i,
658
- id: Oe,
659
- onRequestClose: Ke,
660
- open: ze,
661
+ defaultPlacement: l,
662
+ id: we,
663
+ onRequestClose: We,
664
+ open: Ye,
661
665
  repositionMode: "flip"
662
- }, We));
666
+ }, $e));
663
667
  }
664
668
  ae.propTypes = ne;
665
669
  ae.Option = D;