@deque/cauldron-react 5.0.0-canary.97d52033 → 5.0.0-canary.99baedef

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;
@@ -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;
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)(
@@ -1571,8 +1580,8 @@ var Dialog = /** @class */ (function (_super) {
1571
1580
  };
1572
1581
  Dialog.prototype.close = function () {
1573
1582
  var _a, _b, _c;
1583
+ (_a = this.state.isolator) === null || _a === void 0 ? void 0 : _a.deactivate();
1574
1584
  if (this.props.show) {
1575
- (_a = this.state.isolator) === null || _a === void 0 ? void 0 : _a.deactivate();
1576
1585
  (_c = (_b = this.props).onClose) === null || _c === void 0 ? void 0 : _c.call(_b);
1577
1586
  }
1578
1587
  };
@@ -1914,7 +1923,7 @@ var IconButton = React.forwardRef(function (_a, ref) {
1914
1923
  'IconButton--error': variant === 'error'
1915
1924
  }), ref: internalRef, disabled: disabled, tabIndex: disabled ? -1 : tabIndex }, accessibilityProps, other),
1916
1925
  React__default.createElement(Icon, { type: icon }),
1917
- React__default.createElement(Offscreen, null, label)),
1926
+ disabled && React__default.createElement(Offscreen, null, label)),
1918
1927
  !disabled && (React__default.createElement(Tooltip, { target: internalRef, placement: tooltipPlacement, variant: tooltipVariant, portal: tooltipPortal, association: "aria-labelledby", hideElementOnHidden: true }, label))));
1919
1928
  });
1920
1929
  IconButton.propTypes = {
@@ -2356,7 +2365,7 @@ var Toast = /** @class */ (function (_super) {
2356
2365
  var scrim = type === 'action-needed' && show ? (React__default.createElement("div", { className: "Scrim--light Scrim--show Scrim--fade-in" })) : null;
2357
2366
  var defaultProps = {
2358
2367
  tabIndex: -1,
2359
- className: "Toast Toast--".concat(typeMap[type].className, " ").concat(animationClass)
2368
+ className: classNames('Toast', "Toast--".concat(typeMap[type].className), animationClass, { 'Toast--non-dismissible': !dismissible })
2360
2369
  };
2361
2370
  if (!focus) {
2362
2371
  defaultProps.role = 'alert';
@@ -8148,9 +8157,35 @@ SyntaxHighlighter.registerLanguage('yaml', yaml_1);
8148
8157
  // HACK: This is a workaround for a bug in react-syntax-highlighter's types.
8149
8158
  var Highlighter = SyntaxHighlighter;
8150
8159
  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)));
8160
+ var children = _a.children, className = _a.className, _b = _a.scrollable, scrollable = _b === void 0 ? false : _b, props = tslib.__rest(_a, ["children", "className", "scrollable"]);
8161
+ var ref = React.useRef(null);
8162
+ var _c = tslib.__read(React.useState(false), 2), scrollableRegion = _c[0], setScrollableRegion = _c[1];
8163
+ // react-syntax-highlighter does not provide direct access to its dom elements
8164
+ // via refs, but we can specify the wrapping tags to bypass this limitation
8165
+ // see: https://github.com/react-syntax-highlighter/react-syntax-highlighter/issues/335
8166
+ var PreWithRef = function (preProps) { return (React__default.createElement("pre", tslib.__assign({}, preProps, { ref: ref }))); };
8167
+ React.useEffect(function () {
8168
+ var _a;
8169
+ // Track the containing element because resize observer will not
8170
+ // trigger once an element becomes scrollable
8171
+ if (scrollable && ((_a = ref.current) === null || _a === void 0 ? void 0 : _a.parentElement)) {
8172
+ var listener = function () {
8173
+ if (!ref.current) {
8174
+ return;
8175
+ }
8176
+ var element = ref.current;
8177
+ setScrollableRegion(element.clientWidth < element.scrollWidth);
8178
+ };
8179
+ var observer_1 = new ResizeObserver(listener);
8180
+ observer_1.observe(ref.current.parentElement);
8181
+ }
8182
+ return function () {
8183
+ setScrollableRegion(false);
8184
+ };
8185
+ }, [scrollable]);
8186
+ return (React__default.createElement(Highlighter, tslib.__assign({}, props, { PreTag: PreWithRef, useInlineStyles: false, className: classNames('Code', className, {
8187
+ 'Code--scrollable': scrollable
8188
+ }), tabIndex: scrollableRegion ? 0 : undefined }), children));
8154
8189
  };
