carbon-react 87.5.0 → 89.2.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/date/date.component.js +1 -2
  8. package/lib/components/date-range/date-range.component.js +1 -2
  9. package/lib/components/decimal/decimal.component.js +1 -2
  10. package/lib/components/detail/detail.component.js +2 -3
  11. package/lib/components/drag-and-drop/custom-drag-layer/custom-drag-layer.js +2 -3
  12. package/lib/components/drag-and-drop/draggable-context/draggable-context.js +10 -11
  13. package/lib/components/drag-and-drop/with-drag/with-drag.js +4 -6
  14. package/lib/components/drag-and-drop/with-drop/with-drop.js +4 -6
  15. package/lib/components/flat-table/flat-table-row/flat-table-row.component.js +2 -1
  16. package/lib/components/heading/heading.component.js +4 -8
  17. package/lib/components/i18n-provider/i18n-provider.d.ts +3 -94
  18. package/lib/components/icon/icon.component.js +4 -3
  19. package/lib/components/mount-in-app/mount-in-app.js +2 -5
  20. package/lib/components/multi-step-wizard/multi-step-wizard.js +14 -17
  21. package/lib/components/multi-step-wizard/step/step.js +6 -9
  22. package/lib/components/pod/pod.component.js +185 -390
  23. package/lib/components/profile/profile.component.js +47 -113
  24. package/lib/components/profile/profile.d.ts +0 -2
  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;