@deque/cauldron-react 5.0.0-canary.f7bc1da2 → 5.1.0-canary.053f6fda

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.
@@ -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;
@@ -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' | 'link' | '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' | '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[];
@@ -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;
@@ -44,6 +44,7 @@ export default class Toast extends React.Component<ToastProps, ToastState> {
44
44
  constructor(props: ToastProps);
45
45
  componentDidMount(): void;
46
46
  componentDidUpdate(prevProps: ToastProps): void;
47
+ componentWillUnmount(): void;
47
48
  render(): JSX.Element;
48
49
  dismissToast(): void;
49
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.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);
@@ -157,14 +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',
167
170
  'link',
171
+ 'linkedin',
168
172
  'list',
169
173
  'lock',
170
174
  'magnifying-glass',
@@ -202,6 +206,7 @@ var iconTypes = [
202
206
  'triangle-down',
203
207
  'triangle-left',
204
208
  'triangle-right',
209
+ 'twitter',
205
210
  'upload'
206
211
  ];
207
212
 
@@ -235,14 +240,17 @@ function __variableDynamicImportRuntime0__(path) {
235
240
  case './icons/filter.svg': return Promise.resolve().then(function () { return require('./filter.js'); });
236
241
  case './icons/flag.svg': return Promise.resolve().then(function () { return require('./flag.js'); });
237
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'); });
238
244
  case './icons/grid.svg': return Promise.resolve().then(function () { return require('./grid.js'); });
239
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'); });
240
247
  case './icons/highlight.svg': return Promise.resolve().then(function () { return require('./highlight.js'); });
241
248
  case './icons/info-circle-alt.svg': return Promise.resolve().then(function () { return require('./info-circle-alt.js'); });
242
249
  case './icons/info-circle.svg': return Promise.resolve().then(function () { return require('./info-circle.js'); });
243
250
  case './icons/info-square.svg': return Promise.resolve().then(function () { return require('./info-square.js'); });
244
251
  case './icons/kabob.svg': return Promise.resolve().then(function () { return require('./kabob.js'); });
245
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'); });
246
254
  case './icons/list.svg': return Promise.resolve().then(function () { return require('./list.js'); });
247
255
  case './icons/lock.svg': return Promise.resolve().then(function () { return require('./lock.js'); });
248
256
  case './icons/magnifying-glass.svg': return Promise.resolve().then(function () { return require('./magnifying-glass.js'); });
@@ -277,6 +285,7 @@ function __variableDynamicImportRuntime0__(path) {
277
285
  case './icons/target.svg': return Promise.resolve().then(function () { return require('./target.js'); });
278
286
  case './icons/trash.svg': return Promise.resolve().then(function () { return require('./trash.js'); });
279
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'); });
280
289
  case './icons/upload.svg': return Promise.resolve().then(function () { return require('./upload.js'); });
281
290
  default: return new Promise(function(resolve, reject) {
282
291
  (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
@@ -1519,6 +1528,10 @@ var Dialog = /** @class */ (function (_super) {
1519
1528
  this.attachIsolator(function () { return setTimeout(_this.focusHeading); });
1520
1529
  }
1521
1530
  };
1531
+ Dialog.prototype.componentWillUnmount = function () {
1532
+ var isolator = this.state.isolator;
1533
+ isolator === null || isolator === void 0 ? void 0 : isolator.deactivate();
1534
+ };
1522
1535
  Dialog.prototype.componentDidUpdate = function (prevProps) {
1523
1536
  if (!prevProps.show && this.props.show) {
1524
1537
  this.attachIsolator(this.focusHeading);
@@ -1571,8 +1584,8 @@ var Dialog = /** @class */ (function (_super) {
1571
1584
  };
1572
1585
  Dialog.prototype.close = function () {
1573
1586
  var _a, _b, _c;
1587
+ (_a = this.state.isolator) === null || _a === void 0 ? void 0 : _a.deactivate();
1574
1588
  if (this.props.show) {
1575
- (_a = this.state.isolator) === null || _a === void 0 ? void 0 : _a.deactivate();
1576
1589
  (_c = (_b = this.props).onClose) === null || _c === void 0 ? void 0 : _c.call(_b);
1577
1590
  }
1578
1591
  };
@@ -1914,7 +1927,7 @@ var IconButton = React.forwardRef(function (_a, ref) {
1914
1927
  'IconButton--error': variant === 'error'
1915
1928
  }), ref: internalRef, disabled: disabled, tabIndex: disabled ? -1 : tabIndex }, accessibilityProps, other),
1916
1929
  React__default.createElement(Icon, { type: icon }),
1917
- React__default.createElement(Offscreen, null, label)),
1930
+ disabled && React__default.createElement(Offscreen, null, label)),
1918
1931
  !disabled && (React__default.createElement(Tooltip, { target: internalRef, placement: tooltipPlacement, variant: tooltipVariant, portal: tooltipPortal, association: "aria-labelledby", hideElementOnHidden: true }, label))));
1919
1932
  });
1920
1933
  IconButton.propTypes = {
@@ -2346,6 +2359,10 @@ var Toast = /** @class */ (function (_super) {
2346
2359
  }
2347
2360
  }
2348
2361
  };
