@deque/cauldron-react 5.0.0-canary.4bf529af → 5.0.0-canary.4c176db1

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' | '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);
@@ -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,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',
@@ -187,6 +191,7 @@ var iconTypes = [
187
191
  'robot',
188
192
  'run-again',
189
193
  'save',
194
+ 'share-nodes',
190
195
  'share',
191
196
  'sort-triangle',
192
197
  'sort',
@@ -201,6 +206,7 @@ var iconTypes = [
201
206
  'triangle-down',
202
207
  'triangle-left',
203
208
  'triangle-right',
209
+ 'twitter',
204
210
  'upload'
205
211
  ];
206
212
 
@@ -234,14 +240,17 @@ function __variableDynamicImportRuntime0__(path) {
234
240
  case './icons/filter.svg': return Promise.resolve().then(function () { return require('./filter.js'); });
235
241
  case './icons/flag.svg': return Promise.resolve().then(function () { return require('./flag.js'); });
236
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'); });
237
244
  case './icons/grid.svg': return Promise.resolve().then(function () { return require('./grid.js'); });
238
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'); });
239
247
  case './icons/highlight.svg': return Promise.resolve().then(function () { return require('./highlight.js'); });
240
248
  case './icons/info-circle-alt.svg': return Promise.resolve().then(function () { return require('./info-circle-alt.js'); });
241
249
  case './icons/info-circle.svg': return Promise.resolve().then(function () { return require('./info-circle.js'); });
242
250
  case './icons/info-square.svg': return Promise.resolve().then(function () { return require('./info-square.js'); });
243
251
  case './icons/kabob.svg': return Promise.resolve().then(function () { return require('./kabob.js'); });
244
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'); });
245
254
  case './icons/list.svg': return Promise.resolve().then(function () { return require('./list.js'); });
246
255
  case './icons/lock.svg': return Promise.resolve().then(function () { return require('./lock.js'); });
247
256
  case './icons/magnifying-glass.svg': return Promise.resolve().then(function () { return require('./magnifying-glass.js'); });
@@ -264,6 +273,7 @@ function __variableDynamicImportRuntime0__(path) {
264
273
  case './icons/robot.svg': return Promise.resolve().then(function () { return require('./robot.js'); });
265
274
  case './icons/run-again.svg': return Promise.resolve().then(function () { return require('./run-again.js'); });
266
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'); });
267
277
  case './icons/share.svg': return Promise.resolve().then(function () { return require('./share.js'); });
268
278
  case './icons/sort-triangle.svg': return Promise.resolve().then(function () { return require('./sort-triangle.js'); });
269
279
  case './icons/sort.svg': return Promise.resolve().then(function () { return require('./sort.js'); });
@@ -275,6 +285,7 @@ function __variableDynamicImportRuntime0__(path) {
275
285
  case './icons/target.svg': return Promise.resolve().then(function () { return require('./target.js'); });
276
286
  case './icons/trash.svg': return Promise.resolve().then(function () { return require('./trash.js'); });
277
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'); });
278
289
  case './icons/upload.svg': return Promise.resolve().then(function () { return require('./upload.js'); });
279
290
  default: return new Promise(function(resolve, reject) {
280
291
  (typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
@@ -1569,8 +1580,8 @@ var Dialog = /** @class */ (function (_super) {
1569
1580
  };
1570
1581
  Dialog.prototype.close = function () {
1571
1582
  var _a, _b, _c;
1583
+ (_a = this.state.isolator) === null || _a === void 0 ? void 0 : _a.deactivate();
1572
1584
  if (this.props.show) {
1573
- (_a = this.state.isolator) === null || _a === void 0 ? void 0 : _a.deactivate();
1574
1585
  (_c = (_b = this.props).onClose) === null || _c === void 0 ? void 0 : _c.call(_b);
1575
1586
  }
1576
1587
  };
@@ -1912,7 +1923,7 @@ var IconButton = React.forwardRef(function (_a, ref) {
1912
1923
  'IconButton--error': variant === 'error'
1913
1924
  }), ref: internalRef, disabled: disabled, tabIndex: disabled ? -1 : tabIndex }, accessibilityProps, other),
1914
1925
  React__default.createElement(Icon, { type: icon }),
1915
- React__default.createElement(Offscreen, null, label)),
1926
+ disabled && React__default.createElement(Offscreen, null, label)),
1916
1927
  !disabled && (React__default.createElement(Tooltip, { target: internalRef, placement: tooltipPlacement, variant: tooltipVariant, portal: tooltipPortal, association: "aria-labelledby", hideElementOnHidden: true }, label))));
1917
1928
  });