8155
8190
  Code.displayName = 'Code';
8156
8191
  Code.propTypes = {
@@ -8676,6 +8711,16 @@ AddressCityStateZip.propTypes = {
8676
8711
  className: PropTypes.string
8677
8712
  };
8678
8713
 
8714
+ /**
8715
+ * This prop type is meant to ensure that a prop can actually be rendered as content.
8716
+ * It should match the ContentNode type in types.ts
8717
+ */
8718
+ var contentNode = PropTypes.oneOfType([
8719
+ PropTypes.string,
8720
+ PropTypes.number,
8721
+ PropTypes.element
8722
+ ]);
8723
+
8679
8724
  var Pagination = React__default.forwardRef(function (_a, ref) {
8680
8725
  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
8726
  var itemStart = currentPage * itemsPerPage - itemsPerPage + 1;
@@ -8686,10 +8731,10 @@ var Pagination = React__default.forwardRef(function (_a, ref) {
8686
8731
  'Pagination--thin': thin
8687
8732
  }) }, other),
8688
8733
  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 }))),
8734
+ React__default.createElement("li", null,
8735
+ React__default.createElement(IconButton, { icon: "chevron-double-left", tooltipPlacement: tooltipPlacement, label: firstPageLabel, "aria-disabled": isFirstPage, onClick: isFirstPage ? undefined : onFirstPageClick })),
8736
+ React__default.createElement("li", null,
8737
+ React__default.createElement(IconButton, { icon: "chevron-left", tooltipPlacement: tooltipPlacement, label: previousPageLabel, "aria-disabled": isFirstPage, onClick: isFirstPage ? undefined : onPreviousPageClick })),
8693
8738
  React__default.createElement("li", null,
8694
8739
  React__default.createElement("span", { role: "log", "aria-atomic": "true" }, statusLabel || (React__default.createElement("span", null,
8695
8740
  "Showing ",
@@ -8699,10 +8744,10 @@ var Pagination = React__default.forwardRef(function (_a, ref) {
8699
8744
  React__default.createElement("strong", null, itemEnd),
8700
8745
  " of ",
8701
8746
  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 }))))));
8747
+ React__default.createElement("li", null,
8748
+ React__default.createElement(IconButton, { icon: "chevron-right", tooltipPlacement: tooltipPlacement, label: nextPageLabel, "aria-disabled": isLastPage, onClick: isLastPage ? undefined : onNextPageClick })),
8749
+ React__default.createElement("li", null,
8750
+ React__default.createElement(IconButton, { icon: "chevron-double-right", tooltipPlacement: tooltipPlacement, label: lastPageLabel, "aria-disabled": isLastPage, onClick: isLastPage ? undefined : onLastPageClick })))));
8706
8751
  });
8707
8752
  Pagination.displayName = 'Pagination';
8708
8753
  Pagination.propTypes = {
@@ -8710,17 +8755,18 @@ Pagination.propTypes = {
8710
8755
  itemsPerPage: PropTypes.number,
8711
8756
  currentPage: PropTypes.number,
8712
8757
  statusLabel: PropTypes.element,
8713
- firstPageLabel: PropTypes.string,
8714
- previousPageLabel: PropTypes.string,
8715
- nextPageLabel: PropTypes.string,
8716
- lastPageLabel: PropTypes.string,
8758
+ firstPageLabel: contentNode,
8759
+ previousPageLabel: contentNode,
8760
+ nextPageLabel: contentNode,
8761
+ lastPageLabel: contentNode,
8717
8762
  onNextPageClick: PropTypes.func,
8718
8763
  onPreviousPageClick: PropTypes.func,
8719
8764
  onFirstPageClick: PropTypes.func,
8720
8765
  onLastPageClick: PropTypes.func,
8721
8766
  // @ts-expect-error
8722
8767
  tooltipPlacement: PropTypes.string,
8723
- className: PropTypes.string
8768
+ className: PropTypes.string,
8769
+ thin: PropTypes.bool
8724
8770
  };
8725
8771
 
8726
8772
  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.97d52033",
3
+ "version": "5.0.0-canary.99baedef",
4
4
  "description": "Fully accessible react components library for Deque Cauldron",
5
5
  "homepage": "https://cauldron.dequelabs.com/",
6
6
  "publishConfig": {