carbon-react 137.0.0 → 138.0.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 (21) hide show
  1. package/esm/components/button-toggle/button-toggle-group/button-toggle-group.component.d.ts +3 -12
  2. package/esm/components/button-toggle/button-toggle-group/button-toggle-group.component.js +5 -14
  3. package/esm/components/button-toggle/button-toggle-group/button-toggle-group.style.d.ts +1 -3
  4. package/esm/components/button-toggle/button-toggle-group/button-toggle-group.style.js +3 -11
  5. package/esm/components/button-toggle/button-toggle-icon.component.js +2 -1
  6. package/esm/components/button-toggle/button-toggle.component.d.ts +1 -5
  7. package/esm/components/button-toggle/button-toggle.component.js +2 -17
  8. package/esm/components/checkbox/checkbox-group/checkbox-group.component.js +2 -0
  9. package/esm/components/checkbox/checkbox-svg.component.js +1 -0
  10. package/esm/components/checkbox/checkbox.style.js +0 -1
  11. package/lib/components/button-toggle/button-toggle-group/button-toggle-group.component.d.ts +3 -12
  12. package/lib/components/button-toggle/button-toggle-group/button-toggle-group.component.js +4 -13
  13. package/lib/components/button-toggle/button-toggle-group/button-toggle-group.style.d.ts +1 -3
  14. package/lib/components/button-toggle/button-toggle-group/button-toggle-group.style.js +4 -12
  15. package/lib/components/button-toggle/button-toggle-icon.component.js +2 -1
  16. package/lib/components/button-toggle/button-toggle.component.d.ts +1 -5
  17. package/lib/components/button-toggle/button-toggle.component.js +2 -17
  18. package/lib/components/checkbox/checkbox-group/checkbox-group.component.js +2 -0
  19. package/lib/components/checkbox/checkbox-svg.component.js +1 -0
  20. package/lib/components/checkbox/checkbox.style.js +0 -1
  21. package/package.json +1 -1
@@ -1,17 +1,9 @@
1
1
  import React from "react";
2
2
  import { MarginProps } from "styled-system";
3
3
  import { TagProps } from "../../../__internal__/utils/helpers/tags";