2362
+ Toast.prototype.componentWillUnmount = function () {
2363
+ var isolator = this.state.isolator;
2364
+ isolator === null || isolator === void 0 ? void 0 : isolator.deactivate();
2365
+ };
2349
2366
  Toast.prototype.render = function () {
2350
2367
  var _this = this;
2351
2368
  var animationClass = this.state.animationClass;
@@ -2356,7 +2373,7 @@ var Toast = /** @class */ (function (_super) {
2356
2373
  var scrim = type === 'action-needed' && show ? (React__default.createElement("div", { className: "Scrim--light Scrim--show Scrim--fade-in" })) : null;
2357
2374
  var defaultProps = {
2358
2375
  tabIndex: -1,
2359
- className: "Toast Toast--".concat(typeMap[type].className, " ").concat(animationClass)
2376
+ className: classNames('Toast', "Toast--".concat(typeMap[type].className), animationClass, { 'Toast--non-dismissible': !dismissible })
2360
2377
  };
2361
2378
  if (!focus) {
2362
2379
  defaultProps.role = 'alert';
@@ -8148,9 +8165,35 @@ SyntaxHighlighter.registerLanguage('yaml', yaml_1);
8148
8165
  // HACK: This is a workaround for a bug in react-syntax-highlighter's types.
8149
8166
  var Highlighter = SyntaxHighlighter;
8150
8167
  var Code = function (_a) {
8151
- var children = _a.children, className = _a.className, tabIndex = _a.tabIndex, props = tslib.__rest(_a, ["children", "className", "tabIndex"]);
8152
- return (React__default.createElement(React__default.Fragment, null,
8153
- 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));
8154
8197
  };
8155
8198
  Code.displayName = 'Code';
8156
8199
  Code.propTypes = {
@@ -8676,6 +8719,16 @@ AddressCityStateZip.propTypes = {
8676
8719
  className: PropTypes.string
8677
8720
  };
8678
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
+
8679
8732
  var Pagination = React__default.forwardRef(function (_a, ref) {
8680
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"]);
8681
8734
  var itemStart = currentPage * itemsPerPage - itemsPerPage + 1;
@@ -8686,10 +8739,10 @@ var Pagination = React__default.forwardRef(function (_a, ref) {
8686
8739
  'Pagination--thin': thin
8687
8740
  }) }, other),
8688
8741
  React__default.createElement("ul", null,
8689
- React__default.createElement("li", null, isFirstPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: firstPageLabel, placement: tooltipPlacement },
8690
- React__default.createElement(Icon, { type: "chevron-double-left" }))) : (React__default.createElement(IconButton, { icon: "chevron-double-left", tooltipPlacement: tooltipPlacement, label: firstPageLabel, onClick: onFirstPageClick }))),
8691
- React__default.createElement("li", null, isFirstPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: previousPageLabel, placement: tooltipPlacement },
8692
- 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 })),
8693
8746
  React__default.createElement("li", null,
8694
8747
  React__default.createElement("span", { role: "log", "aria-atomic": "true" }, statusLabel || (React__default.createElement("span", null,
8695
8748
  "Showing ",
@@ -8699,10 +8752,10 @@ var Pagination = React__default.forwardRef(function (_a, ref) {
8699
8752
  React__default.createElement("strong", null, itemEnd),
8700
8753
  " of ",
8701
8754
  React__default.createElement("strong", null, totalItems))))),
8702
- React__default.createElement("li", null, isLastPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: nextPageLabel, placement: tooltipPlacement },
8703
- React__default.createElement(Icon, { type: "chevron-right" }))) : (React__default.createElement(IconButton, { icon: "chevron-right", tooltipPlacement: tooltipPlacement, label: nextPageLabel, onClick: onNextPageClick }))),
8704
- React__default.createElement("li", null, isLastPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: lastPageLabel, placement: tooltipPlacement },
8705
- 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 })))));
8706
8759
  });
8707
8760
  Pagination.displayName = 'Pagination';
8708
8761
  Pagination.propTypes = {
@@ -8710,17 +8763,18 @@ Pagination.propTypes = {
8710
8763
  itemsPerPage: PropTypes.number,
8711
8764
  currentPage: PropTypes.number,
8712
8765
  statusLabel: PropTypes.element,
8713
- firstPageLabel: PropTypes.string,
8714
- previousPageLabel: PropTypes.string,
8715
- nextPageLabel: PropTypes.string,
8716
- lastPageLabel: PropTypes.string,
8766
+ firstPageLabel: contentNode,
8767
+ previousPageLabel: contentNode,
8768
+ nextPageLabel: contentNode,
8769
+ lastPageLabel: contentNode,
8717
8770
  onNextPageClick: PropTypes.func,
8718
8771
  onPreviousPageClick: PropTypes.func,
8719
8772
  onFirstPageClick: PropTypes.func,
8720
8773
  onLastPageClick: PropTypes.func,
8721
8774
  // @ts-expect-error
8722
8775
  tooltipPlacement: PropTypes.string,
8723
- className: PropTypes.string
8776
+ className: PropTypes.string,
8777
+ thin: PropTypes.bool
8724
8778
  };
8725
8779
 
8726
8780
  var usePagination = function (_a) {
@@ -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,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>;
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,6 +1,6 @@
1
1
  {
2
2
  "name": "@deque/cauldron-react",
3
- "version": "5.0.0-canary.f7bc1da2",
3
+ "version": "5.1.0-canary.053f6fda",
4
4
  "description": "Fully accessible react components library for Deque Cauldron",
5
5
  "homepage": "https://cauldron.dequelabs.com/",
6
6
  "publishConfig": {