carbon-react 88.0.0 → 89.3.0

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.
Files changed (47) hide show
  1. package/lib/__internal__/input/input.component.js +2 -1
  2. package/lib/__spec_helper__/mock-date-helper.js +2 -1
  3. package/lib/components/action-toolbar/action-toolbar.component.js +6 -7
  4. package/lib/components/app-wrapper/app-wrapper.component.js +2 -5
  5. package/lib/components/configurable-items/configurable-item-row/configurable-item-row.component.js +6 -8
  6. package/lib/components/configurable-items/configurable-items.component.js +1 -2
  7. package/lib/components/content/content.component.js +1 -1
  8. package/lib/components/content/content.d.ts +1 -1
  9. package/lib/components/date/date.component.js +1 -2
  10. package/lib/components/date-range/date-range.component.js +1 -2
  11. package/lib/components/decimal/decimal.component.js +1 -2
  12. package/lib/components/detail/detail.component.js +2 -3
  13. package/lib/components/drag-and-drop/custom-drag-layer/custom-drag-layer.js +2 -3
  14. package/lib/components/drag-and-drop/draggable-context/draggable-context.js +10 -11
  15. package/lib/components/drag-and-drop/with-drag/with-drag.js +4 -6
  16. package/lib/components/drag-and-drop/with-drop/with-drop.js +4 -6
  17. package/lib/components/flat-table/flat-table-row/flat-table-row.component.js +2 -1
  18. package/lib/components/heading/heading.component.js +4 -8
  19. package/lib/components/i18n-provider/i18n-provider.d.ts +3 -94
  20. package/lib/components/icon/icon.component.js +4 -3
  21. package/lib/components/mount-in-app/mount-in-app.js +2 -5
  22. package/lib/components/multi-step-wizard/multi-step-wizard.js +14 -17
  23. package/lib/components/multi-step-wizard/step/step.js +6 -9
  24. package/lib/components/pod/pod.component.js +185 -390
  25. package/lib/components/scrollable-list/scrollable-list.component.js +2 -3
  26. package/lib/components/show-edit-pod/show-edit-pod.component.js +1 -3
  27. package/lib/components/sidebar/sidebar.component.js +2 -1
  28. package/lib/components/table/table.component.js +1 -3
  29. package/lib/components/text-editor/text-editor.component.js +2 -1
  30. package/lib/components/textarea/textarea.component.js +1 -3
  31. package/lib/components/{pod/pod-manager.component.js → tile-select/__internal__/accordion/accordion.component.js} +30 -30
  32. package/lib/components/tile-select/__internal__/accordion/accordion.d.ts +13 -0
  33. package/lib/components/tile-select/__internal__/accordion/accordion.style.js +30 -0
  34. package/lib/components/tile-select/__internal__/accordion/index.js +15 -0
  35. package/lib/components/tile-select/tile-select.component.js +39 -10
  36. package/lib/components/tile-select/tile-select.d.ts +6 -0
  37. package/lib/components/tile-select/tile-select.style.js +17 -1
  38. package/lib/locales/en-gb.d.ts +5 -0
  39. package/lib/locales/en-gb.js +2 -3
  40. package/lib/locales/index.d.ts +2 -0
  41. package/lib/locales/locale.d.ts +96 -0
  42. package/lib/patterns/configurable-items/configurable-items-content/configurable-items-content.js +2 -3
  43. package/lib/patterns/configurable-items/configurable-items.js +2 -2
  44. package/lib/utils/helpers/with-unique-id-props/with-unique-id-props.hoc.js +2 -2
  45. package/package.json +8 -6
  46. package/lib/components/pod/pod-context.js +0 -12
  47. package/lib/components/pod/pod-manager.d.ts +0 -9
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
@@ -19,416 +19,217 @@ var _tags = _interopRequireDefault(require("../../utils/helpers/tags/tags"));
19
19
 
20
20
  var _i18nContext = _interopRequireDefault(require("../../__internal__/i18n-context"));
21
21
 
22
- var _podContext = _interopRequireDefault(require("./pod-context"));
23
-
24
22
  var _podStyle = require("./pod.style.js");
