@deque/cauldron-react 3.0.1-canary.c9337864 → 3.0.1-canary.cfc22419

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.
@@ -8,19 +8,17 @@ var React__default = _interopDefault(React);
8
8
  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); }
9
9
 
10
10
  var _ref = /*#__PURE__*/React.createElement("path", {
11
- d: "M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z",
12
- vectorEffect: "non-scaling-stroke",
13
- fill: "currentColor"
11
+ d: "M20 12l-1.41-1.41L13 16.17V4h-2v12.17l-5.58-5.59L4 12l8 8 8-8z",
12
+ fill: "currentColor",
13
+ vectorEffect: "non-scaling-stroke"
14
14
  });
15
15
 
16
16
  function SvgArrow(props) {
17
17
  return /*#__PURE__*/React.createElement("svg", _extends({
18
18
  overflow: "visible",
19
19
  preserveAspectRatio: "none",
20
- viewBox: "0 0 24 24",
21
- width: 28,
22
- height: 28,
23
- transform: "rotate(180)"
20
+ width: 24,
21
+ height: 24
24
22
  }, props), _ref);
25
23
  }
26
24
 
@@ -8,19 +8,17 @@ var React__default = _interopDefault(React);
8
8
  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); }
9
9
 
10
10
  var _ref = /*#__PURE__*/React.createElement("path", {
11
- d: "M17.33 12.67c-.01.37-.3.66-.67.67h-5.22l2 2c.25.26.25.68 0 .94l-.95.95c-.26.25-.68.25-.94 0L6.8 12.47a.683.683 0 010-.94l4.72-4.72c.26-.25.68-.25.94 0l.95.95c.26.25.27.66.02.92l-.02.02-2 2h5.23c.37.01.66.3.67.67v1.33l.02-.03zM18.92 8A8.016 8.016 0 0016 5.08 7.798 7.798 0 0012 4c-1.41-.01-2.79.37-4 1.08-1.21.7-2.22 1.71-2.92 2.92A7.798 7.798 0 004 12c-.01 1.41.36 2.79 1.07 4 .7 1.21 1.71 2.22 2.93 2.92 1.21.71 2.59 1.09 4 1.08 1.41.01 2.79-.36 4-1.07 1.21-.7 2.22-1.71 2.92-2.93A7.798 7.798 0 0020 12c.01-1.41-.37-2.79-1.08-4z",
12
- vectorEffect: "non-scaling-stroke",
13
- fill: "currentColor"
11
+ d: "M17.37 12c0 .18-.06.35-.19.47l-4.71 4.73c-.26.25-.68.25-.94 0l-4.71-4.72a.683.683 0 010-.94l.95-.95c.25-.26.66-.27.92-.02l.02.02 2 2V7.34c.01-.37.3-.66.67-.67h1.33c.37.01.66.3.67.67v5.23l2-2c.26-.25.68-.25.94 0l.95.95c.13.12.19.29.19.47l-.09.01zm1.55-4A8.016 8.016 0 0016 5.08 7.798 7.798 0 0012 4c-1.41-.01-2.79.37-4 1.08-1.21.7-2.22 1.71-2.92 2.92A7.798 7.798 0 004 12c-.01 1.41.36 2.79 1.07 4 .7 1.21 1.71 2.22 2.93 2.92 1.21.71 2.59 1.09 4 1.08 1.41.01 2.79-.36 4-1.07 1.21-.7 2.22-1.71 2.92-2.93A7.798 7.798 0 0020 12c.01-1.41-.37-2.79-1.08-4z",
12
+ fill: "currentColor",
13
+ vectorEffect: "non-scaling-stroke"
14
14
  });
15
15
 
16
16
  function SvgArrowCircle(props) {
17
17
  return /*#__PURE__*/React.createElement("svg", _extends({
18
18
  overflow: "visible",
19
19
  preserveAspectRatio: "none",
20
- viewBox: "0 0 24 24",
21
- width: 17,
22
- height: 17,
23
- transform: "rotate(180)"
20
+ width: 24,
21
+ height: 24
24
22
  }, props), _ref);
25
23
  }
26
24
 
