carbon-react 107.1.8 → 108.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 (39) hide show
  1. package/esm/components/form/form.component.js +7 -2
  2. package/esm/components/form/form.style.js +3 -2
  3. package/esm/components/heading/heading.component.js +6 -2
  4. package/esm/components/help/help.component.js +2 -2
  5. package/esm/components/modal/index.d.ts +1 -1
  6. package/esm/components/modal/index.js +1 -1
  7. package/esm/components/modal/modal.component.d.ts +35 -0
  8. package/esm/components/modal/modal.d.ts +11 -0
  9. package/esm/components/modal/modal.style.d.ts +2 -0
  10. package/esm/components/popover-container/index.d.ts +2 -1
  11. package/esm/components/popover-container/popover-container.component.d.ts +56 -0
  12. package/esm/components/popover-container/popover-container.component.js +234 -106
  13. package/esm/components/popover-container/popover-container.style.d.ts +18 -0
  14. package/esm/locales/en-gb.js +3 -0
  15. package/esm/locales/locale.d.ts +3 -0
  16. package/esm/locales/pl-pl.js +3 -0
  17. package/esm/style/utils/filter-styled-system-padding-props.d.ts +1 -1
  18. package/esm/style/utils/filter-styled-system-padding-props.js +4 -2
  19. package/lib/components/form/form.component.js +9 -3
  20. package/lib/components/form/form.style.js +3 -2
  21. package/lib/components/heading/heading.component.js +7 -2
  22. package/lib/components/help/help.component.js +2 -2
  23. package/lib/components/modal/index.d.ts +1 -1
  24. package/lib/components/modal/index.js +10 -2
  25. package/lib/components/modal/modal.component.d.ts +35 -0
  26. package/lib/components/modal/modal.d.ts +11 -0
  27. package/lib/components/modal/modal.style.d.ts +2 -0
  28. package/lib/components/popover-container/index.d.ts +2 -1
  29. package/lib/components/popover-container/popover-container.component.d.ts +56 -0
  30. package/lib/components/popover-container/popover-container.component.js +234 -108
  31. package/lib/components/popover-container/popover-container.style.d.ts +18 -0
  32. package/lib/locales/en-gb.js +3 -0
  33. package/lib/locales/locale.d.ts +3 -0
  34. package/lib/locales/pl-pl.js +3 -0
  35. package/lib/style/utils/filter-styled-system-padding-props.d.ts +1 -1
  36. package/lib/style/utils/filter-styled-system-padding-props.js +4 -2
  37. package/package.json +2 -1
  38. package/esm/components/popover-container/popover-container.d.ts +0 -35
  39. package/lib/components/popover-container/popover-container.d.ts +0 -35
@@ -33,6 +33,9 @@ interface Locale {
33
33
  formSummary: (errors: number, warnings: number, type: string) => [string, string] | null;
34
34
  };
35
35
  };
36
+ heading: {
37
+ backLinkAriaLabel: () => string;
38
+ };
36
39
  message: {
37
40
  closeButtonAriaLabel: () => string;
38
41
  };
@@ -55,6 +55,9 @@ const plPL = {
55
55
  }
56
56
  }
57
57
  },
58
+ heading: {
59
+ backLinkAriaLabel: () => "Wstecz"
60
+ },
58
61
  message: {
59
62
  closeButtonAriaLabel: () => "Zamknij"
60
63
  },
@@ -1,3 +1,3 @@
1
1
  import { PaddingProps } from "styled-system";
2
2
  export declare const paddingPropertyNames: string[];
