@deque/cauldron-react 4.5.0 → 4.6.0-canary.0ff6cd94

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 (33) hide show
  1. package/lib/cauldron.css +0 -1
  2. package/lib/clipboard.js +24 -0
  3. package/lib/components/Accordion/Accordion.d.ts +44 -0
  4. package/lib/components/Accordion/index.d.ts +3 -0
  5. package/lib/components/Breadcrumb/Breadcrumb.d.ts +5 -9
  6. package/lib/components/Breadcrumb/BreadcrumbLink.d.ts +1 -1
  7. package/lib/components/Button/index.d.ts +1 -1
  8. package/lib/components/Code/index.d.ts +2 -2
  9. package/lib/components/Dialog/index.d.ts +1 -1
  10. package/lib/components/ExpandCollapsePanel/ExpandCollapsePanel.d.ts +1 -1
  11. package/lib/components/ExpandCollapsePanel/PanelTrigger.d.ts +12 -8
  12. package/lib/components/Icon/types.d.ts +1 -1
  13. package/lib/components/OptionsMenu/OptionsMenu.d.ts +1 -0
  14. package/lib/components/Pagination/Pagination.d.ts +21 -0
  15. package/lib/components/Pagination/index.d.ts +2 -19
  16. package/lib/components/Pagination/usePagination.d.ts +24 -0
  17. package/lib/components/ProgressBar/index.d.ts +6 -12
  18. package/lib/components/RadioCardGroup/index.d.ts +38 -0
  19. package/lib/components/Select/index.d.ts +1 -1
  20. package/lib/components/SideBar/SideBarItem.d.ts +1 -1
  21. package/lib/components/Toast/index.d.ts +1 -0
  22. package/lib/components/Tooltip/index.d.ts +1 -1
  23. package/lib/components/TopBar/TopBarTrigger.d.ts +1 -1
  24. package/lib/components/TwoColumnPanel/ColumnLeft.d.ts +3 -5
  25. package/lib/components/TwoColumnPanel/ColumnRight.d.ts +3 -5
  26. package/lib/export-solid.js +24 -0
  27. package/lib/filter-solid.js +24 -0
  28. package/lib/index.d.ts +3 -1
  29. package/lib/index.js +518 -322
  30. package/lib/play.js +25 -0
  31. package/lib/recycle-square.js +24 -0
  32. package/lib/utils/remove-ids/index.d.ts +1 -1
  33. package/package.json +13 -12
package/lib/index.js CHANGED
@@ -9,9 +9,9 @@ var React = require('react');
9
9
  var React__default = _interopDefault(React);
10
10
  var PropTypes = _interopDefault(require('prop-types'));
11
11
  var classNames = _interopDefault(require('classnames'));
12
- var keyname = _interopDefault(require('keyname'));
13
12
  var nextId = require('react-id-generator');
14
13
  var nextId__default = _interopDefault(nextId);
14
+ var keyname = _interopDefault(require('keyname'));
15
15
  var reactDom = require('react-dom');
16
16
  var FocusTrap = _interopDefault(require('focus-trap-react'));
17
17
  var reactPopper = require('react-popper');