@@ -18,8 +18,8 @@ function SvgArrowsAlt(props) {
18
18
  overflow: "visible",
19
19
  preserveAspectRatio: "none",
20
20
  viewBox: "0 0 512 512",
21
- width: 28,
22
- height: 28
21
+ width: 24,
22
+ height: 24
23
23
  }, props), _ref);
24
24
  }
25
25
 
package/lib/cauldron.css CHANGED
@@ -48,19 +48,19 @@ a.Button--primary {
48
48
  display: block;
49
49
  }
50
50
 
51
- /* Icon--right is the default orientation */
51
+ /* Icon--down is the default orientation */
52
52
 
53
- .Icon__right {
54
- }
55
-
56
- .Icon__left {
57
- transform: scaleX(-1);
53
+ .Icon__down {
58
54
  }
59
55
 
60
56
  .Icon__up {
61
- transform: rotate(-90deg);
57
+ transform: scaleY(-1);
62
58
  }
63
59
 
64
- .Icon__down {
60
+ .Icon__left {
65
61
  transform: rotate(90deg);
66
62
  }
63
+
64
+ .Icon__right {
65
+ transform: rotate(-90deg);
66
+ }
@@ -8,18 +8,17 @@ var React__default = _interopDefault(React);
8
8
  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); }
9
9
 
10
10
  var _ref = /*#__PURE__*/React.createElement("path", {
11
- d: "M15.02 12a.35.35 0 00-.1-.24l-4.83-4.85a.332.332 0 00-.47-.01l-.01.01-.52.52c-.14.13-.14.33-.02.47l.01.01 4.1 4.09-4.1 4.09c-.13.13-.14.33-.01.47l.01.01.52.52c.13.13.33.14.47.01l.01-.01 4.85-4.85c.06-.07.09-.15.09-.24z",
12
- vectorEffect: "non-scaling-stroke",
13
- fill: "currentColor"
11
+ d: "M17.2 9.84a.35.35 0 00-.1-.24l-.52-.52a.332.332 0 00-.47-.01l-.01.01-4.1 4.1-4.09-4.1a.333.333 0 00-.47-.02l-.01.01-.52.53c-.13.13-.14.33-.01.47l.01.01 4.85 4.85c.13.13.33.14.47.01l.01-.01 4.85-4.85c.06-.06.1-.15.1-.24h.01z",
12
+ fill: "currentColor",
13
+ vectorEffect: "non-scaling-stroke"
14
14
  });
15
15
 
16
16
  function SvgChevron(props) {
17
17
  return /*#__PURE__*/React.createElement("svg", _extends({
18
18
  overflow: "visible",
19
19
  preserveAspectRatio: "none",
20
- viewBox: "0 0 24 24",
21
- width: 25,
22
- height: 25
20
+ width: 24,
21
+ height: 24
23
22
  }, props), _ref);
24
23
  }
25
24
 
@@ -8,18 +8,17 @@ var React__default = _interopDefault(React);
8
8
  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); }
9
9
 
10
10
  var _ref = /*#__PURE__*/React.createElement("path", {
11
- d: "M13.02 12a.35.35 0 00-.1-.24L8.09 6.91a.332.332 0 00-.47-.01l-.01.01-.52.52c-.14.13-.14.33-.02.47l.01.01 4.1 4.09-4.08 4.09c-.13.13-.14.33-.01.47l.01.01.52.52c.13.13.33.14.47.01l.01-.01 4.85-4.85c.05-.07.07-.15.07-.24zm4 0a.35.35 0 00-.1-.24l-4.83-4.85a.332.332 0 00-.47-.01l-.01.01-.52.52c-.13.13-.14.33-.01.47l.01.01 4.1 4.09-4.09 4.09c-.13.13-.14.33-.01.47l.01.01.52.52c.13.13.33.14.47.01l.01-.01 4.85-4.85c.05-.07.07-.15.07-.24z",
12
- vectorEffect: "non-scaling-stroke",
13
- fill: "currentColor"
11
+ d: "M17.2 11.84a.35.35 0 00-.1-.24l-.52-.52a.332.332 0 00-.47-.01l-.01.01-4.1 4.1-4.09-4.1a.332.332 0 00-.47-.01l-.01.01-.52.52c-.13.13-.14.33-.01.47l.01.01 4.85 4.85c.13.13.33.14.47.01l.01-.01 4.85-4.85c.06-.06.1-.15.1-.24h.01zm0-4a.35.35 0 00-.1-.24l-.52-.52a.332.332 0 00-.47-.01l-.01.01-4.1 4.1-4.09-4.09a.333.333 0 00-.47-.02l-.01.01-.52.53a.32.32 0 00-.02.46l.01.01 4.85 4.85c.13.13.33.14.47.01l.01-.01 4.85-4.85c.06-.06.1-.15.1-.24h.02z",
12
+ fill: "currentColor",
13
+ vectorEffect: "non-scaling-stroke"
14
14
  });
