carbon-react 125.5.1 → 125.7.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.
@@ -17,9 +17,9 @@ export interface AccordionProps extends StyledAccordionContainerProps, SpaceProp
17
17
  /** Styled system spacing props provided to Accordion Title */
18
18
  headerSpacing?: SpaceProps;
19
19
  id?: string;
20
- /** Sets icon type - accepted values: 'chevron_down' (default), 'dropdown' */
21
- iconType?: "chevron_down" | "dropdown";
22
- /** Sets icon alignment - accepted values: 'left', 'right' (default) */
20
+ /** Sets icon type */
21
+ iconType?: "chevron_down" | "chevron_down_thick" | "dropdown";
22
+ /** Sets icon alignment */
23
23
  iconAlign?: "left" | "right";
24
24
  /** Sets accordion title */
25
25
  title: React.ReactNode;
@@ -4,8 +4,11 @@ import PropTypes from "prop-types";
4
4
  import useResizeObserver from "../../hooks/__internal__/useResizeObserver";
5
5
  import createGuid from "../../__internal__/utils/helpers/guid";
6
6
  import Events from "../../__internal__/utils/helpers/events";
7
+ import Logger from "../../__internal__/utils/logger";
7
8
  import { StyledAccordionContainer, StyledAccordionHeadingsContainer, StyledAccordionTitleContainer, StyledAccordionTitle, StyledAccordionSubTitle, StyledAccordionIcon, StyledAccordionContentContainer, StyledAccordionContent } from "./accordion.style";
8
9
  import ValidationIcon from "../../__internal__/validations";
