@deque/cauldron-react 4.7.0 → 5.0.0-canary.07163dab

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.
package/lib/cauldron.css CHANGED
@@ -39,6 +39,10 @@ a.Button--secondary {
39
39
  padding: 9px 18px;
40
40
  }
41
41
 
42
+ a.Button--thin {
43
+ padding: 0 16px;
44
+ }
45
+
42
46
  .Icon {
43
47
  display: inline-block;
44
48
  vertical-align: middle;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Cauldron } from '../../types';
3
3
  declare type BreadcrumbProps = {
4
- separator?: string;
4
+ separator?: React.ReactNode;
5
5
  } & React.HTMLAttributes<HTMLElement> & Cauldron.LabelProps;
6
6
  declare const Breadcrumb: React.ForwardRefExoticComponent<BreadcrumbProps & React.RefAttributes<HTMLElement>>;
7
7
  export default Breadcrumb;
@@ -8,6 +8,7 @@ export interface ClickOutsideListenerProps<T extends HTMLElement = HTMLElement>
8
8
  target?: T;
9
9
  }
10
10
  export default class ClickOutsideListener extends React.Component<ClickOutsideListenerProps> {
11
+ static displayName: string;
11
12
  static defaultProps: {
12
13
  mouseEvent: string;
13
14
  touchEvent: string;
@@ -1,10 +1,10 @@
1
1
  import React from 'react';
2
2
  import { SyntaxHighlighterProps } from 'react-syntax-highlighter';
3
- interface Props extends SyntaxHighlighterProps {
3
+ declare type Props = {
4
4
  children: string;
5
5
  language?: 'javascript' | 'css' | 'html' | 'yaml';
6
6
  className?: string;
7
- tabIndex?: number;
8
- }
7
+ scrollable?: boolean;
8
+ } & SyntaxHighlighterProps & React.HTMLAttributes<HTMLDivElement>;
9
9
  declare const Code: React.ComponentType<React.PropsWithChildren<Props>>;
10
10
  export default Code;
@@ -40,6 +40,7 @@ export default class Dialog extends React.Component<DialogProps, DialogState> {
40
40
  private heading;
41
41
  constructor(props: DialogProps);
42
42
  componentDidMount(): void;
43
+ componentWillUnmount(): void;
43
44
  componentDidUpdate(prevProps: DialogProps): void;
44
45
  private attachIsolator;
45
46
  render(): JSX.Element | null;
@@ -2,6 +2,6 @@
2
2
  * GENERATED CODE. DO NOT EDIT DIRECTLY!
3
3
  */
4
4
  /** IconType represents each valid icon type. */
5
- export declare type IconType = 'add-user' | 'arrow-circle-up' | 'arrow-circle-down' | 'arrow-circle-left' | 'arrow-circle-right' | 'arrow-up' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrows-alt' | 'bolt' | 'caution' | 'check-circle' | 'check-shield' | 'check-solid' | 'check' | 'checkbox-checked' | 'checkbox-unchecked' | 'chevron-double-up' | 'chevron-double-down' | 'chevron-double-left' | 'chevron-double-right' | 'chevron-up' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'clipboard' | 'close' | 'code' | 'copy' | 'download' | 'dropper' | 'exchange' | 'export-solid' | 'external-link' | 'eye' | 'filter-solid' | 'filter' | 'flag' | 'gears' | 'grid' | 'hamburger-menu' | 'highlight' | 'info-circle-alt' | 'info-circle' | 'info-square' | 'kabob' | 'list' | 'lock' | 'magnifying-glass' | 'menu' | 'minus' | 'new-releases' | 'new' | 'no' | 'pencil' | 'play' | 'plus' | 'question-circle-alt' | 'question-circle' | 'radio-checked' | 'radio-unchecked' | 'recycle-square' | 'recycle' | 'resend' | 'robot' | 'run-again' | 'save' | 'share' | 'sort-triangle' | 'sort' | 'star' | 'sun' | 'tag' | 'target' | 'trash' | 'triangle-up' | 'triangle-down' | 'triangle-left' | 'triangle-right' | 'upload';
5
+ export declare type IconType = 'add-user' | 'arrow-circle-up' | 'arrow-circle-down' | 'arrow-circle-left' | 'arrow-circle-right' | 'arrow-up' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrows-alt' | 'bolt' | 'caution' | 'check-circle' | 'check-shield' | 'check-solid' | 'check' | 'checkbox-checked' | 'checkbox-unchecked' | 'chevron-double-up' | 'chevron-double-down' | 'chevron-double-left' | 'chevron-double-right' | 'chevron-up' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'clipboard' | 'close' | 'code' | 'copy' | 'download' | 'dropper' | 'exchange' | 'export-solid' | 'external-link' | 'eye' | 'filter-solid' | 'filter' | 'flag' | 'gears' | 'github' | 'grid' | 'hamburger-menu' | 'hashtag' | 'highlight' | 'info-circle-alt' | 'info-circle' | 'info-square' | 'kabob' | 'link' | 'linkedin' | 'list' | 'lock' | 'magnifying-glass' | 'menu' | 'minus' | 'new-releases' | 'new' | 'no' | 'pencil' | 'person-running' | 'play' | 'plus' | 'question-circle-alt' | 'question-circle' | 'radio-checked' | 'radio-unchecked' | 'recycle-square' | 'recycle' | 'resend' | 'robot' | 'run-again' | 'save' | 'share-nodes' | 'share' | 'sort-triangle' | 'sort' | 'star' | 'sun' | 'table-sort-ascending' | 'table-sort-descending' | 'tag' | 'target' | 'trash' | 'triangle-up' | 'triangle-down' | 'triangle-left' | 'triangle-right' | 'twitter' | 'upload';
6
6
  /** iconTypes holds each valid icon type. */
7
7
  export declare const iconTypes: string[];
@@ -3,13 +3,15 @@ import PropTypes from 'prop-types';
3
3
  export interface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
4
4
  linkRef?: React.Ref<HTMLAnchorElement>;
5
5
  variant?: 'button' | 'button-secondary';
6
+ thin?: boolean;
6
7
  }
7
8
  declare const Link: {
8
- ({ children, linkRef, className, variant, ...other }: LinkProps): JSX.Element;
9
+ ({ children, linkRef, className, variant, thin, ...other }: LinkProps): JSX.Element;
9
10
  propTypes: {
10
11
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
11
12
  className: PropTypes.Requireable<string>;
12
13
  variant: PropTypes.Requireable<string>;
14
+ thin: PropTypes.Requireable<boolean>;
13
15
  linkRef: PropTypes.Requireable<((...args: any[]) => any) | PropTypes.InferProps<{
14
16
  current: PropTypes.Requireable<any>;
15
17
  }>>;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- interface LoaderOverlayProps extends React.HTMLAttributes<HTMLDivElement> {
2
+ export interface LoaderOverlayProps extends React.HTMLAttributes<HTMLDivElement> {
3
3
  variant?: 'large' | 'small';
4
4
  label?: string;
5
5
  focusOnInitialRender?: boolean;
@@ -1,14 +1,15 @@
1
1
  import React from 'react';
2
2
  import { Placement } from '@popperjs/core';
3
+ import { ContentNode } from '../../types';
3
4
  interface Props extends React.HTMLAttributes<HTMLDivElement> {
4
5
  totalItems: number;
5
6
  itemsPerPage?: number;
6
7
  currentPage?: number;
7
8
  statusLabel?: React.ReactNode;
8
- firstPageLabel?: string;
9
- previousPageLabel?: string;
10
- nextPageLabel?: string;
11
- lastPageLabel?: string;
9
+ firstPageLabel?: ContentNode;
10
+ previousPageLabel?: ContentNode;
11
+ nextPageLabel?: ContentNode;
12
+ lastPageLabel?: ContentNode;
12
13
  onNextPageClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
13
14
  onPreviousPageClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
14
15
  onFirstPageClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;
@@ -16,6 +16,7 @@ interface PageStatus {
16
16
  currentPage: number;
17
17
  pageStart: number;
18
18
  pageEnd: number;
19
+ setCurrentPage: (page: number) => void;
19
20
  }
20
21
  export declare const usePagination: ({ totalItems, initialPageSize, initialPage }: Options) => {
21
22
  pagination: PaginationResults;
@@ -5,7 +5,7 @@ export interface SideBarProps extends React.HTMLAttributes<HTMLUListElement> {
5
5
  onDismiss: () => void;
6
6
  className?: string;
7
7
  show: boolean;
8
- navProps: React.HTMLAttributes<HTMLElement>;
8
+ navProps?: React.HTMLAttributes<HTMLElement>;
9
9
  }
10
10
  interface SideBarState {
11
11
  wide: boolean;
@@ -1,11 +1,15 @@
1
1
  import { TableHTMLAttributes } from 'react';
2
2
  import PropTypes from 'prop-types';
3
+ interface TableProps extends TableHTMLAttributes<HTMLTableElement> {
4
+ variant?: 'border';
5
+ }
3
6
  declare const Table: {
4
- ({ children, className, ...other }: TableHTMLAttributes<HTMLTableElement>): JSX.Element;
7
+ ({ children, className, variant, ...other }: TableProps): JSX.Element;
5
8
  displayName: string;
6
9
  propTypes: {
7
10
  children: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
8
11
  className: PropTypes.Requireable<string>;
12
+ variant: PropTypes.Requireable<string>;
9
13
  };
10
14
  };
11
15
  export default Table;
@@ -0,0 +1,11 @@
1
+ import { HTMLAttributes } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ declare const TableFooter: {
4
+ ({ children, className, ...other }: HTMLAttributes<HTMLTableSectionElement>): JSX.Element;
5
+ displayName: string;
6
+ propTypes: {
7
+ children: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
8
+ className: PropTypes.Requireable<string>;
9
+ };
10
+ };
11
+ export default TableFooter;
@@ -4,3 +4,4 @@ export { default as TableCell } from './TableCell';
4
4
  export { default as TableHead } from './TableHead';
5
5
  export { default as TableHeader } from './TableHeader';
6
6
  export { default as TableRow } from './TableRow';
7
+ export { default as TableFooter } from './TableFooter';
@@ -8,6 +8,7 @@ export interface ToastProps {
8
8
  toastRef: React.Ref<HTMLDivElement>;
9
9
  focus?: boolean;
10
10
  show?: boolean;
11
+ dismissible?: boolean;
11
12
  children: React.ReactNode;
12
13
  }
13
14
  interface ToastState {
@@ -24,6 +25,7 @@ export default class Toast extends React.Component<ToastProps, ToastState> {
24
25
  toastRef: () => void;
25
26
  focus: boolean;
26
27
  show: boolean;
28
+ dismissible: boolean;
27
29
  };
28
30
  static propTypes: {
29
31
  children: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
@@ -35,12 +37,14 @@ export default class Toast extends React.Component<ToastProps, ToastState> {
35
37
  }>>;
36
38
  focus: PropTypes.Requireable<boolean>;
37
39
  show: PropTypes.Requireable<boolean>;
40
+ dismissible: PropTypes.Requireable<boolean>;
38
41
  };
39
42
  static displayName: string;
40
43
  private el;
41
44
  constructor(props: ToastProps);
42
45
  componentDidMount(): void;
43
46
  componentDidUpdate(prevProps: ToastProps): void;
47
+ componentWillUnmount(): void;
44
48
  render(): JSX.Element;
45
49
  dismissToast(): void;
46
50
  showToast(): void;
package/lib/github.js ADDED
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
+
5
+ var React = require('react');
6
+ var React__default = _interopDefault(React);
7
+
8
+ var _path;
9
+
10
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
11
+
12
+ const SvgGithub = props => /*#__PURE__*/React.createElement("svg", _extends({
13
+ overflow: "visible",
14
+ preserveAspectRatio: "none",
15
+ viewBox: "0 0 24 24",
16
+ height: 24,
17
+ width: 24
18
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
19
+ d: "M8.03 19.14c0 .1-.11.17-.25.17-.16.01-.27-.06-.27-.17 0-.1.11-.17.25-.17.15-.01.27.06.27.17Zm-1.5-.22c-.03.1.06.21.21.24.13.05.27 0 .3-.1s-.06-.21-.21-.25c-.13-.03-.27.01-.3.11Zm2.14-.08c-.14.03-.24.13-.22.24.01.1.14.16.29.13.14-.03.24-.13.22-.22-.01-.09-.15-.15-.29-.14ZM11.85.3C5.13.3 0 5.39 0 12.11c0 5.37 3.38 9.96 8.2 11.57.62.11.84-.27.84-.59s-.01-1.95-.01-2.97c0 0-3.39.73-4.1-1.44 0 0-.55-1.41-1.35-1.77 0 0-1.11-.76.08-.75 0 0 1.2.1 1.87 1.25 1.06 1.87 2.84 1.33 3.53 1.01.11-.77.43-1.31.77-1.63-2.7-.3-5.43-.69-5.43-5.35 0-1.33.37-2 1.14-2.85-.13-.31-.54-1.61.13-3.29 1.01-.31 3.34 1.31 3.34 1.31.97-.27 2.01-.41 3.04-.41s2.07.14 3.04.41c0 0 2.33-1.63 3.34-1.31.66 1.68.25 2.97.13 3.29.77.86 1.25 1.52 1.25 2.85 0 4.67-2.85 5.04-5.55 5.35.45.38.82 1.11.82 2.25 0 1.63-.01 3.65-.01 4.05 0 .31.22.7.84.59 4.84-1.61 8.12-6.2 8.12-11.56C24 5.39 18.56.3 11.85.3ZM4.71 16.99c-.06.05-.05.16.03.25.08.08.19.11.25.05.06-.05.05-.16-.03-.25-.08-.08-.19-.11-.25-.05Zm-.52-.39c-.03.06.01.14.11.19.08.05.17.03.21-.03.03-.06-.01-.14-.11-.19-.1-.03-.17-.01-.21.03Zm1.57 1.72c-.08.06-.05.21.06.3.11.11.25.13.31.05.06-.06.03-.21-.06-.3-.11-.11-.25-.13-.31-.05Zm-.55-.71c-.08.05-.08.17 0 .29s.21.16.27.11c.08-.06.08-.19 0-.3-.07-.11-.19-.16-.27-.1Z",
20
+ fill: "currentColor",
21
+ vectorEffect: "non-scaling-stroke"
22
+ })));
23
+
24
+ exports.default = SvgGithub;
package/lib/hashtag.js ADDED
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
+
5
+ var React = require('react');
6
+ var React__default = _interopDefault(React);
7
+
8
+ var _path;
9
+
10
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
11
+
12
+ const SvgHashtag = props => /*#__PURE__*/React.createElement("svg", _extends({
13
+ preserveAspectRatio: "none",
14
+ viewBox: "0 0 24 24",
15
+ height: 24,
16
+ width: 24
17
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
18
+ d: "M9.71.02c.93.16 1.56 1.04 1.41 1.97l-.52 3.15h5.09l.62-3.71C16.47.5 17.35-.13 18.28.02s1.56 1.04 1.41 1.97l-.52 3.15h3.12a1.71 1.71 0 1 1 0 3.42H18.6l-1.14 6.85h3.12a1.71 1.71 0 1 1 0 3.42h-3.69l-.62 3.71c-.16.93-1.04 1.56-1.97 1.41s-1.56-1.04-1.41-1.97l.52-3.14h-5.1l-.62 3.71c-.16.93-1.04 1.56-1.97 1.41s-1.56-1.04-1.41-1.97l.52-3.15H1.72c-.95.01-1.72-.75-1.72-1.7s.77-1.71 1.71-1.71H5.4l1.14-6.85H3.42a1.71 1.71 0 1 1 0-3.42h3.69l.62-3.71C7.89.52 8.77-.11 9.7.04Zm.31 8.55-1.14 6.85h5.09l1.14-6.85h-5.09Z",
19
+ fill: "currentColor",
20
+ vectorEffect: "non-scaling-stroke"
21
+ })));
22
+
23
+ exports.default = SvgHashtag;
package/lib/index.d.ts CHANGED
@@ -39,7 +39,7 @@ export { default as Code } from './components/Code';
39
39
  export { default as LoaderOverlay } from './components/LoaderOverlay';
40
40
  export { default as Line } from './components/Line';
41
41
  export { default as Tag, TagLabel } from './components/Tag';
42
- export { default as Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from './components/Table';
42
+ export { default as Table, TableBody, TableCell, TableHead, TableHeader, TableRow, TableFooter } from './components/Table';
43
43
  export { default as Tabs, Tab, TabPanel } from './components/Tabs';
44
44
  export { DescriptionList, DescriptionListItem, DescriptionTerm, DescriptionDetails } from './components/DescriptionList';
45
45
  export { default as Stepper, Step } from './components/Stepper';
package/lib/index.js CHANGED
@@ -16,6 +16,7 @@ var reactDom = require('react-dom');
16
16
  var FocusTrap = _interopDefault(require('focus-trap-react'));
17
17
  var reactPopper = require('react-popper');
18
18
  var focusable = _interopDefault(require('focusable'));
19
+ require('fault');
19
20
 
20
21
  var Main = /** @class */ (function (_super) {
21
22
  tslib.__extends(Main, _super);
@@ -110,7 +111,7 @@ var Workspace = /** @class */ (function (_super) {
110
111
  return Workspace;
111
112
  }(React__default.Component));
112
113
 
113
- var Offscreen = function (props) { return (React__default.createElement("div", tslib.__assign({ className: "Offscreen" }, props))); };
114
+ var Offscreen = function (props) { return (React__default.createElement("span", tslib.__assign({ className: "Offscreen" }, props))); };
114
115
 
115
116
  /*!
116
117
  * GENERATED CODE. DO NOT EDIT DIRECTLY!
@@ -157,13 +158,17 @@ var iconTypes = [
157
158
  'filter',
158
159
  'flag',
159
160
  'gears',
161
+ 'github',
160
162
  'grid',
161
163
  'hamburger-menu',
164
+ 'hashtag',
162
165
  'highlight',
163
166
  'info-circle-alt',
164
167
  'info-circle',
165
168
  'info-square',
166
169
  'kabob',
170
+ 'link',
171
+ 'linkedin',
167
172
  'list',
168
173
  'lock',
169
174
  'magnifying-glass',
@@ -173,6 +178,7 @@ var iconTypes = [
173
178
  'new',
174
179
  'no',
175
180
  'pencil',
181
+ 'person-running',
176
182
  'play',
177
183
  'plus',
178
184
  'question-circle-alt',
@@ -185,11 +191,14 @@ var iconTypes = [
185
191
  'robot',
186
192
  'run-again',
187
193
  'save',
194
+ 'share-nodes',
188
195
  'share',
189
196
  'sort-triangle',
190
197
  'sort',
191
198
  'star',
192
199
  'sun',
200
+ 'table-sort-ascending',
201
+ 'table-sort-descending',
193
202
  'tag',
194
203
  'target',
195
204
  'trash',
@@ -197,6 +206,7 @@ var iconTypes = [
197
206
  'triangle-down',
198
207
  'triangle-left',
199
208
  'triangle-right',
209
+ 'twitter',
200
210
  'upload'
201
211
  ];
202
212
 
@@ -230,13 +240,17 @@ function __variableDynamicImportRuntime0__(path) {
230
240
  case './icons/filter.svg': return Promise.resolve().then(function () { return require('./filter.js'); });
231
241
  case './icons/flag.svg': return Promise.resolve().then(function () { return require('./flag.js'); });
232
242
  case './icons/gears.svg': return Promise.resolve().then(function () { return require('./gears.js'); });
243
+ case './icons/github.svg': return Promise.resolve().then(function () { return require('./github.js'); });
233
244
  case './icons/grid.svg': return Promise.resolve().then(function () { return require('./grid.js'); });
234
245
  case './icons/hamburger-menu.svg': return Promise.resolve().then(function () { return require('./hamburger-menu.js'); });
246
+ case './icons/hashtag.svg': return Promise.resolve().then(function () { return require('./hashtag.js'); });
235
247
  case './icons/highlight.svg': return Promise.resolve().then(function () { return require('./highlight.js'); });
236
248
  case './icons/info-circle-alt.svg': return Promise.resolve().then(function () { return require('./info-circle-alt.js'); });
237
249
  case './icons/info-circle.svg': return Promise.resolve().then(function () { return require('./info-circle.js'); });
238
250
  case './icons/info-square.svg': return Promise.resolve().then(function () { return require('./info-square.js'); });
239
251
  case './icons/kabob.svg': return Promise.resolve().then(function () { return require('./kabob.js'); });
252
+ case './icons/link.svg': return Promise.resolve().then(function () { return require('./link.js'); });
253
+ case './icons/linkedin.svg': return Promise.resolve().then(function () { return require('./linkedin.js'); });
240
254
  case './icons/list.svg': return Promise.resolve().then(function () { return require('./list.js'); });
241
255
  case './icons/lock.svg': return Promise.resolve().then(function () { return require('./lock.js'); });
242
256
  case './icons/magnifying-glass.svg': return Promise.resolve().then(function () { return require('./magnifying-glass.js'); });
@@ -246,6 +260,7 @@ function __variableDynamicImportRuntime0__(path) {
246
260
  case './icons/new.svg': return Promise.resolve().then(function () { return require('./new.js'); });
247
261
  case './icons/no.svg': return Promise.resolve().then(function () { return require('./no.js'); });
248
262
  case './icons/pencil.svg': return Promise.resolve().then(function () { return require('./pencil.js'); });
263
+ case './icons/person-running.svg': return Promise.resolve().then(function () { return require('./person-running.js'); });
249
264
  case './icons/play.svg': return Promise.resolve().then(function () { return require('./play.js'); });
250
265
  case './icons/plus.svg': return Promise.resolve().then(function () { return require('./plus.js'); });
251
266
  case './icons/question-circle-alt.svg': return Promise.resolve().then(function () { return require('./question-circle-alt.js'); });
@@ -258,15 +273,19 @@ function __variableDynamicImportRuntime0__(path) {
258
273
  case './icons/robot.svg': return Promise.resolve().then(function () { return require('./robot.js'); });
259
274
  case './icons/run-again.svg': return Promise.resolve().then(function () { return require('./run-again.js'); });
260
275
  case './icons/save.svg': return Promise.resolve().then(function () { return require('./save.js'); });
276
+ case './icons/share-nodes.svg': return Promise.resolve().then(function () { return require('./share-nodes.js'); });
261
277
  case './icons/share.svg': return Promise.resolve().then(function () { return require('./share.js'); });
262
278
  case './icons/sort-triangle.svg': return Promise.resolve().then(function () { return require('./sort-triangle.js'); });
263
279
  case './icons/sort.svg': return Promise.resolve().then(function () { return require('./sort.js'); });
264
280
  case './icons/star.svg': return Promise.resolve().then(function () { return require('./star.js'); });
265
281
  case './icons/sun.svg': return Promise.resolve().then(function () { return require('./sun.js'); });
282
+ case './icons/table-sort-ascending.svg': return Promise.resolve().then(function () { return require('./table-sort-ascending.js'); });
283
+ case './icons/table-sort-descending.svg': return Promise.resolve().then(function () { return require('./table-sort-descending.js'); });
266
284
  case './icons/tag.svg': return Promise.resolve().then(function () { return require('./tag.js'); });
267
285
  case './icons/target.svg': return Promise.resolve().then(function () { return require('./target.js'); });
268
286
  case './icons/trash.svg': return Promise.resolve().then(function () { return require('./trash.js'); });
269
287
  case './icons/triangle.svg': return Promise.resolve().then(function () { return require('./triangle.js'); });
288
+ case './icons/twitter.svg': return Promise.resolve().then(function () { return require('./twitter.js'); });
270
289
  case './icons/upload.svg': return Promise.resolve().then(function () { return require('./upload.js'); });
271
290
  default: return new Promise(function(resolve, reject) {
272
291
  (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
@@ -305,7 +324,7 @@ var Icon = React.forwardRef(function (_a, ref) {
305
324
  var data = tslib.__assign(tslib.__assign({}, other), { 'aria-hidden': !label, className: classNames('Icon', "Icon--".concat(type), className, (_b = {},
306
325
  _b["Icon__".concat(direction)] = !!direction,
307
326
  _b)) });
308
- return (React__default.createElement("div", tslib.__assign({ ref: ref }, data),
327
+ return (React__default.createElement("span", tslib.__assign({ ref: ref }, data),
309
328
  label && React__default.createElement(Offscreen, null, label),
310
329
  IconSVG && React__default.createElement(IconSVG, null)));
311
330
  });
@@ -326,7 +345,7 @@ var PanelTrigger = function (_a) {
326
345
  React__default.createElement("button", tslib.__assign({ className: classNames(className, 'ExpandCollapse__trigger', {
327
346
  fullWidth: fullWidth
328
347
  }), type: "button", "aria-expanded": open, onClick: onClick }, otherProps),
329
- React__default.createElement("div", { className: "ExpandCollapse__trigger-title" }, typeof children === 'function'
348
+ React__default.createElement("span", { className: "ExpandCollapse__trigger-title" }, typeof children === 'function'
330
349
  ? children({ open: !!open })
331
350
  : children),
332
351
  React__default.createElement(Icon, { type: open ? iconExpanded : iconCollapsed }))));
@@ -899,6 +918,7 @@ var ClickOutsideListener = /** @class */ (function (_super) {
899
918
  ref: resolveRef
900
919
  });
901
920
  };
921
+ ClickOutsideListener.displayName = 'ClickOutsideListener';
902
922
  ClickOutsideListener.defaultProps = {
903
923
  mouseEvent: 'click',
904
924
  touchEvent: 'touchend'
@@ -1508,6 +1528,10 @@ var Dialog = /** @class */ (function (_super) {
1508
1528
  this.attachIsolator(function () { return setTimeout(_this.focusHeading); });
1509
1529
  }
1510
1530
  };
1531
+ Dialog.prototype.componentWillUnmount = function () {
1532
+ var isolator = this.state.isolator;
1533
+ isolator === null || isolator === void 0 ? void 0 : isolator.deactivate();
1534
+ };
1511
1535
  Dialog.prototype.componentDidUpdate = function (prevProps) {
1512
1536
  if (!prevProps.show && this.props.show) {
1513
1537
  this.attachIsolator(this.focusHeading);
@@ -1561,7 +1585,9 @@ var Dialog = /** @class */ (function (_super) {
1561
1585
  Dialog.prototype.close = function () {
1562
1586
  var _a, _b, _c;
1563
1587
  (_a = this.state.isolator) === null || _a === void 0 ? void 0 : _a.deactivate();
1564
- (_c = (_b = this.props).onClose) === null || _c === void 0 ? void 0 : _c.call(_b);
1588
+ if (this.props.show) {
1589
+ (_c = (_b = this.props).onClose) === null || _c === void 0 ? void 0 : _c.call(_b);
1590
+ }
1565
1591
  };
1566
1592
  Dialog.prototype.handleClickOutside = function () {
1567
1593
  var _a = this.props, show = _a.show, forceAction = _a.forceAction;
@@ -1720,7 +1746,7 @@ var fireCustomEvent = function (show, button) {
1720
1746
  if (!button) {
1721
1747
  return;
1722
1748
  }
1723
- var event = new Event(show ? 'cauldron:tooltip:show' : 'cauldron:tooltip:hide', {
1749
+ var event = new CustomEvent(show ? 'cauldron:tooltip:show' : 'cauldron:tooltip:hide', {
1724
1750
  bubbles: true
1725
1751
  });
1726
1752
  button.dispatchEvent(event);
@@ -1901,7 +1927,7 @@ var IconButton = React.forwardRef(function (_a, ref) {
1901
1927
  'IconButton--error': variant === 'error'
1902
1928
  }), ref: internalRef, disabled: disabled, tabIndex: disabled ? -1 : tabIndex }, accessibilityProps, other),
1903
1929
  React__default.createElement(Icon, { type: icon }),
1904
- React__default.createElement(Offscreen, null, label)),
1930
+ disabled && React__default.createElement(Offscreen, null, label)),
1905
1931
  !disabled && (React__default.createElement(Tooltip, { target: internalRef, placement: tooltipPlacement, variant: tooltipVariant, portal: tooltipPortal, association: "aria-labelledby", hideElementOnHidden: true }, label))));
1906
1932
  });
1907
1933
  IconButton.propTypes = {
@@ -2333,17 +2359,21 @@ var Toast = /** @class */ (function (_super) {
2333
2359
  }
2334
2360
  }
2335
2361
  };
2362
+ Toast.prototype.componentWillUnmount = function () {
2363
+ var isolator = this.state.isolator;
2364
+ isolator === null || isolator === void 0 ? void 0 : isolator.deactivate();
2365
+ };
2336
2366
  Toast.prototype.render = function () {
2337
2367
  var _this = this;
2338
2368
  var animationClass = this.state.animationClass;
2339
2369
  var _a = this.props, type = _a.type, children = _a.children,
2340
2370
  // prevent `onDismiss` from being passed-through to DOM
2341
2371
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
2342
- onDismiss = _a.onDismiss, dismissText = _a.dismissText, toastRef = _a.toastRef, focus = _a.focus, show = _a.show, otherProps = tslib.__rest(_a, ["type", "children", "onDismiss", "dismissText", "toastRef", "focus", "show"]);
2372
+ onDismiss = _a.onDismiss, dismissText = _a.dismissText, toastRef = _a.toastRef, focus = _a.focus, show = _a.show, dismissible = _a.dismissible, otherProps = tslib.__rest(_a, ["type", "children", "onDismiss", "dismissText", "toastRef", "focus", "show", "dismissible"]);
2343
2373
  var scrim = type === 'action-needed' && show ? (React__default.createElement("div", { className: "Scrim--light Scrim--show Scrim--fade-in" })) : null;
2344
2374
  var defaultProps = {
2345
2375
  tabIndex: -1,
2346
- className: "Toast Toast--".concat(typeMap[type].className, " ").concat(animationClass)
2376
+ className: classNames('Toast', "Toast--".concat(typeMap[type].className), animationClass, { 'Toast--non-dismissible': !dismissible })
2347
2377
  };
2348
2378
  if (!focus) {
2349
2379
  defaultProps.role = 'alert';
@@ -2356,7 +2386,7 @@ var Toast = /** @class */ (function (_super) {
2356
2386
  React__default.createElement("div", { className: "Toast__message" },
2357
2387
  React__default.createElement(Icon, { type: typeMap[type].icon }),
2358
2388
  React__default.createElement("div", { className: "Toast__message-content" }, children)),
2359
- type !== 'action-needed' && (React__default.createElement("button", { type: "button", className: 'Toast__dismiss', "aria-label": dismissText, onClick: this.dismissToast },
2389
+ type !== 'action-needed' && dismissible && (React__default.createElement("button", { type: "button", className: 'Toast__dismiss', "aria-label": dismissText, onClick: this.dismissToast },
2360
2390
  React__default.createElement(Icon, { type: "close" })))),
2361
2391
  scrim));
2362
2392
  };
@@ -2407,7 +2437,8 @@ var Toast = /** @class */ (function (_super) {
2407
2437
  // eslint-disable-next-line @typescript-eslint/no-empty-function
2408
2438
  toastRef: function () { },
2409
2439
  focus: true,
2410
- show: false
2440
+ show: false,
2441
+ dismissible: true
2411
2442
  };
2412
2443
  Toast.propTypes = {
2413
2444
  // the ui to be added as the message of the toast
@@ -2426,24 +2457,28 @@ var Toast = /** @class */ (function (_super) {
2426
2457
  // whether or not to focus the toast
2427
2458
  focus: PropTypes.bool,
2428
2459
  // whether or not to show the toast
2429
- show: PropTypes.bool
2460
+ show: PropTypes.bool,
2461
+ // whether or not the toast is dismissible
2462
+ dismissible: PropTypes.bool
2430
2463
  };
2431
2464
  Toast.displayName = 'Toast';
2432
2465
  return Toast;
2433
2466
  }(React__default.Component));
2434
2467
 
2435
2468
  var Link = function (_a) {
2436
- var children = _a.children, linkRef = _a.linkRef, className = _a.className, variant = _a.variant, other = tslib.__rest(_a, ["children", "linkRef", "className", "variant"]);
2469
+ var children = _a.children, linkRef = _a.linkRef, className = _a.className, variant = _a.variant, thin = _a.thin, other = tslib.__rest(_a, ["children", "linkRef", "className", "variant", "thin"]);
2437
2470
  return (React__default.createElement("a", tslib.__assign({ ref: linkRef, className: classNames(className, {
2438
2471
  Link: !variant,
2439
2472
  'Button--primary': variant === 'button',
2440
- 'Button--secondary': variant === 'button-secondary'
2473
+ 'Button--secondary': variant === 'button-secondary',
2474
+ 'Button--thin': thin
2441
2475
  }) }, other), children));
2442
2476
  };
2443
2477
  Link.propTypes = {
2444
2478
  children: PropTypes.node,
2445
2479
  className: PropTypes.string,
2446
2480
  variant: PropTypes.string,
2481
+ thin: PropTypes.bool,
2447
2482
  linkRef: PropTypes.oneOfType([
2448
2483
  PropTypes.func,
2449
2484
  PropTypes.shape({ current: PropTypes.any })
@@ -8130,9 +8165,35 @@ SyntaxHighlighter.registerLanguage('yaml', yaml_1);
8130
8165
  // HACK: This is a workaround for a bug in react-syntax-highlighter's types.
8131
8166
  var Highlighter = SyntaxHighlighter;
8132
8167
  var Code = function (_a) {
8133
- var children = _a.children, className = _a.className, tabIndex = _a.tabIndex, props = tslib.__rest(_a, ["children", "className", "tabIndex"]);
8134
- return (React__default.createElement(React__default.Fragment, null,
8135
- React__default.createElement(Highlighter, tslib.__assign({}, props, { useInlineStyles: false, className: classNames('Code', className), tabIndex: tabIndex }), children)));
8168
+ var children = _a.children, className = _a.className, _b = _a.scrollable, scrollable = _b === void 0 ? false : _b, props = tslib.__rest(_a, ["children", "className", "scrollable"]);
8169
+ var ref = React.useRef(null);
8170
+ var _c = tslib.__read(React.useState(false), 2), scrollableRegion = _c[0], setScrollableRegion = _c[1];
8171
+ // react-syntax-highlighter does not provide direct access to its dom elements
8172
+ // via refs, but we can specify the wrapping tags to bypass this limitation
8173
+ // see: https://github.com/react-syntax-highlighter/react-syntax-highlighter/issues/335
8174
+ var PreWithRef = function (preProps) { return (React__default.createElement("pre", tslib.__assign({}, preProps, { ref: ref }))); };
8175
+ React.useEffect(function () {
8176
+ var _a;
8177
+ // Track the containing element because resize observer will not
8178
+ // trigger once an element becomes scrollable
8179
+ if (scrollable && ((_a = ref.current) === null || _a === void 0 ? void 0 : _a.parentElement)) {
8180
+ var listener = function () {
8181
+ if (!ref.current) {
8182
+ return;
8183
+ }
8184
+ var element = ref.current;
8185
+ setScrollableRegion(element.clientWidth < element.scrollWidth);
8186
+ };
8187
+ var observer_1 = new ResizeObserver(listener);
8188
+ observer_1.observe(ref.current.parentElement);
8189
+ }
8190
+ return function () {
8191
+ setScrollableRegion(false);
8192
+ };
8193
+ }, [scrollable]);
8194
+ return (React__default.createElement(Highlighter, tslib.__assign({}, props, { PreTag: PreWithRef, useInlineStyles: false, className: classNames('Code', className, {
8195
+ 'Code--scrollable': scrollable
8196
+ }), tabIndex: scrollableRegion ? 0 : undefined }), children));
8136
8197
  };
8137
8198
  Code.displayName = 'Code';
8138
8199
  Code.propTypes = {
@@ -8252,13 +8313,14 @@ Tag.propTypes = {
8252
8313
  };
8253
8314
 
8254
8315
  var Table = function (_a) {
8255
- var children = _a.children, className = _a.className, other = tslib.__rest(_a, ["children", "className"]);
8256
- return (React__default.createElement("table", tslib.__assign({ className: classNames('Table', className) }, other), children));
8316
+ var children = _a.children, className = _a.className, variant = _a.variant, other = tslib.__rest(_a, ["children", "className", "variant"]);
8317
+ return (React__default.createElement("table", tslib.__assign({ className: classNames('Table', variant === 'border' && 'Table--border', className) }, other), children));
8257
8318
  };
8258
8319
  Table.displayName = 'Table';
8259
8320
  Table.propTypes = {
8260
8321
  children: PropTypes.node.isRequired,
8261
- className: PropTypes.string
8322
+ className: PropTypes.string,
8323
+ variant: PropTypes.string
8262
8324
  };
8263
8325
 
8264
8326
  var TableBody = function (_a) {
@@ -8306,7 +8368,7 @@ var TableHeader = function (_a) {
8306
8368
  'TableHeader--sort-descending': sortDirection === 'descending'
8307
8369
  }) }, other), !!onSort && !!sortDirection ? (React__default.createElement("button", { onClick: onSort, className: "TableHeader__sort-button", type: "button" },
8308
8370
  children,
8309
- React__default.createElement("span", { "aria-hidden": "true" }, sortDirection === 'none' ? (React__default.createElement(Icon, { type: "sort-triangle" })) : sortDirection === 'ascending' ? (React__default.createElement(Icon, { type: "triangle-up" })) : (React__default.createElement(Icon, { type: "triangle-down" }))),
8371
+ React__default.createElement("span", { "aria-hidden": "true" }, sortDirection === 'none' ? (React__default.createElement(Icon, { type: "sort-triangle" })) : sortDirection === 'ascending' ? (React__default.createElement(Icon, { type: "table-sort-ascending" })) : (React__default.createElement(Icon, { type: "table-sort-descending" }))),
8310
8372
  React__default.createElement(Offscreen, null,
8311
8373
  React__default.createElement("span", { role: "status", "aria-live": "polite" }, announcement)))) : (children)));
8312
8374
  };
@@ -8330,6 +8392,16 @@ TableRow.propTypes = {
8330
8392
  className: PropTypes.string
8331
8393
  };
8332
8394
 
8395
+ var TableFooter = function (_a) {
8396
+ var children = _a.children, className = _a.className, other = tslib.__rest(_a, ["children", "className"]);
8397
+ return (React__default.createElement("tfoot", tslib.__assign({ className: classNames('TableFooter', className) }, other), children));
8398
+ };
8399
+ TableFooter.displayName = 'TableFooter';
8400
+ TableFooter.propTypes = {
8401
+ children: PropTypes.node.isRequired,
8402
+ className: PropTypes.string
8403
+ };
8404
+
8333
8405
  var Tab = React__default.forwardRef(function (_a, ref) {
8334
8406
  var children = _a.children, propId = _a.id, target = _a.target, other = tslib.__rest(_a, ["children", "id", "target"]);
8335
8407
  return (React__default.createElement("li", tslib.__assign({ id: propId, ref: ref, role: "tab" }, other), children));
@@ -8365,7 +8437,6 @@ var Tabs = function (_a) {
8365
8437
  var children = _a.children, thin = _a.thin, _b = _a.orientation, orientation = _b === void 0 ? 'horizontal' : _b, _c = _a.initialActiveIndex, initialActiveIndex = _c === void 0 ? 0 : _c, className = _a.className, onChange = _a.onChange, labelProp = tslib.__rest(_a, ["children", "thin", "orientation", "initialActiveIndex", "className", "onChange"]);
8366
8438
  var _d = tslib.__read(React.useState(initialActiveIndex), 2), activeIndex = _d[0], setActiveIndex = _d[1];
8367
8439
  var tabsRef = React.useRef(null);
8368
- var focusedTabRef = React.useRef(null);
8369
8440
  var tabs = React__default.Children.toArray(children).filter(function (child) { return child.type === Tab; });
8370
8441
  var tabCount = tabs.length;
8371
8442
  var handleClick = function (index) {
@@ -8438,14 +8509,15 @@ var Tabs = function (_a) {
8438
8509
  }, [activeIndex]);
8439
8510
  var config = tslib.__assign((_a = { id: id, className: classNames('Tab', {
8440
8511
  'Tab--active': selected
8441
- }), tabIndex: index === activeIndex ? 0 : -1 }, _a['aria-controls'] = (_b = target.current) === null || _b === void 0 ? void 0 : _b.id, _a['aria-selected'] = selected, _a.ref = index === activeIndex ? focusedTabRef : null, _a.onClick = function () { return handleClick(index); }, _a), other);
8512
+ }), tabIndex: index === activeIndex ? 0 : -1 }, _a['aria-controls'] = (_b = target.current) === null || _b === void 0 ? void 0 : _b.id, _a['aria-selected'] = selected, _a.onClick = function () { return handleClick(index); }, _a), other);
8442
8513
  return React__default.cloneElement(child, config);
8443
8514
  });
8444
8515
  useDidUpdate(function () {
8445
8516
  var _a;
8446
- (_a = focusedTabRef.current) === null || _a === void 0 ? void 0 : _a.focus();
8517
+ var activeTab = (_a = tabsRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(':scope > [role="tablist"] > [aria-selected="true"]');
8518
+ activeTab === null || activeTab === void 0 ? void 0 : activeTab.focus();
8447
8519
  if (typeof onChange === 'function') {
8448
- onChange({ activeTabIndex: activeIndex, target: focusedTabRef.current });
8520
+ onChange({ activeTabIndex: activeIndex, target: activeTab });
8449
8521
  }
8450
8522
  }, [activeIndex]);
8451
8523
  return (React__default.createElement("div", { className: classNames('Tabs', className, {
@@ -8647,6 +8719,16 @@ AddressCityStateZip.propTypes = {
8647
8719
  className: PropTypes.string
8648
8720
  };
8649
8721
 
8722
+ /**
8723
+ * This prop type is meant to ensure that a prop can actually be rendered as content.
8724
+ * It should match the ContentNode type in types.ts
8725
+ */
8726
+ var contentNode = PropTypes.oneOfType([
8727
+ PropTypes.string,
8728
+ PropTypes.number,
8729
+ PropTypes.element
8730
+ ]);
8731
+
8650
8732
  var Pagination = React__default.forwardRef(function (_a, ref) {
8651
8733
  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"]);
8652
8734
  var itemStart = currentPage * itemsPerPage - itemsPerPage + 1;
@@ -8657,10 +8739,10 @@ var Pagination = React__default.forwardRef(function (_a, ref) {
8657
8739
  'Pagination--thin': thin
8658
8740
  }) }, other),
8659
8741
  React__default.createElement("ul", null,
8660
- React__default.createElement("li", null, isFirstPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: firstPageLabel, placement: tooltipPlacement },
8661
- React__default.createElement(Icon, { type: "chevron-double-left" }))) : (React__default.createElement(IconButton, { icon: "chevron-double-left", tooltipPlacement: tooltipPlacement, label: firstPageLabel, onClick: onFirstPageClick }))),
8662
- React__default.createElement("li", null, isFirstPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: previousPageLabel, placement: tooltipPlacement },
8663
- React__default.createElement(Icon, { type: "chevron-left" }))) : (React__default.createElement(IconButton, { icon: "chevron-left", tooltipPlacement: tooltipPlacement, label: previousPageLabel, onClick: onPreviousPageClick }))),
8742
+ React__default.createElement("li", null,
8743
+ React__default.createElement(IconButton, { icon: "chevron-double-left", tooltipPlacement: tooltipPlacement, label: firstPageLabel, "aria-disabled": isFirstPage, onClick: isFirstPage ? undefined : onFirstPageClick })),
8744
+ React__default.createElement("li", null,
8745
+ React__default.createElement(IconButton, { icon: "chevron-left", tooltipPlacement: tooltipPlacement, label: previousPageLabel, "aria-disabled": isFirstPage, onClick: isFirstPage ? undefined : onPreviousPageClick })),
8664
8746
  React__default.createElement("li", null,
8665
8747
  React__default.createElement("span", { role: "log", "aria-atomic": "true" }, statusLabel || (React__default.createElement("span", null,
8666
8748
  "Showing ",
@@ -8670,10 +8752,10 @@ var Pagination = React__default.forwardRef(function (_a, ref) {
8670
8752
  React__default.createElement("strong", null, itemEnd),
8671
8753
  " of ",
8672
8754
  React__default.createElement("strong", null, totalItems))))),
8673
- React__default.createElement("li", null, isLastPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: nextPageLabel, placement: tooltipPlacement },
8674
- React__default.createElement(Icon, { type: "chevron-right" }))) : (React__default.createElement(IconButton, { icon: "chevron-right", tooltipPlacement: tooltipPlacement, label: nextPageLabel, onClick: onNextPageClick }))),
8675
- React__default.createElement("li", null, isLastPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: lastPageLabel, placement: tooltipPlacement },
8676
- React__default.createElement(Icon, { type: "chevron-double-right" }))) : (React__default.createElement(IconButton, { icon: "chevron-double-right", tooltipPlacement: tooltipPlacement, label: lastPageLabel, onClick: onLastPageClick }))))));
8755
+ React__default.createElement("li", null,
8756
+ React__default.createElement(IconButton, { icon: "chevron-right", tooltipPlacement: tooltipPlacement, label: nextPageLabel, "aria-disabled": isLastPage, onClick: isLastPage ? undefined : onNextPageClick })),
8757
+ React__default.createElement("li", null,
8758
+ React__default.createElement(IconButton, { icon: "chevron-double-right", tooltipPlacement: tooltipPlacement, label: lastPageLabel, "aria-disabled": isLastPage, onClick: isLastPage ? undefined : onLastPageClick })))));
8677
8759
  });