25
23
 
26
24
  var _icon = _interopRequireDefault(require("../icon"));
27
25
 
28
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
29
27
 
30
- 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); }
28
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
31
29
 
32
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
30
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
31
 
34
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
32
+ 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); }
35
33
 
36
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
34
+ const marginPropTypes = (0, _utils.filterStyledSystemMarginProps)(_propTypes2.default.space);
35
+ const Pod = /*#__PURE__*/(0, _react.forwardRef)(({
36
+ alignTitle = "left",
37
+ border = true,
38
+ children,
39
+ className,
40
+ displayEditButtonOnHover,
41
+ editContentFullWidth,
42
+ footer,
43
+ height,
44
+ internalEditButton,
45
+ onDelete,
46
+ onEdit,
47
+ onUndo,
48
+ size = "medium",
49
+ softDelete,
50
+ subtitle,
51
+ title,
52
+ triggerEditOnContent,
53
+ variant = "primary",
54
+ ...rest
55
+ }, ref) => {
56
+ const [isEditFocused, setEditFocused] = (0, _react.useState)(false);
57
+ const [isEditHovered, setEditHovered] = (0, _react.useState)(false);
58
+ const [isDeleteFocused, setDeleteFocused] = (0, _react.useState)(false);
59
+ const [isDeleteHovered, setDeleteHovered] = (0, _react.useState)(false);
60
+ const [isUndoFocused, setUndoFocused] = (0, _react.useState)(false);
61
+ const [isUndoHovered, setUndoHovered] = (0, _react.useState)(false);
62
+ let podHeight;
63
+
64
+ if (height && typeof height === "number") {
65
+ podHeight = `${height}px`;
66
+ } else if (height) {
67
+ podHeight = height;
68
+ }
37
69
 
38
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
70
+ const shouldContentHaveEditEvents = (0, _react.useCallback)(() => {
71
+ return (triggerEditOnContent || displayEditButtonOnHover) && onEdit;
72
+ }, [displayEditButtonOnHover, onEdit, triggerEditOnContent]);
39
73
 
40
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
74
+ const processPodAction = action => ev => {
75
+ if (_events.default.isEnterKey(ev) || !_events.default.isEventType(ev, "keydown")) {
76
+ ev.preventDefault();
77
+ action(ev);
78
+ }
79
+ };
80
+
81
+ function editEvents() {
82
+ const editProps = {
83
+ onMouseEnter: () => setEditHovered(true),
84
+ onMouseLeave: () => setEditHovered(false),
85
+ onFocus: () => setEditFocused(true),
86
+ onBlur: () => setEditFocused(false)
87
+ };
88
+
89
+ if (typeof onEdit === "function") {
90
+ editProps.onClick = processPodAction(onEdit);
91
+ editProps.onKeyDown = processPodAction(onEdit);
92
+ }
41
93
 
42
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
94
+ return editProps;
95
+ }
43
96
 
44
- function _possibleConstructorReturn(self, call) { if (call && (typeof call === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
97
+ function podHeader() {
98
+ if (!title) {
99
+ return null;
100
+ }
45
101
 
46
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
102
+ return /*#__PURE__*/_react.default.createElement(_podStyle.StyledHeader, {
103
+ alignTitle: alignTitle,
104
+ internalEditButton: internalEditButton,
105
+ size: size
106
+ }, /*#__PURE__*/_react.default.createElement(_podStyle.StyledTitle, {
107
+ "data-element": "title"
108
+ }, title), subtitle && /*#__PURE__*/_react.default.createElement(_podStyle.StyledSubtitle, {
109
+ "data-element": "subtitle"
110
+ }, subtitle));
111
+ }
47
112
 
48
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
113
+ function renderFooter() {
114
+ if (!footer) {
115
+ return null;
116
+ }
49
117
 
50
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
118
+ return /*#__PURE__*/_react.default.createElement(_podStyle.StyledFooter, {
119
+ "data-element": "footer",
120
+ size: size,
121
+ variant: variant,
122
+ softDelete: softDelete
123
+ }, footer);
124
+ }
51
125
 
52
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
126
+ function actionButtons() {
127
+ if (softDelete && onUndo) {
128
+ return /*#__PURE__*/_react.default.createElement(_podStyle.StyledActionsContainer, {
129
+ internalEditButton: internalEditButton
130
+ }, undo());
131
+ }
53
132
 
54
- const marginPropTypes = (0, _utils.filterStyledSystemMarginProps)(_propTypes2.default.space);
133
+ if (!softDelete && (onDelete || onEdit)) {
134
+ return /*#__PURE__*/_react.default.createElement(_podStyle.StyledActionsContainer, {
135
+ internalEditButton: internalEditButton
136
+ }, onEdit && edit(), onDelete && renderDelete());
137
+ }
55
138
 
56
- let Pod = /*#__PURE__*/function (_React$Component) {
57
- _inherits(Pod, _React$Component);
58
-
59
- var _super = _createSuper(Pod);
60
-
61
- function Pod(...args) {
62
- var _this;
63
-
64
- _classCallCheck(this, Pod);
65
-
66
- _this = _super.call(this, ...args);
67
-
68
- _defineProperty(_assertThisInitialized(_this), "state", {
69
- isEditHovered: false,
70
- isEditFocused: false,
71
- isDeleteHovered: false,
72
- isDeleteFocused: false,
73
- isUndoHovered: false,
74
- isUndoFocused: false
75
- });
76
-
77
- _defineProperty(_assertThisInitialized(_this), "handleEditMouseEnter", () => {
78
- _this.setState({
79
- isEditHovered: true
80
- });
81
- });
82
-
83
- _defineProperty(_assertThisInitialized(_this), "handleEditMouseLeave", () => {
84
- _this.setState({
85
- isEditHovered: false
86
- });
87
- });
88
-
89
- _defineProperty(_assertThisInitialized(_this), "handleEditFocus", () => {
90
- _this.setState({
91
- isEditFocused: true
92
- });
93
- });
94
-
95
- _defineProperty(_assertThisInitialized(_this), "handleEditBlur", () => {
96
- _this.setState({
97
- isEditFocused: false
98
- });
99
- });
100
-
101
- _defineProperty(_assertThisInitialized(_this), "handleDeleteMouseEnter", () => {
102
- _this.setState({
103
- isDeleteHovered: true
104
- });
105
- });
106
-
107
- _defineProperty(_assertThisInitialized(_this), "handleDeleteMouseLeave", () => {
108
- _this.setState({
109
- isDeleteHovered: false
110
- });
111
- });
112
-
113
- _defineProperty(_assertThisInitialized(_this), "handleDeleteFocus", () => {
114
- _this.setState({
115
- isDeleteFocused: true
116
- });
117
- });
118
-
119
- _defineProperty(_assertThisInitialized(_this), "handleDeleteBlur", () => {
120
- _this.setState({
121
- isDeleteFocused: false
122
- });
123
- });
124
-
125
- _defineProperty(_assertThisInitialized(_this), "handleUndoMouseEnter", () => {
126
- _this.setState({
127
- isUndoHovered: true
128
- });
129
- });
130
-
131
- _defineProperty(_assertThisInitialized(_this), "handleUndoMouseLeave", () => {
132
- _this.setState({
133
- isUndoHovered: false
134
- });
135
- });
136
-
137
- _defineProperty(_assertThisInitialized(_this), "handleUndoFocus", () => {
138
- _this.setState({
139
- isUndoFocused: true
140
- });
141
- });
142
-
143
- _defineProperty(_assertThisInitialized(_this), "handleUndoBlur", () => {
144
- _this.setState({
145
- isUndoFocused: false
146
- });
147
- });
148
-
149
- _defineProperty(_assertThisInitialized(_this), "linkProps", () => {
150
- const {
151
- onEdit
152
- } = _this.props;
153
- let props = {};
154
-
155
- if (typeof onEdit === "string") {
156
- props.to = onEdit;
157
- } else if (typeof onEdit === "object") {
158
- props = onEdit;
159
- }
160
-
161
- return props;
162
- });
163
-
164
- _defineProperty(_assertThisInitialized(_this), "processPodAction", action => ev => {
165
- if (_events.default.isEnterKey(ev) || !_events.default.isEventType(ev, "keydown")) {
166
- ev.preventDefault();
167
- action(ev);
168
- }
169
- });
170
-
171
- return _this;
139
+ return null;
172
140
  }
173
141
 
174
- _createClass(Pod, [{
175
- key: "podHeader",
176
- value: function podHeader() {
177
- const {
178
- title,
179
- alignTitle,
180
- internalEditButton,
181
- size,
182
- subtitle
183
- } = this.props;
184
-
185
- if (!title) {
186
- return null;
187
- }
188
-
189
- return /*#__PURE__*/_react.default.createElement(_podStyle.StyledHeader, {
190
- alignTitle: alignTitle,
191
- internalEditButton: internalEditButton,
192
- size: size
193
- }, /*#__PURE__*/_react.default.createElement(_podStyle.StyledTitle, {
194
- "data-element": "title"
195
- }, title), subtitle && /*#__PURE__*/_react.default.createElement(_podStyle.StyledSubtitle, {
196
- "data-element": "subtitle"
197
- }, subtitle));
198
- }
199
- }, {
200
- key: "footer",
201
- value: function footer() {
202
- const {
203
- footer,
204
- size,
205
- variant,
206
- softDelete
207
- } = this.props;
208
-
209
- if (!footer) {
210
- return null;
211
- }
212
-
213
- return /*#__PURE__*/_react.default.createElement(_podStyle.StyledFooter, {
214
- "data-element": "footer",
215
- size: size,
216
- variant: variant,
217
- softDelete: softDelete
218
- }, footer);
219
- }
220
- }, {
221
- key: "actionButtons",
222
- value: function actionButtons() {
223
- const {
224
- onDelete,
225
- onEdit,
226
- onUndo,
227
- softDelete,
228
- internalEditButton
229
- } = this.props;
230
-
231
- if (softDelete && onUndo) {
232
- return /*#__PURE__*/_react.default.createElement(_podStyle.StyledActionsContainer, {
233
- internalEditButton: internalEditButton
234
- }, this.undo());
235
- }
236
-
237
- if (!softDelete && (onDelete || onEdit)) {
238
- return /*#__PURE__*/_react.default.createElement(_podStyle.StyledActionsContainer, {
239
- internalEditButton: internalEditButton
240
- }, onEdit && this.edit(), onDelete && this.delete());
241
- }
142
+ function renderDelete() {
143
+ return /*#__PURE__*/_react.default.createElement(_podStyle.StyledDeleteButton, {
144
+ onMouseEnter: () => setDeleteHovered(true),
145
+ onMouseLeave: () => setDeleteHovered(false),
146
+ onFocus: () => setDeleteFocused(true),
147
+ onBlur: () => setDeleteFocused(false),
148
+ "data-element": "delete",
149
+ internalEditButton: internalEditButton,
150
+ displayOnlyOnHover: displayEditButtonOnHover,
151
+ isFocused: isDeleteFocused,
152
+ isHovered: isDeleteHovered,
153
+ noBorder: !border,
154
+ size: size,
155
+ variant: variant,
156
+ onKeyDown: processPodAction(onDelete),
157
+ onAction: processPodAction(onDelete)
158
+ }, /*#__PURE__*/_react.default.createElement(_icon.default, {
159
+ type: "delete"
160
+ }));
161
+ }
242
162
 
243
- return null;
244
- }
245
- }, {
246
- key: "delete",
247
- value: function _delete() {
248
- const {
249
- onDelete,
250
- internalEditButton,
251
- variant,
252
- size,
253
- border,
254
- displayEditButtonOnHover
255
- } = this.props;
256
- const {
257
- isDeleteFocused,
258
- isDeleteHovered
259
- } = this.state;
260
- return /*#__PURE__*/_react.default.createElement(_podStyle.StyledDeleteButton, {
261
- onMouseEnter: this.handleDeleteMouseEnter,
262
- onMouseLeave: this.handleDeleteMouseLeave,
263
- onFocus: this.handleDeleteFocus,
264
- onBlur: this.handleDeleteBlur,
265
- "data-element": "delete",
266
- internalEditButton: internalEditButton,
267
- displayOnlyOnHover: displayEditButtonOnHover,
268
- isFocused: isDeleteFocused,
269
- isHovered: isDeleteHovered,
270
- noBorder: !border,
271
- size: size,
272
- variant: variant,
273
- onKeyDown: this.processPodAction(onDelete),
274
- onAction: this.processPodAction(onDelete)
275
- }, /*#__PURE__*/_react.default.createElement(_icon.default, {
276
- type: "delete"
277
- }));
278
- }
279
- }, {
280
- key: "edit",
281
- value: function edit() {
282
- const {
283
- internalEditButton,
284
- variant,
285
- size,
286
- border,
287
- displayEditButtonOnHover,
288
- triggerEditOnContent
289
- } = this.props;
290
- const {
291
- isEditFocused,
292
- isEditHovered
293
- } = this.state;
294
- return /*#__PURE__*/_react.default.createElement(_i18nContext.default.Consumer, null, l => /*#__PURE__*/_react.default.createElement("div", _extends({}, this.editEvents(), {
295
- "data-element": "edit-container"
296
- }), /*#__PURE__*/_react.default.createElement(_podStyle.StyledEditAction, _extends({
297
- contentTriggersEdit: triggerEditOnContent,
298
- "data-element": "edit",
299
- displayOnlyOnHover: displayEditButtonOnHover,
300
- icon: "edit",
301
- internalEditButton: internalEditButton,
302
- isFocused: isEditFocused,
303
- isHovered: isEditHovered,
304
- noBorder: !border,
305
- size: size,
306
- variant: variant
307
- }, this.linkProps()), l.actions.edit())));
308
- }
309
- }, {
310
- key: "undo",
311
- value: function undo() {
312
- const {
313
- onUndo,
314
- internalEditButton,
315
- variant,
316
- size,
317
- border
318
- } = this.props;
319
- const {
320
- isUndoFocused,
321
- isUndoHovered
322
- } = this.state;
323
- return /*#__PURE__*/_react.default.createElement(_podStyle.StyledUndoButton, {
324
- onMouseEnter: this.handleUndoMouseEnter,
325
- onMouseLeave: this.handleUndoMouseLeave,
326
- onFocus: this.handleUndoFocus,
327
- onBlur: this.handleUndoBlur,
328
- "data-element": "undo",
329
- internalEditButton: internalEditButton,
330
- isFocused: isUndoFocused,
331
- isHovered: isUndoHovered,
332
- noBorder: !border,
333
- size: size,
334
- variant: variant,
335
- onKeyDown: this.processPodAction(onUndo),
336
- onAction: this.processPodAction(onUndo)
337
- }, /*#__PURE__*/_react.default.createElement(_icon.default, {
338
- type: "undo"
339
- }));
340
- }
341
- }, {
342
- key: "editEvents",
343
- value: function editEvents() {
344
- const props = {
345
- onMouseEnter: this.handleEditMouseEnter,
346
- onMouseLeave: this.handleEditMouseLeave,
347
- onFocus: this.handleEditFocus,
348
- onBlur: this.handleEditBlur
349
- };
163
+ function edit() {
164
+ return /*#__PURE__*/_react.default.createElement(_i18nContext.default.Consumer, null, l => /*#__PURE__*/_react.default.createElement("div", _extends({}, editEvents(), {
165
+ "data-element": "edit-container"
166
+ }), /*#__PURE__*/_react.default.createElement(_podStyle.StyledEditAction, _extends({
167
+ contentTriggersEdit: triggerEditOnContent,
168
+ "data-element": "edit",
169
+ displayOnlyOnHover: displayEditButtonOnHover,
170
+ icon: "edit",
171
+ internalEditButton: internalEditButton,
172
+ isFocused: isEditFocused,
173
+ isHovered: isEditHovered,
174
+ noBorder: !border,
175
+ size: size,
176
+ variant: variant
177
+ }, linkProps()), l.actions.edit())));
178
+ }
350
179
 
351
- if (typeof this.props.onEdit === "function") {
352
- props.onClick = this.processPodAction(this.props.onEdit);
353
- props.onKeyDown = this.processPodAction(this.props.onEdit);
354
- }
180
+ function undo() {
181
+ return /*#__PURE__*/_react.default.createElement(_podStyle.StyledUndoButton, {
182
+ onMouseEnter: () => setUndoHovered(true),
183
+ onMouseLeave: () => setUndoHovered(false),
184
+ onFocus: () => setUndoFocused(true),
185
+ onBlur: () => setUndoFocused(false),
186
+ "data-element": "undo-container",
187
+ internalEditButton: internalEditButton,
188
+ isFocused: isUndoFocused,
189
+ isHovered: isUndoHovered,
190
+ noBorder: !border,
191
+ size: size,
192
+ variant: variant,
193
+ onKeyDown: processPodAction(onUndo),
194
+ onAction: processPodAction(onUndo)
195
+ }, /*#__PURE__*/_react.default.createElement(_icon.default, {
196
+ type: "undo"
197
+ }));
198
+ }
355
199
 
356
- return props;
357
- }
358
- }, {
359
- key: "shouldContentHaveEditEvents",
360
- value: function shouldContentHaveEditEvents() {
361
- const {
362
- triggerEditOnContent,
363
- displayEditButtonOnHover,
364
- onEdit
365
- } = this.props;
366
- return (triggerEditOnContent || displayEditButtonOnHover) && onEdit;
367
- }
368
- }, {
369
- key: "render",
370
- value: function render() {
371
- const {
372
- variant,
373
- border,
374
- editContentFullWidth,
375
- internalEditButton,
376
- onEdit,
377
- onUndo,
378
- onDelete,
379
- softDelete,
380
- size,
381
- title,
382
- height,
383
- ...rest
384
- } = this.props;
385
- const {
386
- isEditFocused,
387
- isEditHovered,
388
- isDeleteFocused,
389
- isDeleteHovered
390
- } = this.state;
391
- let podHeight;
392
-
393
- if (this.context.heightOfTheLongestPod) {
394
- podHeight = `${this.context.heightOfTheLongestPod}px`;
395
- }
396
-
397
- if (height && typeof height === "number") {
398
- podHeight = `${height}px`;
399
- } else if (height) {
400
- podHeight = height;
401
- }
402
-
403
- return /*#__PURE__*/_react.default.createElement(_podStyle.StyledPod, _extends({}, rest, {
404
- className: this.props.className,
405
- internalEditButton: internalEditButton
406
- }, (0, _tags.default)("pod", this.props), {
407
- height: podHeight
408
- }), /*#__PURE__*/_react.default.createElement(_podStyle.StyledBlock, _extends({
409
- contentTriggersEdit: this.shouldContentHaveEditEvents(),
410
- hasButtons: onEdit || onDelete || onUndo,
411
- fullWidth: editContentFullWidth,
412
- internalEditButton: internalEditButton,
413
- isFocused: isEditFocused || isDeleteFocused,
414
- isHovered: isEditHovered || isDeleteHovered,
415
- noBorder: !border,
416
- variant: variant,
417
- softDelete: softDelete
418
- }, this.shouldContentHaveEditEvents() ? { ...this.editEvents(),
419
- tabIndex: "0"
420
- } : {}), /*#__PURE__*/_react.default.createElement(_podStyle.StyledContent, {
421
- "data-element": "content",
422
- size: size
423
- }, this.podHeader(), /*#__PURE__*/_react.default.createElement("div", null, this.props.children)), this.footer()), this.actionButtons());
200
+ function linkProps() {
201
+ if (typeof onEdit === "string") {
202
+ return {
203
+ to: onEdit
204
+ };
424
205
  }
425
- }]);
426
206
 
427
- return Pod;
428
- }(_react.default.Component);
429
-
430
- _defineProperty(Pod, "contextType", _podContext.default);
207
+ return onEdit;
208
+ }
431
209
 
210
+ return /*#__PURE__*/_react.default.createElement(_podStyle.StyledPod, _extends({}, rest, {
211
+ className: className,
212
+ internalEditButton: internalEditButton
213
+ }, (0, _tags.default)("pod", rest), {
214
+ height: podHeight,
215
+ ref: ref
216
+ }), /*#__PURE__*/_react.default.createElement(_podStyle.StyledBlock, _extends({
217
+ contentTriggersEdit: shouldContentHaveEditEvents(),
218
+ hasButtons: onEdit || onDelete || onUndo,
219
+ fullWidth: editContentFullWidth,
220
+ internalEditButton: internalEditButton,
221
+ isFocused: isEditFocused || isDeleteFocused,
222
+ isHovered: isEditHovered || isDeleteHovered,
223
+ noBorder: !border,
224
+ variant: variant,
225
+ softDelete: softDelete
226
+ }, shouldContentHaveEditEvents() ? { ...editEvents(),
227
+ tabIndex: "0"
228
+ } : {}), /*#__PURE__*/_react.default.createElement(_podStyle.StyledContent, {
229
+ "data-element": "content",
230
+ size: size
231
+ }, podHeader(), /*#__PURE__*/_react.default.createElement("div", null, children)), renderFooter()), actionButtons());
232
+ });
432
233
  Pod.propTypes = { ...marginPropTypes,
433
234
 
434
235
  /**
@@ -523,11 +324,5 @@ Pod.propTypes = { ...marginPropTypes,
523
324
  */
524
325
  height: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])
525
326
  };
526
- Pod.defaultProps = {
527
- border: true,
528
- variant: "primary",
529
- size: "medium",
530
- alignTitle: "left"
531
- };
532
327
  var _default = Pod;
533
328
  exports.default = _default;
@@ -314,7 +314,7 @@ let ScrollableList = /*#__PURE__*/function (_Component) {
314
314
  return ScrollableList;
315
315
  }(_react.Component);
316
316
 
317
- _defineProperty(ScrollableList, "propTypes", {
317
+ ScrollableList.propTypes = {
318
318
  alwaysHighlight: _propTypes.default.bool,
319
319
  // ensures an item is always highlighted
320
320
  isLoopable: _propTypes.default.bool,
@@ -323,7 +323,6 @@ _defineProperty(ScrollableList, "propTypes", {
323
323
  maxHeight: _propTypes.default.string,
324
324
  onLazyLoad: _propTypes.default.func,
325
325
  onSelect: _propTypes.default.func
326
- });
327
-
326
+ };
328
327
  var _default = ScrollableList;
329
328
  exports.default = _default;
@@ -260,9 +260,7 @@ let ShowEditPod = /*#__PURE__*/function (_React$Component) {
260
260
  }(_react.default.Component);
261
261
 
262
262
  exports.BaseShowEditPod = ShowEditPod;
263
-
264
- _defineProperty(ShowEditPod, "contextType", _i18nContext.default);
265
-
263
+ ShowEditPod.contextType = _i18nContext.default;
266
264
  ShowEditPod.propTypes = { ...marginPropTypes,
267
265
 
268
266
  /** Pod theme variant. */
@@ -48,7 +48,8 @@ const Sidebar = /*#__PURE__*/_react.default.forwardRef(({
48
48
  onCancel,
49
49
  ...rest
50
50
  }, ref) => {
51
- const sidebarRef = ref || (0, _react.useRef)();
51
+ let sidebarRef = (0, _react.useRef)();
52
+ if (ref) sidebarRef = ref;
52
53
 
53
54
  const closeIcon = () => {
54
55
  if (!onCancel) return null;
@@ -660,9 +660,7 @@ let Table = /*#__PURE__*/function (_React$Component) {
660
660
  }(_react.default.Component);
661
661
 
662
662
  exports.Table = Table;
663
-
664
- _defineProperty(Table, "contextType", _i18nContext.default);
665
-
663
+ Table.contextType = _i18nContext.default;
666
664
  Table.propTypes = {
667
665
  /** The actions to display in the toolbar */
668
666
  actions: _propTypes.default.object,