carbon-react 117.6.0 → 117.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.
Files changed (29) hide show
  1. package/esm/components/message/message-content/message-content.component.d.ts +4 -2
  2. package/esm/components/message/message-content/message-content.component.js +7 -2
  3. package/esm/components/message/message-content/message-content.style.d.ts +2 -1
  4. package/esm/components/message/message-content/message-content.style.js +4 -1
  5. package/esm/components/message/message.component.js +1 -0
  6. package/esm/components/modal/__internal__/modal-manager.d.ts +1 -7
  7. package/esm/components/toast/toast.style.d.ts +1 -1
  8. package/esm/global.d.ts +19 -3
  9. package/esm/hooks/__internal__/useScrollBlock/scroll-block-manager.d.ts +0 -11
  10. package/esm/style/utils/filter-out-styled-system-spacing-props.d.ts +2 -1
  11. package/esm/style/utils/filter-out-styled-system-spacing-props.js +3 -2
  12. package/esm/style/utils/filter-styled-system-padding-props.d.ts +1 -1
  13. package/esm/style/utils/filter-styled-system-padding-props.js +1 -3
  14. package/esm/style/utils/visually-hidden.js +1 -0
  15. package/lib/components/message/message-content/message-content.component.d.ts +4 -2
  16. package/lib/components/message/message-content/message-content.component.js +7 -2
  17. package/lib/components/message/message-content/message-content.style.d.ts +2 -1
  18. package/lib/components/message/message-content/message-content.style.js +4 -1
  19. package/lib/components/message/message.component.js +1 -0
  20. package/lib/components/modal/__internal__/modal-manager.d.ts +1 -7
  21. package/lib/components/toast/toast.style.d.ts +1 -1
  22. package/lib/global.d.ts +19 -3
  23. package/lib/hooks/__internal__/useScrollBlock/scroll-block-manager.d.ts +0 -11
  24. package/lib/style/utils/filter-out-styled-system-spacing-props.d.ts +2 -1
  25. package/lib/style/utils/filter-out-styled-system-spacing-props.js +3 -3
  26. package/lib/style/utils/filter-styled-system-padding-props.d.ts +1 -1
  27. package/lib/style/utils/filter-styled-system-padding-props.js +1 -3
  28. package/lib/style/utils/visually-hidden.js +1 -0
  29. package/package.json +6 -4
@@ -1,9 +1,11 @@
1
1
  import React from "react";
