carbon-react 121.2.0 → 122.0.1

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,11 +1,12 @@
1
1
  import React from "react";
2
2
  import { SpaceProps } from "styled-system";
3
3
  import { IconType } from "../icon";
4
+ import { TagProps } from "../../__internal__/utils/helpers/tags/tags";
4
5
  import { TooltipPositions } from "../tooltip/tooltip.config";
5
6
  export declare type ButtonTypes = "primary" | "secondary" | "tertiary" | "dashed" | "darkBackground";
6
7
  export declare type SizeOptions = "small" | "medium" | "large";
7
8
  export declare type ButtonIconPosition = "before" | "after";
8
- export interface ButtonProps extends SpaceProps {
9
+ export interface ButtonProps extends SpaceProps, TagProps {
9
10
  /**
10
11
  * Prop to specify the aria-label attribute of the component
11
12
  * Defaults to the iconType, when the component has only an icon
@@ -176,6 +176,9 @@ Button.propTypes = {
176
176
  "aria-label": PropTypes.string,
177
177
  "buttonType": PropTypes.oneOf(["darkBackground", "dashed", "primary", "secondary", "tertiary"]),
178
178
  "children": PropTypes.node,
179
+ "data-component": PropTypes.string,
180
+ "data-element": PropTypes.string,
181
+ "data-role": PropTypes.string,
179
182
  "destructive": PropTypes.bool,
180
183
  "disabled": PropTypes.bool,
181
184
  "forwardRef": PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
@@ -523,6 +526,9 @@ ButtonWithForwardRef.propTypes = {
523
526
  "aria-label": PropTypes.string,
524
527
  "buttonType": PropTypes.oneOf(["darkBackground", "dashed", "primary", "secondary", "tertiary"]),
525
528
  "children": PropTypes.node,
529
+ "data-component": PropTypes.string,
530
+ "data-element": PropTypes.string,
531
+ "data-role": PropTypes.string,
526
532
  "destructive": PropTypes.bool,
527
533
  "disabled": PropTypes.bool,
528
534
  "forwardRef": PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
@@ -122,11 +122,11 @@ const StyledLink = styled.span`
122
122
 
123
123
  a,
124
124
  button {
125
- text-decoration: underline;
125
+ text-decoration: ${hasContent ? "underline" : "none"};
126
126
  ${isMenuItem && "display: inline-block;"}
127
127
 
128
128
  > ${StyledIcon} {
129
- display: inline-block;
129
+ display: ${hasContent ? "inline-block" : "inline"};
130
130
  position: relative;
131
131
  vertical-align: middle;
132
132
  ${iconAlign === "left" && css`
@@ -25,7 +25,7 @@ export interface PodProps extends MarginProps {
25
25
  /** A component to render as a Pod footer */
26
26
  footer?: string | React.ReactNode;
27
27
  /** Supplies an edit action to the pod */
28
- onEdit?: string | Record<string, unknown> | ((ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>) => void);
28
+ onEdit?: (ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>) => void;
29
29
  /** Supplies a delete action to the pod */
30
30
  onDelete?: (ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>) => void;
31
31
  /** Supplies an undo action to the pod in soft delete state. */
@@ -1,13 +1,10 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
2
2
  import React, { useState, useMemo } from "react";
3
3
  import PropTypes from "prop-types";
4
- import Logger from "../../__internal__/utils/logger";
5
4
  import useLocale from "../../hooks/__internal__/useLocale";
6
5
  import { StyledBlock, StyledContent, StyledEditAction, StyledActionsContainer, StyledDeleteButton, StyledUndoButton, StyledFooter, StyledPod, StyledHeader, StyledSubtitle, StyledTitle } from "./pod.style";
7
6
  import Icon from "../icon";
8
7
  import Event from "../../__internal__/utils/helpers/events";
9
- let deprecationOnEditStringWarnTriggered = false;
10
- let deprecationOnEditObjectWarnTriggered = false;
11
8
  const Pod = /*#__PURE__*/React.forwardRef(({
12
9
  "data-element": dataElement,
13
10
  "data-role": dataRole,
@@ -31,14 +28,6 @@ const Pod = /*#__PURE__*/React.forwardRef(({
31
28
  variant = "primary",
32
29
  ...rest
33
30
  }, ref) => {
34
- if (!deprecationOnEditStringWarnTriggered && typeof onEdit === "string") {
35
- deprecationOnEditStringWarnTriggered = true;
36
- Logger.deprecate("Support for passing strings to the `onEdit` prop of the `Pod` component is now deprecated. Please only pass event handlers to `onEdit`.");
37
- }
38
- if (!deprecationOnEditObjectWarnTriggered && typeof onEdit === "object") {
39
- deprecationOnEditObjectWarnTriggered = true;
40
- Logger.deprecate("Support for passing objects to the `onEdit` prop of the `Pod` component is now deprecated. Please only pass event handlers to `onEdit`.");
41
- }
42
31
  const [isEditFocused, setEditFocused] = useState(false);
43
32
  const [isEditHovered, setEditHovered] = useState(false);
44
33
  const [isDeleteFocused, setDeleteFocused] = useState(false);
@@ -58,10 +47,8 @@ const Pod = /*#__PURE__*/React.forwardRef(({
58
47
  onMouseLeave: () => setEditHovered(false),
59
48
  onFocus: () => setEditFocused(true),
60
49
  onBlur: () => setEditFocused(false),
61
- ...(typeof onEdit === "function" && {
62
- onClick: processPodAction(onEdit),
63
- onKeyDown: processPodAction(onEdit)
64
- })
50
+ onClick: onEdit && processPodAction(onEdit),
51
+ onKeyDown: onEdit && processPodAction(onEdit)
65
52
  };
66
53
  return /*#__PURE__*/React.createElement(StyledPod, _extends({
67
54
  alignTitle: alignTitle,
@@ -131,9 +118,7 @@ const Pod = /*#__PURE__*/React.forwardRef(({
131
118
  noBorder: !border,
132
119
  size: size,
133
120
  variant: variant
134
- }, typeof onEdit === "string" ? {
135
- href: onEdit
136
- } : onEdit), /*#__PURE__*/React.createElement(Icon, {
121
+ }), /*#__PURE__*/React.createElement(Icon, {
137
122
  type: "edit"
138
123
  })), !softDelete && onDelete && /*#__PURE__*/React.createElement(StyledDeleteButton, {
139
124
  "aria-label": l.actions.delete(),
@@ -320,7 +305,7 @@ Pod.propTypes = {
320
305
  "valueOf": PropTypes.func.isRequired
321
306
  }), PropTypes.string]),
322
307
  "onDelete": PropTypes.func,
323
- "onEdit": PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.string]),
308
+ "onEdit": PropTypes.func,
324
309
  "onUndo": PropTypes.func,
325
310
  "size": PropTypes.oneOf(["extra-large", "extra-small", "large", "medium", "small"]),
326
311
  "softDelete": PropTypes.bool,
@@ -32,7 +32,7 @@ interface CommonPodButtonProps extends Pick<PodProps, "internalEditButton"> {
32
32
  interface StyledEditActionProps extends CommonPodButtonProps {
33
33
  displayOnlyOnHover?: boolean;
34
34
  }
35
- declare const StyledEditAction: import("styled-components").StyledComponent<"a", any, StyledEditActionProps, never>;
35
+ declare const StyledEditAction: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../icon-button").IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>, any, StyledEditActionProps, never>;
36
36
  declare const StyledDeleteButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../icon-button").IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>, any, CommonPodButtonProps, never>;
37
37
  declare const StyledUndoButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../icon-button").IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>, any, CommonPodButtonProps, never>;
38
38
  interface StyledHeaderProps extends Pick<PodProps, "alignTitle" | "internalEditButton"> {
@@ -152,7 +152,7 @@ const actionButtonBackgrounds = {
152
152
  transparent: "var(--colorsActionMajorTransparent)",
153
153
  tile: "var(--colorsActionMajorYang100)"
154
154
  };
155
- const StyledEditAction = styled.a`
155
+ const StyledEditAction = styled(IconButton)`
156
156
  && {
157
157
  ${({
158
158
  displayOnlyOnHover,
@@ -1,11 +1,12 @@
1
1
  import React from "react";
2
2
  import { SpaceProps } from "styled-system";
3
3
  import { IconType } from "../icon";
4
+ import { TagProps } from "../../__internal__/utils/helpers/tags/tags";
4
5
  import { TooltipPositions } from "../tooltip/tooltip.config";
5
6
  export declare type ButtonTypes = "primary" | "secondary" | "tertiary" | "dashed" | "darkBackground";
6
7
  export declare type SizeOptions = "small" | "medium" | "large";
7
8
  export declare type ButtonIconPosition = "before" | "after";
8
- export interface ButtonProps extends SpaceProps {
9
+ export interface ButtonProps extends SpaceProps, TagProps {
9
10
  /**
10
11
  * Prop to specify the aria-label attribute of the component
11
12
  * Defaults to the iconType, when the component has only an icon
@@ -185,6 +185,9 @@ Button.propTypes = {
185
185
  "aria-label": _propTypes.default.string,
186
186
  "buttonType": _propTypes.default.oneOf(["darkBackground", "dashed", "primary", "secondary", "tertiary"]),
187
187
  "children": _propTypes.default.node,
188
+ "data-component": _propTypes.default.string,
189
+ "data-element": _propTypes.default.string,
190
+ "data-role": _propTypes.default.string,
188
191
  "destructive": _propTypes.default.bool,
189
192
  "disabled": _propTypes.default.bool,
190
193
  "forwardRef": _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.shape({
@@ -533,6 +536,9 @@ ButtonWithForwardRef.propTypes = {
533
536
  "aria-label": _propTypes.default.string,
534
537
  "buttonType": _propTypes.default.oneOf(["darkBackground", "dashed", "primary", "secondary", "tertiary"]),
535
538
  "children": _propTypes.default.node,
539
+ "data-component": _propTypes.default.string,
540
+ "data-element": _propTypes.default.string,
541
+ "data-role": _propTypes.default.string,
536
542
  "destructive": _propTypes.default.bool,
537
543
  "disabled": _propTypes.default.bool,
538
544
  "forwardRef": _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.shape({
@@ -131,11 +131,11 @@ const StyledLink = _styledComponents.default.span`
131
131
 
132
132
  a,
133
133
  button {
134
- text-decoration: underline;
134
+ text-decoration: ${hasContent ? "underline" : "none"};
135
135
  ${isMenuItem && "display: inline-block;"}
136
136
 
137
137
  > ${_icon.default} {
138
- display: inline-block;
138
+ display: ${hasContent ? "inline-block" : "inline"};
139
139
  position: relative;
140
140
  vertical-align: middle;
141
141
  ${iconAlign === "left" && (0, _styledComponents.css)`
@@ -25,7 +25,7 @@ export interface PodProps extends MarginProps {
25
25
  /** A component to render as a Pod footer */
26
26
  footer?: string | React.ReactNode;
27
27
  /** Supplies an edit action to the pod */
28
- onEdit?: string | Record<string, unknown> | ((ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>) => void);
28
+ onEdit?: (ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>) => void;
29
29
  /** Supplies a delete action to the pod */
30
30
  onDelete?: (ev: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>) => void;
31
31
  /** Supplies an undo action to the pod in soft delete state. */
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
- var _logger = _interopRequireDefault(require("../../__internal__/utils/logger"));
10
9
  var _useLocale = _interopRequireDefault(require("../../hooks/__internal__/useLocale"));
11
10
  var _pod = require("./pod.style");
12
11
  var _icon = _interopRequireDefault(require("../icon"));
@@ -15,8 +14,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
15
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
16
15
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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; }
17
16
  function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
18
- let deprecationOnEditStringWarnTriggered = false;
19
- let deprecationOnEditObjectWarnTriggered = false;
20
17
  const Pod = /*#__PURE__*/_react.default.forwardRef(({
21
18
  "data-element": dataElement,
22
19
  "data-role": dataRole,
@@ -40,14 +37,6 @@ const Pod = /*#__PURE__*/_react.default.forwardRef(({
40
37
  variant = "primary",
41
38
  ...rest
42
39
  }, ref) => {
43
- if (!deprecationOnEditStringWarnTriggered && typeof onEdit === "string") {
44
- deprecationOnEditStringWarnTriggered = true;
45
- _logger.default.deprecate("Support for passing strings to the `onEdit` prop of the `Pod` component is now deprecated. Please only pass event handlers to `onEdit`.");
46
- }
47
- if (!deprecationOnEditObjectWarnTriggered && typeof onEdit === "object") {
48
- deprecationOnEditObjectWarnTriggered = true;
49
- _logger.default.deprecate("Support for passing objects to the `onEdit` prop of the `Pod` component is now deprecated. Please only pass event handlers to `onEdit`.");
50
- }
51
40
  const [isEditFocused, setEditFocused] = (0, _react.useState)(false);
52
41
  const [isEditHovered, setEditHovered] = (0, _react.useState)(false);
53
42
  const [isDeleteFocused, setDeleteFocused] = (0, _react.useState)(false);
@@ -67,10 +56,8 @@ const Pod = /*#__PURE__*/_react.default.forwardRef(({
67
56
  onMouseLeave: () => setEditHovered(false),
68
57
  onFocus: () => setEditFocused(true),
69
58
  onBlur: () => setEditFocused(false),
70
- ...(typeof onEdit === "function" && {
71
- onClick: processPodAction(onEdit),
72
- onKeyDown: processPodAction(onEdit)
73
- })
59
+ onClick: onEdit && processPodAction(onEdit),
60
+ onKeyDown: onEdit && processPodAction(onEdit)
74
61
  };
75
62
  return /*#__PURE__*/_react.default.createElement(_pod.StyledPod, _extends({
76
63
  alignTitle: alignTitle,
@@ -140,9 +127,7 @@ const Pod = /*#__PURE__*/_react.default.forwardRef(({
140
127
  noBorder: !border,
141
128
  size: size,
142
129
  variant: variant
143
- }, typeof onEdit === "string" ? {
144
- href: onEdit
145
- } : onEdit), /*#__PURE__*/_react.default.createElement(_icon.default, {
130
+ }), /*#__PURE__*/_react.default.createElement(_icon.default, {
146
131
  type: "edit"
147
132
  })), !softDelete && onDelete && /*#__PURE__*/_react.default.createElement(_pod.StyledDeleteButton, {
148
133
  "aria-label": l.actions.delete(),
@@ -329,7 +314,7 @@ Pod.propTypes = {
329
314
  "valueOf": _propTypes.default.func.isRequired
330
315
  }), _propTypes.default.string]),
331
316
  "onDelete": _propTypes.default.func,
332
- "onEdit": _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.string]),
317
+ "onEdit": _propTypes.default.func,
333
318
  "onUndo": _propTypes.default.func,
334
319
  "size": _propTypes.default.oneOf(["extra-large", "extra-small", "large", "medium", "small"]),
335
320
  "softDelete": _propTypes.default.bool,
@@ -32,7 +32,7 @@ interface CommonPodButtonProps extends Pick<PodProps, "internalEditButton"> {
32
32
  interface StyledEditActionProps extends CommonPodButtonProps {
33
33
  displayOnlyOnHover?: boolean;
34
34
  }
35
- declare const StyledEditAction: import("styled-components").StyledComponent<"a", any, StyledEditActionProps, never>;
35
+ declare const StyledEditAction: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../icon-button").IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>, any, StyledEditActionProps, never>;
36
36
  declare const StyledDeleteButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../icon-button").IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>, any, CommonPodButtonProps, never>;
37
37
  declare const StyledUndoButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<import("../icon-button").IconButtonProps & import("react").RefAttributes<HTMLButtonElement>>, any, CommonPodButtonProps, never>;
38
38
  interface StyledHeaderProps extends Pick<PodProps, "alignTitle" | "internalEditButton"> {
@@ -166,7 +166,7 @@ const actionButtonBackgrounds = {
166
166
  transparent: "var(--colorsActionMajorTransparent)",
167
167
  tile: "var(--colorsActionMajorYang100)"
168
168
  };
169
- const StyledEditAction = _styledComponents.default.a`
169
+ const StyledEditAction = (0, _styledComponents.default)(_iconButton.default)`
170
170
  && {
171
171
  ${({
172
172
  displayOnlyOnHover,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-react",
3
- "version": "121.2.0",
3
+ "version": "122.0.1",
4
4
  "description": "A library of reusable React components for easily building user interfaces.",
5
5
  "files": [
6
6
  "lib",