carbon-react 153.0.0-beta.1 → 153.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 (114) 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__/dom/globals.js +1 -1
  6. package/esm/__internal__/input/input.component.d.ts +6 -1
  7. package/esm/__internal__/input/input.component.js +3 -2
  8. package/esm/components/accordion/accordion-group/accordion-group.component.js +6 -0
  9. package/esm/components/button/button-types.style.js +11 -1
  10. package/esm/components/button/button.component.js +1 -1
  11. package/esm/components/dialog/dialog.component.d.ts +1 -0
  12. package/esm/components/dialog/dialog.component.js +2 -0
  13. package/esm/components/dialog/dialog.style.d.ts +1 -0
  14. package/esm/components/dialog/dialog.style.js +14 -0
  15. package/esm/components/hr/hr.style.js +1 -1
  16. package/esm/components/link/link.component.js +8 -1
  17. package/esm/components/menu/menu-item/menu-item.component.js +13 -7
  18. package/esm/components/message/message.component.d.ts +5 -1
  19. package/esm/components/message/message.component.js +38 -24
  20. package/esm/components/message/message.style.d.ts +4 -1
  21. package/esm/components/message/message.style.js +39 -13
  22. package/esm/components/portrait/portrait.style.js +0 -1
  23. package/esm/components/preview/preview.style.js +1 -1
  24. package/esm/components/select/__internal__/select-textbox/select-textbox.component.js +1 -1
  25. package/esm/components/select/simple-select/simple-select.component.js +1 -1
  26. package/esm/components/split-button/split-button-toggle.style.d.ts +1 -0
  27. package/esm/components/split-button/split-button-toggle.style.js +30 -2
  28. package/esm/components/split-button/split-button.component.d.ts +2 -0
  29. package/esm/components/split-button/split-button.component.js +4 -0
  30. package/esm/components/textarea/textarea.component.js +10 -3
  31. package/esm/components/textbox/textbox.component.js +10 -3
  32. package/esm/components/tile/tile.style.d.ts +1 -1
  33. package/esm/components/time/index.d.ts +1 -1
  34. package/esm/components/time/time.component.js +16 -1
  35. package/esm/components/toast/toast.component.js +2 -1
  36. package/esm/components/toast/toast.style.d.ts +2 -3
  37. package/esm/components/toast/toast.style.js +1 -2
  38. package/esm/components/vertical-menu/vertical-menu-full-screen/vertical-menu-full-screen.component.d.ts +1 -1
  39. package/esm/components/vertical-menu/vertical-menu-full-screen/vertical-menu-full-screen.component.js +5 -6
  40. package/esm/components/vertical-menu/vertical-menu.style.d.ts +5 -1
  41. package/esm/components/vertical-menu/vertical-menu.style.js +20 -1
  42. package/esm/hooks/{__internal__/useCharacterCount → useCharacterCount}/useCharacterCount.js +3 -3
  43. package/esm/locales/en-gb.js +2 -1
  44. package/esm/locales/locale.d.ts +1 -0
  45. package/lib/__internal__/ai-icon/ai-icon.component.d.ts +4 -0
  46. package/lib/__internal__/ai-icon/ai-icon.component.js +36 -0
  47. package/lib/__internal__/ai-icon/index.d.ts +1 -0
  48. package/lib/__internal__/ai-icon/index.js +13 -0
  49. package/lib/__internal__/ai-icon/package.json +6 -0
  50. package/lib/__internal__/dom/globals.js +1 -1
  51. package/lib/__internal__/input/input.component.d.ts +6 -1
  52. package/lib/__internal__/input/input.component.js +3 -2
  53. package/lib/components/accordion/accordion-group/accordion-group.component.js +6 -0
  54. package/lib/components/button/button-types.style.js +11 -1
  55. package/lib/components/button/button.component.js +1 -1
  56. package/lib/components/dialog/dialog.component.d.ts +1 -0
  57. package/lib/components/dialog/dialog.component.js +2 -0
  58. package/lib/components/dialog/dialog.style.d.ts +1 -0
  59. package/lib/components/dialog/dialog.style.js +14 -0
  60. package/lib/components/hr/hr.style.js +1 -1
  61. package/lib/components/link/link.component.js +8 -1
  62. package/lib/components/menu/menu-item/menu-item.component.js +12 -6
  63. package/lib/components/message/message.component.d.ts +5 -1
  64. package/lib/components/message/message.component.js +38 -24
  65. package/lib/components/message/message.style.d.ts +4 -1
  66. package/lib/components/message/message.style.js +38 -13
  67. package/lib/components/portrait/portrait.style.js +0 -1
  68. package/lib/components/preview/preview.style.js +1 -1
  69. package/lib/components/select/__internal__/select-textbox/select-textbox.component.js +1 -1
  70. package/lib/components/select/simple-select/simple-select.component.js +1 -1
  71. package/lib/components/split-button/split-button-toggle.style.d.ts +1 -0
  72. package/lib/components/split-button/split-button-toggle.style.js +30 -2
  73. package/lib/components/split-button/split-button.component.d.ts +2 -0
  74. package/lib/components/split-button/split-button.component.js +4 -0
  75. package/lib/components/textarea/textarea.component.js +10 -3
  76. package/lib/components/textbox/textbox.component.js +10 -3
  77. package/lib/components/tile/tile.style.d.ts +1 -1
  78. package/lib/components/time/index.d.ts +1 -1
  79. package/lib/components/time/time.component.js +15 -0
  80. package/lib/components/toast/toast.component.js +2 -1
  81. package/lib/components/toast/toast.style.d.ts +2 -3
  82. package/lib/components/toast/toast.style.js +0 -7
  83. package/lib/components/vertical-menu/vertical-menu-full-screen/vertical-menu-full-screen.component.d.ts +1 -1
  84. package/lib/components/vertical-menu/vertical-menu-full-screen/vertical-menu-full-screen.component.js +5 -6
  85. package/lib/components/vertical-menu/vertical-menu.style.d.ts +5 -1
  86. package/lib/components/vertical-menu/vertical-menu.style.js +20 -1
  87. package/lib/hooks/useCharacterCount/package.json +6 -0
  88. package/lib/hooks/{__internal__/useCharacterCount → useCharacterCount}/useCharacterCount.js +3 -3
  89. package/lib/locales/en-gb.js +2 -1
  90. package/lib/locales/locale.d.ts +1 -0
  91. package/package.json +15 -15
  92. package/esm/components/message/__internal__/message-content/message-content.component.d.ts +0 -9
  93. package/esm/components/message/__internal__/message-content/message-content.component.js +0 -19
  94. package/esm/components/message/__internal__/message-content/message-content.style.d.ts +0 -3
  95. package/esm/components/message/__internal__/message-content/message-content.style.js +0 -12
  96. package/esm/components/message/__internal__/type-icon/type-icon.component.d.ts +0 -8
  97. package/esm/components/message/__internal__/type-icon/type-icon.component.js +0 -20
  98. package/esm/components/message/__internal__/type-icon/type-icon.style.d.ts +0 -7
  99. package/esm/components/message/__internal__/type-icon/type-icon.style.js +0 -38
  100. package/lib/components/message/__internal__/message-content/message-content.component.d.ts +0 -9
  101. package/lib/components/message/__internal__/message-content/message-content.component.js +0 -26
  102. package/lib/components/message/__internal__/message-content/message-content.style.d.ts +0 -3
  103. package/lib/components/message/__internal__/message-content/message-content.style.js +0 -19
  104. package/lib/components/message/__internal__/type-icon/type-icon.component.d.ts +0 -8
  105. package/lib/components/message/__internal__/type-icon/type-icon.component.js +0 -27
  106. package/lib/components/message/__internal__/type-icon/type-icon.style.d.ts +0 -7
  107. package/lib/components/message/__internal__/type-icon/type-icon.style.js +0 -46
  108. package/lib/hooks/__internal__/useCharacterCount/package.json +0 -6
  109. /package/esm/hooks/{__internal__/useCharacterCount → useCharacterCount}/index.d.ts +0 -0
  110. /package/esm/hooks/{__internal__/useCharacterCount → useCharacterCount}/index.js +0 -0
  111. /package/esm/hooks/{__internal__/useCharacterCount → useCharacterCount}/useCharacterCount.d.ts +0 -0
  112. /package/lib/hooks/{__internal__/useCharacterCount → useCharacterCount}/index.d.ts +0 -0
  113. /package/lib/hooks/{__internal__/useCharacterCount → useCharacterCount}/index.js +0 -0
  114. /package/lib/hooks/{__internal__/useCharacterCount → useCharacterCount}/useCharacterCount.d.ts +0 -0