@@ -143,14 +143,17 @@ var iconTypes = [
143
143
  'chevron-down',
144
144
  'chevron-left',
145
145
  'chevron-right',
146
+ 'clipboard',
146
147
  'close',
147
148
  'code',
148
149
  'copy',
149
150
  'download',
150
151
  'dropper',
151
152
  'exchange',
153
+ 'export-solid',
152
154
  'external-link',
153
155
  'eye',
156
+ 'filter-solid',
154
157
  'filter',
155
158
  'flag',
156
159
  'gears',
@@ -170,10 +173,12 @@ var iconTypes = [
170
173
  'new',
171
174
  'no',
172
175
  'pencil',
176
+ 'play',
173
177
  'plus',
174
178
  'question-circle',
175
179
  'radio-checked',
176
180
  'radio-unchecked',
181
+ 'recycle-square',
177
182
  'recycle',
178
183
  'resend',
179
184
  'robot',
@@ -210,14 +215,17 @@ function __variableDynamicImportRuntime0__(path) {
210
215
  case './icons/checkbox-unchecked.svg': return Promise.resolve().then(function () { return require('./checkbox-unchecked.js'); });
211
216
  case './icons/chevron-double.svg': return Promise.resolve().then(function () { return require('./chevron-double.js'); });
212
217
  case './icons/chevron.svg': return Promise.resolve().then(function () { return require('./chevron.js'); });
218
+ case './icons/clipboard.svg': return Promise.resolve().then(function () { return require('./clipboard.js'); });
213
219
  case './icons/close.svg': return Promise.resolve().then(function () { return require('./close.js'); });
214
220
  case './icons/code.svg': return Promise.resolve().then(function () { return require('./code.js'); });
215
221
  case './icons/copy.svg': return Promise.resolve().then(function () { return require('./copy.js'); });
216
222
  case './icons/download.svg': return Promise.resolve().then(function () { return require('./download.js'); });
217
223
  case './icons/dropper.svg': return Promise.resolve().then(function () { return require('./dropper.js'); });
218
224
  case './icons/exchange.svg': return Promise.resolve().then(function () { return require('./exchange.js'); });
225
+ case './icons/export-solid.svg': return Promise.resolve().then(function () { return require('./export-solid.js'); });
219
226
  case './icons/external-link.svg': return Promise.resolve().then(function () { return require('./external-link.js'); });
220
227
  case './icons/eye.svg': return Promise.resolve().then(function () { return require('./eye.js'); });
228
+ case './icons/filter-solid.svg': return Promise.resolve().then(function () { return require('./filter-solid.js'); });
221
229
  case './icons/filter.svg': return Promise.resolve().then(function () { return require('./filter.js'); });
222
230
  case './icons/flag.svg': return Promise.resolve().then(function () { return require('./flag.js'); });
223
231
  case './icons/gears.svg': return Promise.resolve().then(function () { return require('./gears.js'); });
@@ -237,10 +245,12 @@ function __variableDynamicImportRuntime0__(path) {
237
245
  case './icons/new.svg': return Promise.resolve().then(function () { return require('./new.js'); });
238
246
  case './icons/no.svg': return Promise.resolve().then(function () { return require('./no.js'); });
239
247
  case './icons/pencil.svg': return Promise.resolve().then(function () { return require('./pencil.js'); });
248
+ case './icons/play.svg': return Promise.resolve().then(function () { return require('./play.js'); });
240
249
  case './icons/plus.svg': return Promise.resolve().then(function () { return require('./plus.js'); });
241
250
  case './icons/question-circle.svg': return Promise.resolve().then(function () { return require('./question-circle.js'); });
242
251
  case './icons/radio-checked.svg': return Promise.resolve().then(function () { return require('./radio-checked.js'); });
243
252
  case './icons/radio-unchecked.svg': return Promise.resolve().then(function () { return require('./radio-unchecked.js'); });
253
+ case './icons/recycle-square.svg': return Promise.resolve().then(function () { return require('./recycle-square.js'); });
244
254
  case './icons/recycle.svg': return Promise.resolve().then(function () { return require('./recycle.js'); });
245
255
  case './icons/resend.svg': return Promise.resolve().then(function () { return require('./resend.js'); });
246
256
  case './icons/robot.svg': return Promise.resolve().then(function () { return require('./robot.js'); });
@@ -279,19 +289,19 @@ var Icon = React.forwardRef(function (_a, ref) {
279
289
  if (process.env.NODE_ENV === 'test') {
280
290
  return;
281
291
  }
282
- __variableDynamicImportRuntime0__("./icons/" + name + ".svg")
292
+ __variableDynamicImportRuntime0__("./icons/".concat(name, ".svg"))
283
293
  .then(function (icon) {
284
294
  isMounted.current && setIcon(function () { return icon["default"]; });
285
295
  })["catch"](function () {
286
- console.error("Could not find icon type \"" + type + "\".");
296
+ console.error("Could not find icon type \"".concat(type, "\"."));
287
297
  isMounted.current && setIcon(null);
288
298
  });
289
299
  return function () {
290
300
  isMounted.current = false;
291
301
  };
292
302
  }, [type]);
293
- var data = tslib.__assign(tslib.__assign({}, other), { 'aria-hidden': !label, className: classNames('Icon', "Icon--" + type, className, (_b = {},
294
- _b["Icon__" + direction] = !!direction,
303
+ var data = tslib.__assign(tslib.__assign({}, other), { 'aria-hidden': !label, className: classNames('Icon', "Icon--".concat(type), className, (_b = {},
304
+ _b["Icon__".concat(direction)] = !!direction,
295
305
  _b)) });
296
306
  return (React__default.createElement("div", tslib.__assign({ ref: ref }, data),
297
307
  label && React__default.createElement(Offscreen, null, label),
@@ -305,6 +315,214 @@ Icon.propTypes = {
305
315
  };
306
316
  Icon.displayName = 'Icon';
307
317
 
318
+ var PanelTrigger = function (_a) {
319
+ var children = _a.children, className = _a.className, open = _a.open, fullWidth = _a.fullWidth, onClick = _a.onClick, _b = _a.iconExpanded, iconExpanded = _b === void 0 ? 'chevron-down' : _b, _c = _a.iconCollapsed, iconCollapsed = _c === void 0 ? 'chevron-right' : _c, heading = _a.heading, otherProps = tslib.__rest(_a, ["children", "className", "open", "fullWidth", "onClick", "iconExpanded", "iconCollapsed", "heading"]);
320
+ var Header = typeof heading === 'object' && 'level' in heading && !!heading.level
321
+ ? "h".concat(heading.level)
322
+ : React__default.Fragment;
323
+ return (React__default.createElement(Header, null,
324
+ React__default.createElement("button", tslib.__assign({ className: classNames(className, 'ExpandCollapse__trigger', {
325
+ fullWidth: fullWidth
326
+ }), type: "button", "aria-expanded": open, onClick: onClick }, otherProps),
327
+ React__default.createElement("div", { className: "ExpandCollapse__trigger-title" }, typeof children === 'function'
328
+ ? children({ open: !!open })
329
+ : children),
330
+ React__default.createElement(Icon, { type: open ? iconExpanded : iconCollapsed }))));
331
+ };
332
+ PanelTrigger.propTypes = {
333
+ children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
334
+ open: PropTypes.bool,
335
+ iconExpanded: PropTypes.string,
336
+ iconCollapsed: PropTypes.string,
337
+ heading: PropTypes.shape({
338
+ level: PropTypes.number
339
+ })
340
+ };
341
+ PanelTrigger.displayName = 'PanelTrigger';
342
+ var PanelTrigger$1 = React__default.memo(PanelTrigger);
343
+
344
+ var injectStyleTag = function () {
345
+ var style = document.createElement('style');
346
+ document.head.appendChild(style);
347
+ return style;
348
+ };
349
+ var setStyle = function (tag, cssString) {
350
+ tag.textContent = cssString;
351
+ };
352
+ var removeStyleTag = function (tag) {
353
+ document.head.removeChild(tag);
354
+ };
355
+
356
+ var ExpandCollapsePanel = /** @class */ (function (_super) {
357
+ tslib.__extends(ExpandCollapsePanel, _super);
358
+ function ExpandCollapsePanel() {
359
+ var _this = _super !== null && _super.apply(this, arguments) || this;
360
+ _this.state = {
361
+ controlled: typeof _this.props.open !== 'undefined',
362
+ isOpen: typeof _this.props.open !== 'undefined' ? _this.props.open : false
363
+ };
364
+ _this.panel = React__default.createRef();
365
+ _this.handleToggle = function (e) {
366
+ var _a = _this.props.onToggle, onToggle = _a === void 0 ? function () { } : _a;
367
+ var _b = _this.state, isOpen = _b.isOpen, controlled = _b.controlled;
368
+ onToggle(e);
369
+ if (!controlled) {
370
+ _this.setState({ isOpen: !isOpen, isAnimating: true });
371
+ }
372
+ };
373
+ _this.animateOpen = function () {
374
+ var panel = _this.panel.current;
375
+ var animationTiming = _this.props.animationTiming;
376
+ if (!animationTiming) {
377
+ _this.setState({ isAnimating: false });
378
+ return;
379
+ }
380
+ var rect = panel === null || panel === void 0 ? void 0 : panel.getBoundingClientRect();
381
+ if (!rect) {
382
+ return;
383
+ }
384
+ if (!_this.styleTag) {
385
+ _this.styleTag = injectStyleTag();
386
+ }
387
+ setStyle(_this.styleTag, "\n @keyframes expandOpenAnimation {\n 0% { opacity: 0; height: 0; }\n 100% { opacity: 1; height: ".concat(rect.height, "px; }\n }\n\n .cauldron-expand-open {\n will-change: opacity, height;\n overflow: hidden;\n animation: expandOpenAnimation ease-in-out ").concat(animationTiming, "ms forwards;\n }\n "));
388
+ _this.setState({ animationClass: 'cauldron-expand-open' }, function () {
389
+ setTimeout(function () {
390
+ _this.setState({ animationClass: '', isAnimating: false });
391
+ setStyle(_this.styleTag, '');
392
+ }, animationTiming);
393
+ });
394
+ };
395
+ _this.animateClose = function () {
396
+ var panel = _this.panel.current;
397
+ var animationTiming = _this.props.animationTiming;
398
+ if (!animationTiming) {
399
+ _this.setState({ isAnimating: false });
400
+ return;
401
+ }
402
+ if (!_this.styleTag) {
403
+ _this.styleTag = injectStyleTag();
404
+ }
405
+ var rect = panel === null || panel === void 0 ? void 0 : panel.getBoundingClientRect();
406
+ if (!rect)
407
+ return;
408
+ setStyle(_this.styleTag, "\n @keyframes collapseCloseAnimation {\n 0% { opacity: 1; height: ".concat(rect.height, "px; }\n 100% { opacity: 0; height: 0; }\n }\n\n .cauldron-collapse-close {\n will-change: opacity, height;\n overflow: hidden;\n animation: collapseCloseAnimation ease-in-out ").concat(animationTiming, "ms forwards;\n }\n "));
409
+ _this.setState({ animationClass: 'cauldron-collapse-close' }, function () {
410
+ setTimeout(function () {
411
+ _this.setState({ animationClass: '', isAnimating: false });
412
+ setStyle(_this.styleTag, '');
413
+ }, animationTiming);
414
+ });
415
+ };
416
+ return _this;
417
+ }
418
+ ExpandCollapsePanel.prototype.componentWillUnmount = function () {
419
+ var styleTag = this.styleTag;
420
+ if (styleTag) {
421
+ removeStyleTag(styleTag);
422
+ }
423
+ };
424
+ ExpandCollapsePanel.prototype.componentDidUpdate = function (prevProps, prevState) {
425
+ var _a = this.state, openState = _a.isOpen, controlled = _a.controlled;
426
+ var openProp = this.props.open;
427
+ if (controlled && openState !== openProp) {
428
+ this.setState({ isOpen: !!openProp, isAnimating: true });
429
+ }
430
+ if (typeof openProp !== typeof prevProps.open) {
431
+ this.setState({ controlled: typeof openProp !== 'undefined' });
432
+ }
433
+ if (prevState.isOpen !== openState && openState) {
434
+ this.animateOpen();
435
+ }
436
+ else if (prevState.isOpen !== openState && !openState) {
437
+ this.animateClose();
438
+ }
439
+ };
440
+ ExpandCollapsePanel.prototype.render = function () {
441
+ var _a = this.props, children = _a.children, animationTiming = _a.animationTiming, className = _a.className, onToggle = _a.onToggle, open = _a.open, otherProps = tslib.__rest(_a, ["children", "animationTiming", "className", "onToggle", "open"]);
442
+ var _b = this.state, isOpen = _b.isOpen, isAnimating = _b.isAnimating, animationClass = _b.animationClass;
443
+ var trigger = React__default.Children.toArray(children).find(function (child) { return child.type === PanelTrigger$1; });
444
+ var panelElements = React__default.Children.toArray(children).filter(function (child) {
445
+ return typeof child === 'string' ||
446
+ child.type !== PanelTrigger$1;
447
+ });
448
+ return (React__default.createElement(React__default.Fragment, null,
449
+ trigger &&
450
+ React__default.cloneElement(trigger, {
451
+ open: isOpen,
452
+ onClick: this.handleToggle
453
+ }),
454
+ React__default.createElement("div", tslib.__assign({ className: classNames(className, 'ExpandCollapse__panel', animationClass, {
455
+ 'is--hidden': !isOpen && !isAnimating
456
+ }), ref: this.panel }, otherProps), panelElements)));
457
+ };
458
+ ExpandCollapsePanel.defaultProps = {
459
+ animationTiming: 250,
460
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
461
+ onToggle: function () { }
462
+ };
463
+ ExpandCollapsePanel.propTypes = {
464
+ open: PropTypes.bool,
465
+ children: PropTypes.node.isRequired,
466
+ className: PropTypes.string,
467
+ animationTiming: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),
468
+ onToggle: PropTypes.func
469
+ };
470
+ return ExpandCollapsePanel;
471
+ }(React__default.Component));
472
+
473
+ var AccordionTrigger = function (_a) {
474
+ var children = _a.children, triggerProps = tslib.__rest(_a, ["children"]);
475
+ return React__default.createElement(React__default.Fragment, null, children);
476
+ };
477
+ var AccordionContent = function (_a) {
478
+ var children = _a.children, className = _a.className, otherProps = tslib.__rest(_a, ["children", "className"]);
479
+ return (React__default.createElement("div", tslib.__assign({ className: classNames('Accordion__panel', className) }, otherProps), children));
480
+ };
481
+ var Accordion = function (_a) {
482
+ var children = _a.children;
483
+ var childrenArray = React__default.Children.toArray(children);
484
+ var trigger = childrenArray.find(function (child) {
485
+ return typeof child === 'string' ||
486
+ child.type === AccordionTrigger;
487
+ });
488
+ var panelElement = childrenArray.find(function (child) {
489
+ return typeof child === 'string' ||
490
+ child.type === AccordionContent;
491
+ });
492
+ var isValid = !!(React__default.isValidElement(trigger) && React__default.isValidElement(panelElement));
493
+ if (!isValid) {
494
+ console.warn('Must provide <AccordionTrigger /> and <AccordionContent /> element(s). You provided:', {
495
+ trigger: trigger,
496
+ panelElement: panelElement,
497
+ isValid: isValid
498
+ });
499
+ return null;
500
+ }
501
+ var _b = trigger.props, triggerClassName = _b.className, triggerProps = tslib.__rest(_b, ["className"]);
502
+ var elementId = nextId.useId();
503
+ return (React__default.createElement("div", { className: "Accordion" },
504
+ React__default.createElement(ExpandCollapsePanel, tslib.__assign({ id: panelElement.props.id || "".concat(elementId, "-panel") }, panelElement.props),
505
+ React__default.createElement(PanelTrigger$1, tslib.__assign({ iconCollapsed: "triangle-right", iconExpanded: "triangle-down", className: classNames('Accordion__trigger', trigger.props.className), "aria-controls": panelElement.props.id || "".concat(elementId, "-panel"), heading: trigger.props.heading }, trigger.props), trigger),
506
+ panelElement)));
507
+ };
508
+ Accordion.displayName = 'Accordion';
509
+ AccordionContent.displayName = 'AccordionContent';
510
+ AccordionTrigger.displayName = 'AccordionTrigger';
511
+ Accordion.propTypes = {
512
+ children: PropTypes.node,
513
+ className: PropTypes.string
514
+ };
515
+ AccordionTrigger.propTypes = {
516
+ children: PropTypes.node,
517
+ heading: PropTypes.shape({
518
+ level: PropTypes.number
519
+ })
520
+ };
521
+ AccordionContent.propTypes = {
522
+ children: PropTypes.node.isRequired,
523
+ className: PropTypes.string
524
+ };
525
+
308
526
  var Scrim = /** @class */ (function (_super) {
309
527
  tslib.__extends(Scrim, _super);
310
528
  function Scrim(props) {
@@ -364,7 +582,7 @@ var Scrim = /** @class */ (function (_super) {
364
582
  if (destroy) {
365
583
  return null;
366
584
  }
367
- return (React__default.createElement("div", { ref: function (el) { return (_this.el = el); }, className: "Scrim " + animationClass }));
585
+ return (React__default.createElement("div", { ref: function (el) { return (_this.el = el); }, className: "Scrim ".concat(animationClass) }));
368
586
  };
369
587
  Scrim.propTypes = {
370
588
  show: PropTypes.bool.isRequired
@@ -498,9 +716,9 @@ var TopBar = /** @class */ (function (_super) {
498
716
  args[_i] = arguments[_i];
499
717
  }
500
718
  // @ts-ignore we're just spreading the original args
501
- _this.onKeyDown.apply(_this, tslib.__spread(args));
719
+ _this.onKeyDown.apply(_this, tslib.__spreadArray([], tslib.__read(args), false));
502
720
  if (child.props.onKeyDown) {
503
- (_a = child.props).onKeyDown.apply(_a, tslib.__spread(args));
721
+ (_a = child.props).onKeyDown.apply(_a, tslib.__spreadArray([], tslib.__read(args), false));
504
722
  }
505
723
  },
506
724
  tabIndex: 0,
@@ -536,7 +754,7 @@ var TopBar = /** @class */ (function (_super) {
536
754
  };
537
755
  TopBar.prototype.onKeyDown = function (e) {
538
756
  var key = keyname(e.which);
539
- var menuItems = tslib.__spread(this.menuItems);
757
+ var menuItems = tslib.__spreadArray([], tslib.__read(this.menuItems), false);
540
758
  // account for hidden side bar trigger (hamburger)
541
759
  if (this.state.wide && this.props.hasTrigger) {
542
760
  menuItems.shift();
@@ -592,6 +810,7 @@ var TopBarTrigger = function (_a) {
592
810
  };
593
811
  TopBarTrigger.displayName = 'TopBarTrigger';
594
812
  TopBarTrigger.propTypes = {
813
+ // @ts-expect-error
595
814
  children: PropTypes.node.isRequired,
596
815
  className: PropTypes.string
597
816
  };
@@ -787,11 +1006,15 @@ var OptionsMenuList = /** @class */ (function (_super) {
787
1006
  /* eslint-enable @typescript-eslint/no-unused-vars */
788
1007
  var items = React__default.Children.toArray(children).map(function (child, i) {
789
1008
  var _a = child.props, className = _a.className, other = tslib.__rest(_a, ["className"]);
790
- return React__default.cloneElement(child, tslib.__assign({ key: "list-item-" + i, className: classNames('OptionsMenu__list-item', className), tabIndex: -1, role: 'menuitem', ref: function (el) { return (_this.itemRefs[i] = el); } }, other));
1009
+ return React__default.cloneElement(child, tslib.__assign({ key: "list-item-".concat(i), className: classNames('OptionsMenu__list-item', className), tabIndex: -1, role: 'menuitem', ref: function (el) { return (_this.itemRefs[i] = el); } }, other));
791
1010
  });
1011
+ // This allows the ClickOutsideListener to only be activated when the menu is
1012
+ // currently open. This prevents an obscure behavior where the activation of a
1013
+ // different menu would cause all menus to close
1014
+ var clickOutsideEventActive = !show ? false : undefined;
792
1015
  // Key event is being handled in componentDidMount
793
1016
  /* eslint-disable jsx-a11y/click-events-have-key-events */
794
- return (React__default.createElement(ClickOutsideListener, { onClickOutside: this.handleClickOutside },
1017
+ return (React__default.createElement(ClickOutsideListener, { onClickOutside: this.handleClickOutside, mouseEvent: clickOutsideEventActive, touchEvent: clickOutsideEventActive },
795
1018
  React__default.createElement("ul", tslib.__assign({}, other, { className: classNames('OptionsMenu__list', className), "aria-expanded": show, role: "menu", onClick: handleClick, ref: function (el) {
796
1019
  _this.menuRef = el;
797
1020
  if (menuRef) {
@@ -830,7 +1053,6 @@ var OptionsMenu = /** @class */ (function (_super) {
830
1053
  var show = _a.show;
831
1054
  return ({ show: !show });
832
1055
  });
833
- event.preventDefault();
834
1056
  };
835
1057
  _this.handleClose = function () {
836
1058
  var _a;
@@ -1167,7 +1389,8 @@ var SideBar = /** @class */ (function (_super) {
1167
1389
  setTimeout(function () {
1168
1390
  var _a, _b;
1169
1391
  _this.setState({ animateClass: second });
1170
- var firstFocusable = show && ((_b = (_a = _this.navList) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.querySelector(focusableSelector));
1392
+ var firstFocusable = show &&
1393
+ ((_b = (_a = _this.navList) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.querySelector(focusableSelector));
1171
1394
  if (firstFocusable) {
1172
1395
  firstFocusable.focus();
1173
1396
  }
@@ -1216,6 +1439,7 @@ SideBarItem.defaultProps = {
1216
1439
  autoClickLink: true
1217
1440
  };
1218
1441
  SideBarItem.propTypes = {
1442
+ // @ts-expect-error
1219
1443
  children: PropTypes.node.isRequired,
1220
1444
  autoClickLink: PropTypes.bool
1221
1445
  };
@@ -1305,7 +1529,7 @@ var Dialog = /** @class */ (function (_super) {
1305
1529
  var close = !forceAction ? (React__default.createElement("button", { className: "Dialog__close", type: "button", onClick: this.close },
1306
1530
  React__default.createElement(Icon, { type: "close", "aria-hidden": "true" }),
1307
1531
  React__default.createElement(Offscreen, null, closeButtonText))) : null;
1308
- var Heading = "h" + (typeof heading === 'object' && 'level' in heading && !!heading.level
1532
+ var Heading = "h".concat(typeof heading === 'object' && 'level' in heading && !!heading.level
1309
1533
  ? heading.level
1310
1534
  : 2);
1311
1535
  var Dialog = (React__default.createElement(FocusTrap, { focusTrapOptions: {
@@ -1464,7 +1688,7 @@ var SkipLink = /** @class */ (function (_super) {
1464
1688
  target: function (props, propName, componentName) {
1465
1689
  var value = props[propName];
1466
1690
  if (!value || typeof value !== 'string' || value[0] !== '#') {
1467
- return new Error("Invalid prop " + propName + " supplied to " + componentName + " (must be string starting with \"#\")");
1691
+ return new Error("Invalid prop ".concat(propName, " supplied to ").concat(componentName, " (must be string starting with \"#\")"));
1468
1692
  }
1469
1693
  },
1470
1694
  skipText: PropTypes.string,
@@ -1480,6 +1704,8 @@ var Button = React.forwardRef(function (_a, ref) {
1480
1704
  'Button--secondary': variant === 'secondary',
1481
1705
  'Button--error': variant === 'error',
1482
1706
  Link: variant === 'link',
1707
+ Tag: variant === 'tag',
1708
+ 'Button--tag': variant === 'tag',
1483
1709
  'Button--thin': thin
1484
1710
  }), ref: ref || buttonRef }, other), children));
1485
1711
  });
@@ -1609,8 +1835,8 @@ function Tooltip(_a) {
1609
1835
  targetElement === null || targetElement === void 0 ? void 0 : targetElement.setAttribute(association, [id, attrText].filter(Boolean).join(' '));
1610
1836
  }
1611
1837
  }, [targetElement, id]);
1612
- return (showTooltip || hideElementOnHidden) && isBrowser()
1613
- ? reactDom.createPortal(React__default.createElement("div", tslib.__assign({ id: id, className: classNames('Tooltip', "Tooltip--" + placement, className, {
1838
+ return (React__default.createElement(React__default.Fragment, null, (showTooltip || hideElementOnHidden) && isBrowser()
1839
+ ? reactDom.createPortal(React__default.createElement("div", tslib.__assign({ id: id, className: classNames('Tooltip', "Tooltip--".concat(placement), className, {
1614
1840
  TooltipInfo: variant === 'info',
1615
1841
  'Tooltip--hidden': !showTooltip && hideElementOnHidden,
1616
1842
  'Tooltip--big': variant === 'big'
@@ -1618,7 +1844,7 @@ function Tooltip(_a) {
1618
1844
  variant !== 'big' && (React__default.createElement("div", { className: "TooltipArrow", ref: setArrowElement, style: styles.arrow })),
1619
1845
  children), (portal && 'current' in portal ? portal.current : portal) ||
1620
1846
  document.body)
1621
- : null;
1847
+ : null));
1622
1848
  }
1623
1849
  Tooltip.displayName = 'Tooltip';
1624
1850
  Tooltip.propTypes = {
@@ -1681,6 +1907,7 @@ IconButton.propTypes = {
1681
1907
  as: PropTypes.elementType,
1682
1908
  // @ts-expect-error
1683
1909
  icon: PropTypes.string.isRequired,
1910
+ // @ts-expect-error
1684
1911
  label: PropTypes.node.isRequired,
1685
1912
  // @ts-expect-error
1686
1913
  tooltipPlacement: PropTypes.string,
@@ -1695,7 +1922,7 @@ IconButton.displayName = 'IconButton';
1695
1922
  var i = 0;
1696
1923
  var randomId = function () {
1697
1924
  var num = Math.floor(Math.random() * 10000) + 1;
1698
- return "x_" + i++ + "_" + num;
1925
+ return "x_".concat(i++, "_").concat(num);
1699
1926
  };
1700
1927
 
1701
1928
  /*
@@ -1790,16 +2017,15 @@ var Pointout = /** @class */ (function (_super) {
1790
2017
  visibleFocusable[elementIndex].classList.remove('Pointout--focus-active');
1791
2018
  };
1792
2019
  _this.positionRelativeToTarget = function () {
1793
- var _a, _b;
1794
- var _c = _this.props, target = _c.target, portal = _c.portal, arrowPosition = _c.arrowPosition, position = _c.position;
2020
+ var _a = _this.props, target = _a.target, portal = _a.portal, arrowPosition = _a.arrowPosition, position = _a.position;
1795
2021
  if (!target) {
1796
2022
  return;
1797
2023
  }
1798
- var targetNode = ((_a = target) === null || _a === void 0 ? void 0 : _a.current) ||
2024
+ var targetNode = (target === null || target === void 0 ? void 0 : target.current) ||
1799
2025
  target;
1800
- var portalNode = ((_b = portal) === null || _b === void 0 ? void 0 : _b.current) ||
2026
+ var portalNode = (portal === null || portal === void 0 ? void 0 : portal.current) ||
1801
2027
  portal;
1802
- var _d = targetNode.getBoundingClientRect(), top = _d.top, left = _d.left, width = _d.width, height = _d.height;
2028
+ var _b = targetNode.getBoundingClientRect(), top = _b.top, left = _b.left, width = _b.width, height = _b.height;
1803
2029
  if (portalNode && portalNode !== document.body) {
1804
2030
  // If the portal is not placed on document.body
1805
2031
  // position the FTPO relative to the portal
@@ -1807,48 +2033,48 @@ var Pointout = /** @class */ (function (_super) {
1807
2033
  top -= rect.top - portalNode.scrollTop;
1808
2034
  left -= rect.left - portalNode.scrollLeft;
1809
2035
  }
1810
- var _e = tslib.__read(arrowPosition.split('-'), 1), arrowBoxSide = _e[0];
2036
+ var _c = tslib.__read(arrowPosition.split('-'), 1), arrowBoxSide = _c[0];
1811
2037
  var style;
1812
2038
  switch (arrowBoxSide) {
1813
2039
  case 'right':
1814
2040
  style = {
1815
- left: left + "px",
1816
- top: (position === 'center'
2041
+ left: "".concat(left, "px"),
2042
+ top: "".concat(position === 'center'
1817
2043
  ? top + height / 2
1818
2044
  : position === 'start'
1819
2045
  ? top
1820
- : top + height) + "px"
2046
+ : top + height, "px")
1821
2047
  };
1822
2048
  break;
1823
2049
  case 'bottom':
1824
2050
  style = {
1825
- top: top + "px",
1826
- left: (position === 'center'
2051
+ top: "".concat(top, "px"),
2052
+ left: "".concat(position === 'center'
1827
2053
  ? left + width / 2
1828
2054
  : position === 'start'
1829
2055
  ? left
1830
- : left + width) + "px"
2056
+ : left + width, "px")
1831
2057
  };
1832
2058
  break;
1833
2059
  case 'left':
1834
2060
  style = {
1835
- left: left + width + "px",
1836
- top: (position === 'center'
2061
+ left: "".concat(left + width, "px"),
2062
+ top: "".concat(position === 'center'
1837
2063
  ? top + height / 2
1838
2064
  : position === 'start'
1839
2065
  ? top
1840
- : top + height) + "px"
2066
+ : top + height, "px")
1841
2067
  };
1842
2068
  break;
1843
2069
  case 'top':
1844
2070
  default:
1845
2071
  style = {
1846
- top: top + height + "px",
1847
- left: (position === 'center'
2072
+ top: "".concat(top + height, "px"),
2073
+ left: "".concat(position === 'center'
1848
2074
  ? left + width / 2
1849
2075
  : position === 'start'
1850
2076
  ? left
1851
- : left + width) + "px"
2077
+ : left + width, "px")
1852
2078
  };
1853
2079
  break;
1854
2080
  }
@@ -1860,7 +2086,7 @@ var Pointout = /** @class */ (function (_super) {
1860
2086
  }
1861
2087
  Pointout.prototype.getFocusableElements = function (root) {
1862
2088
  return root
1863
- ? Array.from(root.querySelectorAll(focusable + ", [data-focusable]"))
2089
+ ? Array.from(root.querySelectorAll("".concat(focusable, ", [data-focusable]")))
1864
2090
  : [];
1865
2091
  };
1866
2092
  Pointout.prototype.componentDidMount = function () {
@@ -1930,11 +2156,11 @@ var Pointout = /** @class */ (function (_super) {
1930
2156
  'Pointout--no-arrow': noArrow,
1931
2157
  'Pointout--auto': !!target
1932
2158
  },
1933
- _a["Pointout__arrow--" + arrowPosition] = !!arrowPosition && !noArrow,
1934
- _a["Pointout--" + position] = !!target,
2159
+ _a["Pointout__arrow--".concat(arrowPosition)] = !!arrowPosition && !noArrow,
2160
+ _a["Pointout--".concat(position)] = !!target,
1935
2161
  _a)), style: style, role: target ? undefined : 'region', "aria-labelledby": heading ? headingId : undefined, "aria-hidden": !!target && !disableOffscreenPointout, ref: function (el) { return (_this.visibleRef = el); } },
1936
2162
  noArrow ? null : (React__default.createElement("div", { className: classNames('Pointout__arrow', (_b = {},
1937
- _b["Pointout__arrow--" + arrowPosition] = !!arrowPosition && !noArrow,
2163
+ _b["Pointout__arrow--".concat(arrowPosition)] = !!arrowPosition && !noArrow,
1938
2164
  _b)) },
1939
2165
  React__default.createElement("div", { className: "Pointout__arrow-pointer" }))),
1940
2166
  React__default.createElement("div", { className: "Pointout__box" },
@@ -2115,7 +2341,7 @@ var Toast = /** @class */ (function (_super) {
2115
2341
  var scrim = type === 'action-needed' && show ? (React__default.createElement("div", { className: "Scrim--light Scrim--show Scrim--fade-in" })) : null;
2116
2342
  var defaultProps = {
2117
2343
  tabIndex: -1,
2118
- className: "Toast Toast--" + typeMap[type].className + " " + animationClass
2344
+ className: "Toast Toast--".concat(typeMap[type].className, " ").concat(animationClass)
2119
2345
  };
2120
2346
  if (!focus) {
2121
2347
  defaultProps.role = 'alert';
@@ -2301,9 +2527,10 @@ var Select = React__default.forwardRef(function (_a, ref) {
2301
2527
  'Field__select--disabled': disabled,
2302
2528
  'Field--has-error': !!error
2303
2529
  }) },
2304
- React__default.createElement("select", tslib.__assign({ ref: ref, id: selectId, disabled: disabled, required: required, onChange: handleChange }, dynamicProps, rest), (options === null || options === void 0 ? void 0 : options.length) ? options.map(function (option) {
2305
- return (React__default.createElement("option", { className: "Field__option", key: option.key, value: option.value, disabled: option.disabled }, option.label || option.value));
2306
- })
2530
+ React__default.createElement("select", tslib.__assign({ ref: ref, id: selectId, disabled: disabled, required: required, onChange: handleChange }, dynamicProps, rest), (options === null || options === void 0 ? void 0 : options.length)
2531
+ ? options.map(function (option) {
2532
+ return (React__default.createElement("option", { className: "Field__option", key: option.key, value: option.value, disabled: option.disabled }, option.label || option.value));
2533
+ })
2307
2534
  : children),
2308
2535
  React__default.createElement("div", { className: "arrow-down" })),
2309
2536
  error && (React__default.createElement("div", { id: errorId, className: "Error" }, error))));
@@ -2352,7 +2579,7 @@ var RadioGroup = function (_a) {
2352
2579
  var _a;
2353
2580
  handleChange(radioValue);
2354
2581
  onChange(radio, (_a = inputs.current) === null || _a === void 0 ? void 0 : _a[index]);
2355
- }, disabled: disabled, checked: isChecked, "aria-describedby": labelDescription ? id + "Desc" : undefined }, other)),
2582
+ }, disabled: disabled, checked: isChecked, "aria-describedby": labelDescription ? "".concat(id, "Desc") : undefined }, other)),
2356
2583
  React__default.createElement("label", { htmlFor: id, className: classNames('Field__label', {
2357
2584
  'Field__label--disabled': disabled
2358
2585
  }) }, label),
@@ -2360,7 +2587,7 @@ var RadioGroup = function (_a) {
2360
2587
  'Radio__overlay--focused': isFocused,
2361
2588
  'Radio__overlay--disabled': disabled
2362
2589
  }), type: isChecked ? 'radio-checked' : 'radio-unchecked', "aria-hidden": "true", onClick: function () { return onRadioClick(index); } }),
2363
- labelDescription && (React__default.createElement("span", { id: id + "Desc", className: classNames('Field__labelDescription', {
2590
+ labelDescription && (React__default.createElement("span", { id: "".concat(id, "Desc"), className: classNames('Field__labelDescription', {
2364
2591
  'Field__labelDescription--disabled': disabled
2365
2592
  }) }, labelDescription))));
2366
2593
  });
@@ -2380,7 +2607,7 @@ RadioGroup.propTypes = {
2380
2607
  })).isRequired,
2381
2608
  hasLabel: function (props, propName, componentName) {
2382
2609
  if (!props['aria-label'] && !props['aria-labelledby']) {
2383
- return new Error(componentName + " must have an \"aria-label\" or \"aria-labelledby\" prop");
2610
+ return new Error("".concat(componentName, " must have an \"aria-label\" or \"aria-labelledby\" prop"));
2384
2611
  }
2385
2612
  },
2386
2613
  className: PropTypes.string,
@@ -2389,6 +2616,125 @@ RadioGroup.propTypes = {
2389
2616
  };
2390
2617
  RadioGroup.displayName = 'RadioGroup';
2391
2618
 
2619
+ var Card = function (_a) {
2620
+ var className = _a.className, variant = _a.variant, other = tslib.__rest(_a, ["className", "variant"]);
2621
+ return (React__default.createElement("div", tslib.__assign({ className: classNames(className, {
2622
+ 'Card--simple': variant === 'simple',
2623
+ Card: !variant
2624
+ }) }, other)));
2625
+ };
2626
+ Card.displayName = 'Card';
2627
+ Card.propTypes = {
2628
+ className: PropTypes.string,
2629
+ variant: PropTypes.string
2630
+ };
2631
+
2632
+ var CardHeader = function (_a) {
2633
+ var className = _a.className, other = tslib.__rest(_a, ["className"]);
2634
+ return (React__default.createElement("div", tslib.__assign({ className: classNames('Card__header', className) }, other)));
2635
+ };
2636
+ CardHeader.displayName = 'CardHeader';
2637
+ CardHeader.propTypes = {
2638
+ className: PropTypes.string
2639
+ };
2640
+
2641
+ var CardContent = function (_a) {
2642
+ var className = _a.className, other = tslib.__rest(_a, ["className"]);
2643
+ return (React__default.createElement("div", tslib.__assign({ className: classNames('Card__content', className) }, other)));
2644
+ };
2645
+ CardContent.displayName = 'CardContent';
2646
+ CardContent.propTypes = {
2647
+ className: PropTypes.string
2648
+ };
2649
+
2650
+ var CardFooter = function (_a) {
2651
+ var className = _a.className, other = tslib.__rest(_a, ["className"]);
2652
+ return (React__default.createElement("div", tslib.__assign({ className: classNames('Card__footer', className) }, other)));
2653
+ };
2654
+ CardFooter.displayName = 'CardFooter';
2655
+ CardFooter.propTypes = {
2656
+ className: PropTypes.string
2657
+ };
2658
+
2659
+ var RadioCardGroup = function (_a) {
2660
+ var name = _a.name, radios = _a.radios, defaultValue = _a.defaultValue, value = _a.value,
2661
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
2662
+ _b = _a.onChange,
2663
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
2664
+ onChange = _b === void 0 ? function () { } : _b, className = _a.className, other = tslib.__rest(_a, ["name", "radios", "defaultValue", "value", "onChange", "className"]);
2665
+ var _c = tslib.__read(React.useState(value !== null && value !== void 0 ? value : defaultValue), 2), currentValue = _c[0], setCurrentValue = _c[1];
2666
+ var _d = tslib.__read(React.useState(null), 2), focusIndex = _d[0], setFocusIndex = _d[1];
2667
+ var inputs = React.useRef([]);
2668
+ var handleChange = function (value) { return setCurrentValue(value); };
2669
+ var onRadioFocus = function (index) { return setFocusIndex(index); };
2670
+ var onRadioBlur = function () { return setFocusIndex(null); };
2671
+ var onRadioClick = function (index) {
2672
+ var _a;
2673
+ var radio = (_a = inputs.current) === null || _a === void 0 ? void 0 : _a[index];
2674
+ if (!radio) {
2675
+ return;
2676
+ }
2677
+ radio.click();
2678
+ radio.focus();
2679
+ };
2680
+ React.useEffect(function () {
2681
+ if (typeof value === 'undefined') {
2682
+ return;
2683
+ }
2684
+ setCurrentValue(value);
2685
+ }, [value]);
2686
+ var radioButtons = radios.map(function (radio, index) {
2687
+ var label = radio.label, disabled = radio.disabled, radioValue = radio.value, cardImg = radio.cardImg, cardIcon = radio.cardIcon, id = radio.id, className = radio.className, other = tslib.__rest(radio, ["label", "disabled", "value", "cardImg", "cardIcon", "id", "className"]);
2688
+ var isChecked = currentValue === radioValue;
2689
+ var isFocused = focusIndex === index;
2690
+ return (React__default.createElement("div", { className: classNames('RadioCard'), key: index },
2691
+ React__default.createElement(Card, { variant: "simple", className: classNames('RadioCardGroup__Card RadioCard__overlay', {
2692
+ 'RadioCard__overlay--focused': isFocused,
2693
+ 'RadioCard__overlay--checked': isChecked,
2694
+ 'RadioCard__overlay--disabled': disabled
2695
+ }), onClick: function () { return onRadioClick(index); } },
2696
+ React__default.createElement("input", tslib.__assign({ type: "radio", name: name, value: radioValue, id: id, ref: function (input) {
2697
+ if (!input) {
2698
+ return;
2699
+ }
2700
+ inputs.current.push(input);
2701
+ }, onFocus: function () { return onRadioFocus(index); }, onBlur: function () { return onRadioBlur(); }, onChange: function () {
2702
+ var _a;
2703
+ handleChange(radioValue);
2704
+ onChange(radio, (_a = inputs.current) === null || _a === void 0 ? void 0 : _a[index]);
2705
+ }, disabled: disabled, checked: isChecked }, other)),
2706
+ React__default.createElement(CardContent, null,
2707
+ React__default.createElement("div", { className: classNames('RadioCardGroup__Checked') }, isChecked && (React__default.createElement(Icon, { className: classNames('RadioCardGroup__Icon'), type: cardIcon }))),
2708
+ React__default.createElement("div", { className: classNames('RadioCardGroup__Base') },
2709
+ React__default.createElement("div", { className: classNames('RadioCardGroup__Image') }, cardImg),
2710
+ React__default.createElement("label", { htmlFor: id, className: classNames('RadioCardGroup__Label') }, label))))));
2711
+ });
2712
+ // reset the input refs array
2713
+ // refs get clobbered every re-render anyway and this supports "dynamic" radios
2714
+ // (changing the number of radio buttons for example)
2715
+ inputs.current = [];
2716
+ return (React__default.createElement("div", tslib.__assign({ className: classNames('RadioCardGroup'), role: "radiogroup" }, other), radioButtons));
2717
+ };
2718
+ RadioCardGroup.propTypes = {
2719
+ name: PropTypes.string,
2720
+ radios: PropTypes.arrayOf(PropTypes.shape({
2721
+ value: PropTypes.string.isRequired,
2722
+ id: PropTypes.string.isRequired,
2723
+ label: PropTypes.string.isRequired,
2724
+ cardImg: PropTypes.element.isRequired,
2725
+ cardIcon: PropTypes.string.isRequired
2726
+ })).isRequired,
2727
+ hasLabel: function (props, propName, componentName) {
2728
+ if (!props['aria-label'] && !props['aria-labelledby']) {
2729
+ return new Error("".concat(componentName, " must have an \"aria-label\" or \"aria-labelledby\" prop"));
2730
+ }
2731
+ },
2732
+ className: PropTypes.string,
2733
+ defaultValue: PropTypes.string,
2734
+ onChange: PropTypes.func
2735
+ };
2736
+ RadioCardGroup.displayName = 'RadioCardGroup';
2737
+
2392
2738
  var Checkbox = React.forwardRef(function (_a, ref) {
2393
2739
  var id = _a.id, label = _a.label, labelDescription = _a.labelDescription, error = _a.error, checkboxRef = _a.checkboxRef, className = _a.className, onChange = _a.onChange, ariaDescribedby = _a["aria-describedby"], _b = _a.disabled, disabled = _b === void 0 ? false : _b, _c = _a.checked, checked = _c === void 0 ? false : _c, other = tslib.__rest(_a, ["id", "label", "labelDescription", "error", "checkboxRef", "className", "onChange", 'aria-describedby', "disabled", "checked"]);
2394
2740
  var _d = tslib.__read(React.useState(checked), 2), isChecked = _d[0], setIsChecked = _d[1];
@@ -2458,46 +2804,6 @@ function TooltipTabstop(_a) {
2458
2804
  }
2459
2805
  TooltipTabstop.displayName = 'TooltipTabstop';
2460
2806
 
2461
- var Card = function (_a) {
2462
- var className = _a.className, variant = _a.variant, other = tslib.__rest(_a, ["className", "variant"]);
2463
- return (React__default.createElement("div", tslib.__assign({ className: classNames(className, {
2464
- 'Card--simple': variant === 'simple',
2465
- Card: !variant
2466
- }) }, other)));
2467
- };
2468
- Card.displayName = 'Card';
2469
- Card.propTypes = {
2470
- className: PropTypes.string,
2471
- variant: PropTypes.string
2472
- };
2473
-
2474
- var CardHeader = function (_a) {
2475
- var className = _a.className, other = tslib.__rest(_a, ["className"]);
2476
- return (React__default.createElement("div", tslib.__assign({ className: classNames('Card__header', className) }, other)));
2477
- };
2478
- CardHeader.displayName = 'CardHeader';
2479
- CardHeader.propTypes = {
2480
- className: PropTypes.string
2481
- };
2482
-
2483
- var CardContent = function (_a) {
2484
- var className = _a.className, other = tslib.__rest(_a, ["className"]);
2485
- return (React__default.createElement("div", tslib.__assign({ className: classNames('Card__content', className) }, other)));
2486
- };
2487
- CardContent.displayName = 'CardContent';
2488
- CardContent.propTypes = {
2489
- className: PropTypes.string
2490
- };
2491
-
2492
- var CardFooter = function (_a) {
2493
- var className = _a.className, other = tslib.__rest(_a, ["className"]);
2494
- return (React__default.createElement("div", tslib.__assign({ className: classNames('Card__footer', className) }, other)));
2495
- };
2496
- CardFooter.displayName = 'CardFooter';
2497
- CardFooter.propTypes = {
2498
- className: PropTypes.string
2499
- };
2500
-
2501
2807
  var TextField = /** @class */ (function (_super) {
2502
2808
  tslib.__extends(TextField, _super);
2503
2809
  function TextField(props) {
@@ -2591,152 +2897,6 @@ var TextField = /** @class */ (function (_super) {
2591
2897
  return TextField;
2592
2898
  }(React__default.Component));
2593
2899
 
2594
- function PanelTrigger(_a) {
2595
- var children = _a.children, className = _a.className, open = _a.open, fullWidth = _a.fullWidth, onClick = _a.onClick, _b = _a.iconExpanded, iconExpanded = _b === void 0 ? 'chevron-down' : _b, _c = _a.iconCollapsed, iconCollapsed = _c === void 0 ? 'chevron-right' : _c, other = tslib.__rest(_a, ["children", "className", "open", "fullWidth", "onClick", "iconExpanded", "iconCollapsed"]);
2596
- return (React__default.createElement("button", tslib.__assign({}, other, { className: classNames('ExpandCollapse__trigger', fullWidth ? 'fullWidth' : '', className), type: "button", "aria-expanded": open, onClick: onClick }),
2597
- React__default.createElement("div", { className: "ExpandCollapse__trigger-title" }, typeof children === 'function' ? children({ open: !!open }) : children),
2598
- React__default.createElement(Icon, { type: open ? iconExpanded : iconCollapsed })));
2599
- }
2600
- PanelTrigger.propTypes = {
2601
- children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),
2602
- open: PropTypes.bool,
2603
- onClick: PropTypes.func,
2604
- className: PropTypes.string,
2605
- iconExpanded: PropTypes.string,
2606
- iconCollapsed: PropTypes.string
2607
- };
2608
- var PanelTrigger$1 = React__default.memo(PanelTrigger);
2609
-
2610
- var injectStyleTag = function () {
2611
- var style = document.createElement('style');
2612
- document.head.appendChild(style);
2613
- return style;
2614
- };
2615
- var setStyle = function (tag, cssString) {
2616
- tag.textContent = cssString;
2617
- };
2618
- var removeStyleTag = function (tag) {
2619
- document.head.removeChild(tag);
2620
- };
2621
-
2622
- var ExpandCollapsePanel = /** @class */ (function (_super) {
2623
- tslib.__extends(ExpandCollapsePanel, _super);
2624
- function ExpandCollapsePanel() {
2625
- var _this = _super !== null && _super.apply(this, arguments) || this;
2626
- _this.state = {
2627
- controlled: typeof _this.props.open !== 'undefined',
2628
- isOpen: typeof _this.props.open !== 'undefined' ? _this.props.open : false
2629
- };
2630
- _this.panel = React__default.createRef();
2631
- _this.handleToggle = function (e) {
2632
- var onToggle = _this.props.onToggle;
2633
- var _a = _this.state, isOpen = _a.isOpen, controlled = _a.controlled;
2634
- onToggle(e);
2635
- if (!controlled) {
2636
- _this.setState({ isOpen: !isOpen, isAnimating: true });
2637
- }
2638
- };
2639
- _this.animateOpen = function () {
2640
- var panel = _this.panel.current;
2641
- var animationTiming = _this.props.animationTiming;
2642
- if (!animationTiming) {
2643
- _this.setState({ isAnimating: false });
2644
- return;
2645
- }
2646
- var rect = panel === null || panel === void 0 ? void 0 : panel.getBoundingClientRect();
2647
- if (!rect) {
2648
- return;
2649
- }
2650
- if (!_this.styleTag) {
2651
- _this.styleTag = injectStyleTag();
2652
- }
2653
- setStyle(_this.styleTag, "\n @keyframes expandOpenAnimation {\n 0% { opacity: 0; height: 0; }\n 100% { opacity: 1; height: " + rect.height + "px; }\n }\n\n .cauldron-expand-open {\n will-change: opacity, height;\n overflow: hidden;\n animation: expandOpenAnimation ease-in-out " + animationTiming + "ms forwards;\n }\n ");
2654
- _this.setState({ animationClass: 'cauldron-expand-open' }, function () {
2655
- setTimeout(function () {
2656
- _this.setState({ animationClass: '', isAnimating: false });
2657
- setStyle(_this.styleTag, '');
2658
- }, animationTiming);
2659
- });
2660
- };
2661
- _this.animateClose = function () {
2662
- var panel = _this.panel.current;
2663
- var animationTiming = _this.props.animationTiming;
2664
- if (!animationTiming) {
2665
- _this.setState({ isAnimating: false });
2666
- return;
2667
- }
2668
- if (!_this.styleTag) {
2669
- _this.styleTag = injectStyleTag();
2670
- }
2671
- var rect = panel === null || panel === void 0 ? void 0 : panel.getBoundingClientRect();
2672
- if (!rect)
2673
- return;
2674
- setStyle(_this.styleTag, "\n @keyframes collapseCloseAnimation {\n 0% { opacity: 1; height: " + rect.height + "px; }\n 100% { opacity: 0; height: 0; }\n }\n\n .cauldron-collapse-close {\n will-change: opacity, height;\n overflow: hidden;\n animation: collapseCloseAnimation ease-in-out " + animationTiming + "ms forwards;\n }\n ");
2675
- _this.setState({ animationClass: 'cauldron-collapse-close' }, function () {
2676
- setTimeout(function () {
2677
- _this.setState({ animationClass: '', isAnimating: false });
2678
- setStyle(_this.styleTag, '');
2679
- }, animationTiming);
2680
- });
2681
- };
2682
- return _this;
2683
- }
2684
- ExpandCollapsePanel.prototype.componentWillUnmount = function () {
2685
- var styleTag = this.styleTag;
2686
- if (styleTag) {
2687
- removeStyleTag(styleTag);
2688
- }
2689
- };
2690
- ExpandCollapsePanel.prototype.componentDidUpdate = function (prevProps, prevState) {
2691
- var _a = this.state, openState = _a.isOpen, controlled = _a.controlled;
2692
- var openProp = this.props.open;
2693
- if (controlled && openState !== openProp) {
2694
- this.setState({ isOpen: !!openProp, isAnimating: true });
2695
- }
2696
- if (typeof openProp !== typeof prevProps.open) {
2697
- this.setState({ controlled: typeof openProp !== 'undefined' });
2698
- }
2699
- if (prevState.isOpen !== openState && openState) {
2700
- this.animateOpen();
2701
- }
2702
- else if (prevState.isOpen !== openState && !openState) {
2703
- this.animateClose();
2704
- }
2705
- };
2706
- ExpandCollapsePanel.prototype.render = function () {
2707
- /* eslint-disable no-unused-vars */
2708
- var _a = this.props, children = _a.children, animationTiming = _a.animationTiming, className = _a.className, onToggle = _a.onToggle, open = _a.open, other = tslib.__rest(_a, ["children", "animationTiming", "className", "onToggle", "open"]);
2709
- /* eslint-enable no-unused-vars */
2710
- var _b = this.state, isOpen = _b.isOpen, isAnimating = _b.isAnimating, animationClass = _b.animationClass;
2711
- var trigger = React__default.Children.toArray(children).find(function (child) { return child.type === PanelTrigger$1; });
2712
- var panelElements = React__default.Children.toArray(children).filter(function (child) {
2713
- return typeof child === 'string' ||
2714
- child.type !== PanelTrigger$1;
2715
- });
2716
- return (React__default.createElement(React__default.Fragment, null,
2717
- trigger &&
2718
- React__default.cloneElement(trigger, {
2719
- open: isOpen,
2720
- onClick: this.handleToggle
2721
- }),
2722
- React__default.createElement("div", tslib.__assign({}, other, { className: classNames('ExpandCollapse__panel', animationClass, className, {
2723
- 'is--hidden': !isOpen && !isAnimating
2724
- }), ref: this.panel }), panelElements)));
2725
- };
2726
- ExpandCollapsePanel.defaultProps = {
2727
- animationTiming: 250,
2728
- onToggle: function () { }
2729
- };
2730
- ExpandCollapsePanel.propTypes = {
2731
- open: PropTypes.bool,
2732
- children: PropTypes.node.isRequired,
2733
- className: PropTypes.string,
2734
- animationTiming: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),
2735
- onToggle: PropTypes.func
2736
- };
2737
- return ExpandCollapsePanel;
2738
- }(React__default.Component));
2739
-
2740
2900
  function _objectWithoutPropertiesLoose(source, excluded) {
2741
2901
  if (source == null) return {};
2742
2902
  var target = {};
@@ -2839,27 +2999,6 @@ function _defineProperty(obj, key, value) {
2839
2999
 
2840
3000
  var defineProperty = _defineProperty;
2841
3001
 
2842
- function _objectSpread(target) {
2843
- for (var i = 1; i < arguments.length; i++) {
2844
- var source = arguments[i] != null ? Object(arguments[i]) : {};
2845
- var ownKeys = Object.keys(source);
2846
-
2847
- if (typeof Object.getOwnPropertySymbols === 'function') {
2848
- ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
2849
- return Object.getOwnPropertyDescriptor(source, sym).enumerable;
2850
- }));
2851
- }
2852
-
2853
- ownKeys.forEach(function (key) {
2854
- defineProperty(target, key, source[key]);
2855
- });
2856
- }
2857
-
2858
- return target;
2859
- }
2860
-
2861
- var objectSpread = _objectSpread;
2862
-
2863
3002
  function createCommonjsModule(fn, basedir, module) {
2864
3003
  return module = {
2865
3004
  path: basedir,
@@ -2896,6 +3035,9 @@ function _extends() {
2896
3035
  module.exports = _extends;
2897
3036
  });
2898
3037
 
3038
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3039
+
3040
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
2899
3041
  //
2900
3042
  // Super simple, non-algorithmic solution since the
2901
3043
  // number of class names will not be greater than 4
@@ -2941,7 +3083,7 @@ function createStyleObject(classNames) {
2941
3083
  });
2942
3084
  var classNamesCombinations = getClassNameCombinations(nonTokenClassNames);
2943
3085
  return classNamesCombinations.reduce(function (styleObject, className) {
2944
- return objectSpread({}, styleObject, stylesheet[className]);
3086
+ return _objectSpread(_objectSpread({}, styleObject), stylesheet[className]);
2945
3087
  }, elementStyle);
2946
3088
  }
2947
3089
  function createClassNameString(classNames) {
@@ -2980,7 +3122,7 @@ function createElement(_ref) {
2980
3122
  var props;
2981
3123
 
2982
3124
  if (!useInlineStyles) {
2983
- props = objectSpread({}, properties, {
3125
+ props = _objectSpread(_objectSpread({}, properties), {}, {
2984
3126
  className: createClassNameString(properties.className)
2985
3127
  });
2986
3128
  } else {
@@ -2995,14 +3137,14 @@ function createElement(_ref) {
2995
3137
  var className = properties.className && startingClassName.concat(properties.className.filter(function (className) {
2996
3138
  return !allStylesheetSelectors.includes(className);
2997
3139
  }));
2998
- props = objectSpread({}, properties, {
3140
+ props = _objectSpread(_objectSpread({}, properties), {}, {
2999
3141
  className: createClassNameString(className) || undefined,
3000
3142
  style: createStyleObject(properties.className, Object.assign({}, properties.style, style), stylesheet)
3001
3143
  });
3002
3144
  }
3003
3145
 
3004
3146
  var children = childrenCreator(node.children);
3005
- return React__default.createElement(TagName, _extends_1({
3147
+ return /*#__PURE__*/React__default.createElement(TagName, _extends_1({
3006
3148
  key: key
3007
3149
  }, props), children);
3008
3150
  }
@@ -3013,6 +3155,11 @@ var checkForListedLanguage = (function (astGenerator, language) {
3013
3155
  return langs.indexOf(language) !== -1;
3014
3156
  });
3015
3157
 
3158
+ var _excluded = ["language", "children", "style", "customStyle", "codeTagProps", "useInlineStyles", "showLineNumbers", "showInlineLineNumbers", "startingLineNumber", "lineNumberContainerStyle", "lineNumberStyle", "wrapLines", "wrapLongLines", "lineProps", "renderer", "PreTag", "CodeTag", "code", "astGenerator"];
3159
+
3160
+ function ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
3161
+
3162
+ function _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
3016
3163
  var newLineRegex = /\n/g;
3017
3164
 
3018
3165
  function getNewLines(str) {
@@ -3025,7 +3172,7 @@ function getAllLineNumbers(_ref) {
3025
3172
  style = _ref.style;
3026
3173
  return lines.map(function (_, i) {
3027
3174
  var number = i + startingLineNumber;
3028
- return React__default.createElement("span", {
3175
+ return /*#__PURE__*/React__default.createElement("span", {
3029
3176
  key: "line-".concat(i),
3030
3177
  className: "react-syntax-highlighter-line-number",
3031
3178
  style: typeof style === 'function' ? style(number) : style
@@ -3038,13 +3185,13 @@ function AllLineNumbers(_ref2) {
3038
3185
  codeStyle = _ref2.codeStyle,
3039
3186
  _ref2$containerStyle = _ref2.containerStyle,
3040
3187
  containerStyle = _ref2$containerStyle === void 0 ? {
3041
- float: 'left',
3188
+ "float": 'left',
3042
3189
  paddingRight: '10px'
3043
3190
  } : _ref2$containerStyle,
3044
3191
  _ref2$numberStyle = _ref2.numberStyle,
3045
3192
  numberStyle = _ref2$numberStyle === void 0 ? {} : _ref2$numberStyle,
3046
3193
  startingLineNumber = _ref2.startingLineNumber;
3047
- return React__default.createElement("code", {
3194
+ return /*#__PURE__*/React__default.createElement("code", {
3048
3195
  style: Object.assign({}, codeStyle, containerStyle)
3049
3196
  }, getAllLineNumbers({
3050
3197
  lines: codeString.replace(/\n$/, '').split('\n'),
@@ -3085,7 +3232,7 @@ function assembleLineNumberStyles(lineNumberStyle, lineNumber, largestLineNumber
3085
3232
 
3086
3233
  var customLineNumberStyle = typeof lineNumberStyle === 'function' ? lineNumberStyle(lineNumber) : lineNumberStyle; // combine
3087
3234
 
3088
- var assembledStyle = objectSpread({}, defaultLineNumberStyle, customLineNumberStyle);
3235
+ var assembledStyle = _objectSpread$1(_objectSpread$1({}, defaultLineNumberStyle), customLineNumberStyle);
3089
3236
 
3090
3237
  return assembledStyle;
3091
3238
  }
@@ -3111,7 +3258,7 @@ function createLineElement(_ref3) {
3111
3258
  }
3112
3259
 
3113
3260
  if (wrapLongLines & showLineNumbers) {
3114
- properties.style = objectSpread({}, properties.style, {
3261
+ properties.style = _objectSpread$1(_objectSpread$1({}, properties.style), {}, {
3115
3262
  display: 'flex'
3116
3263
  });
3117
3264
  }
@@ -3138,7 +3285,9 @@ function flattenCodeTree(tree) {
3138
3285
  }));
3139
3286
  } else if (node.children) {
3140
3287
  var classNames = className.concat(node.properties.className);
3141
- newTree = newTree.concat(flattenCodeTree(node.children, classNames));
3288
+ flattenCodeTree(node.children, classNames).forEach(function (i) {
3289
+ return newTree.push(i);
3290
+ });
3142
3291
  }
3143
3292
  }
3144
3293
 
@@ -3207,19 +3356,19 @@ function processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlin
3207
3356
  newTree.push(_line); // if it's the last line
3208
3357
  } else if (i === splitValue.length - 1) {
3209
3358
  var stringChild = tree[index + 1] && tree[index + 1].children && tree[index + 1].children[0];
3359
+ var lastLineInPreviousSpan = {
3360
+ type: 'text',
3361
+ value: "".concat(text)
3362
+ };
3210
3363
 
3211
3364
  if (stringChild) {
3212
- var lastLineInPreviousSpan = {
3213
- type: 'text',
3214
- value: "".concat(text)
3215
- };
3216
3365
  var newElem = createLineElement({
3217
3366
  children: [lastLineInPreviousSpan],
3218
3367
  className: node.properties.className
3219
3368
  });
3220
3369
  tree.splice(index + 1, 0, newElem);
3221
3370
  } else {
3222
- var _children2 = [newChild];
3371
+ var _children2 = [lastLineInPreviousSpan];
3223
3372
 
3224
3373
  var _line2 = createLine(_children2, lineNumber, node.properties.className);
3225
3374
 
@@ -3325,7 +3474,7 @@ function highlight (defaultAstGenerator, defaultStyle) {
3325
3474
  _ref7$codeTagProps = _ref7.codeTagProps,
3326
3475
  codeTagProps = _ref7$codeTagProps === void 0 ? {
3327
3476
  className: language ? "language-".concat(language) : undefined,
3328
- style: objectSpread({}, style['code[class*="language-"]'], style["code[class*=\"language-".concat(language, "\"]")])
3477
+ style: _objectSpread$1(_objectSpread$1({}, style['code[class*="language-"]']), style["code[class*=\"language-".concat(language, "\"]")])
3329
3478
  } : _ref7$codeTagProps,
3330
3479
  _ref7$useInlineStyles = _ref7.useInlineStyles,
3331
3480
  useInlineStyles = _ref7$useInlineStyles === void 0 ? true : _ref7$useInlineStyles,
@@ -3349,12 +3498,12 @@ function highlight (defaultAstGenerator, defaultStyle) {
3349
3498
  _ref7$CodeTag = _ref7.CodeTag,
3350
3499
  CodeTag = _ref7$CodeTag === void 0 ? 'code' : _ref7$CodeTag,
3351
3500
  _ref7$code = _ref7.code,
3352
- code = _ref7$code === void 0 ? Array.isArray(children) ? children[0] : children : _ref7$code,
3501
+ code = _ref7$code === void 0 ? (Array.isArray(children) ? children[0] : children) || '' : _ref7$code,
3353
3502
  astGenerator = _ref7.astGenerator,
3354
- rest = objectWithoutProperties(_ref7, ["language", "children", "style", "customStyle", "codeTagProps", "useInlineStyles", "showLineNumbers", "showInlineLineNumbers", "startingLineNumber", "lineNumberContainerStyle", "lineNumberStyle", "wrapLines", "wrapLongLines", "lineProps", "renderer", "PreTag", "CodeTag", "code", "astGenerator"]);
3503
+ rest = objectWithoutProperties(_ref7, _excluded);
3355
3504
 
3356
3505
  astGenerator = astGenerator || defaultAstGenerator;
3357
- var allLineNumbers = showLineNumbers ? React__default.createElement(AllLineNumbers, {
3506
+ var allLineNumbers = showLineNumbers ? /*#__PURE__*/React__default.createElement(AllLineNumbers, {
3358
3507
  containerStyle: lineNumberContainerStyle,
3359
3508
  codeStyle: codeTagProps.style || {},
3360
3509
  numberStyle: lineNumberStyle,
@@ -3372,8 +3521,18 @@ function highlight (defaultAstGenerator, defaultStyle) {
3372
3521
  style: Object.assign({}, customStyle)
3373
3522
  });
3374
3523
 
3524
+ if (wrapLongLines) {
3525
+ codeTagProps.style = _objectSpread$1(_objectSpread$1({}, codeTagProps.style), {}, {
3526
+ whiteSpace: 'pre-wrap'
3527
+ });
3528
+ } else {
3529
+ codeTagProps.style = _objectSpread$1(_objectSpread$1({}, codeTagProps.style), {}, {
3530
+ whiteSpace: 'pre'
3531
+ });
3532
+ }
3533
+
3375
3534
  if (!astGenerator) {
3376
- return React__default.createElement(PreTag, preProps, allLineNumbers, React__default.createElement(CodeTag, codeTagProps, code));
3535
+ return /*#__PURE__*/React__default.createElement(PreTag, preProps, allLineNumbers, /*#__PURE__*/React__default.createElement(CodeTag, codeTagProps, code));
3377
3536
  }
3378
3537
  /*
3379
3538
  * Some custom renderers rely on individual row elements so we need to turn wrapLines on
@@ -3401,18 +3560,7 @@ function highlight (defaultAstGenerator, defaultStyle) {
3401
3560
 
3402
3561
  var largestLineNumber = codeTree.value.length + startingLineNumber;
3403
3562
  var rows = processLines(codeTree, wrapLines, lineProps, showLineNumbers, showInlineLineNumbers, startingLineNumber, largestLineNumber, lineNumberStyle, wrapLongLines);
3404
-
3405
- if (wrapLongLines) {
3406
- codeTagProps.style = objectSpread({}, codeTagProps.style, {
3407
- whiteSpace: 'pre-wrap'
3408
- });
3409
- } else {
3410
- codeTagProps.style = objectSpread({}, codeTagProps.style, {
3411
- whiteSpace: 'pre'
3412
- });
3413
- }
3414
-
3415
- return React__default.createElement(PreTag, preProps, React__default.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({
3563
+ return /*#__PURE__*/React__default.createElement(PreTag, preProps, /*#__PURE__*/React__default.createElement(CodeTag, codeTagProps, !showInlineLineNumbers && allLineNumbers, renderer({
3416
3564
  rows: rows,
3417
3565
  stylesheet: style,
3418
3566
  useInlineStyles: useInlineStyles
@@ -7977,15 +8125,19 @@ SyntaxHighlighter.registerLanguage('javascript', javascript_1);
7977
8125
  SyntaxHighlighter.registerLanguage('css', css_1);
7978
8126
  SyntaxHighlighter.registerLanguage('html', xml_1);
7979
8127
  SyntaxHighlighter.registerLanguage('yaml', yaml_1);
8128
+ // HACK: This is a workaround for a bug in react-syntax-highlighter's types.
8129
+ var Highlighter = SyntaxHighlighter;
7980
8130
  var Code = function (_a) {
7981
8131
  var children = _a.children, className = _a.className, tabIndex = _a.tabIndex, props = tslib.__rest(_a, ["children", "className", "tabIndex"]);
7982
- return (React__default.createElement(SyntaxHighlighter, tslib.__assign({}, props, { useInlineStyles: false, className: classNames('Code', className), tabIndex: tabIndex }), children));
8132
+ return (React__default.createElement(React__default.Fragment, null,
8133
+ React__default.createElement(Highlighter, tslib.__assign({}, props, { useInlineStyles: false, className: classNames('Code', className), tabIndex: tabIndex }), children)));
7983
8134
  };
7984
8135
  Code.displayName = 'Code';
7985
8136
  Code.propTypes = {
7986
8137
  children: PropTypes.string.isRequired,
7987
8138
  language: PropTypes.oneOf(['javascript', 'css', 'html', 'yaml']),
7988
- className: PropTypes.string
8139
+ className: PropTypes.string,
8140
+ tabIndex: PropTypes.number
7989
8141
  };
7990
8142
 
7991
8143
  function AxeLoader() {
@@ -8064,6 +8216,7 @@ LoaderOverlay.propTypes = {
8064
8216
  variant: PropTypes.oneOf(['large', 'small']),
8065
8217
  label: PropTypes.string,
8066
8218
  focusOnInitialRender: PropTypes.bool,
8219
+ // @ts-expect-error
8067
8220
  children: PropTypes.node
8068
8221
  };
8069
8222
  LoaderOverlay.displayName = 'LoaderOverlay';
@@ -8183,6 +8336,7 @@ Tab.displayName = 'Tab';
8183
8336
  Tab.propTypes = {
8184
8337
  target: PropTypes.any.isRequired,
8185
8338
  id: PropTypes.string,
8339
+ // @ts-expect-error
8186
8340
  children: PropTypes.node
8187
8341
  };
8188
8342
 
@@ -8277,7 +8431,8 @@ var Tabs = function (_a) {
8277
8431
  React.useEffect(function () {
8278
8432
  var _a, _b;
8279
8433
  index === activeIndex
8280
- ? (_a = target.current) === null || _a === void 0 ? void 0 : _a.classList.remove('TabPanel--hidden') : (_b = target.current) === null || _b === void 0 ? void 0 : _b.classList.add('TabPanel--hidden');
8434
+ ? (_a = target.current) === null || _a === void 0 ? void 0 : _a.classList.remove('TabPanel--hidden')
8435
+ : (_b = target.current) === null || _b === void 0 ? void 0 : _b.classList.add('TabPanel--hidden');
8281
8436
  }, [activeIndex]);
8282
8437
  var config = tslib.__assign((_a = { id: id, className: classNames('Tab', {
8283
8438
  'Tab--active': selected
@@ -8317,6 +8472,7 @@ var TabPanel = React.forwardRef(function (_a, ref) {
8317
8472
  TabPanel.displayName = 'TabPanel';
8318
8473
  TabPanel.propTypes = {
8319
8474
  id: PropTypes.string,
8475
+ // @ts-expect-error
8320
8476
  children: PropTypes.node,
8321
8477
  className: PropTypes.string
8322
8478
  };
@@ -8363,12 +8519,12 @@ var Step = function (props) {
8363
8519
  var liProps;
8364
8520
  var isTooltip = isTooltipProps(other);
8365
8521
  if (isTooltip) {
8366
- (_a = other, (tooltip = _a.tooltip, tooltipText = _a.tooltipText, _a), liProps = tslib.__rest(_a, ["tooltip", "tooltipText"]));
8522
+ (_a = other, (tooltip = _a.tooltip, tooltipText = _a.tooltipText), liProps = tslib.__rest(_a, ["tooltip", "tooltipText"]));
8367
8523
  }
8368
8524
  else {
8369
8525
  liProps = other;
8370
8526
  }
8371
- return (React__default.createElement("li", tslib.__assign({ className: classNames('Stepper__step', "Stepper__step--" + status, className), "aria-current": status === 'current' ? 'step' : 'false' }, liProps),
8527
+ return (React__default.createElement("li", tslib.__assign({ className: classNames('Stepper__step', "Stepper__step--".concat(status), className), "aria-current": status === 'current' ? 'step' : 'false' }, liProps),
8372
8528
  React__default.createElement("div", { className: "Stepper__step-line" }),
8373
8529
  React__default.createElement("div", { className: "Stepper__step-content" }, isTooltip ? (React__default.createElement(TooltipTabstop, { placement: "bottom", tooltip: tooltip,
8374
8530
  // the pseudo content (ex: "1") is conveyed
@@ -8410,7 +8566,7 @@ var Panel = React.forwardRef(function (_a, ref) {
8410
8566
  if (!headingId) {
8411
8567
  return null;
8412
8568
  }
8413
- var HeadingComponent = "h" + (heading &&
8569
+ var HeadingComponent = "h".concat(heading &&
8414
8570
  typeof heading === 'object' &&
8415
8571
  'level' in heading &&
8416
8572
  !!heading.level
@@ -8428,7 +8584,9 @@ var Panel = React.forwardRef(function (_a, ref) {
8428
8584
  });
8429
8585
  Panel.displayName = 'Panel';
8430
8586
  Panel.propTypes = {
8587
+ // @ts-expect-error
8431
8588
  children: PropTypes.node.isRequired,
8589
+ // @ts-expect-error
8432
8590
  heading: PropTypes.oneOfType([PropTypes.object, PropTypes.node]),
8433
8591
  className: PropTypes.string
8434
8592
  };
@@ -8438,7 +8596,7 @@ var IssuePanel = function (_a) {
8438
8596
  return (React__default.createElement("div", { className: classNames('IssuePanel', className) },
8439
8597
  React__default.createElement("div", { className: "IssuePanel__Header" },
8440
8598
  title && React__default.createElement("div", { className: "IssuePanel__Header-title" }, title),
8441
- actions && React__default.createElement("div", { className: "IssuePanel__Header-actions" }, actions)),
8599
+ actions && (React__default.createElement("div", { className: "IssuePanel__Header-actions" }, actions))),
8442
8600
  React__default.createElement("div", { className: "IssuePanel__Content" }, children)));
8443
8601
  };
8444
8602
  IssuePanel.displayName = 'IssuePanel';
@@ -8451,7 +8609,7 @@ var ProgressBar = React.forwardRef(function (_a, ref) {
8451
8609
  var _b = _a.progress, progress = _b === void 0 ? 0 : _b, _c = _a.progressMax, progressMax = _c === void 0 ? 100 : _c, _d = _a.progressMin, progressMin = _d === void 0 ? 0 : _d, props = tslib.__rest(_a, ["progress", "progressMax", "progressMin"]);
8452
8610
  var className = props.className, otherProps = tslib.__rest(props, ["className"]);
8453
8611
  return (React__default.createElement("div", tslib.__assign({ className: classNames('ProgressBar', className), role: "progressbar", "aria-valuemin": progressMin, "aria-valuemax": progressMax, "aria-valuenow": progress, ref: ref }, otherProps),
8454
- React__default.createElement("div", { className: "ProgressBar--fill", style: { width: Math.min((progress / progressMax) * 100, 100) + "%" } })));
8612
+ React__default.createElement("div", { className: "ProgressBar--fill", style: { width: "".concat(Math.min((progress / progressMax) * 100, 100), "%") } })));
8455
8613
  });
8456
8614
  ProgressBar.displayName = 'ProgressBar';
8457
8615
 
@@ -8488,16 +8646,18 @@ AddressCityStateZip.propTypes = {
8488
8646
  };
8489
8647
 
8490
8648
  var Pagination = React__default.forwardRef(function (_a, ref) {
8491
- var totalItems = _a.totalItems, _b = _a.itemsPerPage, itemsPerPage = _b === void 0 ? 10 : _b, _c = _a.currentPage, currentPage = _c === void 0 ? 1 : _c, statusLabel = _a.statusLabel, _d = _a.firstPageLabel, firstPageLabel = _d === void 0 ? 'First page' : _d, _e = _a.previousPageLabel, previousPageLabel = _e === void 0 ? 'Previous page' : _e, _f = _a.nextPageLabel, nextPageLabel = _f === void 0 ? 'Next page' : _f, _g = _a.lastPageLabel, lastPageLabel = _g === void 0 ? 'Last page' : _g, _h = _a.tooltipPlacement, tooltipPlacement = _h === void 0 ? 'bottom' : _h, onNextPageClick = _a.onNextPageClick, onPreviousPageClick = _a.onPreviousPageClick, onFirstPageClick = _a.onFirstPageClick, onLastPageClick = _a.onLastPageClick, className = _a.className, other = tslib.__rest(_a, ["totalItems", "itemsPerPage", "currentPage", "statusLabel", "firstPageLabel", "previousPageLabel", "nextPageLabel", "lastPageLabel", "tooltipPlacement", "onNextPageClick", "onPreviousPageClick", "onFirstPageClick", "onLastPageClick", "className"]);
8649
+ var totalItems = _a.totalItems, _b = _a.itemsPerPage, itemsPerPage = _b === void 0 ? 10 : _b, _c = _a.currentPage, currentPage = _c === void 0 ? 1 : _c, statusLabel = _a.statusLabel, _d = _a.firstPageLabel, firstPageLabel = _d === void 0 ? 'First page' : _d, _e = _a.previousPageLabel, previousPageLabel = _e === void 0 ? 'Previous page' : _e, _f = _a.nextPageLabel, nextPageLabel = _f === void 0 ? 'Next page' : _f, _g = _a.lastPageLabel, lastPageLabel = _g === void 0 ? 'Last page' : _g, _h = _a.tooltipPlacement, tooltipPlacement = _h === void 0 ? 'bottom' : _h, onNextPageClick = _a.onNextPageClick, onPreviousPageClick = _a.onPreviousPageClick, onFirstPageClick = _a.onFirstPageClick, onLastPageClick = _a.onLastPageClick, className = _a.className, _j = _a.thin, thin = _j === void 0 ? false : _j, other = tslib.__rest(_a, ["totalItems", "itemsPerPage", "currentPage", "statusLabel", "firstPageLabel", "previousPageLabel", "nextPageLabel", "lastPageLabel", "tooltipPlacement", "onNextPageClick", "onPreviousPageClick", "onFirstPageClick", "onLastPageClick", "className", "thin"]);
8492
8650
  var itemStart = currentPage * itemsPerPage - itemsPerPage + 1;
8493
8651
  var itemEnd = Math.min(itemStart + itemsPerPage - 1, totalItems);
8494
8652
  var isLastPage = itemEnd === totalItems;
8495
8653
  var isFirstPage = currentPage === 1;
8496
- return (React__default.createElement("div", tslib.__assign({ ref: ref, className: classNames('Pagination', className) }, other),
8654
+ return (React__default.createElement("div", tslib.__assign({ ref: ref, className: classNames('Pagination', className, {
8655
+ 'Pagination--thin': thin
8656
+ }) }, other),
8497
8657
  React__default.createElement("ul", null,
8498
- React__default.createElement("li", null, isFirstPage ? (React__default.createElement(TooltipTabstop, { hideElementOnHidden: true, association: "aria-labelledby", tooltip: firstPageLabel, placement: tooltipPlacement },
8658
+ React__default.createElement("li", null, isFirstPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: firstPageLabel, placement: tooltipPlacement },
8499
8659
  React__default.createElement(Icon, { type: "chevron-double-left" }))) : (React__default.createElement(IconButton, { icon: "chevron-double-left", tooltipPlacement: tooltipPlacement, label: firstPageLabel, onClick: onFirstPageClick }))),
8500
- React__default.createElement("li", null, isFirstPage ? (React__default.createElement(TooltipTabstop, { hideElementOnHidden: true, association: "aria-labelledby", tooltip: previousPageLabel, placement: tooltipPlacement },
8660
+ React__default.createElement("li", null, isFirstPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: previousPageLabel, placement: tooltipPlacement },
8501
8661
  React__default.createElement(Icon, { type: "chevron-left" }))) : (React__default.createElement(IconButton, { icon: "chevron-left", tooltipPlacement: tooltipPlacement, label: previousPageLabel, onClick: onPreviousPageClick }))),
8502
8662
  React__default.createElement("li", null,
8503
8663
  React__default.createElement("span", { role: "log", "aria-atomic": "true" }, statusLabel || (React__default.createElement("span", null,
@@ -8508,9 +8668,9 @@ var Pagination = React__default.forwardRef(function (_a, ref) {
8508
8668
  React__default.createElement("strong", null, itemEnd),
8509
8669
  " of ",
8510
8670
  React__default.createElement("strong", null, totalItems))))),
8511
- React__default.createElement("li", null, isLastPage ? (React__default.createElement(TooltipTabstop, { hideElementOnHidden: true, association: "aria-labelledby", tooltip: nextPageLabel, placement: tooltipPlacement },
8671
+ React__default.createElement("li", null, isLastPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: nextPageLabel, placement: tooltipPlacement },
8512
8672
  React__default.createElement(Icon, { type: "chevron-right" }))) : (React__default.createElement(IconButton, { icon: "chevron-right", tooltipPlacement: tooltipPlacement, label: nextPageLabel, onClick: onNextPageClick }))),
8513
- React__default.createElement("li", null, isLastPage ? (React__default.createElement(TooltipTabstop, { hideElementOnHidden: true, association: "aria-labelledby", tooltip: lastPageLabel, placement: tooltipPlacement },
8673
+ React__default.createElement("li", null, isLastPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: lastPageLabel, placement: tooltipPlacement },
8514
8674
  React__default.createElement(Icon, { type: "chevron-double-right" }))) : (React__default.createElement(IconButton, { icon: "chevron-double-right", tooltipPlacement: tooltipPlacement, label: lastPageLabel, onClick: onLastPageClick }))))));
8515
8675
  });
8516
8676
  Pagination.displayName = 'Pagination';
@@ -8532,12 +8692,41 @@ Pagination.propTypes = {
8532
8692
  className: PropTypes.string
8533
8693
  };
8534
8694
 
8695
+ var usePagination = function (_a) {
8696
+ var totalItems = _a.totalItems, _b = _a.initialPageSize, initialPageSize = _b === void 0 ? 10 : _b, _c = _a.initialPage, initialPage = _c === void 0 ? 1 : _c;
8697
+ var _d = tslib.__read(React.useState(initialPage), 2), currentPage = _d[0], setCurrentPage = _d[1];
8698
+ var pageStart = currentPage * initialPageSize - initialPageSize + 1;
8699
+ var pageEnd = Math.min(pageStart + initialPageSize - 1, totalItems);
8700
+ var onFirstPageClick = function () { return setCurrentPage(1); };
8701
+ var onPreviousPageClick = function () { return setCurrentPage(currentPage - 1); };
8702
+ var onNextPageClick = function () { return setCurrentPage(currentPage + 1); };
8703
+ var onLastPageClick = function () {
8704
+ return setCurrentPage(Math.ceil(totalItems / initialPageSize));
8705
+ };
8706
+ var pagination = {
8707
+ totalItems: totalItems,
8708
+ currentPage: currentPage,
8709
+ itemsPerPage: initialPageSize,
8710
+ onFirstPageClick: onFirstPageClick,
8711
+ onPreviousPageClick: onPreviousPageClick,
8712
+ onNextPageClick: onNextPageClick,
8713
+ onLastPageClick: onLastPageClick
8714
+ };
8715
+ var pageStatus = {
8716
+ currentPage: currentPage,
8717
+ pageStart: pageStart,
8718
+ pageEnd: pageEnd
8719
+ };
8720
+ return { pagination: pagination, pageStatus: pageStatus };
8721
+ };
8722
+
8535
8723
  var FieldWrap = React__default.forwardRef(function (_a, ref) {
8536
8724
  var children = _a.children, className = _a.className, _b = _a.as, Component = _b === void 0 ? 'div' : _b, props = tslib.__rest(_a, ["children", "className", "as"]);
8537
8725
  return (React__default.createElement(Component, tslib.__assign({ ref: ref, className: classNames('Panel', className) }, props), children));
8538
8726
  });
8539
8727
  FieldWrap.displayName = 'FieldWrap';
8540
8728
  FieldWrap.propTypes = {
8729
+ // @ts-expect-error
8541
8730
  children: PropTypes.node.isRequired,
8542
8731
  className: PropTypes.string,
8543
8732
  as: PropTypes.string
@@ -8558,7 +8747,7 @@ var Breadcrumb = React.forwardRef(function (_a, ref) {
8558
8747
  }
8559
8748
  });
8560
8749
  return (React__default.createElement("nav", tslib.__assign({ className: classNames('Breadcrumb', className), ref: ref }, props),
8561
- React__default.createElement("ol", null, childrenWithSeparators.map(function (child, index) { return (React__default.createElement("li", { className: "Breadcrumb__Item", key: "breadcrumb-" + index }, child)); }))));
8750
+ React__default.createElement("ol", null, childrenWithSeparators.map(function (child, index) { return (React__default.createElement("li", { className: "Breadcrumb__Item", key: "breadcrumb-".concat(index) }, child)); }))));
8562
8751
  });
8563
8752
  Breadcrumb.displayName = 'Breadcrumb';
8564
8753
 
@@ -8571,6 +8760,7 @@ var BreadcrumbLink = React.forwardRef(function (_a, ref) {
8571
8760
  var className = _a.className, _b = _a.as, ElementType = _b === void 0 ? 'a' : _b, children = _a.children, props = tslib.__rest(_a, ["className", "as", "children"]);
8572
8761
  return (React__default.createElement(ElementType, tslib.__assign({ className: classNames('Link', 'Breadcrumb__Link', className), ref: ref }, props), children));
8573
8762
  });
8763
+ BreadcrumbLink.displayName = 'BreadcrumbLink';
8574
8764
 
8575
8765
  var ColumnLeft = React.forwardRef(function (_a, ref) {
8576
8766
  var className = _a.className, children = _a.children, props = tslib.__rest(_a, ["className", "children"]);
@@ -8589,6 +8779,11 @@ var TwoColumnPanel = React.forwardRef(function (_a, ref) {
8589
8779
  var _f = tslib.__read(React.useState(initialCollapsed), 2), isCollapsed = _f[0], setCollapsed = _f[1];
8590
8780
  var _g = tslib.__read(React.useState(false), 2), isFocusTrap = _g[0], setIsFocusTrap = _g[1];
8591
8781
  var _h = tslib.__read(React.useState(!initialCollapsed), 2), showPanel = _h[0], setShowPanel = _h[1];
8782
+ var toggleButtonRef = React.useRef(null);
8783
+ var closeButtonRef = React.useRef(null);
8784
+ var columnLeftRef = React.useRef(null);
8785
+ var columnRightRef = React.useRef(null);
8786
+ var columnLeft = React__default.Children.toArray(children).find(function (child) { return child.type === ColumnLeft; });
8592
8787
  var togglePanel = function () {
8593
8788
  if (isCollapsed) {
8594
8789
  setShowPanel(true);
@@ -8606,11 +8801,6 @@ var TwoColumnPanel = React.forwardRef(function (_a, ref) {
8606
8801
  }
8607
8802
  });
8608
8803
  };
8609
- var toggleButtonRef = React.useRef(null);
8610
- var closeButtonRef = React.useRef(null);
8611
- var columnLeftRef = React.useRef(null);
8612
- var columnRightRef = React.useRef(null);
8613
- var columnLeft = React__default.Children.toArray(children).find(function (child) { return child.type === ColumnLeft; });
8614
8804
  // The ColumnLeftComponent will end up being a focus trap when < 720px
8615
8805
  // This component also gets unmounted when not visible meaning that any
8616
8806
  // aria relationships cannot be set to items inside the component since
@@ -8625,11 +8815,11 @@ var TwoColumnPanel = React.forwardRef(function (_a, ref) {
8625
8815
  React__default.createElement("button", { type: "button", onClick: togglePanel, ref: closeButtonRef, "aria-label": hideCollapsedPanelLabel },
8626
8816
  React__default.createElement(Icon, { type: "close" })),
8627
8817
  React__default.createElement(Tooltip, { target: closeButtonRef, association: "aria-labelledby", hideElementOnHidden: true }, hideCollapsedPanelLabel)));
8628
- var children_1 = tslib.__spread([
8818
+ var children_1 = tslib.__spreadArray([
8629
8819
  CloseButton
8630
- ], React__default.Children.toArray(columnLeft.props.children));
8820
+ ], tslib.__read(React__default.Children.toArray(columnLeft.props.children)), false);
8631
8821
  ColumnLeftComponent = React.cloneElement(columnLeft, { id: id, ref: ref_1, tabIndex: -1 }, children_1.map(function (child, index) {
8632
- return React.cloneElement(child, { key: "left-" + index });
8822
+ return React.cloneElement(child, { key: "left-".concat(index) });
8633
8823
  }));
8634
8824
  }
8635
8825
  var columnRight = React__default.Children.toArray(children).find(function (child) { return child.type === ColumnRight; });
@@ -8640,11 +8830,11 @@ var TwoColumnPanel = React.forwardRef(function (_a, ref) {
8640
8830
  React__default.createElement("button", { type: "button", onClick: togglePanel, ref: toggleButtonRef, "aria-label": !isCollapsed ? hideCollapsedPanelLabel : showCollapsedPanelLabel, "aria-expanded": !isCollapsed, "aria-controls": columnLeftId },
8641
8831
  React__default.createElement(Icon, { type: !isCollapsed ? 'chevron-double-left' : 'chevron-double-right' })),
8642
8832
  React__default.createElement(Tooltip, { target: toggleButtonRef, association: "aria-labelledby", hideElementOnHidden: true }, !isCollapsed ? hideCollapsedPanelLabel : showCollapsedPanelLabel)));
8643
- var children_2 = tslib.__spread([
8833
+ var children_2 = tslib.__spreadArray([
8644
8834
  ToggleButton
8645
- ], React__default.Children.toArray(columnRight.props.children));
8835
+ ], tslib.__read(React__default.Children.toArray(columnRight.props.children)), false);
8646
8836
  ColumnRightComponent = React.cloneElement(columnRight, { ref: ref_2, tabIndex: -1 }, children_2.map(function (child, index) {
8647
- return React.cloneElement(child, { key: "right-" + index });
8837
+ return React.cloneElement(child, { key: "right-".concat(index) });
8648
8838
  }));
8649
8839
  }
8650
8840
  React.useLayoutEffect(function () {
@@ -8709,15 +8899,16 @@ var TwoColumnPanel = React.forwardRef(function (_a, ref) {
8709
8899
  'TwoColumnPanel--show': !isCollapsed,
8710
8900
  'TwoColumnPanel--hide': isCollapsed
8711
8901
  }) }, props, { ref: ref }),
8712
- React__default.createElement(FocusTrap, { active: !isCollapsed && isFocusTrap, focusTrapOptions: {
8713
- escapeDeactivates: true,
8714
- allowOutsideClick: true,
8715
- fallbackFocus: columnLeftRef.current
8716
- }, containerElements: [columnLeftRef.current] }),
8717
- React__default.createElement(ClickOutsideListener, { onClickOutside: handleClickOutside, target: columnLeftRef.current }),
8718
- isCollapsed ? null : skipLink,
8719
- showPanel ? ColumnLeftComponent : null,
8720
- ColumnRightComponent));
8902
+ React__default.createElement(React__default.Fragment, null,
8903
+ React__default.createElement(FocusTrap, { active: !isCollapsed && isFocusTrap, focusTrapOptions: {
8904
+ escapeDeactivates: true,
8905
+ allowOutsideClick: true,
8906
+ fallbackFocus: columnLeftRef.current
8907
+ }, containerElements: [columnLeftRef.current] }),
8908
+ React__default.createElement(ClickOutsideListener, { onClickOutside: handleClickOutside, target: columnLeftRef.current }),
8909
+ isCollapsed ? null : skipLink,
8910
+ showPanel ? ColumnLeftComponent : null,
8911
+ ColumnRightComponent)));
8721
8912
  });
8722
8913
  TwoColumnPanel.displayName = 'TwoColumnPanel';
8723
8914
 
@@ -8798,6 +8989,9 @@ ThemeProvider.propTypes = {
8798
8989
  initialTheme: PropTypes.string
8799
8990
  };
8800
8991
 
8992
+ exports.Accordion = Accordion;
8993
+ exports.AccordionContent = AccordionContent;
8994
+ exports.AccordionTrigger = AccordionTrigger;
8801
8995
  exports.Address = Address;
8802
8996
  exports.AddressCityStateZip = AddressCityStateZip;
8803
8997
  exports.AddressLine = AddressLine;
@@ -8857,6 +9051,7 @@ exports.Panel = Panel;
8857
9051
  exports.PanelTrigger = PanelTrigger$1;
8858
9052
  exports.Pointout = Pointout;
8859
9053
  exports.ProgressBar = ProgressBar;
9054
+ exports.RadioCardGroup = RadioCardGroup;
8860
9055
  exports.RadioGroup = RadioGroup;
8861
9056
  exports.Scrim = Scrim;
8862
9057
  exports.Select = Select;
@@ -8894,4 +9089,5 @@ exports.Workspace = Workspace;
8894
9089
  exports.focusableSelector = focusableSelector;
8895
9090
  exports.iconTypes = iconTypes;
8896
9091
  exports.useDidUpdate = useDidUpdate;
9092
+ exports.usePagination = usePagination;
8897
9093
  exports.useThemeContext = useThemeContext;