2
- interface MessageContentProps {
2
+ export interface MessageContentProps {
3
3
  /** set message title */
4
4
  title?: React.ReactNode;
5
5
  /** set content to component */
6
6
  children?: React.ReactNode;
7
+ /** determines if the close icon is shown */
8
+ showCloseIcon?: boolean;
7
9
  }
8
- declare const MessageContent: ({ title, children }: MessageContentProps) => JSX.Element;
10
+ declare const MessageContent: ({ title, children, showCloseIcon, }: MessageContentProps) => JSX.Element;
9
11
  export default MessageContent;
@@ -5,15 +5,20 @@ import MessageContentStyle from "./message-content.style";
5
5
 
6
6
  const MessageContent = ({
7
7
  title,
8
- children
8
+ children,
9
+ showCloseIcon
9
10
  }) => {
10
- return /*#__PURE__*/React.createElement(MessageContentStyle, null, /*#__PURE__*/React.createElement(Content, {
11
+ return /*#__PURE__*/React.createElement(MessageContentStyle, {
12
+ showCloseIcon: showCloseIcon,
13
+ "data-element": "message-content"
14
+ }, /*#__PURE__*/React.createElement(Content, {
11
15
  title: title
12
16
  }, children));
13
17
  };
14
18
 
15
19
  MessageContent.propTypes = {
16
20
  "children": PropTypes.node,
21
+ "showCloseIcon": PropTypes.bool,
17
22
  "title": PropTypes.node
18
23
  };
19
24
  export default MessageContent;
@@ -1,2 +1,3 @@
1
- declare const MessageContentStyle: import("styled-components").StyledComponent<"div", any, {}, never>;
1
+ import { MessageContentProps } from "./message-content.component";
2
+ declare const MessageContentStyle: import("styled-components").StyledComponent<"div", any, Pick<MessageContentProps, "showCloseIcon">, never>;
2
3
  export default MessageContentStyle;
@@ -1,6 +1,9 @@
1
1
  import styled from "styled-components";
2
2
  const MessageContentStyle = styled.div`
3
- padding: 15px 50px 15px 20px;
3
+ padding: 15px ${({
4
+ showCloseIcon
5
+ }) => showCloseIcon ? "50px" : "20px"} 15px
6
+ 20px;
4
7
  white-space: pre-wrap;
5
8
  flex: 1;
6
9
 
@@ -48,6 +48,7 @@ const Message = ({
48
48
  variant: variant,
49
49
  transparent: transparent
50
50
  }), /*#__PURE__*/React.createElement(MessageContent, {
51
+ showCloseIcon: showCloseIcon,
51
52
  title: title
52
53
  }, children), renderCloseIcon()) : null;
53
54
  };
@@ -1,14 +1,8 @@
1
1
  declare type SetTriggerRefocusFlag = (boolean: boolean) => void;
2
- declare type ModalList = {
2
+ export declare type ModalList = {
3
3
  modal: HTMLElement;
4
4
  setTriggerRefocusFlag?: SetTriggerRefocusFlag;
5
5
  }[];
6
- declare global {
7
- interface Window {
8
- __CARBON_INTERNALS_MODAL_LIST?: ModalList;
9
- __CARBON_INTERNALS_MODAL_SETTER_LIST?: ((topModal: HTMLElement | null) => void)[];
10
- }
11
- }
12
6
  declare class ModalManagerInstance {
13
7
  private modalList;
14
8
  constructor();
@@ -12,7 +12,7 @@ declare const ToastStyle: import("styled-components").StyledComponent<"div", any
12
12
  isCenter?: boolean | undefined;
13
13
  isNotice?: boolean | undefined;
14
14
  }, never>;
15
- declare const ToastContentStyle: import("styled-components").StyledComponent<"div", any, {
15
+ declare const ToastContentStyle: import("styled-components").StyledComponent<"div", any, Pick<import("../message/message-content/message-content.component").MessageContentProps, "showCloseIcon"> & {
16
16
  isNotice?: boolean | undefined;
17
17
  isDismiss?: boolean | undefined;
18
18
  }, never>;
package/esm/global.d.ts CHANGED
@@ -1,3 +1,19 @@
1
- declare module "@styled-system/prop-types";
2
- declare module "*.png";
3
- declare module "*.svg";
1
+ import { ModalList } from "components/modal/__internal__/modal-manager";
2
+
3
+ declare global {
4
+ module "*.png";
5
+ module "*.svg";
6
+ interface Window {
7
+ __CARBON_INTERNALS_MODAL_LIST?: ModalList;
8
+ __CARBON_INTERNALS_MODAL_SETTER_LIST?: ((
9
+ topModal: HTMLElement | null
10
+ ) => void)[];
11
+ __CARBON_INTERNALS_SCROLL_BLOCKERS?: {
12
+ components: {
13
+ [key: string]: boolean;
14
+ };
15
+ originalValues: string[];
16
+ restoreValues?: (() => void) | null;
17
+ };
18
+ }
19
+ }
@@ -1,14 +1,3 @@
1
- declare global {
2
- interface Window {
3
- __CARBON_INTERNALS_SCROLL_BLOCKERS?: {
4
- components: {
5
- [key: string]: boolean;
6
- };
7
- originalValues: string[];
8
- restoreValues?: (() => void) | null;
9
- };
10
- }
11
- }
12
1
  declare class ScrollBlockManager {
13
2
  components: {
14
3
  [key: string]: boolean;
@@ -1,2 +1,3 @@
1
- declare const filterOutStyledSystemSpacingProps: (props: Record<string, any>) => Record<string, unknown>;
1
+ import { SpaceProps } from "styled-system";
2
+ declare const filterOutStyledSystemSpacingProps: (props: Record<string, unknown> | SpaceProps) => Record<string, unknown>;
2
3
  export default filterOutStyledSystemSpacingProps;
@@ -1,5 +1,6 @@
1
- import styledSystemPropTypes from "@styled-system/prop-types";
1
+ import { marginPropertyNames } from "./filter-styled-system-margin-props";
2
+ import { paddingPropertyNames } from "./filter-styled-system-padding-props";
2
3
 
3
- const filterOutStyledSystemSpacingProps = props => Object.fromEntries(Object.entries(props).filter(([key]) => !styledSystemPropTypes.space[key]));
4
+ const filterOutStyledSystemSpacingProps = props => Object.fromEntries(Object.entries(props).filter(([key]) => ![...marginPropertyNames, ...paddingPropertyNames].includes(key)));
4
5
 
5
6
  export default filterOutStyledSystemSpacingProps;
@@ -1,3 +1,3 @@
1
1
  import { PaddingProps } from "styled-system";
2
2
  export declare const paddingPropertyNames: string[];
3
- export default function filterStyledSystemPaddingProps(props: Record<string, any>): PaddingProps;
3
+ export default function filterStyledSystemPaddingProps(props: Record<string, unknown> | PaddingProps): PaddingProps;
@@ -1,7 +1,5 @@
1
1
  import filterObjectProperties from "../../__internal__/filter-object-properties";
2
2
  export const paddingPropertyNames = ["padding", "p", "paddingLeft", "pl", "paddingRight", "pr", "paddingTop", "pt", "paddingBottom", "pb", "paddingX", "px", "paddingY", "py"];
3
- export default function filterStyledSystemPaddingProps( // method should accept any react prop
4
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
- props) {
3
+ export default function filterStyledSystemPaddingProps(props) {
6
4
  return filterObjectProperties(props, paddingPropertyNames);
7
5
  }
@@ -7,4 +7,5 @@ export default css`
7
7
  padding: 0;
8
8
  position: absolute;
9
9
  width: 1px;
10
+ white-space: nowrap;
10
11
  `;
@@ -1,9 +1,11 @@
1
1
  import React from "react";
2
- interface MessageContentProps {
2
+ export interface MessageContentProps {
3
3
  /** set message title */
4
4
  title?: React.ReactNode;
5
5
  /** set content to component */
6
6
  children?: React.ReactNode;
7
+ /** determines if the close icon is shown */
8
+ showCloseIcon?: boolean;
7
9
  }
8
- declare const MessageContent: ({ title, children }: MessageContentProps) => JSX.Element;
10
+ declare const MessageContent: ({ title, children, showCloseIcon, }: MessageContentProps) => JSX.Element;
9
11
  export default MessageContent;
@@ -17,15 +17,20 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
17
17
 
18
18
  const MessageContent = ({
19
19
  title,
20
- children
20
+ children,
21
+ showCloseIcon
21
22
  }) => {
22
- return /*#__PURE__*/_react.default.createElement(_messageContent.default, null, /*#__PURE__*/_react.default.createElement(_content.default, {
23
+ return /*#__PURE__*/_react.default.createElement(_messageContent.default, {
24
+ showCloseIcon: showCloseIcon,
25
+ "data-element": "message-content"
26
+ }, /*#__PURE__*/_react.default.createElement(_content.default, {
23
27
  title: title
24
28
  }, children));
25
29
  };
26
30
 
27
31
  MessageContent.propTypes = {
28
32
  "children": _propTypes.default.node,
33
+ "showCloseIcon": _propTypes.default.bool,
29
34
  "title": _propTypes.default.node
30
35
  };
31
36
  var _default = MessageContent;
@@ -1,2 +1,3 @@
1
- declare const MessageContentStyle: import("styled-components").StyledComponent<"div", any, {}, never>;
1
+ import { MessageContentProps } from "./message-content.component";
2
+ declare const MessageContentStyle: import("styled-components").StyledComponent<"div", any, Pick<MessageContentProps, "showCloseIcon">, never>;
2
3
  export default MessageContentStyle;
@@ -10,7 +10,10 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
 
12
12
  const MessageContentStyle = _styledComponents.default.div`
13
- padding: 15px 50px 15px 20px;
13
+ padding: 15px ${({
14
+ showCloseIcon
15
+ }) => showCloseIcon ? "50px" : "20px"} 15px
16
+ 20px;
14
17
  white-space: pre-wrap;
15
18
  flex: 1;
16
19
 
@@ -66,6 +66,7 @@ const Message = ({
66
66
  variant: variant,
67
67
  transparent: transparent
68
68
  }), /*#__PURE__*/_react.default.createElement(_messageContent.default, {
69
+ showCloseIcon: showCloseIcon,
69
70
  title: title
70
71
  }, children), renderCloseIcon()) : null;
71
72
  };
@@ -1,14 +1,8 @@
1
1
  declare type SetTriggerRefocusFlag = (boolean: boolean) => void;
2
- declare type ModalList = {
2
+ export declare type ModalList = {
3
3
  modal: HTMLElement;
4
4
  setTriggerRefocusFlag?: SetTriggerRefocusFlag;
5
5
  }[];
6
- declare global {
7
- interface Window {
8
- __CARBON_INTERNALS_MODAL_LIST?: ModalList;
9
- __CARBON_INTERNALS_MODAL_SETTER_LIST?: ((topModal: HTMLElement | null) => void)[];
10
- }
11
- }
12
6
  declare class ModalManagerInstance {
13
7
  private modalList;
14
8
  constructor();
@@ -12,7 +12,7 @@ declare const ToastStyle: import("styled-components").StyledComponent<"div", any
12
12
  isCenter?: boolean | undefined;
13
13
  isNotice?: boolean | undefined;
14
14
  }, never>;
15
- declare const ToastContentStyle: import("styled-components").StyledComponent<"div", any, {
15
+ declare const ToastContentStyle: import("styled-components").StyledComponent<"div", any, Pick<import("../message/message-content/message-content.component").MessageContentProps, "showCloseIcon"> & {
16
16
  isNotice?: boolean | undefined;
17
17
  isDismiss?: boolean | undefined;
18
18
  }, never>;
package/lib/global.d.ts CHANGED
@@ -1,3 +1,19 @@
1
- declare module "@styled-system/prop-types";
2
- declare module "*.png";
3
- declare module "*.svg";
1
+ import { ModalList } from "components/modal/__internal__/modal-manager";
2
+
3
+ declare global {
4
+ module "*.png";
5
+ module "*.svg";
6
+ interface Window {
7
+ __CARBON_INTERNALS_MODAL_LIST?: ModalList;
8
+ __CARBON_INTERNALS_MODAL_SETTER_LIST?: ((
9
+ topModal: HTMLElement | null
10
+ ) => void)[];
11
+ __CARBON_INTERNALS_SCROLL_BLOCKERS?: {
12
+ components: {
13
+ [key: string]: boolean;
14
+ };
15
+ originalValues: string[];
16
+ restoreValues?: (() => void) | null;
17
+ };
18
+ }
19
+ }
@@ -1,14 +1,3 @@
1
- declare global {
2
- interface Window {
3
- __CARBON_INTERNALS_SCROLL_BLOCKERS?: {
4
- components: {
5
- [key: string]: boolean;
6
- };
7
- originalValues: string[];
8
- restoreValues?: (() => void) | null;
9
- };
10
- }
11
- }
12
1
  declare class ScrollBlockManager {
13
2
  components: {
14
3
  [key: string]: boolean;
@@ -1,2 +1,3 @@
1
- declare const filterOutStyledSystemSpacingProps: (props: Record<string, any>) => Record<string, unknown>;
1
+ import { SpaceProps } from "styled-system";
2
+ declare const filterOutStyledSystemSpacingProps: (props: Record<string, unknown> | SpaceProps) => Record<string, unknown>;
2
3
  export default filterOutStyledSystemSpacingProps;
@@ -5,11 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _propTypes = _interopRequireDefault(require("@styled-system/prop-types"));
8
+ var _filterStyledSystemMarginProps = require("./filter-styled-system-margin-props");
9
9
 
10
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10
+ var _filterStyledSystemPaddingProps = require("./filter-styled-system-padding-props");
11
11
 
12
- const filterOutStyledSystemSpacingProps = props => Object.fromEntries(Object.entries(props).filter(([key]) => !_propTypes.default.space[key]));
12
+ const filterOutStyledSystemSpacingProps = props => Object.fromEntries(Object.entries(props).filter(([key]) => ![..._filterStyledSystemMarginProps.marginPropertyNames, ..._filterStyledSystemPaddingProps.paddingPropertyNames].includes(key)));
13
13
 
14
14
  var _default = filterOutStyledSystemSpacingProps;
15
15
  exports.default = _default;
@@ -1,3 +1,3 @@
1
1
  import { PaddingProps } from "styled-system";
2
2
  export declare const paddingPropertyNames: string[];
3
- export default function filterStyledSystemPaddingProps(props: Record<string, any>): PaddingProps;
3
+ export default function filterStyledSystemPaddingProps(props: Record<string, unknown> | PaddingProps): PaddingProps;
@@ -13,8 +13,6 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
13
13
  const paddingPropertyNames = ["padding", "p", "paddingLeft", "pl", "paddingRight", "pr", "paddingTop", "pt", "paddingBottom", "pb", "paddingX", "px", "paddingY", "py"];
14
14
  exports.paddingPropertyNames = paddingPropertyNames;
15
15
 
16
- function filterStyledSystemPaddingProps( // method should accept any react prop
17
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
- props) {
16
+ function filterStyledSystemPaddingProps(props) {
19
17
  return (0, _filterObjectProperties.default)(props, paddingPropertyNames);
20
18
  }
@@ -15,6 +15,7 @@ var _default = (0, _styledComponents.css)`
15
15
  padding: 0;
16
16
  position: absolute;
17
17
  width: 1px;
18
+ white-space: nowrap;
18
19
  `;
19
20
 
20
21
  exports.default = _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-react",
3
- "version": "117.6.0",
3
+ "version": "117.7.0",
4
4
  "description": "A library of reusable React components for easily building user interfaces.",
5
5
  "files": [
6
6
  "lib",
@@ -9,7 +9,7 @@
9
9
  "scripts/check_rfcs/index.js"
10
10
  ],
11
11
  "scripts": {
12
- "start": "node ./scripts/check_node_version.js && NODE_OPTIONS=--openssl-legacy-provider start-storybook -p 9001 -c .storybook",
12
+ "start": "node ./scripts/check_node_version.js && cross-env NODE_OPTIONS=--openssl-legacy-provider start-storybook -p 9001 -c .storybook",
13
13
  "start:debug-theme": "cross-env STORYBOOK_DEBUG_THEME=true npm run start",
14
14
  "test": "jest --config=./jest.config.json",
15
15
  "test-update": "jest --config=./jest.config.json --updateSnapshot",
@@ -30,8 +30,8 @@
30
30
  "clean-lib": "rimraf ./lib && rimraf ./esm",
31
31
  "commit": "git-cz",
32
32
  "generate-metadata": "node ./scripts/generate_metadata/index.mjs",
33
- "type-check": "tsc --noEmit",
34
- "type-check:watch": "npm run type-check -- --watch",
33
+ "type-check": "tsc --noEmit && tsc -p ./cypress/tsconfig.json",
34
+ "type-check:watch": "concurrently --names 'src,cypress' -c 'cyan,yellow' 'tsc --noEmit --watch' 'tsc -p ./cypress/tsconfig.json --watch'",
35
35
  "build:types": "tsc -p tsconfig-build.json --emitDeclarationOnly --outDir ./lib && tsc -p tsconfig-build.json --emitDeclarationOnly --outDir ./esm"
36
36
  },
37
37
  "repository": {
@@ -84,6 +84,7 @@
84
84
  "@testing-library/react-hooks": "^8.0.1",
85
85
  "@testing-library/user-event": "^14.4.3",
86
86
  "@types/crypto-js": "^4.1.1",
87
+ "@types/cypress": "^1.1.3",
87
88
  "@types/draft-js": "^0.11.7",
88
89
  "@types/enzyme": "^3.10.3",
89
90
  "@types/invariant": "^2.2.35",
@@ -108,6 +109,7 @@
108
109
  "browserslist": "^4.21.5",
109
110
  "chromatic": "^6.0.5",
110
111
  "commitizen": "^4.2.5",
112
+ "concurrently": "^8.0.1",
111
113
  "conventional-changelog-conventionalcommits": "^4.5.0",
112
114
  "core-js": "^3.20.3",
113
115
  "cross-env": "^5.2.0",