carbon-react 152.2.1 → 152.4.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 (78) hide show
  1. package/esm/__internal__/ai-icon/ai-icon.component.d.ts +4 -0
  2. package/esm/__internal__/ai-icon/ai-icon.component.js +28 -0
  3. package/esm/__internal__/ai-icon/index.d.ts +1 -0
  4. package/esm/__internal__/ai-icon/index.js +1 -0
  5. package/esm/__internal__/utils/helpers/events/events.d.ts +1 -1
  6. package/esm/components/button/button-types.style.js +11 -1
  7. package/esm/components/button/button.component.js +1 -1
  8. package/esm/components/dialog/dialog.component.d.ts +1 -0
  9. package/esm/components/dialog/dialog.component.js +2 -0
  10. package/esm/components/dialog/dialog.style.d.ts +1 -0
  11. package/esm/components/dialog/dialog.style.js +14 -0
  12. package/esm/components/hr/hr.style.js +1 -1
  13. package/esm/components/image/image.style.d.ts +1 -1
  14. package/esm/components/message/message.component.d.ts +5 -1
  15. package/esm/components/message/message.component.js +38 -24
  16. package/esm/components/message/message.style.d.ts +4 -1
  17. package/esm/components/message/message.style.js +39 -13
  18. package/esm/components/split-button/split-button-toggle.style.d.ts +1 -0
  19. package/esm/components/split-button/split-button-toggle.style.js +30 -2
  20. package/esm/components/split-button/split-button.component.d.ts +2 -0
  21. package/esm/components/split-button/split-button.component.js +4 -0
  22. package/esm/components/tile/tile.style.d.ts +1 -1
  23. package/esm/components/time/index.d.ts +1 -1
  24. package/esm/components/time/time.component.js +16 -1
  25. package/esm/components/toast/toast.component.js +2 -1
  26. package/esm/components/toast/toast.style.d.ts +2 -3
  27. package/esm/components/toast/toast.style.js +1 -2
  28. package/esm/components/typography/typography.style.d.ts +1 -1
  29. package/esm/locales/en-gb.js +2 -1
  30. package/esm/locales/locale.d.ts +1 -0
  31. package/lib/__internal__/ai-icon/ai-icon.component.d.ts +4 -0
  32. package/lib/__internal__/ai-icon/ai-icon.component.js +36 -0
  33. package/lib/__internal__/ai-icon/index.d.ts +1 -0
  34. package/lib/__internal__/ai-icon/index.js +13 -0
  35. package/lib/__internal__/ai-icon/package.json +6 -0
  36. package/lib/__internal__/utils/helpers/events/events.d.ts +1 -1
  37. package/lib/components/button/button-types.style.js +11 -1
  38. package/lib/components/button/button.component.js +1 -1
  39. package/lib/components/dialog/dialog.component.d.ts +1 -0
  40. package/lib/components/dialog/dialog.component.js +2 -0
  41. package/lib/components/dialog/dialog.style.d.ts +1 -0
  42. package/lib/components/dialog/dialog.style.js +14 -0
  43. package/lib/components/hr/hr.style.js +1 -1
  44. package/lib/components/image/image.style.d.ts +1 -1
  45. package/lib/components/message/message.component.d.ts +5 -1
  46. package/lib/components/message/message.component.js +38 -24
  47. package/lib/components/message/message.style.d.ts +4 -1
  48. package/lib/components/message/message.style.js +38 -13
  49. package/lib/components/split-button/split-button-toggle.style.d.ts +1 -0
  50. package/lib/components/split-button/split-button-toggle.style.js +30 -2
  51. package/lib/components/split-button/split-button.component.d.ts +2 -0
  52. package/lib/components/split-button/split-button.component.js +4 -0
  53. package/lib/components/tile/tile.style.d.ts +1 -1
  54. package/lib/components/time/index.d.ts +1 -1
  55. package/lib/components/time/time.component.js +15 -0
  56. package/lib/components/toast/toast.component.js +2 -1
  57. package/lib/components/toast/toast.style.d.ts +2 -3
  58. package/lib/components/toast/toast.style.js +0 -7
  59. package/lib/components/typography/typography.style.d.ts +1 -1
  60. package/lib/locales/en-gb.js +2 -1
  61. package/lib/locales/locale.d.ts +1 -0
  62. package/package.json +15 -15
  63. package/esm/components/message/__internal__/message-content/message-content.component.d.ts +0 -9
  64. package/esm/components/message/__internal__/message-content/message-content.component.js +0 -19
  65. package/esm/components/message/__internal__/message-content/message-content.style.d.ts +0 -3
  66. package/esm/components/message/__internal__/message-content/message-content.style.js +0 -12
  67. package/esm/components/message/__internal__/type-icon/type-icon.component.d.ts +0 -8
  68. package/esm/components/message/__internal__/type-icon/type-icon.component.js +0 -20
  69. package/esm/components/message/__internal__/type-icon/type-icon.style.d.ts +0 -7
  70. package/esm/components/message/__internal__/type-icon/type-icon.style.js +0 -38
  71. package/lib/components/message/__internal__/message-content/message-content.component.d.ts +0 -9
  72. package/lib/components/message/__internal__/message-content/message-content.component.js +0 -26
  73. package/lib/components/message/__internal__/message-content/message-content.style.d.ts +0 -3
  74. package/lib/components/message/__internal__/message-content/message-content.style.js +0 -19
  75. package/lib/components/message/__internal__/type-icon/type-icon.component.d.ts +0 -8
  76. package/lib/components/message/__internal__/type-icon/type-icon.component.js +0 -27
  77. package/lib/components/message/__internal__/type-icon/type-icon.style.d.ts +0 -7
  78. package/lib/components/message/__internal__/type-icon/type-icon.style.js +0 -46
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "default", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _aiIcon.default;
10
+ }
11
+ });
12
+ var _aiIcon = _interopRequireDefault(require("./ai-icon.component"));
13
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "module": "../../../esm/__internal__/ai-icon/index.js",
4
+ "main": "./index.js",
5
+ "types": "./index.d.ts"
6
+ }
@@ -17,7 +17,7 @@ declare const Events: {
17
17
  /**
18
18
  * Determines if event is a keyboard event
19
19
  */
20
- isKeyboardEvent: (ev: React.SyntheticEvent | Event) => ev is React.KeyboardEvent<Element> | KeyboardEvent;
20
+ isKeyboardEvent: (ev: React.SyntheticEvent | Event) => ev is KeyboardEvent | React.KeyboardEvent<Element>;
21
21
  /**
22
22
  * Determines if a number key along the top of the keyboard or a number key on the
23
23
  * keypad is pressed
@@ -83,6 +83,16 @@ var _default = (isDisabled, destructive, isWhite) => ({
83
83
  ${makeColors("var(--colorsActionMajorYang100)")};
84
84
  }
85
85
 
86
+ ${isWhite && (!isDisabled || !destructive) ? `
87
+ border-color: var(--colorsActionMajorYang100);
88
+ ${makeColors("var(--colorsActionMajorYang100)")};
89
+ &:hover {
90
+ background: var(--colorsActionMajorYang100);
91
+ border-color: var(--colorsActionMajorYang100);
92
+ ${makeColors("var(--colorsYin100)")};
93
+ }
94
+ ` : ""}
95
+
86
96
  ${destructive ? `
87
97
  border-color: var(--colorsSemanticNegative500);
88
98
  ${makeColors("var(--colorsSemanticNegative500)")}
@@ -93,7 +103,7 @@ var _default = (isDisabled, destructive, isWhite) => ({
93
103
  }
94
104
  ` : ""}
95
105
 
96
- ${isDisabled ? `
106
+ ${isDisabled && !isWhite ? `
97
107
  border-color: var(--colorsActionDisabled500);
98
108
  ${makeColors("var(--colorsActionMajorYin030)")};
99
109
  &:hover {
@@ -73,13 +73,13 @@ const Button = /*#__PURE__*/_react.default.forwardRef(({
73
73
  children,
74
74
  destructive = false,
75
75
  disabled = false,
76
+ isWhite = false,
76
77
  fullWidth: fullWidthProp = false,
77
78
  href,
78
79
  iconPosition: iconPositionProp = "before",
79
80
  iconTooltipMessage,
80
81
  iconTooltipPosition,
81
82
  iconType,
82
- isWhite = false,
83
83
  m = 0,
84
84
  noWrap,
85
85
  onClick,
@@ -46,6 +46,7 @@ export interface DialogProps extends ModalProps, TagProps {
46
46
  height?: string;
47
47
  /** Adds Help tooltip to Header */
48
48
  help?: string;
49
+ highlightVariant?: string;
49
50
  /** A custom close event handler */
50
51
  onCancel?: (ev: React.KeyboardEvent<HTMLElement> | KeyboardEvent | React.MouseEvent<HTMLButtonElement>) => void;
51
52
  /** Determines if the close icon is shown */
@@ -40,6 +40,7 @@ const Dialog = exports.Dialog = /*#__PURE__*/(0, _react.forwardRef)(({
40
40
  bespokeFocusTrap,
41
41
  disableClose,
42
42
  help,
43
+ highlightVariant = "default",
43
44
  role = "dialog",
44
45
  contentPadding = {},
45
46
  greyBackground = false,
@@ -124,6 +125,7 @@ const Dialog = exports.Dialog = /*#__PURE__*/(0, _react.forwardRef)(({
124
125
  "aria-modal": isTopModal ? true : undefined,
125
126
  ref: containerRef
126
127
  }, dialogProps, {
128
+ highlightVariant: highlightVariant,
127
129
  role: role,
128
130
  tabIndex: -1
129
131
  }, contentPadding, {
@@ -3,6 +3,7 @@ declare const DialogPositioner: import("styled-components").StyledComponent<"div
3
3
  declare const StyledDialog: import("styled-components").StyledComponent<"div", any, Required<Pick<DialogProps, "size">> & {
4
4
  dialogHeight?: string | undefined;
5
5
  backgroundColor: string;
6
+ highlightVariant?: string | undefined;
6
7
  } & ContentPaddingInterface, never>;
7
8
  declare type StyledDialogTitleProps = {
8
9
  showCloseIcon?: boolean;
@@ -60,6 +60,20 @@ const StyledDialog = exports.StyledDialog = _styledComponents.default.div`
60
60
  outline: none;
61
61
  }
62
62
 
63
+ ${({
64
+ highlightVariant
65
+ }) => highlightVariant === "ai" && `
66
+ &::before {
67
+ content: "";
68
+ position: absolute;
69
+ top: -8px;
70
+ height: 100px;
71
+ width: 100%;
72
+ z-index: -1;
73
+ background: linear-gradient(90deg, #00D639 0%, #00D6DE 40%, #9D60FF 90%);
74
+ border-radius: var(--borderRadius200) var(--borderRadius200) 0 0;
75
+ }`}
76
+
63
77
  ${({
64
78
  backgroundColor
65
79
  }) => (0, _styledComponents.css)`
@@ -15,7 +15,7 @@ const heightMap = {
15
15
  };
16
16
  const StyledHr = _styledComponents.default.hr`
17
17
  ${_styledSystem.margin}
18
- width: inherit;
18
+ width: 100%;
19
19
  border: 0;
20
20
  height: ${({
21
21
  height
@@ -34,5 +34,5 @@ declare const StyledImage: import("styled-components").StyledComponent<"div", an
34
34
  bottom: string | undefined;
35
35
  left: string | undefined;
36
36
  as?: string | undefined;
37
- } & StyledImageProps, "hidden" | "children" | "left" | "right" | "top" | "bottom" | "src" | "as" | "position">;
37
+ } & StyledImageProps, "hidden" | "children" | "left" | "right" | "top" | "bottom" | "as" | "src" | "position">;
38
38
  export { StyledImage };
@@ -1,7 +1,11 @@
1
1
  import React from "react";
2
2
  import { MarginProps } from "styled-system";
3
3
  import { TagProps } from "../../__internal__/utils/helpers/tags/tags";
4
- export declare type MessageVariant = "error" | "info" | "success" | "warning" | "neutral";
4
+ export interface TypeIconProps {
5
+ transparent?: boolean;
6
+ variant: MessageVariant;
7
+ }
8
+ export declare type MessageVariant = "error" | "info" | "success" | "warning" | "neutral" | "ai";
5
9
  export interface MessageProps extends MarginProps, TagProps {
6
10
  /** Set the component's content */
7
11
  children?: React.ReactNode;
@@ -6,12 +6,12 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = exports.Message = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _typography = _interopRequireDefault(require("../typography"));
9
- var _message = _interopRequireDefault(require("./message.style"));
10
- var _typeIcon = _interopRequireDefault(require("./__internal__/type-icon/type-icon.component"));
11
- var _messageContent = _interopRequireDefault(require("./__internal__/message-content/message-content.component"));
9
+ var _content = _interopRequireDefault(require("../content"));
10
+ var _message = _interopRequireWildcard(require("./message.style"));
12
11
  var _tags = _interopRequireDefault(require("../../__internal__/utils/helpers/tags/tags"));
13
12
  var _icon = _interopRequireDefault(require("../icon"));
14
13
  var _iconButton = _interopRequireDefault(require("../icon-button"));
14
+ var _aiIcon = _interopRequireDefault(require("../../__internal__/ai-icon"));
15
15
  var _utils = require("../../style/utils");
16
16
  var _useLocale = _interopRequireDefault(require("../../hooks/__internal__/useLocale"));
17
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
@@ -31,38 +31,52 @@ const Message = exports.Message = /*#__PURE__*/_react.default.forwardRef(({
31
31
  width,
32
32
  ...props
33
33
  }, ref) => {
34
- const messageRef = (0, _react.useRef)(null);
35
- const refToPass = ref || messageRef;
34
+ const localRef = (0, _react.useRef)(null);
35
+ const messageRef = ref || localRef;
36
+ const locale = (0, _useLocale.default)();
36
37
  const marginProps = (0, _utils.filterStyledSystemMarginProps)(props);
37
- const l = (0, _useLocale.default)();
38
- const renderCloseIcon = () => {
39
- if (!showCloseIcon || !onDismiss) return null;
40
- return /*#__PURE__*/_react.default.createElement(_iconButton.default, {
41
- "data-element": "close",
42
- "aria-label": closeButtonAriaLabel || l.message.closeButtonAriaLabel(),
43
- onClick: onDismiss
44
- }, /*#__PURE__*/_react.default.createElement(_icon.default, {
45
- type: "close"
46
- }));
38
+ const VARIANT_ICON_MAP = {
39
+ neutral: "info",
40
+ success: "tick_circle",
41
+ error: "error",
42
+ warning: "warning",
43
+ info: "info"
47
44
  };
48
- return open ? /*#__PURE__*/_react.default.createElement(_message.default, _extends({}, (0, _tags.default)("Message", props), {
45
+ if (!open) {
46
+ return null;
47
+ }
48
+ return /*#__PURE__*/_react.default.createElement(_message.default, _extends({}, (0, _tags.default)("Message", props), {
49
49
  transparent: transparent,
50
50
  variant: variant,
51
51
  id: id,
52
52
  width: width,
53
- ref: refToPass
53
+ ref: messageRef
54
54
  }, marginProps, {
55
55
  tabIndex: -1
56
- }), /*#__PURE__*/_react.default.createElement(_typeIcon.default, {
56
+ }), /*#__PURE__*/_react.default.createElement(_message.TypeIconStyle, {
57
57
  variant: variant,
58
58
  transparent: transparent
59
- }), /*#__PURE__*/_react.default.createElement(_typography.default, {
59
+ }, variant === "ai" ? /*#__PURE__*/_react.default.createElement(_aiIcon.default, {
60
+ "data-role": "ai-icon"
61
+ }) : /*#__PURE__*/_react.default.createElement(_icon.default, {
62
+ "data-role": "category-icon",
63
+ type: VARIANT_ICON_MAP[variant]
64
+ })), /*#__PURE__*/_react.default.createElement(_typography.default, {
60
65
  screenReaderOnly: true
61
- }, l.message[variant]()), /*#__PURE__*/_react.default.createElement(_messageContent.default, {
62
- showCloseIcon: showCloseIcon,
63
- title: title,
64
- reduceLeftPadding: transparent
65
- }, children), renderCloseIcon()) : null;
66
+ }, locale.message?.[variant]?.()), /*#__PURE__*/_react.default.createElement(_message.MessageContent, {
67
+ "data-element": "message-content",
68
+ "data-role": "message-content"
69
+ }, !showCloseIcon || !onDismiss ? /*#__PURE__*/_react.default.createElement(_content.default, {
70
+ title: title
71
+ }, children) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_content.default, {
72
+ title: title
73
+ }, children), /*#__PURE__*/_react.default.createElement(_iconButton.default, {
74
+ "data-element": "close",
75
+ "aria-label": closeButtonAriaLabel || locale.message.closeButtonAriaLabel(),
76
+ onClick: onDismiss
77
+ }, /*#__PURE__*/_react.default.createElement(_icon.default, {
78
+ type: "close"
79
+ })))));
66
80
  });
67
81
  Message.displayName = "Message";
68
82
  var _default = exports.default = Message;
@@ -1,9 +1,12 @@
1
1
  import { MarginProps } from "styled-system";
2
- import { MessageVariant } from "./message.component";
2
+ import { MessageVariant, TypeIconProps } from "./message.component";
3
3
  declare type MessageStyleProps = {
4
4
  variant?: MessageVariant;
5
5
  transparent?: boolean;
6
6
  width?: string;
7
7
  };
8
8
  declare const MessageStyle: import("styled-components").StyledComponent<"div", any, MessageStyleProps & MarginProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>>, never>;
9
+ declare const MessageContent: import("styled-components").StyledComponent<"div", any, {}, never>;
10
+ declare const TypeIconStyle: import("styled-components").StyledComponent<"div", any, TypeIconProps, never>;
9
11
  export default MessageStyle;
12
+ export { MessageContent, TypeIconStyle };
@@ -3,11 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = void 0;
6
+ exports.default = exports.TypeIconStyle = exports.MessageContent = void 0;
7
7
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
8
  var _styledSystem = require("styled-system");
9
9
  var _base = _interopRequireDefault(require("../../style/themes/base"));
10
- var _iconButton = _interopRequireDefault(require("../icon-button/icon-button.style"));
11
10
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
11
  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); }
13
12
  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; }
@@ -16,13 +15,12 @@ const messageVariants = {
16
15
  info: "var(--colorsSemanticInfo500)",
17
16
  success: "var(--colorsSemanticPositive500)",
18
17
  warning: "var(--colorsSemanticCaution500)",
19
- neutral: "var(--colorsSemanticNeutral500)"
18
+ neutral: "var(--colorsSemanticNeutral500)",
19
+ ai: "var(--colorsUtilityYin100)"
20
20
  };
21
21
  const MessageStyle = _styledComponents.default.div`
22
22
  position: relative;
23
23
  display: flex;
24
- justify-content: flex-start;
25
- align-content: center;
26
24
  border-radius: var(--borderRadius100);
27
25
  overflow: hidden;
28
26
  border: 1px solid ${({
@@ -42,19 +40,46 @@ const MessageStyle = _styledComponents.default.div`
42
40
  background: transparent;
43
41
  `}
44
42
 
45
- ${_iconButton.default} {
46
- position: absolute;
47
- right: 20px;
48
- top: 50%;
49
- transform: translateY(-50%);
50
- }
51
-
52
43
  ${({
53
44
  width
54
45
  }) => width && `width: ${width};`}
55
-
56
46
  ${_styledSystem.margin}
57
47
  `;
48
+ const MessageContent = exports.MessageContent = _styledComponents.default.div`
49
+ width: 100%;
50
+ display: flex;
51
+ justify-content: space-between;
52
+ align-items: center;
53
+ padding: var(--spacing200);
54
+ gap: var(--spacing300);
55
+ `;
56
+ const TypeIconStyle = exports.TypeIconStyle = _styledComponents.default.div`
57
+ display: flex;
58
+ justify-content: center;
59
+ align-items: center;
60
+ background-color: ${({
61
+ variant
62
+ }) => messageVariants[variant]};
63
+ min-width: 30px;
64
+
65
+ span {
66
+ &:before {
67
+ color: var(--colorsUtilityYang100);
68
+ }
69
+ }
70
+
71
+ ${({
72
+ transparent,
73
+ variant
74
+ }) => transparent && (0, _styledComponents.css)`
75
+ background-color: transparent;
76
+ span {
77
+ &:before {
78
+ color: ${messageVariants[variant]};
79
+ }
80
+ }
81
+ `}
82
+ `;
58
83
  MessageStyle.defaultProps = {
59
84
  theme: _base.default
60
85
  };
@@ -3,6 +3,7 @@ declare type StyledSplitButtonToggleProps = {
3
3
  disabled: boolean;
4
4
  displayed: boolean;
5
5
  size: "small" | "medium" | "large";
6
+ isWhite?: boolean;
6
7
  };
7
8
  declare const StyledSplitButtonToggle: import("styled-components").StyledComponent<"button", any, import("styled-system").SpaceProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol> & Omit<import("../button").ButtonProps, "buttonType"> & {
8
9
  iconOnly?: boolean | undefined;
@@ -21,12 +21,13 @@ const StyledSplitButtonToggle = (0, _styledComponents.default)(_button.default)`
21
21
  buttonType,
22
22
  disabled,
23
23
  displayed,
24
- size
24
+ size,
25
+ isWhite
25
26
  }) => (0, _styledComponents.css)`
26
27
  border-top-left-radius: var(--borderRadius000);
27
28
  border-bottom-left-radius: var(--borderRadius000);
28
29
 
29
- ${!disabled && displayed ? (0, _styledComponents.css)`
30
+ ${!disabled && displayed && !isWhite ? (0, _styledComponents.css)`
30
31
  background-color: var(--colorsActionMajor500);
31
32
  border-color: var(--colorsActionMajor500);
32
33
 
@@ -39,6 +40,21 @@ const StyledSplitButtonToggle = (0, _styledComponents.default)(_button.default)`
39
40
  border-left-color: var(--colorsSemanticFocus500);
40
41
  }
41
42
  ` : ""}
43
+
44
+ ${!disabled && displayed && isWhite ? (0, _styledComponents.css)`
45
+ background-color: var(--colorsActionMajorYang100);
46
+ border-color: var(--colorsActionMajorYang100);
47
+
48
+ &,
49
+ ${_icon.default} {
50
+ color: var(--colorsYin100);
51
+ }
52
+
53
+ &:focus {
54
+ border-left-color: var(--colorsSemanticFocus500);
55
+ }
56
+ ` : ""}
57
+
42
58
  ${!disabled && buttonType === "primary" && `
43
59
  position: relative;
44
60
  &::before {
@@ -72,6 +88,18 @@ const StyledSplitButtonToggle = (0, _styledComponents.default)(_button.default)`
72
88
  color: var(--colorsActionMajorYang100);
73
89
  }
74
90
  }
91
+
92
+ ${!disabled && isWhite && `
93
+ &:focus {
94
+ background-color: var(--colorsActionMajorYang100);
95
+ border-color: var(--colorsActionMajorYang100);
96
+
97
+ &,
98
+ ${_icon.default} {
99
+ color: var(--colorsYin100);
100
+ }
101
+ }
102
+ `}
75
103
  `}
76
104
  `;
77
105
  StyledSplitButtonToggle.defaultProps = {
@@ -25,6 +25,8 @@ export interface SplitButtonProps extends React.ButtonHTMLAttributes<HTMLButtonE
25
25
  text: string;
26
26
  /** Sets rendering position of menu */
27
27
  position?: "left" | "right";
28
+ /** Renders the white variant of the secondary split button */
29
+ isWhite?: boolean;
28
30
  }
29
31
  export declare type SplitButtonHandle = {
30
32
  /** Programmatically focus the main button */
@@ -41,6 +41,7 @@ const SplitButton = exports.SplitButton = /*#__PURE__*/(0, _react.forwardRef)(({
41
41
  "data-element": dataElement,
42
42
  "data-role": dataRole,
43
43
  "aria-label": ariaLabel,
44
+ isWhite = false,
44
45
  ...rest
45
46
  }, ref) => {
46
47
  const locale = (0, _useLocale.default)();
@@ -51,6 +52,7 @@ const SplitButton = exports.SplitButton = /*#__PURE__*/(0, _react.forwardRef)(({
51
52
  const {
52
53
  isInFlatTable
53
54
  } = (0, _react.useContext)(_flatTable.default);
55
+ const shouldRenderIsWhiteVariant = buttonType === "secondary" && isWhite;
54
56
  (0, _react.useImperativeHandle)(ref, () => ({
55
57
  focusMainButton() {
56
58
  mainButtonRef.current?.focus();
@@ -85,12 +87,14 @@ const SplitButton = exports.SplitButton = /*#__PURE__*/(0, _react.forwardRef)(({
85
87
  onClick: handleMainClick,
86
88
  size,
87
89
  subtext,
90
+ isWhite: shouldRenderIsWhiteVariant,
88
91
  ...(0, _utils.filterOutStyledSystemSpacingProps)(rest)
89
92
  };
90
93
  const handleToggleClick = () => {
91
94
  showButtons();
92
95
  };
93
96
  const toggleButtonProps = {
97
+ isWhite: shouldRenderIsWhiteVariant,
94
98
  disabled,
95
99
  displayed: showAdditionalButtons,
96
100
  onTouchStart: showButtons,
@@ -1,6 +1,6 @@
1
1
  import { SpaceProps } from "styled-system";
2
2
  import { TileProps } from "./tile.component";
3
- declare const StyledTile: import("styled-components").StyledComponent<"div", any, Pick<TileProps, "width" | "height" | "variant" | "roundness" | "borderWidth" | "borderVariant" | "highlightVariant"> & {
3
+ declare const StyledTile: import("styled-components").StyledComponent<"div", any, Pick<TileProps, "width" | "height" | "variant" | "highlightVariant" | "roundness" | "borderWidth" | "borderVariant"> & {
4
4
  isHorizontal?: boolean | undefined;
5
5
  } & SpaceProps<Required<import("styled-system").Theme<import("styled-system").TLengthStyledSystem>>, string | number | symbol>, never>;
6
6
  export default StyledTile;
@@ -1,2 +1,2 @@
1
1
  export { default as Time } from "./time.component";
2
- export type { TimeValue, TimeProps, TimeHandle, ToggleValue, } from "./time.component";
2
+ export type { TimeValue, TimeProps, TimeHandle, ToggleValue, TimeInputEvent, } from "./time.component";
@@ -78,6 +78,21 @@ const Time = /*#__PURE__*/_react.default.forwardRef(({
78
78
  const minsAriaLabel = minutesAriaLabel || locale.time.minutesAriaLabelText();
79
79
  const hoursRef = (0, _react.useRef)(null);
80
80
  const minsRef = (0, _react.useRef)(null);
81
+ (0, _react.useEffect)(() => {
82
+ const updates = [...inputValues];
83
+ if (inputValues[0] !== hourValue) {
84
+ updates[0] = hourValue;
85
+ }
86
+ if (inputValues[1] !== minuteValue) {
87
+ updates[1] = minuteValue;
88
+ }
89
+ if (inputValues[0] !== hourValue || inputValues[1] !== minuteValue) {
90
+ setInputValues(updates);
91
+ const formattedHours = hourValue.length ? hourValue.padStart(2, "0") : hourValue;
92
+ const formattedMinutes = minuteValue.length ? minuteValue.padStart(2, "0") : minuteValue;
93
+ setFormattedInputValues([formattedHours, formattedMinutes]);
94
+ }
95
+ }, [hourValue, minuteValue, inputValues]);
81
96
  const computedValidations = (hrs, mins) => {
82
97
  const hoursIsString = typeof hrs === "string";
83
98
  const minutesIsString = typeof mins === "string";
@@ -9,6 +9,7 @@ var _reactTransitionGroup = require("react-transition-group");
9
9
  var _icon = _interopRequireDefault(require("../icon"));
10
10
  var _tags = _interopRequireDefault(require("../../__internal__/utils/helpers/tags/tags"));
11
11
  var _toast = require("./toast.style");
12
+ var _message = require("../message/message.style");
12
13
  var _iconButton = _interopRequireDefault(require("../icon-button"));
13
14
  var _events = _interopRequireDefault(require("../../__internal__/utils/helpers/events"));
14
15
  var _useLocale = _interopRequireDefault(require("../../hooks/__internal__/useLocale"));
@@ -141,7 +142,7 @@ const Toast = exports.Toast = /*#__PURE__*/_react.default.forwardRef(({
141
142
  }, !disableAutoFocus && {
142
143
  tabIndex,
143
144
  onBlur: () => setTabIndex(undefined)
144
- }), !isNotice && /*#__PURE__*/_react.default.createElement(_toast.TypeIcon, {
145
+ }), !isNotice && /*#__PURE__*/_react.default.createElement(_message.TypeIconStyle, {
145
146
  variant: isNotification ? "info" : variant,
146
147
  "data-role": "toast-type-icon"
147
148
  }, /*#__PURE__*/_react.default.createElement(_icon.default, {
@@ -1,12 +1,11 @@
1
1
  /// <reference types="react" />
2
- import TypeIcon from "../message/__internal__/type-icon/type-icon.style";
3
2
  import { MessageVariant } from "../message/message.component";
4
3
  declare const StyledPortal: import("styled-components").StyledComponent<({ children, className, id, onReposition, inertOptOut, }: import("../portal/portal").PortalProps) => import("react").JSX.Element, any, {
5
4
  align?: "center" | "left" | "right" | undefined;
6
5
  alignY?: "center" | "top" | "bottom" | undefined;
7
6
  isNotice?: boolean | undefined;
8
7
  }, never>;
9
- declare type ToastVariants = MessageVariant;
8
+ declare type ToastVariants = Exclude<MessageVariant, "ai">;
10
9
  declare type ToastStyleProps = {
11
10
  align?: "left" | "center" | "right";
12
11
  alignY?: "top" | "center" | "bottom";
@@ -24,4 +23,4 @@ declare const ToastWrapper: import("styled-components").StyledComponent<"div", a
24
23
  align?: "center" | "left" | "right" | undefined;
25
24
  isNotice?: boolean | undefined;
26
25
  }, never>;
27
- export { StyledPortal, StyledToast, TypeIcon, StyledToastContent, ToastWrapper, };
26
+ export { StyledPortal, StyledToast, StyledToastContent, ToastWrapper };
@@ -4,14 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ToastWrapper = exports.StyledToastContent = exports.StyledToast = exports.StyledPortal = void 0;
7
- Object.defineProperty(exports, "TypeIcon", {
8
- enumerable: true,
9
- get: function () {
10
- return _typeIcon.default;
11
- }
12
- });
13
7
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
14
- var _typeIcon = _interopRequireDefault(require("../message/__internal__/type-icon/type-icon.style"));
15
8
  var _iconButton = _interopRequireDefault(require("../icon-button/icon-button.style"));
16
9
  var _portal = _interopRequireDefault(require("../portal/portal"));
17
10
  var _base = _interopRequireDefault(require("../../style/themes/base"));
@@ -8,5 +8,5 @@ declare const StyledTypography: import("styled-components").StyledComponent<"spa
8
8
  textDecoration: string;
9
9
  lineHeight: string;
10
10
  defaultMargin: string;
11
- } & TypographyProps, "textDecoration" | "size" | "as" | "weight" | "textTransform" | "lineHeight" | "defaultMargin">;
11
+ } & TypographyProps, "textDecoration" | "as" | "size" | "weight" | "textTransform" | "lineHeight" | "defaultMargin">;
12
12
  export default StyledTypography;
@@ -115,7 +115,8 @@ const enGB = {
115
115
  info: () => "Information",
116
116
  success: () => "Success",
117
117
  warning: () => "Warning",
118
- neutral: () => "Information"
118
+ neutral: () => "Information",
119
+ ai: () => "AI Information"
119
120
  },
120
121
  numeralDate: {
121
122
  validation: {
@@ -93,6 +93,7 @@ interface Locale {
93
93
  success: () => string;
94
94
  warning: () => string;
95
95
  neutral: () => string;
96
+ ai?: () => string;
96
97
  };
97
98
  numeralDate: {
98
99
  validation: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-react",
3
- "version": "152.2.1",
3
+ "version": "152.4.0",
4
4
  "description": "A library of reusable React components for easily building user interfaces.",
5
5
  "files": [
6
6
  "lib",
@@ -74,20 +74,20 @@
74
74
  "@semantic-release/changelog": "^6.0.3",
75
75
  "@semantic-release/exec": "^6.0.3",
76
76
  "@semantic-release/git": "^10.0.1",
77
- "@storybook/addon-a11y": "^8.4.7",
78
- "@storybook/addon-actions": "^8.4.7",
79
- "@storybook/addon-controls": "^8.4.7",
80
- "@storybook/addon-docs": "^8.4.7",
81
- "@storybook/addon-toolbars": "^8.4.7",
82
- "@storybook/addon-viewport": "^8.4.7",
77
+ "@storybook/addon-a11y": "~8.6.7",
78
+ "@storybook/addon-actions": "~8.6.7",
79
+ "@storybook/addon-controls": "~8.6.7",
80
+ "@storybook/addon-docs": "~8.6.7",
81
+ "@storybook/addon-toolbars": "~8.6.7",
82
+ "@storybook/addon-viewport": "~8.6.7",
83
83
  "@storybook/addon-webpack5-compiler-babel": "^3.0.3",
84
- "@storybook/components": "^8.4.7",
85
- "@storybook/manager-api": "^8.4.7",
86
- "@storybook/preview-api": "^8.4.7",
87
- "@storybook/react": "^8.4.7",
88
- "@storybook/react-webpack5": "^8.4.7",
89
- "@storybook/theming": "^8.4.7",
90
- "@storybook/types": "^8.4.7",
84
+ "@storybook/components": "~8.6.7",
85
+ "@storybook/manager-api": "~8.6.7",
86
+ "@storybook/preview-api": "~8.6.7",
87
+ "@storybook/react": "~8.6.7",
88
+ "@storybook/react-webpack5": "~8.6.7",
89
+ "@storybook/theming": "~8.6.7",
90
+ "@storybook/types": "~8.6.7",
91
91
  "@testing-library/dom": "^10.4.0",
92
92
  "@testing-library/jest-dom": "^6.6.3",
93
93
  "@testing-library/react": "^16.1.0",
@@ -161,7 +161,7 @@
161
161
  "semantic-release": "^24.2.3",
162
162
  "semver": "^7.5.4",
163
163
  "sprintf-js": "^1.1.3",
164
- "storybook": "^8.4.7",
164
+ "storybook": "~8.6.7",
165
165
  "styled-components": "^4.4.1",
166
166
  "typescript": "~4.7.0",
167
167
  "url-loader": "^4.1.1",
@@ -1,9 +0,0 @@
1
- import React from "react";
2
- export interface MessageContentProps {
3
- title?: React.ReactNode;
4
- children?: React.ReactNode;
5
- showCloseIcon?: boolean;
6
- reduceLeftPadding?: boolean;
7
- }
8
- declare const MessageContent: ({ title, children, showCloseIcon, reduceLeftPadding, }: MessageContentProps) => React.JSX.Element;
9
- export default MessageContent;