10
+ let deprecatedSchemeWarnTriggered = false;
11
+ let deprecatedButtonHeadingWarnTriggered = false;
9
12
  const Accordion = /*#__PURE__*/React.forwardRef(({
10
13
  borders = "default",
11
14
  defaultExpanded,
@@ -15,8 +18,8 @@ const Accordion = /*#__PURE__*/React.forwardRef(({
15
18
  handleKeyboardAccessibility,
16
19
  id,
17
20
  index,
18
- iconType = "chevron_down",
19
- iconAlign = "right",
21
+ iconType,
22
+ iconAlign,
20
23
  scheme = "white",
21
24
  size = "large",
22
25
  subTitle,
@@ -30,8 +33,17 @@ const Accordion = /*#__PURE__*/React.forwardRef(({
30
33
  buttonHeading,
31
34
  buttonWidth = "150px",
32
35
  openTitle,
36
+ variant = "standard",
33
37
  ...rest
34
38
  }, ref) => {
39
+ if (!deprecatedSchemeWarnTriggered && scheme === "transparent") {
40
+ deprecatedSchemeWarnTriggered = true;
41
+ Logger.deprecate("The `scheme` prop for `Accordion` component is deprecated and will soon be removed.");
42
+ }
43
+ if (!deprecatedButtonHeadingWarnTriggered && buttonHeading) {
44
+ deprecatedButtonHeadingWarnTriggered = true;
45
+ Logger.deprecate("The `buttonHeading` prop for `Accordion` component is deprecated and will soon be removed. Please use `subtle` variant instead.");
46
+ }
35
47
  const isControlled = expanded !== undefined;
36
48
  const [isExpandedInternal, setIsExpandedInternal] = useState(defaultExpanded || false);
37
49
  const [contentHeight, setContentHeight] = useState(isExpandedInternal ? "auto" : 0);
@@ -63,13 +75,15 @@ const Accordion = /*#__PURE__*/React.forwardRef(({
63
75
  const contentId = `AccordionContent_${guid.current}`;
64
76
  const showValidationIcon = !!(error || warning || info);
65
77
  const getTitle = () => isExpanded ? openTitle || title : title;
78
+ const getIconType = () => size === "small" || variant === "subtle" ? "chevron_down_thick" : "chevron_down";
66
79
  return /*#__PURE__*/React.createElement(StyledAccordionContainer, _extends({
67
80
  id: accordionId,
68
81
  "data-component": "accordion",
69
82
  width: width,
70
- borders: borders,
83
+ borders: variant === "subtle" ? "none" : borders,
71
84
  scheme: scheme,
72
- buttonHeading: buttonHeading
85
+ buttonHeading: buttonHeading,
86
+ variant: variant
73
87
  }, rest), /*#__PURE__*/React.createElement(StyledAccordionTitleContainer, _extends({
74
88
  "data-element": "accordion-title-container",
75
89
  id: headerId,
@@ -78,10 +92,12 @@ const Accordion = /*#__PURE__*/React.forwardRef(({
78
92
  onClick: toggleAccordion,
79
93
  onKeyDown: handleKeyDown,
80
94
  tabIndex: 0,
81
- iconAlign: iconAlign,
95
+ iconAlign: iconAlign || (variant === "standard" ? "right" : "left"),
82
96
  ref: ref,
83
97
  size: size,
84
98
  buttonHeading: buttonHeading,
99
+ isExpanded: isExpanded,
100
+ variant: variant,
85
101
  buttonWidth: buttonWidth,
86
102
  hasButtonProps: buttonHeading && !(typeof headerSpacing === "undefined"),
87
103
  role: "button"
@@ -93,19 +109,20 @@ const Accordion = /*#__PURE__*/React.forwardRef(({
93
109
  buttonHeading: buttonHeading
94
110
  }, !buttonHeading && typeof title === "string" ? /*#__PURE__*/React.createElement(StyledAccordionTitle, {
95
111
  "data-element": "accordion-title",
96
- size: size
97
- }, title) : getTitle(), !buttonHeading && /*#__PURE__*/React.createElement(React.Fragment, null, showValidationIcon && /*#__PURE__*/React.createElement(ValidationIcon, {
112
+ size: size,
113
+ variant: variant
114
+ }, title) : getTitle(), !buttonHeading && variant !== "subtle" && /*#__PURE__*/React.createElement(React.Fragment, null, showValidationIcon && /*#__PURE__*/React.createElement(ValidationIcon, {
98
115
  error: error,
99
116
  warning: warning,
100
117
  info: info,
101
118
  tooltipPosition: "top",
102
119
  tabIndex: 0,
103
120
  ml: 1
104
- }), subTitle && size === "large" && /*#__PURE__*/React.createElement(StyledAccordionSubTitle, null, subTitle))), /*#__PURE__*/React.createElement(StyledAccordionIcon, {
121
+ }), subTitle && size === "large" && variant === "standard" && /*#__PURE__*/React.createElement(StyledAccordionSubTitle, null, subTitle))), /*#__PURE__*/React.createElement(StyledAccordionIcon, {
105
122
  "data-element": "accordion-icon",
106
- type: iconType,
123
+ type: iconType || getIconType(),
107
124
  isExpanded: isExpanded,
108
- iconAlign: iconAlign
125
+ iconAlign: iconAlign || (variant === "standard" ? "right" : "left")
109
126
  })), /*#__PURE__*/React.createElement(StyledAccordionContentContainer, {
110
127
  isExpanded: isExpanded,
111
128
  maxHeight: contentHeight
@@ -115,7 +132,8 @@ const Accordion = /*#__PURE__*/React.forwardRef(({
115
132
  id: contentId,
116
133
  "aria-labelledby": headerId,
117
134
  ref: accordionContent,
118
- disableContentPadding: disableContentPadding
135
+ disableContentPadding: disableContentPadding,
136
+ variant: variant
119
137
  }, children)));
120
138
  });
121
139
  Accordion.propTypes = {
@@ -439,7 +457,7 @@ Accordion.propTypes = {
439
457
  }), PropTypes.string])
440
458
  }),
441
459
  "iconAlign": PropTypes.oneOf(["left", "right"]),
442
- "iconType": PropTypes.oneOf(["chevron_down", "dropdown"]),
460
+ "iconType": PropTypes.oneOf(["chevron_down_thick", "chevron_down", "dropdown"]),
443
461
  "id": PropTypes.string,
444
462
  "index": PropTypes.number,
445
463
  "info": PropTypes.string,
@@ -757,6 +775,7 @@ Accordion.propTypes = {
757
775
  "size": PropTypes.oneOf(["large", "small"]),
758
776
  "subTitle": PropTypes.string,
759
777
  "title": PropTypes.node,
778
+ "variant": PropTypes.oneOf(["standard", "subtle"]),
760
779
  "warning": PropTypes.string,
761
780
  "width": PropTypes.string
762
781
  };
@@ -1,18 +1,21 @@
1
1
  /// <reference types="react" />
2
2
  declare const StyledAccordionGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
3
3
  export interface StyledAccordionContainerProps {
4
- /** Toggles left and right borders */
4
+ /** Toggles left and right borders, set to none when variant is subtle */
5
5
  borders?: "default" | "full" | "none";
6
- /** Renders the accordion heading in the style of a tertiary button */
6
+ /** (Deprecated) Renders the accordion heading in the style of a tertiary button */
7
7
  buttonHeading?: boolean;
8
- /** Sets background as white or transparent */
8
+ /** (Deprecated) Sets background as white or transparent, set to transparent when variant is subtle */
9
9
  scheme?: "white" | "transparent";
10
10
  /** Sets accordion width */
11
11
  width?: string;
12
+ /** Sets accordion variant */
13
+ variant?: "standard" | "subtle";
12
14
  }
13
15
  declare const StyledAccordionContainer: import("styled-components").StyledComponent<"div", any, StyledAccordionContainerProps, never>;
14
16
  interface StyledAccordionTitleProps {
15
17
  size?: "large" | "small";
18
+ variant?: "standard" | "subtle";
16
19
  }
17
20
  declare const StyledAccordionTitle: import("styled-components").StyledComponent<"h3", any, StyledAccordionTitleProps, never>;
18
21
  declare const StyledAccordionSubTitle: import("styled-components").StyledComponent<"span", any, {}, never>;
@@ -32,6 +35,8 @@ interface StyledAccordionTitleContainerProps {
32
35
  hasButtonProps?: boolean;
33
36
  iconAlign?: "left" | "right";
34
37
  size?: "large" | "small";
38
+ isExpanded?: boolean;
39
+ variant?: "standard" | "subtle";
35
40
  }
36
41
  declare const StyledAccordionTitleContainer: import("styled-components").StyledComponent<"div", any, StyledAccordionTitleContainerProps, never>;
37
42
  export interface StyledAccordionContentContainerProps {
@@ -41,6 +46,7 @@ export interface StyledAccordionContentContainerProps {
41
46
  declare const StyledAccordionContentContainer: import("styled-components").StyledComponent<"div", any, StyledAccordionContentContainerProps, never>;
42
47
  export interface StyledAccordionContentProps {
43
48
  disableContentPadding?: boolean;
49
+ variant?: "standard" | "subtle";
44
50
  }
45
51
  declare const StyledAccordionContent: import("styled-components").StyledComponent<"div", any, StyledAccordionContentProps, never>;
46
52
  export { StyledAccordionGroup, StyledAccordionContainer, StyledAccordionHeadingsContainer, StyledAccordionSubTitle, StyledAccordionTitleContainer, StyledAccordionTitle, StyledAccordionIcon, StyledAccordionContent, StyledAccordionContentContainer, };
@@ -11,8 +11,9 @@ const StyledAccordionContainer = styled.div`
11
11
  ${space}
12
12
  display: flex;
13
13
  align-items: ${({
14
- buttonHeading
15
- }) => buttonHeading ? "flex-start" : "stretch"};
14
+ buttonHeading,
15
+ variant
16
+ }) => buttonHeading || variant === "subtle" ? "flex-start" : "stretch"};
16
17
  justify-content: center;
17
18
  flex-direction: column;
18
19
  box-sizing: border-box;
@@ -21,8 +22,9 @@ const StyledAccordionContainer = styled.div`
21
22
  }) => width || "100%"};
22
23
  color: var(--colorsUtilityYin090);
23
24
  background-color: ${({
24
- scheme
25
- }) => scheme === "white" ? "var(--colorsUtilityYang100)" : "var(--colorsUtilityMajorTransparent)"};
25
+ scheme,
26
+ variant
27
+ }) => scheme === "white" && variant !== "subtle" ? "var(--colorsUtilityYang100)" : "var(--colorsUtilityMajorTransparent)"};
26
28
  border: 1px solid var(--colorsUtilityMajor100);
27
29
  ${({
28
30
  borders
@@ -36,19 +38,22 @@ const StyledAccordionContainer = styled.div`
36
38
  border: none;
37
39
  `}
38
40
 
39
- & + & {
40
- margin-top: -1px;
41
- border-top: 1px solid var(--colorsUtilityMajor100);
42
- border-bottom: 1px solid var(--colorsUtilityMajor100);
43
- }
41
+ ${({
42
+ variant
43
+ }) => variant !== "subtle" && css`
44
+ & + & {
45
+ margin-top: -1px;
46
+ border-top: 1px solid var(--colorsUtilityMajor100);
47
+ border-bottom: 1px solid var(--colorsUtilityMajor100);
48
+ }
49
+ `}
44
50
  `;
45
51
  const StyledAccordionTitle = styled.h3`
46
52
  font-size: ${({
47
- size
48
- }) => size === "small" ? "14" : "20"}px;
49
- font-weight: ${({
50
- size
51
- }) => size === "small" ? 700 : 900};
53
+ size,
54
+ variant
55
+ }) => size === "small" || variant === "subtle" ? "var(--fontSizes200)" : "var(--fontSizes400)"};
56
+ font-weight: 700;
52
57
  line-height: 1;
53
58
  user-select: none;
54
59
  margin: 0;
@@ -58,15 +63,18 @@ const StyledAccordionSubTitle = styled.span`
58
63
  `;
59
64
  const StyledAccordionIcon = styled(Icon)`
60
65
  transition: transform 0.3s;
66
+ transform: rotate(0deg);
61
67
  margin-right: ${({
62
68
  iconAlign
63
69
  }) => iconAlign === "left" ? "var(--spacing200)" : "var(--spacing000)"};
70
+
64
71
  ${({
65
72
  isExpanded,
66
73
  iconAlign
67
74
  }) => {
68
- return !isExpanded && (iconAlign === "right" ? "transform: rotate(90deg)" : "transform: rotate(-90deg)");
75
+ return isExpanded && (iconAlign === "right" ? "transform: rotate(180deg)" : "transform: rotate(-180deg)");
69
76
  }};
77
+
70
78
  color: var(--colorsActionMinor500);
71
79
  `;
72
80
  const StyledAccordionHeadingsContainer = styled.div`
@@ -104,7 +112,9 @@ const StyledAccordionTitleContainer = styled.div`
104
112
  iconAlign,
105
113
  size,
106
114
  hasButtonProps,
107
- theme
115
+ theme,
116
+ isExpanded,
117
+ variant
108
118
  }) => css`
109
119
  padding: ${size === "small" ? "var(--spacing200)" : "var(--spacing300)"};
110
120
  ${space}
@@ -124,7 +134,25 @@ const StyledAccordionTitleContainer = styled.div`
124
134
  ${!theme.focusRedesignOptOut ? addFocusStyling() : /* istanbul ignore next */oldFocusStyling}
125
135
  }
126
136
 
127
- ${!buttonHeading && css`
137
+ ${variant === "subtle" && css`
138
+ color: var(--colorsActionMajor500);
139
+ padding: var(--spacing025);
140
+ margin-bottom: ${isExpanded && "var(--spacing200)"};
141
+
142
+ ${StyledAccordionIcon} {
143
+ color: var(--colorsActionMajor500);
144
+ ${iconAlign === "left" && "margin-right: var(--spacing050)"};
145
+ }
146
+
147
+ :hover {
148
+ color: var(--colorsActionMajor600);
149
+ ${StyledAccordionIcon} {
150
+ color: var(--colorsActionMajor600);
151
+ }
152
+ }
153
+ `}
154
+
155
+ ${!buttonHeading && variant !== "subtle" && css`
128
156
  &:hover {
129
157
  background-color: var(--colorsUtilityMajor050);
130
158
  }
@@ -185,7 +213,7 @@ const StyledAccordionContentContainer = styled.div`
185
213
  `;
186
214
  const StyledAccordionContent = styled.div`
187
215
  padding: var(--spacing300);
188
- padding-top: 0;
216
+ padding-top: var(--spacing100);
189
217
  overflow: hidden;
190
218
 
191
219
  ${({
@@ -193,6 +221,14 @@ const StyledAccordionContent = styled.div`
193
221
  }) => disableContentPadding && css`
194
222
  padding: 0;
195
223
  `}
224
+
225
+ ${({
226
+ variant
227
+ }) => variant === "subtle" && css`
228
+ margin-left: var(--spacing150);
229
+ padding: var(--spacing100) var(--spacing200) var(--spacing300);
230
+ border-left: 2px solid var(--colorsUtilityMajor100);
231
+ `}
196
232
  `;
197
233
  StyledAccordionGroup.defaultProps = {
198
234
  theme: baseTheme
@@ -15,6 +15,7 @@ export const StyledPreviewPlaceholder = styled.span`
15
15
  width: ${({
16
16
  width
17
17
  }) => width || "100%"};
18
+ border-radius: var(--borderRadius050);
18
19
 
19
20
  & + & {
20
21
  margin-top: 3px;
package/esm/global.d.ts CHANGED
@@ -3,6 +3,7 @@ import { ModalList } from "components/modal/__internal__/modal-manager";
3
3
  declare global {
4
4
  module "*.png";
5
5
  module "*.svg";
6
+ module "*.txt";
6
7
  interface Window {
7
8
  __CARBON_INTERNALS_MODAL_LIST?: ModalList;
8
9
  __CARBON_INTERNALS_MODAL_SETTER_LIST?: ((
@@ -17,9 +17,9 @@ export interface AccordionProps extends StyledAccordionContainerProps, SpaceProp
17
17
  /** Styled system spacing props provided to Accordion Title */
18
18
  headerSpacing?: SpaceProps;
19
19
  id?: string;
20
- /** Sets icon type - accepted values: 'chevron_down' (default), 'dropdown' */
21
- iconType?: "chevron_down" | "dropdown";
22
- /** Sets icon alignment - accepted values: 'left', 'right' (default) */
20
+ /** Sets icon type */
21
+ iconType?: "chevron_down" | "chevron_down_thick" | "dropdown";
22
+ /** Sets icon alignment */
23
23
  iconAlign?: "left" | "right";
24
24
  /** Sets accordion title */
25
25
  title: React.ReactNode;
@@ -9,12 +9,15 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _useResizeObserver = _interopRequireDefault(require("../../hooks/__internal__/useResizeObserver"));
10
10
  var _guid = _interopRequireDefault(require("../../__internal__/utils/helpers/guid"));
11
11
  var _events = _interopRequireDefault(require("../../__internal__/utils/helpers/events"));
12
+ var _logger = _interopRequireDefault(require("../../__internal__/utils/logger"));
12
13
  var _accordion = require("./accordion.style");
13
14
  var _validations = _interopRequireDefault(require("../../__internal__/validations"));
14
15
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
16
  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); }
16
17
  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 && Object.prototype.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; }
17
18
  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); }
19
+ let deprecatedSchemeWarnTriggered = false;
20
+ let deprecatedButtonHeadingWarnTriggered = false;
18
21
  const Accordion = exports.Accordion = /*#__PURE__*/_react.default.forwardRef(({
19
22
  borders = "default",
20
23
  defaultExpanded,
@@ -24,8 +27,8 @@ const Accordion = exports.Accordion = /*#__PURE__*/_react.default.forwardRef(({
24
27
  handleKeyboardAccessibility,
25
28
  id,
26
29
  index,
27
- iconType = "chevron_down",
28
- iconAlign = "right",
30
+ iconType,
31
+ iconAlign,
29
32
  scheme = "white",
30
33
  size = "large",
31
34
  subTitle,
@@ -39,8 +42,17 @@ const Accordion = exports.Accordion = /*#__PURE__*/_react.default.forwardRef(({
39
42
  buttonHeading,
40
43
  buttonWidth = "150px",
41
44
  openTitle,
45
+ variant = "standard",
42
46
  ...rest
43
47
  }, ref) => {
48
+ if (!deprecatedSchemeWarnTriggered && scheme === "transparent") {
49
+ deprecatedSchemeWarnTriggered = true;
50
+ _logger.default.deprecate("The `scheme` prop for `Accordion` component is deprecated and will soon be removed.");
51
+ }
52
+ if (!deprecatedButtonHeadingWarnTriggered && buttonHeading) {
53
+ deprecatedButtonHeadingWarnTriggered = true;
54
+ _logger.default.deprecate("The `buttonHeading` prop for `Accordion` component is deprecated and will soon be removed. Please use `subtle` variant instead.");
55
+ }
44
56
  const isControlled = expanded !== undefined;
45
57
  const [isExpandedInternal, setIsExpandedInternal] = (0, _react.useState)(defaultExpanded || false);
46
58
  const [contentHeight, setContentHeight] = (0, _react.useState)(isExpandedInternal ? "auto" : 0);
@@ -72,13 +84,15 @@ const Accordion = exports.Accordion = /*#__PURE__*/_react.default.forwardRef(({
72
84
  const contentId = `AccordionContent_${guid.current}`;
73
85
  const showValidationIcon = !!(error || warning || info);
74
86
  const getTitle = () => isExpanded ? openTitle || title : title;
87
+ const getIconType = () => size === "small" || variant === "subtle" ? "chevron_down_thick" : "chevron_down";
75
88
  return /*#__PURE__*/_react.default.createElement(_accordion.StyledAccordionContainer, _extends({
76
89
  id: accordionId,
77
90
  "data-component": "accordion",
78
91
  width: width,
79
- borders: borders,
92
+ borders: variant === "subtle" ? "none" : borders,
80
93
  scheme: scheme,
81
- buttonHeading: buttonHeading
94
+ buttonHeading: buttonHeading,
95
+ variant: variant
82
96
  }, rest), /*#__PURE__*/_react.default.createElement(_accordion.StyledAccordionTitleContainer, _extends({
83
97
  "data-element": "accordion-title-container",
84
98
  id: headerId,
@@ -87,10 +101,12 @@ const Accordion = exports.Accordion = /*#__PURE__*/_react.default.forwardRef(({
87
101
  onClick: toggleAccordion,
88
102
  onKeyDown: handleKeyDown,
89
103
  tabIndex: 0,
90
- iconAlign: iconAlign,
104
+ iconAlign: iconAlign || (variant === "standard" ? "right" : "left"),
91
105
  ref: ref,
92
106
  size: size,
93
107
  buttonHeading: buttonHeading,
108
+ isExpanded: isExpanded,
109
+ variant: variant,
94
110
  buttonWidth: buttonWidth,
95
111
  hasButtonProps: buttonHeading && !(typeof headerSpacing === "undefined"),
96
112
  role: "button"
@@ -102,19 +118,20 @@ const Accordion = exports.Accordion = /*#__PURE__*/_react.default.forwardRef(({
102
118
  buttonHeading: buttonHeading
103
119
  }, !buttonHeading && typeof title === "string" ? /*#__PURE__*/_react.default.createElement(_accordion.StyledAccordionTitle, {
104
120
  "data-element": "accordion-title",
105
- size: size
106
- }, title) : getTitle(), !buttonHeading && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showValidationIcon && /*#__PURE__*/_react.default.createElement(_validations.default, {
121
+ size: size,
122
+ variant: variant
123
+ }, title) : getTitle(), !buttonHeading && variant !== "subtle" && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, showValidationIcon && /*#__PURE__*/_react.default.createElement(_validations.default, {
107
124
  error: error,
108
125
  warning: warning,
109
126
  info: info,
110
127
  tooltipPosition: "top",
111
128
  tabIndex: 0,
112
129
  ml: 1
113
- }), subTitle && size === "large" && /*#__PURE__*/_react.default.createElement(_accordion.StyledAccordionSubTitle, null, subTitle))), /*#__PURE__*/_react.default.createElement(_accordion.StyledAccordionIcon, {
130
+ }), subTitle && size === "large" && variant === "standard" && /*#__PURE__*/_react.default.createElement(_accordion.StyledAccordionSubTitle, null, subTitle))), /*#__PURE__*/_react.default.createElement(_accordion.StyledAccordionIcon, {
114
131
  "data-element": "accordion-icon",
115
- type: iconType,
132
+ type: iconType || getIconType(),
116
133
  isExpanded: isExpanded,
117
- iconAlign: iconAlign
134
+ iconAlign: iconAlign || (variant === "standard" ? "right" : "left")
118
135
  })), /*#__PURE__*/_react.default.createElement(_accordion.StyledAccordionContentContainer, {
119
136
  isExpanded: isExpanded,
120
137
  maxHeight: contentHeight
@@ -124,7 +141,8 @@ const Accordion = exports.Accordion = /*#__PURE__*/_react.default.forwardRef(({
124
141
  id: contentId,
125
142
  "aria-labelledby": headerId,
126
143
  ref: accordionContent,
127
- disableContentPadding: disableContentPadding
144
+ disableContentPadding: disableContentPadding,
145
+ variant: variant
128
146
  }, children)));
129
147
  });
130
148
  Accordion.propTypes = {
@@ -448,7 +466,7 @@ Accordion.propTypes = {
448
466
  }), _propTypes.default.string])
449
467
  }),
450
468
  "iconAlign": _propTypes.default.oneOf(["left", "right"]),
451
- "iconType": _propTypes.default.oneOf(["chevron_down", "dropdown"]),
469
+ "iconType": _propTypes.default.oneOf(["chevron_down_thick", "chevron_down", "dropdown"]),
452
470
  "id": _propTypes.default.string,
453
471
  "index": _propTypes.default.number,
454
472
  "info": _propTypes.default.string,
@@ -766,6 +784,7 @@ Accordion.propTypes = {
766
784
  "size": _propTypes.default.oneOf(["large", "small"]),
767
785
  "subTitle": _propTypes.default.string,
768
786
  "title": _propTypes.default.node,
787
+ "variant": _propTypes.default.oneOf(["standard", "subtle"]),
769
788
  "warning": _propTypes.default.string,
770
789
  "width": _propTypes.default.string
771
790
  };
@@ -1,18 +1,21 @@
1
1
  /// <reference types="react" />
2
2
  declare const StyledAccordionGroup: import("styled-components").StyledComponent<"div", any, {}, never>;
3
3
  export interface StyledAccordionContainerProps {
4
- /** Toggles left and right borders */
4
+ /** Toggles left and right borders, set to none when variant is subtle */
5
5
  borders?: "default" | "full" | "none";
6
- /** Renders the accordion heading in the style of a tertiary button */
6
+ /** (Deprecated) Renders the accordion heading in the style of a tertiary button */
7
7
  buttonHeading?: boolean;
8
- /** Sets background as white or transparent */
8
+ /** (Deprecated) Sets background as white or transparent, set to transparent when variant is subtle */
9
9
  scheme?: "white" | "transparent";
10
10
  /** Sets accordion width */
11
11
  width?: string;
12
+ /** Sets accordion variant */
13
+ variant?: "standard" | "subtle";
12
14
  }
13
15
  declare const StyledAccordionContainer: import("styled-components").StyledComponent<"div", any, StyledAccordionContainerProps, never>;
14
16
  interface StyledAccordionTitleProps {
15
17
  size?: "large" | "small";
18
+ variant?: "standard" | "subtle";
16
19
  }
17
20
  declare const StyledAccordionTitle: import("styled-components").StyledComponent<"h3", any, StyledAccordionTitleProps, never>;
18
21
  declare const StyledAccordionSubTitle: import("styled-components").StyledComponent<"span", any, {}, never>;
@@ -32,6 +35,8 @@ interface StyledAccordionTitleContainerProps {
32
35
  hasButtonProps?: boolean;
33
36
  iconAlign?: "left" | "right";
34
37
  size?: "large" | "small";
38
+ isExpanded?: boolean;
39
+ variant?: "standard" | "subtle";
35
40
  }
36
41
  declare const StyledAccordionTitleContainer: import("styled-components").StyledComponent<"div", any, StyledAccordionTitleContainerProps, never>;
37
42
  export interface StyledAccordionContentContainerProps {
@@ -41,6 +46,7 @@ export interface StyledAccordionContentContainerProps {
41
46
  declare const StyledAccordionContentContainer: import("styled-components").StyledComponent<"div", any, StyledAccordionContentContainerProps, never>;
42
47
  export interface StyledAccordionContentProps {
43
48
  disableContentPadding?: boolean;
49
+ variant?: "standard" | "subtle";
44
50
  }
45
51
  declare const StyledAccordionContent: import("styled-components").StyledComponent<"div", any, StyledAccordionContentProps, never>;
46
52
  export { StyledAccordionGroup, StyledAccordionContainer, StyledAccordionHeadingsContainer, StyledAccordionSubTitle, StyledAccordionTitleContainer, StyledAccordionTitle, StyledAccordionIcon, StyledAccordionContent, StyledAccordionContentContainer, };
@@ -20,8 +20,9 @@ const StyledAccordionContainer = exports.StyledAccordionContainer = _styledCompo
20
20
  ${_styledSystem.space}
21
21
  display: flex;
22
22
  align-items: ${({
23
- buttonHeading
24
- }) => buttonHeading ? "flex-start" : "stretch"};
23
+ buttonHeading,
24
+ variant
25
+ }) => buttonHeading || variant === "subtle" ? "flex-start" : "stretch"};
25
26
  justify-content: center;
26
27
  flex-direction: column;
27
28
  box-sizing: border-box;
@@ -30,8 +31,9 @@ const StyledAccordionContainer = exports.StyledAccordionContainer = _styledCompo
30
31
  }) => width || "100%"};
31
32
  color: var(--colorsUtilityYin090);
32
33
  background-color: ${({
33
- scheme
34
- }) => scheme === "white" ? "var(--colorsUtilityYang100)" : "var(--colorsUtilityMajorTransparent)"};
34
+ scheme,
35
+ variant
36
+ }) => scheme === "white" && variant !== "subtle" ? "var(--colorsUtilityYang100)" : "var(--colorsUtilityMajorTransparent)"};
35
37
  border: 1px solid var(--colorsUtilityMajor100);
36
38
  ${({
37
39
  borders
@@ -45,19 +47,22 @@ const StyledAccordionContainer = exports.StyledAccordionContainer = _styledCompo
45
47
  border: none;
46
48
  `}
47
49
 
48
- & + & {
49
- margin-top: -1px;
50
- border-top: 1px solid var(--colorsUtilityMajor100);
51
- border-bottom: 1px solid var(--colorsUtilityMajor100);
52
- }
50
+ ${({
51
+ variant
52
+ }) => variant !== "subtle" && (0, _styledComponents.css)`
53
+ & + & {
54
+ margin-top: -1px;
55
+ border-top: 1px solid var(--colorsUtilityMajor100);
56
+ border-bottom: 1px solid var(--colorsUtilityMajor100);
57
+ }
58
+ `}
53
59
  `;
54
60
  const StyledAccordionTitle = exports.StyledAccordionTitle = _styledComponents.default.h3`
55
61
  font-size: ${({
56
- size
57
- }) => size === "small" ? "14" : "20"}px;
58
- font-weight: ${({
59
- size
60
- }) => size === "small" ? 700 : 900};
62
+ size,
63
+ variant
64
+ }) => size === "small" || variant === "subtle" ? "var(--fontSizes200)" : "var(--fontSizes400)"};
65
+ font-weight: 700;
61
66
  line-height: 1;
62
67
  user-select: none;
63
68
  margin: 0;
@@ -67,15 +72,18 @@ const StyledAccordionSubTitle = exports.StyledAccordionSubTitle = _styledCompone
67
72
  `;
68
73
  const StyledAccordionIcon = exports.StyledAccordionIcon = (0, _styledComponents.default)(_icon.default)`
69
74
  transition: transform 0.3s;
75
+ transform: rotate(0deg);
70
76
  margin-right: ${({
71
77
  iconAlign
72
78
  }) => iconAlign === "left" ? "var(--spacing200)" : "var(--spacing000)"};
79
+
73
80
  ${({
74
81
  isExpanded,
75
82
  iconAlign
76
83
  }) => {
77
- return !isExpanded && (iconAlign === "right" ? "transform: rotate(90deg)" : "transform: rotate(-90deg)");
84
+ return isExpanded && (iconAlign === "right" ? "transform: rotate(180deg)" : "transform: rotate(-180deg)");
78
85
  }};
86
+
79
87
  color: var(--colorsActionMinor500);
80
88
  `;
81
89
  const StyledAccordionHeadingsContainer = exports.StyledAccordionHeadingsContainer = _styledComponents.default.div`
@@ -113,7 +121,9 @@ const StyledAccordionTitleContainer = exports.StyledAccordionTitleContainer = _s
113
121
  iconAlign,
114
122
  size,
115
123
  hasButtonProps,
116
- theme
124
+ theme,
125
+ isExpanded,
126
+ variant
117
127
  }) => (0, _styledComponents.css)`
118
128
  padding: ${size === "small" ? "var(--spacing200)" : "var(--spacing300)"};
119
129
  ${_styledSystem.space}
@@ -133,7 +143,25 @@ const StyledAccordionTitleContainer = exports.StyledAccordionTitleContainer = _s
133
143
  ${!theme.focusRedesignOptOut ? (0, _addFocusStyling.default)() : /* istanbul ignore next */oldFocusStyling}
134
144
  }
135
145
 
136
- ${!buttonHeading && (0, _styledComponents.css)`
146
+ ${variant === "subtle" && (0, _styledComponents.css)`
147
+ color: var(--colorsActionMajor500);
148
+ padding: var(--spacing025);
149
+ margin-bottom: ${isExpanded && "var(--spacing200)"};
150
+
151
+ ${StyledAccordionIcon} {
152
+ color: var(--colorsActionMajor500);
153
+ ${iconAlign === "left" && "margin-right: var(--spacing050)"};
154
+ }
155
+
156
+ :hover {
157
+ color: var(--colorsActionMajor600);
158
+ ${StyledAccordionIcon} {
159
+ color: var(--colorsActionMajor600);
160
+ }
161
+ }
162
+ `}
163
+
164
+ ${!buttonHeading && variant !== "subtle" && (0, _styledComponents.css)`
137
165
  &:hover {
138
166
  background-color: var(--colorsUtilityMajor050);
139
167
  }
@@ -194,7 +222,7 @@ const StyledAccordionContentContainer = exports.StyledAccordionContentContainer
194
222
  `;
195
223
  const StyledAccordionContent = exports.StyledAccordionContent = _styledComponents.default.div`
196
224
  padding: var(--spacing300);
197
- padding-top: 0;
225
+ padding-top: var(--spacing100);
198
226
  overflow: hidden;
199
227
 
200
228
  ${({
@@ -202,6 +230,14 @@ const StyledAccordionContent = exports.StyledAccordionContent = _styledComponent
202
230
  }) => disableContentPadding && (0, _styledComponents.css)`
203
231
  padding: 0;
204
232
  `}
233
+
234
+ ${({
235
+ variant
236
+ }) => variant === "subtle" && (0, _styledComponents.css)`
237
+ margin-left: var(--spacing150);
238
+ padding: var(--spacing100) var(--spacing200) var(--spacing300);
239
+ border-left: 2px solid var(--colorsUtilityMajor100);
240
+ `}
205
241
  `;
206
242
  StyledAccordionGroup.defaultProps = {
207
243
  theme: _themes.baseTheme
@@ -23,6 +23,7 @@ const StyledPreviewPlaceholder = exports.StyledPreviewPlaceholder = _styledCompo
23
23
  width: ${({
24
24
  width
25
25
  }) => width || "100%"};
26
+ border-radius: var(--borderRadius050);
26
27
 
27
28
  & + & {
28
29
  margin-top: 3px;
package/lib/global.d.ts CHANGED
@@ -3,6 +3,7 @@ import { ModalList } from "components/modal/__internal__/modal-manager";
3
3
  declare global {
4
4
  module "*.png";
5
5
  module "*.svg";
6
+ module "*.txt";
6
7
  interface Window {
7
8
  __CARBON_INTERNALS_MODAL_LIST?: ModalList;
8
9
  __CARBON_INTERNALS_MODAL_SETTER_LIST?: ((
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-react",
3
- "version": "125.5.1",
3
+ "version": "125.7.0",
4
4
  "description": "A library of reusable React components for easily building user interfaces.",
5
5
  "files": [
6
6
  "lib",