3
- export default function filterStyledSystemPaddingProps(originalObject: Record<string, unknown>): PaddingProps;
3
+ export default function filterStyledSystemPaddingProps(props: Record<string, any>): PaddingProps;
@@ -1,5 +1,7 @@
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(originalObject) {
4
- return filterObjectProperties(originalObject, paddingPropertyNames);
3
+ export default function filterStyledSystemPaddingProps( // method should accept any react prop
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ props) {
6
+ return filterObjectProperties(props, paddingPropertyNames);
5
7
  }
@@ -11,12 +11,14 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
12
  var _propTypes2 = _interopRequireDefault(require("@styled-system/prop-types"));
13
13
 
14
+ var _modal = require("../modal/modal.component");
15
+
16
+ var _sidebar = require("../sidebar/sidebar.component");
17
+
14
18
  var _formSummary = _interopRequireDefault(require("./__internal__/form-summary.component"));
15
19
 
16
20
  var _form = require("./form.style");
17
21
 
18
- var _sidebar = require("../sidebar/sidebar.component");
19
-
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
23
 
22
24
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -43,6 +45,9 @@ const Form = ({
43
45
  const {
44
46
  isInSidebar
45
47
  } = (0, _react.useContext)(_sidebar.SidebarContext);
48
+ const {
49
+ isInModal
50
+ } = (0, _react.useContext)(_modal.ModalContext);
46
51
  const formRef = (0, _react.useRef)();
47
52
  const formFooterRef = (0, _react.useRef)();
48
53
  const renderFooter = !!(saveButton || leftSideButtons || rightSideButtons || errorCount || warningCount);
@@ -57,8 +62,9 @@ const Form = ({
57
62
  height: height
58
63
  }, rest), /*#__PURE__*/_react.default.createElement(_form.StyledFormContent, {
59
64
  "data-element": "form-content",
65
+ className: stickyFooter ? "sticky" : "",
60
66
  stickyFooter: stickyFooter,
61
- className: stickyFooter ? "sticky" : ""
67
+ isInModal: isInModal
62
68
  }, children), renderFooter && /*#__PURE__*/_react.default.createElement(_form.StyledFormFooter, {
63
69
  "data-element": "form-footer",
64
70
  className: stickyFooter ? "sticky" : "",
@@ -37,10 +37,11 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
37
37
 
38
38
  const StyledFormContent = _styledComponents.default.div`
39
39
  ${({
40
- stickyFooter
40
+ stickyFooter,
41
+ isInModal
41
42
  }) => (0, _styledComponents.css)`
42
43
  ${stickyFooter && (0, _styledComponents.css)`
43
- overflow-y: auto;
44
+ overflow-y: ${isInModal ? "visible" : "auto"};
44
45
  flex: 1;
45
46
  `}
46
47
  `}
@@ -17,6 +17,8 @@ var _tags = _interopRequireDefault(require("../../__internal__/utils/helpers/tag
17
17
 
18
18
  var _heading = require("./heading.style");
19
19
 
20
+ var _useLocale = _interopRequireDefault(require("../../hooks/__internal__/useLocale"));
21
+
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
23
 
22
24
  function _extends() { _extends = Object.assign || 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); }
@@ -47,6 +49,8 @@ const Heading = ({
47
49
  }, help);
48
50
  };
49
51
 
52
+ const l = (0, _useLocale.default)();
53
+
50
54
  const getBackButton = () => {
51
55
  const backButtonProps = typeof backLink === "string" ? {
52
56
  href: backLink
@@ -55,8 +59,9 @@ const Heading = ({
55
59
  };
56
60
  return /*#__PURE__*/_react.default.createElement(_heading.StyledHeadingBackButton // this event allows an element to be focusable on click event on IE
57
61
  , _extends({
58
- onMouseDown: e => e.currentTarget.focus(),
59
- "data-element": "back"
62
+ "aria-label": l.heading.backLinkAriaLabel(),
63
+ "data-element": "back",
64
+ onMouseDown: e => e.currentTarget.focus()
60
65
  }, backButtonProps), /*#__PURE__*/_react.default.createElement(_heading.StyledHeadingIcon, {
61
66
  type: "chevron_left",
62
67
  divider: divider
@@ -83,6 +83,7 @@ const Help = ({
83
83
 
84
84
  return /*#__PURE__*/_react.default.createElement(_help.default, _extends({
85
85
  "aria-describedby": isFocused || isTooltipVisible ? tooltipId || defaultTooltipId.current : undefined,
86
+ "aria-label": helpAriaLabel || ariaLabel,
86
87
  className: className,
87
88
  as: tagType,
88
89
  href: href,
@@ -101,8 +102,7 @@ const Help = ({
101
102
  target: "_blank",
102
103
  rel: "noopener noreferrer"
103
104
  } : {
104
- role: "button",
105
- "aria-label": helpAriaLabel || ariaLabel
105
+ role: "button"
106
106
  }, (0, _utils.filterStyledSystemMarginProps)(rest), rest), /*#__PURE__*/_react.default.createElement(_icon.default, {
107
107
  "aria-hidden": true,
108
108
  type: type,
@@ -1 +1 @@
1
- export { default } from "./modal";
1
+ export { default, ModalContext } from "./modal.component";
@@ -9,7 +9,15 @@ Object.defineProperty(exports, "default", {
9
9
  return _modal.default;
10
10
  }
11
11
  });
12
+ Object.defineProperty(exports, "ModalContext", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _modal.ModalContext;
16
+ }
17
+ });
18
+
19
+ var _modal = _interopRequireWildcard(require("./modal.component"));
12
20
 
13
- var _modal = _interopRequireDefault(require("./modal.component"));
21
+ function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
14
22
 
15
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -0,0 +1,35 @@
1
+ export const ModalContext: React.Context<{}>;
2
+ export default Modal;
3
+ import React from "react";
4
+ declare function Modal({ children, open, onCancel, disableEscKey, disableClose, enableBackgroundUI, timeout, ...rest }: {
5
+ [x: string]: any;
6
+ children: any;
7
+ open: any;
8
+ onCancel: any;
9
+ disableEscKey: any;
10
+ disableClose: any;
11
+ enableBackgroundUI: any;
12
+ timeout: any;
13
+ }): JSX.Element;
14
+ declare namespace Modal {
15
+ namespace propTypes {
16
+ const children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
17
+ const onCancel: PropTypes.Requireable<(...args: any[]) => any>;
18
+ const open: PropTypes.Validator<boolean>;
19
+ const enableBackgroundUI: PropTypes.Requireable<boolean>;
20
+ const disableEscKey: PropTypes.Requireable<boolean>;
21
+ const disableClose: PropTypes.Requireable<boolean>;
22
+ const timeout: PropTypes.Requireable<number>;
23
+ }
24
+ namespace defaultProps {
25
+ const onCancel_1: null;
26
+ export { onCancel_1 as onCancel };
27
+ const enableBackgroundUI_1: boolean;
28
+ export { enableBackgroundUI_1 as enableBackgroundUI };
29
+ const disableEscKey_1: boolean;
30
+ export { disableEscKey_1 as disableEscKey };
31
+ const timeout_1: number;
32
+ export { timeout_1 as timeout };
33
+ }
34
+ }
35
+ import PropTypes from "prop-types";
@@ -1,5 +1,14 @@
1
1
  import * as React from "react";
2
2
 
3
+ export interface ModalContextProps {
4
+ value?: {
5
+ isInModal?: boolean;
6
+ isAnimationComplete?: boolean;
7
+ triggerRefocusFlag?: boolean;
8
+ };
9
+ ref?: React.MutableRefObject<React.ReactNode>;
10
+ }
11
+
3
12
  export interface ModalProps {
4
13
  /** Modal content */
5
14
  children?: React.ReactNode;
@@ -19,6 +28,8 @@ export interface ModalProps {
19
28
  timeout?: number;
20
29
  }
21
30
 
31
+ declare const ModelContext: React.Context<ModalContextProps>;
22
32
  declare function Modal(props: ModalProps): JSX.Element;
23
33
 
34
+ export { ModalContext };
24
35
  export default Modal;
@@ -0,0 +1,2 @@
1
+ export const StyledModal: import("styled-components").StyledComponent<"div", any, {}, never>;
2
+ export const StyledModalBackground: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -1 +1,2 @@
1
- export { default } from "./popover-container";
1
+ export { default } from "./popover-container.component";
2
+ export type { PopoverContainerProps, RenderCloseProps, RenderOpenProps, } from "./popover-container.component";
@@ -0,0 +1,56 @@
1
+ import React from "react";
2
+ import { PaddingProps } from "styled-system";
3
+ export interface RenderOpenProps {
4
+ tabIndex: number;
5
+ isOpen?: boolean;
6
+ "data-element": string;
7
+ onClick: (ev: React.MouseEvent<HTMLElement>) => void;
8
+ ref: React.RefObject<HTMLButtonElement>;
9
+ "aria-label"?: string;
10
+ id?: string;
11
+ }
12
+ export interface RenderCloseProps {
13
+ "data-element": string;
14
+ tabIndex: number;
15
+ onClick: (ev: React.MouseEvent<HTMLElement>) => void;
16
+ ref: React.RefObject<HTMLButtonElement>;
17
+ "aria-label": string;
18
+ }
19
+ export interface PopoverContainerProps extends PaddingProps {
20
+ /** A function that will render the open component
21
+ *
22
+ * `({tabIndex, isOpen, data-element, onClick, ref, aria-label}) => ()`
23
+ *
24
+ */
25
+ renderOpenComponent?: (args: RenderOpenProps) => JSX.Element;
26
+ /** A function that will render the close component
27
+ *
28
+ * `({data-element, tabIndex, onClick, ref, aria-label}) => ()`
29
+ *
30
+ */
31
+ renderCloseComponent?: (args: RenderCloseProps) => JSX.Element;
32
+ /** The content of the popover-container */
33
+ children?: React.ReactNode;
34
+ /** Sets rendering position of dialog */
35
+ position?: "left" | "right";
36
+ /** Sets the popover container dialog header name */
37
+ title?: string;
38
+ /** Callback fires when close icon clicked */
39
+ onClose?: (ev: React.MouseEvent<HTMLElement>) => void;
40
+ /** if `true` the popover-container is open */
41
+ open?: boolean;
42
+ /** Callback fires when open component is clicked */
43
+ onOpen?: (ev: React.MouseEvent<HTMLElement>) => void;
44
+ /** if `true` the popover-container will cover open button */
45
+ shouldCoverButton?: boolean;
46
+ /** The id of the element that describe the dialog. */
47
+ ariaDescribedBy?: string;
48
+ /** Open button aria label */
49
+ openButtonAriaLabel?: string;
50
+ /** Close button aria label */
51
+ closeButtonAriaLabel?: string;
52
+ /** Container aria label */
53
+ containerAriaLabel?: string;
54
+ }
55
+ export declare const PopoverContainer: ({ children, title, position, open, onOpen, onClose, renderOpenComponent, renderCloseComponent, shouldCoverButton, ariaDescribedBy, openButtonAriaLabel, closeButtonAriaLabel, containerAriaLabel, ...rest }: PopoverContainerProps) => JSX.Element;
56
+ export default PopoverContainer;