8678
8760
  Pagination.displayName = 'Pagination';
8679
8761
  Pagination.propTypes = {
@@ -8681,17 +8763,18 @@ Pagination.propTypes = {
8681
8763
  itemsPerPage: PropTypes.number,
8682
8764
  currentPage: PropTypes.number,
8683
8765
  statusLabel: PropTypes.element,
8684
- firstPageLabel: PropTypes.string,
8685
- previousPageLabel: PropTypes.string,
8686
- nextPageLabel: PropTypes.string,
8687
- lastPageLabel: PropTypes.string,
8766
+ firstPageLabel: contentNode,
8767
+ previousPageLabel: contentNode,
8768
+ nextPageLabel: contentNode,
8769
+ lastPageLabel: contentNode,
8688
8770
  onNextPageClick: PropTypes.func,
8689
8771
  onPreviousPageClick: PropTypes.func,
8690
8772
  onFirstPageClick: PropTypes.func,
8691
8773
  onLastPageClick: PropTypes.func,
8692
8774
  // @ts-expect-error
8693
8775
  tooltipPlacement: PropTypes.string,
8694
- className: PropTypes.string
8776
+ className: PropTypes.string,
8777
+ thin: PropTypes.bool
8695
8778
  };
8696
8779
 
8697
8780
  var usePagination = function (_a) {
@@ -8717,7 +8800,8 @@ var usePagination = function (_a) {
8717
8800
  var pageStatus = {
8718
8801
  currentPage: currentPage,
8719
8802
  pageStart: pageStart,
8720
- pageEnd: pageEnd
8803
+ pageEnd: pageEnd,
8804
+ setCurrentPage: setCurrentPage
8721
8805
  };
8722
8806
  return { pagination: pagination, pageStatus: pageStatus };
8723
8807
  };
@@ -9068,6 +9152,7 @@ exports.TabPanel = TabPanel;
9068
9152
  exports.Table = Table;
9069
9153
  exports.TableBody = TableBody;
9070
9154
  exports.TableCell = TableCell;
9155
+ exports.TableFooter = TableFooter;
9071
9156
  exports.TableHead = TableHead;
9072
9157
  exports.TableHeader = TableHeader;
9073
9158
  exports.TableRow = TableRow;
package/lib/link.js ADDED
@@ -0,0 +1,25 @@
1
+ 'use strict';
2
+
3
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
+
5
+ var React = require('react');
6
+ var React__default = _interopDefault(React);
7
+
8
+ var _path;
9
+
10
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
11
+
12
+ const SvgLink = props => /*#__PURE__*/React.createElement("svg", _extends({
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ overflow: "visible",
15
+ preserveAspectRatio: "none",
16
+ viewBox: "0 0 24 24",
17
+ height: 24,
18
+ width: 24
19
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
20
+ d: "M18.5 16.01c0 .26-.11.51-.29.7l-1.53 1.52c-.19.18-.45.28-.71.27-.26 0-.52-.1-.71-.28l-2.14-2.16a.99.99 0 0 1-.29-.71c0-.29.12-.57.34-.76l.19.2.22.22.2.16c.08.06.17.11.27.14.1.01.19.01.29 0 .55 0 1-.45 1-1 .01-.1.01-.19 0-.29a.867.867 0 0 0-.14-.27l-.2-.16-.22-.22-.2-.19c.19-.21.46-.33.75-.33.27 0 .52.1.71.29l2.17 2.17c.19.19.29.44.29.71v-.01zm-7.32-7.34c0 .29-.12.57-.34.76l-.19-.2-.23-.22-.2-.16a.744.744 0 0 0-.22-.14c-.1-.01-.19-.01-.29 0-.55 0-1 .45-1 1-.01.09-.01.19 0 .29.03.1.08.19.14.27l.15.16.22.22.2.19c-.19.21-.47.32-.75.32a.98.98 0 0 1-.67-.27L5.79 8.72c-.19-.19-.29-.45-.29-.71 0-.26.11-.51.29-.7l1.54-1.52c.18-.18.42-.28.67-.28.27 0 .52.1.71.29l2.14 2.16c.19.19.29.44.29.71h.04zm9.32 7.34c.01-.8-.3-1.56-.87-2.12l-2.17-2.17c-1.16-1.18-3.06-1.21-4.24-.05l-.05.05-.92-.92c.6-.57.93-1.36.92-2.18.02-.79-.29-1.56-.86-2.11L10.16 4.4C9.6 3.81 8.81 3.48 8 3.51c-.79-.02-1.56.29-2.11.86L4.39 5.9c-.58.54-.9 1.31-.89 2.11-.01.8.3 1.56.87 2.12l2.17 2.17c.56.57 1.32.88 2.12.87.82.01 1.61-.32 2.17-.92l.92.92c-.6.57-.93 1.36-.92 2.18-.02.79.29 1.56.86 2.11l2.14 2.16a3 3 0 0 0 4.24 0l1.53-1.52c.58-.54.9-1.3.9-2.09z",
21
+ fill: "currentColor",
22
+ vectorEffect: "non-scaling-stroke"
23
+ })));
24
+
25
+ exports.default = SvgLink;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
+
5
+ var React = require('react');
6
+ var React__default = _interopDefault(React);
7
+
8
+ var _path;
9
+
10
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
11
+
12
+ const SvgLinkedin = props => /*#__PURE__*/React.createElement("svg", _extends({
13
+ overflow: "visible",
14
+ preserveAspectRatio: "none",
15
+ viewBox: "0 0 24 24",
16
+ height: 24,
17
+ width: 24
18
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
19
+ d: "M5.37 24H.4V7.98h4.98V24ZM2.88 5.79C1.29 5.79 0 4.47 0 2.88a2.88 2.88 0 0 1 5.76 0c0 1.59-1.29 2.91-2.88 2.91ZM23.99 24h-4.96v-7.8c0-1.86-.04-4.24-2.59-4.24s-2.98 2.02-2.98 4.11V24H8.49V7.98h4.77v2.19h.07c.66-1.26 2.29-2.59 4.71-2.59 5.04 0 5.96 3.32 5.96 7.62V24Z",
20
+ fill: "currentColor",
21
+ vectorEffect: "non-scaling-stroke"
22
+ })));
23
+
24
+ exports.default = SvgLinkedin;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
+
5
+ var React = require('react');
6
+ var React__default = _interopDefault(React);
7
+
8
+ var _path;
9
+
10
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
11
+
12
+ const SvgPersonRunning = props => /*#__PURE__*/React.createElement("svg", _extends({
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ viewBox: "0 0 448 512",
15
+ height: 24,
16
+ width: 24
17
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
18
+ fill: "currentColor",
19
+ d: "M288 96c26.5 0 48-21.5 48-48S314.5 0 288 0s-48 21.5-48 48 21.5 48 48 48zm-144 0h-13.3l-9.4 9.4-48 48L50.7 176 96 221.3l22.6-22.6 38.7-38.7H185l-31.3 94c-9.3 28 1.7 58.8 26.8 74.5l86.2 53.9-9.4 32.8-16 56-11.7 40.8h66.6l6.6-23.2 16-56 16-56 6.6-23.2-20.4-12.7-67-41.9 29-77.4 24.3 48.6 8.8 17.7H416V224h-60.2l-39.2-78.3-5.4-10.9-11.3-4.5-80-32-5.7-2.3H144zm-18.5 214.7L107.2 352H16v64h132.8l8.4-19 15.8-35.4-9.5-6a95.394 95.394 0 0 1-37.9-44.9z"
20
+ })));
21
+
22
+ exports.default = SvgPersonRunning;
@@ -0,0 +1,6 @@
1
+ import PropTypes from 'prop-types';
2
+ /**
3
+ * This prop type is meant to ensure that a prop can actually be rendered as content.
4
+ * It should match the ContentNode type in types.ts
5
+ */
6
+ export declare const contentNode: PropTypes.Requireable<string | number | PropTypes.ReactElementLike>;
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
+
5
+ var React = require('react');
6
+ var React__default = _interopDefault(React);
7
+
8
+ var _path;
9
+
10
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
11
+
12
+ const SvgShareNodes = props => /*#__PURE__*/React.createElement("svg", _extends({
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ viewBox: "0 0 448 512",
15
+ overflow: "visible",
16
+ height: 24,
17
+ width: 24
18
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
19
+ d: "M352 224c53 0 96-43 96-96s-43-96-96-96-96 43-96 96c0 4 .2 8 .7 11.9l-94.1 47C145.4 170.2 121.9 160 96 160c-53 0-96 43-96 96s43 96 96 96c25.9 0 49.4-10.2 66.6-26.9l94.1 47c-.5 3.9-.7 7.8-.7 11.9 0 53 43 96 96 96s96-43 96-96-43-96-96-96c-25.9 0-49.4 10.2-66.6 26.9l-94.1-47c.5-3.9.7-7.8.7-11.9s-.2-8-.7-11.9l94.1-47c17.2 16.7 40.7 26.9 66.6 26.9z",
20
+ vectorEffect: "non-scaling-stroke",
21
+ fill: "currentColor"
22
+ })));
23
+
24
+ exports.default = SvgShareNodes;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
+
5
+ var React = require('react');
6
+ var React__default = _interopDefault(React);
7
+
8
+ var _path;
9
+
10
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
11
+
12
+ const SvgTableSortAscending = props => /*#__PURE__*/React.createElement("svg", _extends({
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ viewBox: "0 0 320 512",
15
+ height: 24,
16
+ width: 24
17
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
18
+ fill: "currentColor",
19
+ d: "M182.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-9.2 9.2-11.9 22.9-6.9 34.9S19 224.1 32 224.1h256c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-128-128z"
20
+ })));
21
+
22
+ exports.default = SvgTableSortAscending;
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
+
5
+ var React = require('react');
6
+ var React__default = _interopDefault(React);
7
+
8
+ var _path;
9
+
10
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
11
+
12
+ const SvgTableSortDescending = props => /*#__PURE__*/React.createElement("svg", _extends({
13
+ xmlns: "http://www.w3.org/2000/svg",
14
+ viewBox: "0 0 320 512",
15
+ height: 24,
16
+ width: 24
17
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
18
+ fill: "currentColor",
19
+ d: "M182.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-9.2-9.2-11.9-22.9-6.9-34.9S19 287.9 32 287.9h256c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-128 128z"
20
+ })));
21
+
22
+ exports.default = SvgTableSortDescending;
package/lib/twitter.js ADDED
@@ -0,0 +1,24 @@
1
+ 'use strict';
2
+
3
+ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
4
+
5
+ var React = require('react');
6
+ var React__default = _interopDefault(React);
7
+
8
+ var _path;
9
+
10
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
11
+
12
+ const SvgTwitter = props => /*#__PURE__*/React.createElement("svg", _extends({
13
+ overflow: "visible",
14
+ preserveAspectRatio: "none",
15
+ viewBox: "0 0 24 24",
16
+ height: 24,
17
+ width: 24
18
+ }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
19
+ d: "M21.53 7.11c.02.21.02.43.02.64 0 6.5-4.95 13.99-13.99 13.99-2.79 0-5.38-.81-7.55-2.21.4.05.78.06 1.19.06 2.3 0 4.42-.78 6.11-2.1a4.94 4.94 0 0 1-4.6-3.41c.3.05.61.08.93.08.44 0 .88-.06 1.29-.17A4.926 4.926 0 0 1 .99 9.16V9.1c.65.37 1.42.59 2.22.62a4.92 4.92 0 0 1-2.19-4.1c0-.91.24-1.75.67-2.48a14.02 14.02 0 0 0 10.14 5.15c-.08-.37-.12-.75-.12-1.13 0-2.71 2.19-4.92 4.92-4.92 1.42 0 2.7.59 3.59 1.55 1.11-.21 2.18-.62 3.12-1.19a4.93 4.93 0 0 1-2.16 2.71c.99-.11 1.95-.38 2.83-.76-.67.97-1.51 1.84-2.47 2.54Z",
20
+ fill: "currentColor",
21
+ vectorEffect: "non-scaling-stroke"
22
+ })));
23
+
24
+ exports.default = SvgTwitter;
package/lib/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { ReactElement, ReactFragment, ReactPortal } from 'react';
1
2
  export declare namespace Cauldron {
2
3
  type LabelProps = {
3
4
  'aria-label': string;
@@ -5,3 +6,8 @@ export declare namespace Cauldron {
5
6
  'aria-labelledby': string;
6
7
  };
7
8
  }
9
+ /**
10
+ * This type is meant to ensure that a prop can actually be rendered as content.
11
+ * Explicit equivalent of Exclude<ReactNode, boolean | null | undefined>
12
+ */
13
+ export declare type ContentNode = string | number | ReactFragment | ReactPortal | ReactElement;
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@deque/cauldron-react",
3
- "version": "4.7.0",
3
+ "version": "5.0.0-canary.07163dab",
4
4
  "description": "Fully accessible react components library for Deque Cauldron",
5
+ "homepage": "https://cauldron.dequelabs.com/",
5
6
  "publishConfig": {
6
7
  "access": "public"
7
8
  },
@@ -80,12 +81,12 @@
80
81
  "react-router-dom": "^5.1.2",
81
82
  "rollup": "^2.23.0",
82
83
  "sinon": "^10.0.0",
83
- "ts-node": "^10.8.1",
84
+ "ts-node": "^10.9.1",
84
85
  "typescript": "^4.7.3"
85
86
  },
86
87
  "repository": {
87
88
  "type": "git",
88
- "url": "git+https://github.com/dequelabs/cauldron-react.git"
89
+ "url": "git+https://github.com/dequelabs/cauldron.git"
89
90
  },
90
91
  "peerDependencies": {
91
92
  "react": ">=16.6 <= 18",
@@ -125,4 +126,4 @@
125
126
  "\\.svg$": "<rootDir>/__tests__/svgMock.js"
126
127
  }
127
128
  }
128
- }
129
+ }