15
15
 
16
16
  function SvgChevronDouble(props) {
17
17
  return /*#__PURE__*/React.createElement("svg", _extends({
18
18
  overflow: "visible",
19
19
  preserveAspectRatio: "none",
20
- viewBox: "0 0 24 24",
21
- width: 25,
22
- height: 25
20
+ width: 24,
21
+ height: 24
23
22
  }, props), _ref);
24
23
  }
25
24
 
@@ -0,0 +1,17 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import IconButton from '../IconButton';
4
+ declare const IssuePanel: {
5
+ ({ className, title, actions, children }: {
6
+ className?: string | undefined;
7
+ title?: string | undefined;
8
+ actions?: import("../../utils/polymorphic-type").ForwardRefComponent<"button", import("../IconButton").IconButtonOwnProps>[] | undefined;
9
+ children: React.ReactNode;
10
+ }): JSX.Element;
11
+ displayName: string;
12
+ propTypes: {
13
+ children: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
14
+ className: PropTypes.Requireable<string>;
15
+ };
16
+ };
17
+ export default IssuePanel;
@@ -1,12 +1,11 @@
1
1
  import React from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  export interface LoaderProps extends React.HTMLAttributes<HTMLDivElement> {
4
- label: string;
4
+ label?: string;
5
5
  }
6
- declare function Loader({ label, className, ...other }: LoaderProps): JSX.Element;
6
+ declare function Loader({ className, label, ...other }: LoaderProps): JSX.Element;
7
7
  declare namespace Loader {
8
8
  var propTypes: {
9
- label: PropTypes.Requireable<string>;
10
9
  className: PropTypes.Requireable<string>;
11
10
  };
12
11
  var displayName: string;
@@ -1,16 +1,20 @@
1
- import React from 'react';
1
+ import { HTMLAttributes, ReactElement, ReactNode } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import IconButton from '../IconButton';
3
+ interface PanelProps extends HTMLAttributes<HTMLElement> {
4
+ children: ReactNode;
5
+ heading: ReactElement<any> | {
6
+ id?: string;
7
+ text: ReactElement<any>;
8
+ level: number | undefined;
9
+ };
10
+ className?: string;
11
+ }
4
12
  declare const Panel: {
5
- ({ className, title, actions, children }: {
6
- className?: string | undefined;
7
- title?: string | undefined;
8
- actions?: import("../../utils/polymorphic-type").ForwardRefComponent<"button", import("../IconButton").IconButtonOwnProps>[] | undefined;
9
- children: React.ReactNode;
10
- }): JSX.Element;
13
+ ({ children, className, heading, ...other }: PanelProps): JSX.Element;
11
14
  displayName: string;
12
15
  propTypes: {
13
16
  children: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
17
+ heading: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
14
18
  className: PropTypes.Requireable<string>;
15
19
  };
16
20
  };
@@ -5,6 +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
9
  }