@@ -72,8 +72,14 @@ const MenuItem = ({
72
72
  } = submenuContext;
73
73
  const focusFromMenu = focusId === menuItemId.current;
74
74
  const focusFromSubmenu = submenuFocusId ? submenuFocusId === menuItemId.current : undefined;
75
- const ref = (0, _react.useRef)(null);
76
- const firstFocusableChild = ref.current?.querySelector(_focusTrapUtils.defaultFocusableSelectors) ?? null;
75
+ const [ref, setRef] = (0, _react.useState)(null);
76
+ const [firstFocusableChild, setFirstFocusableChild] = (0, _react.useState)(null);
77
+ (0, _react.useLayoutEffect)(() => {
78
+ const firstFocusable = ref?.querySelector(_focusTrapUtils.defaultFocusableSelectors) ?? null;
79
+ if (firstFocusable !== firstFocusableChild) {
80
+ setFirstFocusableChild(firstFocusable);
81
+ }
82
+ }, [ref]);
77
83
  (0, _react.useEffect)(() => {
78
84
  const id = menuItemId.current;
79
85
 
@@ -94,7 +100,7 @@ const MenuItem = ({
94
100
  firstFocusableChild.focus();
95
101
  return;
96
102
  }
97
- ref.current?.focus();
103
+ ref?.focus();
98
104
  }
99
105
  }, [firstFocusableChild, focusFromMenu, focusFromSubmenu]);
100
106
  const handleFocus = event => {
@@ -108,7 +114,7 @@ const MenuItem = ({
108
114
  const handleKeyDown = event => {
109
115
  onKeyDown?.(event);
110
116
  if (_events.default.isEscKey(event)) {
111
- ref.current?.focus();
117
+ ref?.focus();
112
118
  }
113
119
  handleSubmenuKeyDown?.(event);
114
120
  };
@@ -123,7 +129,7 @@ const MenuItem = ({
123
129
  selected,
124
130
  onKeyDown: !inFullscreenView ? handleKeyDown : undefined,
125
131
  overrideColor,
126
- ref
132
+ ref: setRef
127
133
  };
128
134
  if (overriddenVariant === "alternate" && isChildOfSegment && variant === "alternate" && ["white", "black"].includes(menuType)) {
129
135
  elementProps.overrideColor = true;
@@ -162,7 +168,7 @@ const MenuItem = ({
162
168
  }, rest), children));
163
169
  }
164
170
  const paddingProps = (0, _utils.filterStyledSystemPaddingProps)(rest);
165
- const hasInput = !!ref.current?.querySelector("[data-element='input']");
171
+ const hasInput = !!ref?.querySelector("[data-element='input']");
166
172
  return /*#__PURE__*/_react.default.createElement(_menu2.StyledMenuItem, _extends({
167
173
  "data-component": "menu-item",
168
174
  "data-element": dataElement,
@@ -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 type MessageVariant = "error" | "info" | "success" | "warning" | "neutral";
4
+ export interface TypeIconProps {
5
+ transparent?: boolean;
6
+ variant: MessageVariant;
7
+ }
8
+ export 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
  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
  };
@@ -30,7 +30,6 @@ const StyledCustomImg = exports.StyledCustomImg = _styledComponents.default.img`
30
30
  `;
31
31
 
32
32
  // && is used here to increase the specificity
33
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
34
33
  const StyledIcon = exports.StyledIcon = (0, _styledComponents.default)(_icon.default)`
35
34
  && {
36
35
  color: inherit;
@@ -72,7 +72,7 @@ const StyledPreviewPlaceholder = exports.StyledPreviewPlaceholder = _styledCompo
72
72
  animation: ${shimmer} 2s ease infinite;
73
73
 
74
74
  ${isLastLine && shape === "text" && (0, _styledComponents.css)`
75
- width: calc(; ${width || getWidth(shape)}*0.8);
75
+ width: calc(${width || getWidth(shape)}*0.8);
76
76
  `}
77
77
 
78
78
  ${shape === "circle" && (0, _styledComponents.css)`
@@ -79,7 +79,7 @@ const SelectTextbox = /*#__PURE__*/_react.default.forwardRef(({
79
79
  isInputInSelect: true
80
80
  }
81
81
  }, /*#__PURE__*/_react.default.createElement(_textbox.default, _extends({
82
- ariaDescribedBy: ariaDescribedBy,
82
+ "aria-describedby": ariaDescribedBy,
83
83
  "aria-label": ariaLabel,
84
84
  "data-element": "select-input",
85
85
  "data-role": "select-textbox",
@@ -351,7 +351,7 @@ const SimpleSelect = exports.SimpleSelect = /*#__PURE__*/_react.default.forwardR
351
351
  "aria-controls": selectListId.current,
352
352
  activeDescendantId: activeDescendantId,
353
353
  ariaLabelledby: ariaLabelledby,
354
- ariaDescribedBy: ariaDescribedBy,
354
+ "aria-describedby": ariaDescribedBy,
355
355
  isOpen: isOpen
356
356
  }, getTextboxProps()))), selectList);
357
357
  });
@@ -3,6 +3,7 @@ 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 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,
@@ -8,7 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _tags = _interopRequireDefault(require("../../__internal__/utils/helpers/tags"));
9
9
  var _input = require("../../__internal__/input");
10
10
  var _formField = _interopRequireDefault(require("../../__internal__/form-field"));
11
- var _useCharacterCount = _interopRequireDefault(require("../../hooks/__internal__/useCharacterCount"));
11
+ var _useCharacterCount = _interopRequireDefault(require("../../hooks/useCharacterCount"));
12
12
  var _input2 = _interopRequireDefault(require("../../__internal__/input/input.component"));
13
13
  var _inputBehaviour = require("../../__internal__/input-behaviour");
14
14
  var _inputIconToggle = _interopRequireDefault(require("../../__internal__/input-icon-toggle"));
@@ -28,9 +28,12 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
28
28
  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; }
29
29
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
30
30
  let deprecateUncontrolledWarnTriggered = false;
31
+ let deprecatedAriaDescribedByWarnTriggered = false;
31
32
  let warnBorderRadiusArrayTooLarge = false;
32
33
  const Textarea = exports.OriginalTextarea = exports.Textarea = /*#__PURE__*/_react.default.forwardRef(({
33
34
  "aria-labelledby": ariaLabelledBy,
35
+ "aria-describedby": ariaDescribedByProp,
36
+ ariaDescribedBy: ariaDescribedByPropDeprecated,
34
37
  autoFocus,
35
38
  inputHint,
36
39
  fieldHelp,
@@ -112,6 +115,10 @@ const Textarea = exports.OriginalTextarea = exports.Textarea = /*#__PURE__*/_rea
112
115
  deprecateUncontrolledWarnTriggered = true;
113
116
  _logger.default.deprecate("Uncontrolled behaviour in `Textarea` is deprecated and support will soon be removed. Please make sure all your inputs are controlled.");
114
117
  }
118
+ if (!deprecatedAriaDescribedByWarnTriggered && ariaDescribedByPropDeprecated) {
119
+ deprecatedAriaDescribedByWarnTriggered = true;
120
+ _logger.default.deprecate("The `ariaDescribedBy` prop in `Textarea` is deprecated and will soon be removed, please use `aria-describedby` instead.");
121
+ }
115
122
  if (Array.isArray(borderRadius) && borderRadius.length > 4 && !warnBorderRadiusArrayTooLarge) {
116
123
  // eslint-disable-next-line no-console
117
124
  console.warn("The `borderRadius` prop in `Textarea` component only supports up to 4 values.");
@@ -181,7 +188,7 @@ const Textarea = exports.OriginalTextarea = exports.Textarea = /*#__PURE__*/_rea
181
188
  const hasIconInside = !!(inputIcon || validationId && !validationOnLabel);
182
189
  const hintId = (0, _react.useRef)((0, _guid.default)());
183
190
  const inputHintId = inputHint ? hintId.current : undefined;
184
- const combinedAriaDescribedBy = [ariaDescribedBy, inputHintId, visuallyHiddenHintId].filter(Boolean).join(" ");
191
+ const combinedAriaDescribedBy = [ariaDescribedBy, inputHintId, visuallyHiddenHintId, ariaDescribedByProp || ariaDescribedByPropDeprecated].filter(Boolean).join(" ");
185
192
  const input = /*#__PURE__*/_react.default.createElement(_input.InputPresentation, {
186
193
  disabled: disabled,
187
194
  readOnly: readOnly,
@@ -195,7 +202,7 @@ const Textarea = exports.OriginalTextarea = exports.Textarea = /*#__PURE__*/_rea
195
202
  }, /*#__PURE__*/_react.default.createElement(_input2.default, _extends({
196
203
  "aria-invalid": !!error,
197
204
  "aria-labelledby": ariaLabelledBy,
198
- ariaDescribedBy: combinedAriaDescribedBy,
205
+ "aria-describedby": combinedAriaDescribedBy,
199
206
  autoFocus: autoFocus,
200
207
  name: name,
201
208
  value: value,
@@ -17,7 +17,7 @@ var _utils = require("../../style/utils");
17
17
  var _newValidation = _interopRequireDefault(require("../carbon-provider/__internal__/new-validation.context"));
18
18
  var _numeralDate = _interopRequireDefault(require("../numeral-date/__internal__/numeral-date.context"));
19
19
  var _logger = _interopRequireDefault(require("../../__internal__/utils/logger"));
20
- var _useCharacterCount = _interopRequireDefault(require("../../hooks/__internal__/useCharacterCount"));
20
+ var _useCharacterCount = _interopRequireDefault(require("../../hooks/useCharacterCount"));
21
21
  var _useUniqueId = _interopRequireDefault(require("../../hooks/__internal__/useUniqueId"));
22
22
  var _guid = _interopRequireDefault(require("../../__internal__/utils/helpers/guid"));
23
23
  var _useInputAccessibility = _interopRequireDefault(require("../../hooks/__internal__/useInputAccessibility/useInputAccessibility"));
@@ -32,8 +32,11 @@ const SIZE_DEFAULT = exports.SIZE_DEFAULT = "medium";
32
32
  const LABEL_WIDTH_DEFAULT = exports.LABEL_WIDTH_DEFAULT = 30;
33
33
  const LABEL_VALIDATION_DEFAULT = exports.LABEL_VALIDATION_DEFAULT = false;
34
34
  let deprecateUncontrolledWarnTriggered = false;
35
+ let deprecatedAriaDescribedByWarnTriggered = false;
35
36
  const Textbox = exports.Textbox = /*#__PURE__*/_react.default.forwardRef(({
36
37
  "aria-labelledby": ariaLabelledBy,
38
+ "aria-describedby": ariaDescribedByProp,
39
+ ariaDescribedBy: ariaDescribedByDeprecated,
37
40
  align = ALIGN_DEFAULT,
38
41
  autoFocus,
39
42
  children,
@@ -115,6 +118,10 @@ const Textbox = exports.Textbox = /*#__PURE__*/_react.default.forwardRef(({
115
118
  deprecateUncontrolledWarnTriggered = true;
116
119
  _logger.default.deprecate("Uncontrolled behaviour in `Textbox` is deprecated and support will soon be removed. Please make sure all your inputs are controlled.");
117
120
  }
121
+ if (!deprecatedAriaDescribedByWarnTriggered && ariaDescribedByDeprecated) {
122
+ deprecatedAriaDescribedByWarnTriggered = true;
123
+ _logger.default.deprecate("The `ariaDescribedBy` prop in `Textbox` is deprecated and will soon be removed, please use `aria-describedby` instead.");
124
+ }
118
125
  const {
119
126
  labelId,
120
127
  validationId,
@@ -131,7 +138,7 @@ const Textbox = exports.Textbox = /*#__PURE__*/_react.default.forwardRef(({
131
138
  });
132
139
  const hintId = (0, _react.useRef)((0, _guid.default)());
133
140
  const inputHintId = inputHint ? hintId.current : undefined;
134
- const combinedAriaDescribedBy = [ariaDescribedBy, inputHintId, visuallyHiddenHintId].filter(Boolean).join(" ");
141
+ const combinedAriaDescribedBy = [ariaDescribedBy, inputHintId, visuallyHiddenHintId, ariaDescribedByProp || ariaDescribedByDeprecated].filter(Boolean).join(" ");
135
142
  const hasIconInside = !!(inputIcon || validationId && !validationOnLabel);
136
143
  const input = /*#__PURE__*/_react.default.createElement(_input.InputPresentation, {
137
144
  align: align,
@@ -155,7 +162,7 @@ const Textbox = exports.Textbox = /*#__PURE__*/_react.default.forwardRef(({
155
162
  align: align,
156
163
  "aria-invalid": !!error,
157
164
  "aria-labelledby": ariaLabelledBy,
158
- ariaDescribedBy: combinedAriaDescribedBy,
165
+ "aria-describedby": combinedAriaDescribedBy,
159
166
  autoFocus: autoFocus,
160
167
  deferTimeout: deferTimeout,
161
168
  disabled: disabled,
@@ -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
- type ToastVariants = MessageVariant;
8
+ type ToastVariants = Exclude<MessageVariant, "ai">;
10
9
  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"));
@@ -12,5 +12,5 @@ export interface VerticalMenuFullScreenProps extends TagProps {
12
12
  /** A callback to be called when the close icon is clicked or enter is pressed when focused */
13
13
  onClose: (ev: React.KeyboardEvent<HTMLButtonElement> | React.MouseEvent<HTMLButtonElement> | KeyboardEvent) => void;
14
14
  }
15
- export declare const VerticalMenuFullScreen: ({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, children, isOpen, onClose, ...rest }: VerticalMenuFullScreenProps) => React.JSX.Element | null;
15
+ export declare const VerticalMenuFullScreen: ({ "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, children, isOpen, onClose, ...rest }: VerticalMenuFullScreenProps) => React.JSX.Element;
16
16
  export default VerticalMenuFullScreen;