4
- export interface CustomEvent {
5
- target: {
6
- name?: string;
7
- value?: string;
8
- };
9
- }
10
4
  export interface ButtonToggleGroupProps extends MarginProps, TagProps {
11
5
  /** Unique id for the root element of the component */
12
6
  id: string;
13
- /** Specifies the name prop to be applied to each button in the group */
14
- name?: string;
15
7
  /** Toggle buttons to be rendered. Only accepts children of type ButtonToggle */
16
8
  children?: React.ReactNode;
17
9
  /** aria-label for the group wrapper. Required for accessibility when no text label is provided */
@@ -37,7 +29,7 @@ export interface ButtonToggleGroupProps extends MarginProps, TagProps {
37
29
  /** If true all ButtonToggle children will flex to the full width of the ButtonToggleGroup parent */
38
30
  fullWidth?: boolean;
39
31
  /** Callback triggered by pressing one of the child buttons. Use with controlled components to set the value prop to the value argument */
40
- onChange?: (ev: React.MouseEvent<HTMLButtonElement>, value?: string, name?: string) => void;
32
+ onChange?: (ev: React.MouseEvent<HTMLButtonElement>, value?: string) => void;
41
33
  /** Determines which child button is selected when the component is used as a controlled component */
42
34
  value?: string;
43
35
  /** [Legacy] Aria label for rendered help component */
@@ -56,8 +48,7 @@ declare type ButtonToggleGroupContextType = {
56
48
  onButtonClick: (value: string) => void;
57
49
  handleKeyDown: (ev: React.KeyboardEvent<HTMLButtonElement>) => void;
58
50
  pressedButtonValue?: string;
59
- onChange?: (ev: React.MouseEvent<HTMLButtonElement>, value?: string, name?: string) => void;
60
- name?: string;
51
+ onChange?: (ev: React.MouseEvent<HTMLButtonElement>, value?: string) => void;
61
52
  allowDeselect?: boolean;
62
53
  isInGroup: boolean;
63
54
  isDisabled?: boolean;
@@ -68,7 +59,7 @@ declare type ButtonToggleGroupContextType = {
68
59
  };
69
60
  export declare const ButtonToggleGroupContext: React.Context<ButtonToggleGroupContextType>;
70
61
  declare const ButtonToggleGroup: {
71
- ({ children, fieldHelp, fieldHelpInline, "aria-label": ariaLabel, label, labelHelp, labelSpacing, inputHint, inputWidth, fullWidth, labelInline, labelWidth, name, onChange, value, "data-component": dataComponent, "data-element": dataElement, "data-role": dataRole, helpAriaLabel, id, allowDeselect, disabled, className, ...props }: ButtonToggleGroupProps): React.JSX.Element;
62
+ ({ children, fieldHelp, fieldHelpInline, "aria-label": ariaLabel, label, labelHelp, labelSpacing, inputHint, inputWidth, fullWidth, labelInline, labelWidth, onChange, value, "data-component": dataComponent, "data-element": dataElement, "data-role": dataRole, helpAriaLabel, id, allowDeselect, disabled, className, ...props }: ButtonToggleGroupProps): React.JSX.Element;
72
63
  displayName: string;
73
64
  };
74
65
  export default ButtonToggleGroup;
@@ -4,15 +4,13 @@ import PropTypes from "prop-types";
4
4
  import invariant from "invariant";
5
5
  import FormField from "../../../__internal__/form-field";
6
6
  import guid from "../../../__internal__/utils/helpers/guid";
7
- import StyledButtonToggleGroup, { StyledButtonToggleGroupWrapper, StyledHintText } from "./button-toggle-group.style";
7
+ import StyledButtonToggleGroup, { StyledHintText } from "./button-toggle-group.style";
8
8
  import { ButtonToggle } from "..";
9
9
  import { filterStyledSystemMarginProps } from "../../../style/utils";
10
10
  import { TooltipProvider } from "../../../__internal__/tooltip-provider";
11
11
  import { InputGroupBehaviour } from "../../../__internal__/input-behaviour";
12
- import Logger from "../../../__internal__/utils/logger";
13
12
  import Events from "../../../__internal__/utils/helpers/events";
14
13
  import { NewValidationContext } from "../../carbon-provider/carbon-provider.component";
15
- let deprecateNameWarnTriggered = false;
16
14
  const BUTTON_TOGGLE_SELECTOR = '[data-element="button-toggle-button"]';
17
15
  export const ButtonToggleGroupContext = /*#__PURE__*/createContext({
18
16
  onButtonClick: /* istanbul ignore next */() => {},
@@ -35,7 +33,6 @@ const ButtonToggleGroup = ({
35
33
  fullWidth,
36
34
  labelInline,
37
35
  labelWidth,
38
- name,
39
36
  onChange,
40
37
  value,
41
38
  "data-component": dataComponent = "button-toggle-group",
@@ -59,11 +56,6 @@ const ButtonToggleGroup = ({
59
56
  const hintTextId = useRef(guid());
60
57
  const wrapperRef = useRef(null);
61
58
  const [pressedButtonValue, setPressedButtonValue] = useState();
62
- if (name && !deprecateNameWarnTriggered) {
63
- deprecateNameWarnTriggered = true;
64
- Logger.deprecate(`The \`name\` prop in \`ButtonToggleGroup\` component is deprecated and will soon be removed. It does not provide any functionality
65
- since the component can no longer be used in an uncontrolled fashion.`);
66
- }
67
59
  const {
68
60
  validationRedesignOptIn
69
61
  } = useContext(NewValidationContext);
@@ -140,7 +132,6 @@ const ButtonToggleGroup = ({
140
132
  handleKeyDown,
141
133
  pressedButtonValue: value || pressedButtonValue,
142
134
  onChange,
143
- name,
144
135
  allowDeselect,
145
136
  isInGroup: true,
146
137
  isDisabled: disabled,
@@ -151,14 +142,14 @@ const ButtonToggleGroup = ({
151
142
  }, inputHint && /*#__PURE__*/React.createElement(StyledHintText, {
152
143
  id: hintTextId.current,
153
144
  isDisabled: disabled
154
- }, inputHint), /*#__PURE__*/React.createElement(StyledButtonToggleGroupWrapper, {
155
- labelInline: labelInline,
145
+ }, inputHint), /*#__PURE__*/React.createElement(StyledButtonToggleGroup, _extends({
156
146
  ref: wrapperRef
157
- }, /*#__PURE__*/React.createElement(StyledButtonToggleGroup, _extends({}, label ? {
147
+ }, label ? {
158
148
  "aria-labelledby": labelId.current
159
149
  } : {
160
150
  "aria-label": ariaLabel
161
151
  }, {
152
+ labelInline: labelInline,
162
153
  inputWidth: inputWidth,
163
154
  fullWidth: fullWidth,
164
155
  role: "group",
@@ -168,7 +159,7 @@ const ButtonToggleGroup = ({
168
159
  id: id,
169
160
  className: className,
170
161
  disabled: disabled
171
- }), children))))));
162
+ }), children)))));
172
163
  };
173
164
  ButtonToggleGroup.displayName = "ButtonToggleGroup";
174
165
  export default ButtonToggleGroup;
@@ -1,8 +1,6 @@
1
1
  import { ButtonToggleGroupProps } from ".";
2
- declare type StyledButtonToggleGroupProps = Pick<ButtonToggleGroupProps, "inputWidth" | "fullWidth" | "disabled">;
3
- declare type StyledButtonToggleGroupWrapperProps = Pick<ButtonToggleGroupProps, "labelInline">;
2
+ declare type StyledButtonToggleGroupProps = Pick<ButtonToggleGroupProps, "inputWidth" | "fullWidth" | "disabled" | "labelInline">;
4
3
  declare const StyledButtonToggleGroup: import("styled-components").StyledComponent<"div", any, StyledButtonToggleGroupProps, never>;
5
- export declare const StyledButtonToggleGroupWrapper: import("styled-components").StyledComponent<"div", any, StyledButtonToggleGroupWrapperProps, never>;
6
4
  export declare const StyledHintText: import("styled-components").StyledComponent<"div", any, {
7
5
  isDisabled?: boolean | undefined;
8
6
  }, never>;
@@ -12,7 +12,9 @@ const StyledButtonToggleGroup = styled.div`
12
12
  gap: 4px;
13
13
  width: fit-content;
14
14
  height: fit-content;
15
- flex-wrap: wrap;
15
+ flex-wrap: ${({
16
+ labelInline
17
+ }) => labelInline ? "nowrap" : "wrap"};
16
18
 
17
19
  ${({
18
20
  disabled
@@ -39,16 +41,6 @@ const StyledButtonToggleGroup = styled.div`
39
41
  width: ${`${inputWidth}%`};
40
42
  `}
41
43
  `;
42
- export const StyledButtonToggleGroupWrapper = styled.div`
43
- ${({
44
- labelInline
45
- }) => labelInline && css`
46
- display: flex;
47
- ${StyledButtonToggleGroup} {
48
- flex-wrap: nowrap;
49
- }
50
- `}
51
- `;
52
44
  export const StyledHintText = styled.div`
53
45
  ::after {
54
46
  content: " ";
@@ -9,7 +9,8 @@ const ButtonToggleIcon = ({
9
9
  hasContent
10
10
  }) => /*#__PURE__*/React.createElement(StyledButtonToggleIcon, {
11
11
  buttonIconSize: buttonIconSize,
12
- hasContent: hasContent
12
+ hasContent: hasContent,
13
+ "data-role": "button-toggle-icon"
13
14
  }, /*#__PURE__*/React.createElement(Icon, {
14
15
  "aria-hidden": true,
15
16
  type: buttonIcon,
@@ -5,8 +5,6 @@ export interface ButtonToggleProps extends Partial<StyledButtonToggleProps> {
5
5
  "aria-label"?: string;
6
6
  /** Prop to specify the aria-labelledby property of the component */
7
7
  "aria-labelledby"?: string;
8
- /** DEPRECATED: A synonym for pressed, to keep backwards compatibility. */
9
- checked?: boolean;
10
8
  /** Text to display for the button. */
11
9
  children?: React.ReactNode;
12
10
  /** Identifier used for testing purposes, applied to the root element of the component. */
@@ -17,8 +15,6 @@ export interface ButtonToggleProps extends Partial<StyledButtonToggleProps> {
17
15
  "data-role"?: string;
18
16
  /** DEPRECATED: Remove spacing from between buttons. */
19
17
  grouped?: boolean;
20
- /** An optional string by which to identify the button in an onChange handler on the parent ButtonToggleGroup. */
21
- name?: string;
22
18
  /** Callback triggered by blur event on the button. */
23
19
  onBlur?: (ev: React.FocusEvent<HTMLButtonElement>) => void;
24
20
  /** Callback triggered by focus event on the button. */
@@ -31,7 +27,7 @@ export interface ButtonToggleProps extends Partial<StyledButtonToggleProps> {
31
27
  value?: string;
32
28
  }
33
29
  export declare const ButtonToggle: {
34
- ({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, buttonIcon, buttonIconSize, checked, children, "data-component": dataComponent, "data-element": dataElement, "data-role": dataRole, disabled, grouped, name, onBlur, onFocus, onClick, pressed, size, value, }: ButtonToggleProps): React.JSX.Element;
30
+ ({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, buttonIcon, buttonIconSize, children, "data-component": dataComponent, "data-element": dataElement, "data-role": dataRole, disabled, grouped, onBlur, onFocus, onClick, pressed, size, value, }: ButtonToggleProps): React.JSX.Element;
35
31
  displayName: string;
36
32
  };
37
33
  export default ButtonToggle;
@@ -8,8 +8,6 @@ import { ButtonToggleGroupContext } from "./button-toggle-group/button-toggle-gr
8
8
  import ButtonToggleIcon from "./button-toggle-icon.component";
9
9
  import Logger from "../../__internal__/utils/logger";
10
10
  import { InputGroupContext } from "../../__internal__/input-behaviour";
11
- let deprecateCheckedWarnTriggered = false;
12
- let deprecateNameWarnTriggered = false;
13
11
  let deprecateUncontrolledWarnTriggered = false;
14
12
  let deprecateGroupedWarnTriggered = false;
15
13
  export const ButtonToggle = ({
@@ -17,14 +15,12 @@ export const ButtonToggle = ({
17
15
  "aria-labelledby": ariaLabelledBy,
18
16
  buttonIcon,
19
17
  buttonIconSize = "small",
20
- checked,
21
18
  children,
22
19
  "data-component": dataComponent,
23
20
  "data-element": dataElement,
24
21
  "data-role": dataRole,
25
22
  disabled,
26
23
  grouped,
27
- name,
28
24
  onBlur,
29
25
  onFocus,
30
26
  onClick,
@@ -33,20 +29,10 @@ export const ButtonToggle = ({
33
29
  value
34
30
  }) => {
35
31
  !!!(children || buttonIcon) ? process.env.NODE_ENV !== "production" ? invariant(false, "Either prop `buttonIcon` must be defined, or this node must have children") : invariant(false) : void 0;
36
- if (checked !== undefined && !deprecateCheckedWarnTriggered) {
37
- deprecateCheckedWarnTriggered = true;
38
- Logger.deprecate("The `checked` prop in `ButtonToggle` component is deprecated and will soon be removed. Please use `pressed` instead.");
39
- }
40
- if (name && !deprecateNameWarnTriggered) {
41
- deprecateNameWarnTriggered = true;
42
- Logger.deprecate(`The \`name\` prop in \`ButtonToggle\` component is deprecated and will soon be removed. It does not provide any functionality
43
- since the component can no longer be used in an uncontrolled fashion.`);
44
- }
45
32
  if (grouped && !deprecateGroupedWarnTriggered) {
46
33
  deprecateGroupedWarnTriggered = true;
47
34
  Logger.deprecate("The `grouped` prop in `ButtonToggle` component is deprecated and will soon be removed. Spacing between buttons is no longer no removed.");
48
35
  }
49
- const pressedPropValue = pressed === undefined ? checked : pressed;
50
36
  const buttonRef = useRef(null);
51
37
  const {
52
38
  onMouseEnter,
@@ -59,7 +45,6 @@ export const ButtonToggle = ({
59
45
  handleKeyDown,
60
46
  pressedButtonValue,
61
47
  onChange,
62
- name: groupName,
63
48
  allowDeselect,
64
49
  isInGroup,
65
50
  isDisabled,
@@ -83,7 +68,7 @@ export const ButtonToggle = ({
83
68
  if (allowDeselect && pressedButtonValue === value) {
84
69
  newValue = undefined;
85
70
  }
86
- onChange(ev, newValue, groupName || name);
71
+ onChange(ev, newValue);
87
72
  }
88
73
  if (value) {
89
74
  onButtonClick(value);
@@ -109,7 +94,7 @@ export const ButtonToggle = ({
109
94
  inputGroupOnBlur();
110
95
  }
111
96
  }
112
- const isPressed = isInGroup ? pressedButtonValue === value : pressedPropValue;
97
+ const isPressed = isInGroup ? pressedButtonValue === value : pressed;
113
98
  const isFirstButton = buttonRef.current === firstButton;
114
99
 
115
100
  // if we're in a ButtonToggleGroup, only one button should be tabbable - the pressed button if there is one, or
@@ -55,6 +55,7 @@ export const CheckboxGroup = props => {
55
55
  inline: inline
56
56
  }), /*#__PURE__*/React.createElement(StyledCheckboxGroup, {
57
57
  "data-component": "checkbox-group",
58
+ "data-role": "checkbox-group",
58
59
  legendInline: legendInline,
59
60
  inline: inline
60
61
  }, /*#__PURE__*/React.createElement(CheckboxGroupContext.Provider, {
@@ -81,6 +82,7 @@ export const CheckboxGroup = props => {
81
82
  blockGroupBehaviour: !(error || warning || info)
82
83
  }, filterStyledSystemMarginProps(props)), /*#__PURE__*/React.createElement(StyledCheckboxGroup, {
83
84
  "data-component": "checkbox-group",
85
+ "data-role": "checkbox-group",
84
86
  legendInline: legendInline
85
87
  }, /*#__PURE__*/React.createElement(CheckboxGroupContext.Provider, {
86
88
  value: {
@@ -2,6 +2,7 @@ import React from "react";
2
2
  import PropTypes from "prop-types";
3
3
  import StyledCheckableInputSvgWrapper from "../../__internal__/checkable-input/checkable-input-svg-wrapper.style";
4
4
  const CheckboxSvg = () => /*#__PURE__*/React.createElement(StyledCheckableInputSvgWrapper, null, /*#__PURE__*/React.createElement("svg", {
5
+ "data-role": "checkable-svg",
5
6
  focusable: "false",
6
7
  width: "12",
7
8
  height: "10",
@@ -111,7 +111,6 @@ const StyledCheckbox = styled.div`
111
111
 
112
112
  ${StyledFieldHelp} {
113
113
  margin-left: 24px;
114
- padding-left: ${labelSpacing === 1 ? "var(--spacing100)" : "var(--spacing200)"};
115
114
  }
116
115
 
117
116
  ${fieldHelpInline && css`
@@ -1,17 +1,9 @@
1
1
  import React from "react";
2
2
  import { MarginProps } from "styled-system";
3
3
  import { TagProps } from "../../../__internal__/utils/helpers/tags";
4
- export interface CustomEvent {
5
- target: {
6
- name?: string;
7
- value?: string;
8
- };
9
- }
10
4
  export interface ButtonToggleGroupProps extends MarginProps, TagProps {
11
5
  /** Unique id for the root element of the component */
12
6
  id: string;
13
- /** Specifies the name prop to be applied to each button in the group */
14
- name?: string;
15
7
  /** Toggle buttons to be rendered. Only accepts children of type ButtonToggle */
16
8
  children?: React.ReactNode;
17
9
  /** aria-label for the group wrapper. Required for accessibility when no text label is provided */
@@ -37,7 +29,7 @@ export interface ButtonToggleGroupProps extends MarginProps, TagProps {
37
29
  /** If true all ButtonToggle children will flex to the full width of the ButtonToggleGroup parent */
38
30
  fullWidth?: boolean;
39
31
  /** Callback triggered by pressing one of the child buttons. Use with controlled components to set the value prop to the value argument */
40
- onChange?: (ev: React.MouseEvent<HTMLButtonElement>, value?: string, name?: string) => void;
32
+ onChange?: (ev: React.MouseEvent<HTMLButtonElement>, value?: string) => void;
41
33
  /** Determines which child button is selected when the component is used as a controlled component */
42
34
  value?: string;
43
35
  /** [Legacy] Aria label for rendered help component */
@@ -56,8 +48,7 @@ declare type ButtonToggleGroupContextType = {
56
48
  onButtonClick: (value: string) => void;
57
49
  handleKeyDown: (ev: React.KeyboardEvent<HTMLButtonElement>) => void;
58
50
  pressedButtonValue?: string;
59
- onChange?: (ev: React.MouseEvent<HTMLButtonElement>, value?: string, name?: string) => void;
60
- name?: string;
51
+ onChange?: (ev: React.MouseEvent<HTMLButtonElement>, value?: string) => void;
61
52
  allowDeselect?: boolean;
62
53
  isInGroup: boolean;
63
54
  isDisabled?: boolean;
@@ -68,7 +59,7 @@ declare type ButtonToggleGroupContextType = {
68
59
  };
69
60
  export declare const ButtonToggleGroupContext: React.Context<ButtonToggleGroupContextType>;
70
61
  declare const ButtonToggleGroup: {
71
- ({ children, fieldHelp, fieldHelpInline, "aria-label": ariaLabel, label, labelHelp, labelSpacing, inputHint, inputWidth, fullWidth, labelInline, labelWidth, name, onChange, value, "data-component": dataComponent, "data-element": dataElement, "data-role": dataRole, helpAriaLabel, id, allowDeselect, disabled, className, ...props }: ButtonToggleGroupProps): React.JSX.Element;
62
+ ({ children, fieldHelp, fieldHelpInline, "aria-label": ariaLabel, label, labelHelp, labelSpacing, inputHint, inputWidth, fullWidth, labelInline, labelWidth, onChange, value, "data-component": dataComponent, "data-element": dataElement, "data-role": dataRole, helpAriaLabel, id, allowDeselect, disabled, className, ...props }: ButtonToggleGroupProps): React.JSX.Element;
72
63
  displayName: string;
73
64
  };
74
65
  export default ButtonToggleGroup;
@@ -14,14 +14,12 @@ var _ = require("..");
14
14
  var _utils = require("../../../style/utils");
15
15
  var _tooltipProvider = require("../../../__internal__/tooltip-provider");
16
16
  var _inputBehaviour = require("../../../__internal__/input-behaviour");
17
- var _logger = _interopRequireDefault(require("../../../__internal__/utils/logger"));
18
17
  var _events = _interopRequireDefault(require("../../../__internal__/utils/helpers/events"));
19
18
  var _carbonProvider = require("../../carbon-provider/carbon-provider.component");
20
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
20
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
22
21
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
23
22
  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); }
24
- let deprecateNameWarnTriggered = false;
25
23
  const BUTTON_TOGGLE_SELECTOR = '[data-element="button-toggle-button"]';
26
24
  const ButtonToggleGroupContext = exports.ButtonToggleGroupContext = /*#__PURE__*/(0, _react.createContext)({
27
25
  onButtonClick: /* istanbul ignore next */() => {},
@@ -44,7 +42,6 @@ const ButtonToggleGroup = ({
44
42
  fullWidth,
45
43
  labelInline,
46
44
  labelWidth,
47
- name,
48
45
  onChange,
49
46
  value,
50
47
  "data-component": dataComponent = "button-toggle-group",
@@ -68,11 +65,6 @@ const ButtonToggleGroup = ({
68
65
  const hintTextId = (0, _react.useRef)((0, _guid.default)());
69
66
  const wrapperRef = (0, _react.useRef)(null);
70
67
  const [pressedButtonValue, setPressedButtonValue] = (0, _react.useState)();
71
- if (name && !deprecateNameWarnTriggered) {
72
- deprecateNameWarnTriggered = true;
73
- _logger.default.deprecate(`The \`name\` prop in \`ButtonToggleGroup\` component is deprecated and will soon be removed. It does not provide any functionality
74
- since the component can no longer be used in an uncontrolled fashion.`);
75
- }
76
68
  const {
77
69
  validationRedesignOptIn
78
70
  } = (0, _react.useContext)(_carbonProvider.NewValidationContext);
@@ -149,7 +141,6 @@ const ButtonToggleGroup = ({
149
141
  handleKeyDown,
150
142
  pressedButtonValue: value || pressedButtonValue,
151
143
  onChange,
152
- name,
153
144
  allowDeselect,
154
145
  isInGroup: true,
155
146
  isDisabled: disabled,
@@ -160,14 +151,14 @@ const ButtonToggleGroup = ({
160
151
  }, inputHint && /*#__PURE__*/_react.default.createElement(_buttonToggleGroup.StyledHintText, {
161
152
  id: hintTextId.current,
162
153
  isDisabled: disabled
163
- }, inputHint), /*#__PURE__*/_react.default.createElement(_buttonToggleGroup.StyledButtonToggleGroupWrapper, {
164
- labelInline: labelInline,
154
+ }, inputHint), /*#__PURE__*/_react.default.createElement(_buttonToggleGroup.default, _extends({
165
155
  ref: wrapperRef
166
- }, /*#__PURE__*/_react.default.createElement(_buttonToggleGroup.default, _extends({}, label ? {
156
+ }, label ? {
167
157
  "aria-labelledby": labelId.current
168
158
  } : {
169
159
  "aria-label": ariaLabel
170
160
  }, {
161
+ labelInline: labelInline,
171
162
  inputWidth: inputWidth,
172
163
  fullWidth: fullWidth,
173
164
  role: "group",
@@ -177,7 +168,7 @@ const ButtonToggleGroup = ({
177
168
  id: id,
178
169
  className: className,
179
170
  disabled: disabled
180
- }), children))))));
171
+ }), children)))));
181
172
  };
182
173
  ButtonToggleGroup.displayName = "ButtonToggleGroup";
183
174
  var _default = exports.default = ButtonToggleGroup;
@@ -1,8 +1,6 @@
1
1
  import { ButtonToggleGroupProps } from ".";
2
- declare type StyledButtonToggleGroupProps = Pick<ButtonToggleGroupProps, "inputWidth" | "fullWidth" | "disabled">;
3
- declare type StyledButtonToggleGroupWrapperProps = Pick<ButtonToggleGroupProps, "labelInline">;
2
+ declare type StyledButtonToggleGroupProps = Pick<ButtonToggleGroupProps, "inputWidth" | "fullWidth" | "disabled" | "labelInline">;
4
3
  declare const StyledButtonToggleGroup: import("styled-components").StyledComponent<"div", any, StyledButtonToggleGroupProps, never>;
5
- export declare const StyledButtonToggleGroupWrapper: import("styled-components").StyledComponent<"div", any, StyledButtonToggleGroupWrapperProps, never>;
6
4
  export declare const StyledHintText: import("styled-components").StyledComponent<"div", any, {
7
5
  isDisabled?: boolean | undefined;
8
6
  }, never>;
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.StyledHintText = exports.StyledButtonToggleGroupWrapper = void 0;
6
+ exports.default = exports.StyledHintText = void 0;
7
7
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
8
  var _styledSystem = require("styled-system");
9
9
  var _themes = require("../../../style/themes");
@@ -20,7 +20,9 @@ const StyledButtonToggleGroup = _styledComponents.default.div`
20
20
  gap: 4px;
21
21
  width: fit-content;
22
22
  height: fit-content;
23
- flex-wrap: wrap;
23
+ flex-wrap: ${({
24
+ labelInline
25
+ }) => labelInline ? "nowrap" : "wrap"};
24
26
 
25
27
  ${({
26
28
  disabled
@@ -47,16 +49,6 @@ const StyledButtonToggleGroup = _styledComponents.default.div`
47
49
  width: ${`${inputWidth}%`};
48
50
  `}
49
51
  `;
50
- const StyledButtonToggleGroupWrapper = exports.StyledButtonToggleGroupWrapper = _styledComponents.default.div`
51
- ${({
52
- labelInline
53
- }) => labelInline && (0, _styledComponents.css)`
54
- display: flex;
55
- ${StyledButtonToggleGroup} {
56
- flex-wrap: nowrap;
57
- }
58
- `}
59
- `;
60
52
  const StyledHintText = exports.StyledHintText = _styledComponents.default.div`
61
53
  ::after {
62
54
  content: " ";
@@ -16,7 +16,8 @@ const ButtonToggleIcon = ({
16
16
  hasContent
17
17
  }) => /*#__PURE__*/_react.default.createElement(_buttonToggle.StyledButtonToggleIcon, {
18
18
  buttonIconSize: buttonIconSize,
19
- hasContent: hasContent
19
+ hasContent: hasContent,
20
+ "data-role": "button-toggle-icon"
20
21
  }, /*#__PURE__*/_react.default.createElement(_icon.default, {
21
22
  "aria-hidden": true,
22
23
  type: buttonIcon,
@@ -5,8 +5,6 @@ export interface ButtonToggleProps extends Partial<StyledButtonToggleProps> {
5
5
  "aria-label"?: string;
6
6
  /** Prop to specify the aria-labelledby property of the component */
7
7
  "aria-labelledby"?: string;
8
- /** DEPRECATED: A synonym for pressed, to keep backwards compatibility. */
9
- checked?: boolean;
10
8
  /** Text to display for the button. */
11
9
  children?: React.ReactNode;
12
10
  /** Identifier used for testing purposes, applied to the root element of the component. */
@@ -17,8 +15,6 @@ export interface ButtonToggleProps extends Partial<StyledButtonToggleProps> {
17
15
  "data-role"?: string;
18
16
  /** DEPRECATED: Remove spacing from between buttons. */
19
17
  grouped?: boolean;
20
- /** An optional string by which to identify the button in an onChange handler on the parent ButtonToggleGroup. */
21
- name?: string;
22
18
  /** Callback triggered by blur event on the button. */
23
19
  onBlur?: (ev: React.FocusEvent<HTMLButtonElement>) => void;
24
20
  /** Callback triggered by focus event on the button. */
@@ -31,7 +27,7 @@ export interface ButtonToggleProps extends Partial<StyledButtonToggleProps> {
31
27
  value?: string;
32
28
  }
33
29
  export declare const ButtonToggle: {
34
- ({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, buttonIcon, buttonIconSize, checked, children, "data-component": dataComponent, "data-element": dataElement, "data-role": dataRole, disabled, grouped, name, onBlur, onFocus, onClick, pressed, size, value, }: ButtonToggleProps): React.JSX.Element;
30
+ ({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, buttonIcon, buttonIconSize, children, "data-component": dataComponent, "data-element": dataElement, "data-role": dataRole, disabled, grouped, onBlur, onFocus, onClick, pressed, size, value, }: ButtonToggleProps): React.JSX.Element;
35
31
  displayName: string;
36
32
  };
37
33
  export default ButtonToggle;
@@ -17,8 +17,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
17
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
18
18
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
19
19
  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); }
20
- let deprecateCheckedWarnTriggered = false;
21
- let deprecateNameWarnTriggered = false;
22
20
  let deprecateUncontrolledWarnTriggered = false;
23
21
  let deprecateGroupedWarnTriggered = false;
24
22
  const ButtonToggle = ({
@@ -26,14 +24,12 @@ const ButtonToggle = ({
26
24
  "aria-labelledby": ariaLabelledBy,
27
25
  buttonIcon,
28
26
  buttonIconSize = "small",
29
- checked,
30
27
  children,
31
28
  "data-component": dataComponent,
32
29
  "data-element": dataElement,
33
30
  "data-role": dataRole,
34
31
  disabled,
35
32
  grouped,
36
- name,
37
33
  onBlur,
38
34
  onFocus,
39
35
  onClick,
@@ -42,20 +38,10 @@ const ButtonToggle = ({
42
38
  value
43
39
  }) => {
44
40
  !!!(children || buttonIcon) ? process.env.NODE_ENV !== "production" ? (0, _invariant.default)(false, "Either prop `buttonIcon` must be defined, or this node must have children") : (0, _invariant.default)(false) : void 0;
45
- if (checked !== undefined && !deprecateCheckedWarnTriggered) {
46
- deprecateCheckedWarnTriggered = true;
47
- _logger.default.deprecate("The `checked` prop in `ButtonToggle` component is deprecated and will soon be removed. Please use `pressed` instead.");
48
- }
49
- if (name && !deprecateNameWarnTriggered) {
50
- deprecateNameWarnTriggered = true;
51
- _logger.default.deprecate(`The \`name\` prop in \`ButtonToggle\` component is deprecated and will soon be removed. It does not provide any functionality
52
- since the component can no longer be used in an uncontrolled fashion.`);
53
- }
54
41
  if (grouped && !deprecateGroupedWarnTriggered) {
55
42
  deprecateGroupedWarnTriggered = true;
56
43
  _logger.default.deprecate("The `grouped` prop in `ButtonToggle` component is deprecated and will soon be removed. Spacing between buttons is no longer no removed.");
57
44
  }
58
- const pressedPropValue = pressed === undefined ? checked : pressed;
59
45
  const buttonRef = (0, _react.useRef)(null);
60
46
  const {
61
47
  onMouseEnter,
@@ -68,7 +54,6 @@ const ButtonToggle = ({
68
54
  handleKeyDown,
69
55
  pressedButtonValue,
70
56
  onChange,
71
- name: groupName,
72
57
  allowDeselect,
73
58
  isInGroup,
74
59
  isDisabled,
@@ -92,7 +77,7 @@ const ButtonToggle = ({
92
77
  if (allowDeselect && pressedButtonValue === value) {
93
78
  newValue = undefined;
94
79
  }
95
- onChange(ev, newValue, groupName || name);
80
+ onChange(ev, newValue);
96
81
  }
97
82
  if (value) {
98
83
  onButtonClick(value);
@@ -118,7 +103,7 @@ const ButtonToggle = ({
118
103
  inputGroupOnBlur();
119
104
  }
120
105
  }
121
- const isPressed = isInGroup ? pressedButtonValue === value : pressedPropValue;
106
+ const isPressed = isInGroup ? pressedButtonValue === value : pressed;
122
107
  const isFirstButton = buttonRef.current === firstButton;
123
108
 
124
109
  // if we're in a ButtonToggleGroup, only one button should be tabbable - the pressed button if there is one, or
@@ -64,6 +64,7 @@ const CheckboxGroup = props => {
64
64
  inline: inline
65
65
  }), /*#__PURE__*/_react.default.createElement(_checkboxGroup.default, {
66
66
  "data-component": "checkbox-group",
67
+ "data-role": "checkbox-group",
67
68
  legendInline: legendInline,
68
69
  inline: inline
69
70
  }, /*#__PURE__*/_react.default.createElement(CheckboxGroupContext.Provider, {
@@ -90,6 +91,7 @@ const CheckboxGroup = props => {
90
91
  blockGroupBehaviour: !(error || warning || info)
91
92
  }, (0, _utils.filterStyledSystemMarginProps)(props)), /*#__PURE__*/_react.default.createElement(_checkboxGroup.default, {
92
93
  "data-component": "checkbox-group",
94
+ "data-role": "checkbox-group",
93
95
  legendInline: legendInline
94
96
  }, /*#__PURE__*/_react.default.createElement(CheckboxGroupContext.Provider, {
95
97
  value: {
@@ -9,6 +9,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _checkableInputSvgWrapper = _interopRequireDefault(require("../../__internal__/checkable-input/checkable-input-svg-wrapper.style"));
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
  const CheckboxSvg = () => /*#__PURE__*/_react.default.createElement(_checkableInputSvgWrapper.default, null, /*#__PURE__*/_react.default.createElement("svg", {
12
+ "data-role": "checkable-svg",
12
13
  focusable: "false",
13
14
  width: "12",
14
15
  height: "10",
@@ -120,7 +120,6 @@ const StyledCheckbox = _styledComponents.default.div`
120
120
 
121
121
  ${_fieldHelp.default} {
122
122
  margin-left: 24px;
123
- padding-left: ${labelSpacing === 1 ? "var(--spacing100)" : "var(--spacing200)"};
124
123
  }
125
124
 
126
125
  ${fieldHelpInline && (0, _styledComponents.css)`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-react",
3
- "version": "137.0.0",
3
+ "version": "138.0.0",
4
4
  "description": "A library of reusable React components for easily building user interfaces.",
5
5
  "files": [
6
6
  "lib",