9
10
  interface SideBarState {
10
11
  wide: boolean;
@@ -17,9 +17,8 @@ function SvgFilter(props) {
17
17
  return /*#__PURE__*/React.createElement("svg", _extends({
18
18
  overflow: "visible",
19
19
  preserveAspectRatio: "none",
20
- viewBox: "0 0 24 24",
21
- width: 32,
22
- height: 32
20
+ width: 24,
21
+ height: 24
23
22
  }, props), _ref);
24
23
  }
25
24
 
package/lib/index.d.ts CHANGED
@@ -42,6 +42,7 @@ export { default as Tabs, Tab, TabPanel } from './components/Tabs';
42
42
  export { DescriptionList, DescriptionListItem, DescriptionTerm, DescriptionDetails } from './components/DescriptionList';
43
43
  export { default as Stepper, Step } from './components/Stepper';
44
44
  export { default as Panel } from './components/Panel';
45
+ export { default as IssuePanel } from './components/IssuePanel';
45
46
  export { default as ProgressBar } from './components/ProgressBar';
46
47
  export { Address, AddressLine, AddressCityStateZip } from './components/Address';
47
48
  /**
package/lib/index.js CHANGED
@@ -193,9 +193,9 @@ var iconTypes = [
193
193
  function __variableDynamicImportRuntime0__(path) {
194
194
  switch (path) {
195
195
  case './icons/add-user.svg': return Promise.resolve().then(function () { return require('./add-user-075c63a1.js'); });
196
- case './icons/arrow-circle.svg': return Promise.resolve().then(function () { return require('./arrow-circle-7b95a2fd.js'); });
197
- case './icons/arrow.svg': return Promise.resolve().then(function () { return require('./arrow-97011665.js'); });
198
- case './icons/arrows-alt.svg': return Promise.resolve().then(function () { return require('./arrows-alt-b91e24b7.js'); });
196
+ case './icons/arrow-circle.svg': return Promise.resolve().then(function () { return require('./arrow-circle-858d89b5.js'); });
197
+ case './icons/arrow.svg': return Promise.resolve().then(function () { return require('./arrow-36f5cb02.js'); });
198
+ case './icons/arrows-alt.svg': return Promise.resolve().then(function () { return require('./arrows-alt-57b6a0ac.js'); });
199
199
  case './icons/bolt.svg': return Promise.resolve().then(function () { return require('./bolt-e44406fd.js'); });
200
200
  case './icons/caution.svg': return Promise.resolve().then(function () { return require('./caution-e048e1bf.js'); });
201
201
  case './icons/check-circle.svg': return Promise.resolve().then(function () { return require('./check-circle-8b5069b4.js'); });
@@ -204,8 +204,8 @@ function __variableDynamicImportRuntime0__(path) {
204
204
  case './icons/check.svg': return Promise.resolve().then(function () { return require('./check-c2912d5e.js'); });
205
205
  case './icons/checkbox-checked.svg': return Promise.resolve().then(function () { return require('./checkbox-checked-a262e99c.js'); });
206
206
  case './icons/checkbox-unchecked.svg': return Promise.resolve().then(function () { return require('./checkbox-unchecked-2ad5b4ae.js'); });
207
- case './icons/chevron-double.svg': return Promise.resolve().then(function () { return require('./chevron-double-65975fca.js'); });
208
- case './icons/chevron.svg': return Promise.resolve().then(function () { return require('./chevron-064d5f96.js'); });
207
+ case './icons/chevron-double.svg': return Promise.resolve().then(function () { return require('./chevron-double-42e4b50e.js'); });
208
+ case './icons/chevron.svg': return Promise.resolve().then(function () { return require('./chevron-cbfd92ec.js'); });
209
209
  case './icons/close.svg': return Promise.resolve().then(function () { return require('./close-31ce4dcf.js'); });
210
210
  case './icons/code.svg': return Promise.resolve().then(function () { return require('./code-e3365341.js'); });
211
211
  case './icons/copy.svg': return Promise.resolve().then(function () { return require('./copy-d2ade017.js'); });
@@ -213,7 +213,7 @@ function __variableDynamicImportRuntime0__(path) {
213
213
  case './icons/exchange.svg': return Promise.resolve().then(function () { return require('./exchange-1d290efb.js'); });
214
214
  case './icons/external-link.svg': return Promise.resolve().then(function () { return require('./external-link-ef122c95.js'); });
215
215
  case './icons/eye.svg': return Promise.resolve().then(function () { return require('./eye-a0d28243.js'); });
216
- case './icons/filter.svg': return Promise.resolve().then(function () { return require('./filter-d2057f4c.js'); });
216
+ case './icons/filter.svg': return Promise.resolve().then(function () { return require('./filter-b206c760.js'); });
217
217
  case './icons/flag.svg': return Promise.resolve().then(function () { return require('./flag-fb248a99.js'); });
218
218
  case './icons/gears.svg': return Promise.resolve().then(function () { return require('./gears-b9ee1585.js'); });
219
219
  case './icons/grid.svg': return Promise.resolve().then(function () { return require('./grid-ee446118.js'); });
@@ -246,7 +246,7 @@ function __variableDynamicImportRuntime0__(path) {
246
246
  case './icons/tag.svg': return Promise.resolve().then(function () { return require('./tag-56c32f4f.js'); });
247
247
  case './icons/target.svg': return Promise.resolve().then(function () { return require('./target-50f179e0.js'); });
248
248
  case './icons/trash.svg': return Promise.resolve().then(function () { return require('./trash-896a3291.js'); });
249
- case './icons/triangle.svg': return Promise.resolve().then(function () { return require('./triangle-51d7723a.js'); });
249
+ case './icons/triangle.svg': return Promise.resolve().then(function () { return require('./triangle-42e0eece.js'); });
250
250
  case './icons/upload.svg': return Promise.resolve().then(function () { return require('./upload-d71f0e44.js'); });
251
251
  default: return Promise.reject(new Error("Unknown variable dynamic import: " + path));
252
252
  }
@@ -1150,11 +1150,11 @@ var SideBar = /** @class */ (function (_super) {
1150
1150
  var _a = this.state, animateClass = _a.animateClass, wide = _a.wide;
1151
1151
  // disabling no-unused-vars to prevent onDismiss from being passed through to dom element
1152
1152
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
1153
- var _b = this.props, children = _b.children, className = _b.className, show = _b.show, onDismiss = _b.onDismiss, other = tslib.__rest(_b, ["children", "className", "show", "onDismiss"]);
1153
+ var _b = this.props, children = _b.children, className = _b.className, show = _b.show, onDismiss = _b.onDismiss, navProps = _b.navProps, other = tslib.__rest(_b, ["children", "className", "show", "onDismiss", "navProps"]);
1154
1154
  /* eslint-disable jsx-a11y/no-noninteractive-element-interactions */
1155
1155
  return (React__default.createElement(React.Fragment, null,
1156
1156
  React__default.createElement(ClickOutsideListener, { onClickOutside: this.handleClickOutside },
1157
- React__default.createElement("nav", null,
1157
+ React__default.createElement("nav", tslib.__assign({}, navProps),
1158
1158
  React__default.createElement("ul", tslib.__assign({ className: classNames('SideBar', className, animateClass) }, other, { ref: this.navList, onKeyDown: this.onKeyDown }), children))),
1159
1159
  React__default.createElement(Scrim, { show: !wide && show })));
1160
1160
  /* eslint-enable jsx-a11y/no-noninteractive-element-interactions */
@@ -1643,6 +1643,13 @@ var IconButton = React.forwardRef(function (_a, ref) {
1643
1643
  accessibilityProps['aria-disabled'] = disabled;
1644
1644
  }
1645
1645
  }
1646
+ React.useEffect(function () {
1647
+ var _a;
1648
+ if (!disabled) {
1649
+ return;
1650
+ }
1651
+ (_a = internalRef.current) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-label', label);
1652
+ }, [disabled]);
1646
1653
  return (React__default.createElement(React__default.Fragment, null,
1647
1654
  React__default.createElement(Component, tslib.__assign({ className: classNames(className, {
1648
1655
  IconButton: true,
@@ -2186,22 +2193,18 @@ Link.propTypes = {
2186
2193
  Link.displayName = 'Link';
2187
2194
 
2188
2195
  function Loader(_a) {
2189
- var label = _a.label, className = _a.className, other = tslib.__rest(_a, ["label", "className"]);
2190
- var props = tslib.__assign(tslib.__assign({}, other), { className: classNames('Loader', className), 'aria-hidden': !label });
2191
- if (label) {
2192
- props.role = 'progressbar';
2193
- props['aria-valuetext'] = label;
2194
- props['aria-busy'] = true;
2195
- props['aria-valuemin'] = 0;
2196
- props['aria-valuemax'] = 100;
2197
- // According to the ARIA 1.2 spec (https://www.w3.org/TR/wai-aria-1.2/#progressbar),
2198
- // the aria-valuenow attribute SHOULD be omitted because the "value" of our progress
2199
- // is "indeterminate".
2196
+ var className = _a.className, label = _a.label, other = tslib.__rest(_a, ["className", "label"]);
2197
+ var props = tslib.__assign(tslib.__assign({}, other), { className: classNames('Loader', className) });
2198
+ if (label === null || label === void 0 ? void 0 : label.length) {
2199
+ props['role'] = 'alert';
2200
+ props.children = React__default.createElement(Offscreen, null, label);
2201
+ }
2202
+ else {
2203
+ props['aria-hidden'] = true;
2200
2204
  }
2201
2205
  return React__default.createElement("div", tslib.__assign({}, props));
2202
2206
  }
2203
2207
  Loader.propTypes = {
2204
- label: PropTypes.string,
2205
2208
  className: PropTypes.string
2206
2209
  };
2207
2210
  Loader.displayName = 'Loader';
@@ -8047,6 +8050,25 @@ Tab.propTypes = {
8047
8050
  children: PropTypes.node
8048
8051
  };
8049
8052
 
8053
+ /**
8054
+ * Hook to be used similarly to the React.Component#componentDidMount.
8055
+ * Executes the provided `effect` when `dependencies` change but does not
8056
+ * execute the effect initially (on mount) - only on update.
8057
+ *
8058
+ * @param effect {Function} function to be executed when dependencies update
8059
+ * @param dependencies {Any} any valid dependency argument to React.useEffect
8060
+ */
8061
+ var useDidUpdate = function (effect, dependencies) {
8062
+ var mounted = React__default.useRef(false);
8063
+ React__default.useEffect(function () {
8064
+ if (!mounted.current) {
8065
+ mounted.current = true;
8066
+ return;
8067
+ }
8068
+ effect();
8069
+ }, dependencies);
8070
+ };
8071
+
8050
8072
  var Tabs = function (_a) {
8051
8073
  var children = _a.children, thin = _a.thin, _b = _a.initialActiveIndex, initialActiveIndex = _b === void 0 ? 0 : _b, className = _a.className, onChange = _a.onChange, labelProp = tslib.__rest(_a, ["children", "thin", "initialActiveIndex", "className", "onChange"]);
8052
8074
  var _c = React.useState(initialActiveIndex), activeIndex = _c[0], setActiveIndex = _c[1];
@@ -8213,15 +8235,34 @@ Stepper.propTypes = {
8213
8235
  };
8214
8236
 
8215
8237
  var Panel = function (_a) {
8216
- var className = _a.className, _b = _a.title, title = _b === void 0 ? '' : _b, actions = _a.actions, children = _a.children;
8217
- return (React__default.createElement("div", { className: classNames('Panel', className) },
8218
- React__default.createElement("div", { className: "Panel__Header" },
8219
- title && React__default.createElement("div", { className: "Panel__Header-title" }, title),
8220
- actions && React__default.createElement("div", { className: "Panel__Header-actions" }, actions)),
8221
- React__default.createElement("div", { className: "Panel__Content" }, children)));
8238
+ var children = _a.children, className = _a.className, heading = _a.heading, other = tslib.__rest(_a, ["children", "className", "heading"]);
8239
+ var Heading = "h" + (typeof heading === 'object' && 'level' in heading && !!heading.level
8240
+ ? heading.level
8241
+ : 2);
8242
+ var headingId = typeof heading === 'object' && 'id' in heading ? heading.id : randomId();
8243
+ return (React__default.createElement("section", tslib.__assign({ "aria-labelledby": headingId, className: classNames('Panel', className) }, other),
8244
+ React__default.createElement(Heading, { id: headingId, className: "Panel__Heading" }, typeof heading === 'object' && 'text' in heading
8245
+ ? heading.text
8246
+ : heading),
8247
+ children));
8222
8248
  };
8223
8249
  Panel.displayName = 'Panel';
8224
8250
  Panel.propTypes = {
8251
+ children: PropTypes.node.isRequired,
8252
+ heading: PropTypes.oneOfType([PropTypes.object, PropTypes.node]).isRequired,
8253
+ className: PropTypes.string
8254
+ };
8255
+
8256
+ var IssuePanel = function (_a) {
8257
+ var className = _a.className, _b = _a.title, title = _b === void 0 ? '' : _b, actions = _a.actions, children = _a.children;
8258
+ return (React__default.createElement("div", { className: classNames('IssuePanel', className) },
8259
+ React__default.createElement("div", { className: "IssuePanel__Header" },
8260
+ title && React__default.createElement("div", { className: "IssuePanel__Header-title" }, title),
8261
+ actions && React__default.createElement("div", { className: "IssuePanel__Header-actions" }, actions)),
8262
+ React__default.createElement("div", { className: "IssuePanel__Content" }, children)));
8263
+ };
8264
+ IssuePanel.displayName = 'IssuePanel';
8265
+ IssuePanel.propTypes = {
8225
8266
  children: PropTypes.node.isRequired,
8226
8267
  className: PropTypes.string
8227
8268
  };
@@ -8266,25 +8307,6 @@ AddressCityStateZip.propTypes = {
8266
8307
  className: PropTypes.string
8267
8308
  };
8268
8309
 
8269
- /**
8270
- * Hook to be used similarly to the React.Component#componentDidMount.
8271
- * Executes the provided `effect` when `dependencies` change but does not
8272
- * execute the effect initially (on mount) - only on update.
8273
- *
8274
- * @param effect {Function} function to be executed when dependencies update
8275
- * @param dependencies {Any} any valid dependency argument to React.useEffect
8276
- */
8277
- var useDidUpdate = function (effect, dependencies) {
8278
- var mounted = React__default.useRef(false);
8279
- React__default.useEffect(function () {
8280
- if (!mounted.current) {
8281
- mounted.current = true;
8282
- return;
8283
- }
8284
- effect();
8285
- }, dependencies);
8286
- };
8287
-
8288
8310
  var LIGHT_THEME_CLASS = 'cauldron--theme-light';
8289
8311
  var DARK_THEME_CLASS = 'cauldron--theme-dark';
8290
8312
  var ThemeContext = React.createContext({});
@@ -8359,6 +8381,7 @@ exports.DialogFooter = DialogFooter;
8359
8381
  exports.ExpandCollapsePanel = ExpandCollapsePanel;
8360
8382
  exports.Icon = Icon;
8361
8383
  exports.IconButton = IconButton;
8384
+ exports.IssuePanel = IssuePanel;
8362
8385
  exports.Layout = Layout;
8363
8386
  exports.Line = Line;
8364
8387
  exports.Link = Link;
@@ -9,18 +9,16 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
9
9
 
10
10
  var _ref = /*#__PURE__*/React.createElement("path", {
11
11
  d: "M7 10l5 5 5-5z",
12
- vectorEffect: "non-scaling-stroke",
13
- fill: "currentColor"
12
+ fill: "currentColor",
13
+ vectorEffect: "non-scaling-stroke"
14
14
  });
15
15
 
16
16
  function SvgTriangle(props) {
17
17
  return /*#__PURE__*/React.createElement("svg", _extends({
18
18
  overflow: "visible",
19
19
  preserveAspectRatio: "none",
20
- viewBox: "0 0 24 24",
21
- width: 32,
22
- height: 32,
23
- transform: "rotate(270)"
20
+ width: 24,
21
+ height: 24
24
22
  }, props), _ref);
25
23
  }
26
24
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deque/cauldron-react",
3
- "version": "3.0.1-canary.c9337864",
3
+ "version": "3.0.1-canary.cfc22419",
4
4
  "description": "Fully accessible react components library for Deque Cauldron",
5
5
  "publishConfig": {
6
6
  "access": "public"