1918
1929
  IconButton.propTypes = {
@@ -2354,7 +2365,7 @@ var Toast = /** @class */ (function (_super) {
2354
2365
  var scrim = type === 'action-needed' && show ? (React__default.createElement("div", { className: "Scrim--light Scrim--show Scrim--fade-in" })) : null;
2355
2366
  var defaultProps = {
2356
2367
  tabIndex: -1,
2357
- className: "Toast Toast--".concat(typeMap[type].className, " ").concat(animationClass)
2368
+ className: classNames('Toast', "Toast--".concat(typeMap[type].className), animationClass, { 'Toast--non-dismissible': !dismissible })
2358
2369
  };
2359
2370
  if (!focus) {
2360
2371
  defaultProps.role = 'alert';
@@ -8146,9 +8157,35 @@ SyntaxHighlighter.registerLanguage('yaml', yaml_1);
8146
8157
  // HACK: This is a workaround for a bug in react-syntax-highlighter's types.
8147
8158
  var Highlighter = SyntaxHighlighter;
8148
8159
  var Code = function (_a) {
8149
- var children = _a.children, className = _a.className, tabIndex = _a.tabIndex, props = tslib.__rest(_a, ["children", "className", "tabIndex"]);
8150
- return (React__default.createElement(React__default.Fragment, null,
8151
- 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));
8152
8189
  };
8153
8190
  Code.displayName = 'Code';
8154
8191
  Code.propTypes = {
@@ -8674,6 +8711,16 @@ AddressCityStateZip.propTypes = {
8674
8711
  className: PropTypes.string
8675
8712
  };
8676
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
+
8677
8724
  var Pagination = React__default.forwardRef(function (_a, ref) {
8678
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"]);
8679
8726
  var itemStart = currentPage * itemsPerPage - itemsPerPage + 1;
@@ -8684,10 +8731,10 @@ var Pagination = React__default.forwardRef(function (_a, ref) {
8684
8731
  'Pagination--thin': thin
8685
8732
  }) }, other),
8686
8733
  React__default.createElement("ul", null,
8687
- React__default.createElement("li", null, isFirstPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: firstPageLabel, placement: tooltipPlacement },
8688
- React__default.createElement(Icon, { type: "chevron-double-left" }))) : (React__default.createElement(IconButton, { icon: "chevron-double-left", tooltipPlacement: tooltipPlacement, label: firstPageLabel, onClick: onFirstPageClick }))),
8689
- React__default.createElement("li", null, isFirstPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: previousPageLabel, placement: tooltipPlacement },
8690
- 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 })),
8691
8738
  React__default.createElement("li", null,
8692
8739
  React__default.createElement("span", { role: "log", "aria-atomic": "true" }, statusLabel || (React__default.createElement("span", null,
8693
8740
  "Showing ",
@@ -8697,10 +8744,10 @@ var Pagination = React__default.forwardRef(function (_a, ref) {
8697
8744
  React__default.createElement("strong", null, itemEnd),
8698
8745
  " of ",
8699
8746
  React__default.createElement("strong", null, totalItems))))),
8700
- React__default.createElement("li", null, isLastPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: nextPageLabel, placement: tooltipPlacement },
8701
- React__default.createElement(Icon, { type: "chevron-right" }))) : (React__default.createElement(IconButton, { icon: "chevron-right", tooltipPlacement: tooltipPlacement, label: nextPageLabel, onClick: onNextPageClick }))),
8702
- React__default.createElement("li", null, isLastPage ? (React__default.createElement(TooltipTabstop, { className: "IconButton", hideElementOnHidden: true, association: "aria-labelledby", tooltip: lastPageLabel, placement: tooltipPlacement },
8703
- 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 })))));
8704
8751
  });
8705
8752
  Pagination.displayName = 'Pagination';
8706
8753
  Pagination.propTypes = {
@@ -8708,17 +8755,18 @@ Pagination.propTypes = {
8708
8755
  itemsPerPage: PropTypes.number,
8709
8756
  currentPage: PropTypes.number,
8710
8757
  statusLabel: PropTypes.element,
8711
- firstPageLabel: PropTypes.string,
8712
- previousPageLabel: PropTypes.string,
8713
- nextPageLabel: PropTypes.string,
8714
- lastPageLabel: PropTypes.string,
8758
+ firstPageLabel: contentNode,
8759
+ previousPageLabel: contentNode,
8760
+ nextPageLabel: contentNode,
8761
+ lastPageLabel: contentNode,
8715
8762
  onNextPageClick: PropTypes.func,
8716
8763
  onPreviousPageClick: PropTypes.func,
8717
8764
  onFirstPageClick: PropTypes.func,
8718
8765
  onLastPageClick: PropTypes.func,
8719
8766
  // @ts-expect-error
8720
8767
  tooltipPlacement: PropTypes.string,
8721
- className: PropTypes.string
8768
+ className: PropTypes.string,
8769
+ thin: PropTypes.bool
8722
8770
  };
8723
8771
 
8724
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>;
@@ -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;
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.4bf529af",
3
+ "version": "5.0.0-canary.4c176db1",
4
4
  "description": "Fully accessible react components library for Deque Cauldron",
5
5
  "homepage": "https://cauldron.dequelabs.com/",
6
6
  "publishConfig": {