carbon-react 104.9.0 → 104.10.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.
@@ -2,7 +2,7 @@ export const StyledAdvancedColorPickerWrapper: import("styled-components").Style
2
2
  import StyledAdvancedColorPickerCell from "./advanced-color-picker-cell.style";
3
3
  export const StyledAdvancedColorPickerPreview: import("styled-components").StyledComponent<"div", any, {}, never>;
4
4
  export const DialogStyle: import("styled-components").StyledComponent<{
5
- ({ className, children, open, height, size, title, disableEscKey, subtitle, disableAutoFocus, focusFirstElement, onCancel, showCloseIcon, bespokeFocusTrap, disableClose, help, role, ...rest }: {
5
+ ({ className, children, open, height, size, title, disableEscKey, subtitle, disableAutoFocus, focusFirstElement, onCancel, showCloseIcon, bespokeFocusTrap, disableClose, help, role, contentPadding, ...rest }: {
6
6
  [x: string]: any;
7
7
  className: any;
8
8
  children: any;
@@ -20,6 +20,7 @@ export const DialogStyle: import("styled-components").StyledComponent<{
20
20
  disableClose: any;
21
21
  help: any;
22
22
  role?: string | undefined;
23
+ contentPadding?: {} | undefined;
23
24
  }): JSX.Element;
24
25
  propTypes: {
25
26
  "aria-describedby": import("prop-types").Requireable<string>;
@@ -43,6 +44,11 @@ export const DialogStyle: import("styled-components").StyledComponent<{
43
44
  disableAutoFocus: import("prop-types").Requireable<boolean>;
44
45
  bespokeFocusTrap: import("prop-types").Requireable<(...args: any[]) => any>;
45
46
  role: import("prop-types").Requireable<string>;
47
+ contentPadding: import("prop-types").Requireable<import("prop-types").InferProps<{
48
+ p: import("prop-types").Requireable<number>;
49
+ px: import("prop-types").Requireable<number>;
50
+ py: import("prop-types").Requireable<number>;
51
+ }>>;
46
52
  };
47
53
  defaultProps: {
48
54
  size: string;
@@ -1,5 +1,5 @@
1
1
  export default Dialog;
2
- declare function Dialog({ className, children, open, height, size, title, disableEscKey, subtitle, disableAutoFocus, focusFirstElement, onCancel, showCloseIcon, bespokeFocusTrap, disableClose, help, role, ...rest }: {
2
+ declare function Dialog({ className, children, open, height, size, title, disableEscKey, subtitle, disableAutoFocus, focusFirstElement, onCancel, showCloseIcon, bespokeFocusTrap, disableClose, help, role, contentPadding, ...rest }: {
3
3
  [x: string]: any;
4
4
  className: any;
5
5
  children: any;
@@ -17,6 +17,7 @@ declare function Dialog({ className, children, open, height, size, title, disabl
17
17
  disableClose: any;
18
18
  help: any;
19
19
  role?: string | undefined;
20
+ contentPadding?: {} | undefined;
20
21
  }): JSX.Element;
21
22
  declare namespace Dialog {
22
23
  const propTypes: {
@@ -28,7 +29,7 @@ declare namespace Dialog {
28
29
  */
29
30
  "aria-label": PropTypes.Requireable<string>;
30
31
  /**
31
- * Prop to specify the aria-labeledby property of the Dialog component
32
+ * Prop to specify the aria-labelledby property of the Dialog component
32
33
  * To be used when the title prop is a custom React Node,
33
34
  * or the component is labelled by an internal element other than the title.
34
35
  */
@@ -71,6 +72,12 @@ declare namespace Dialog {
71
72
  bespokeFocusTrap: PropTypes.Requireable<(...args: any[]) => any>;
72
73
  /** The ARIA role to be applied to the Dialog container */
73
74
  role: PropTypes.Requireable<string>;
75
+ /** Padding to be set on the Dialog content */
76
+ contentPadding: PropTypes.Requireable<PropTypes.InferProps<{
77
+ p: PropTypes.Requireable<number>;
78
+ px: PropTypes.Requireable<number>;
79
+ py: PropTypes.Requireable<number>;
80
+ }>>;
74
81
  };
75
82
  namespace defaultProps {
76
83
  const size: string;
@@ -56,6 +56,7 @@ const Dialog = ({
56
56
  disableClose,
57
57
  help,
58
58
  role = "dialog",
59
+ contentPadding = {},
59
60
  ...rest
60
61
  }) => {
61
62
  const locale = (0, _useLocale.default)();
@@ -190,9 +191,9 @@ const Dialog = ({
190
191
  "data-element": "dialog",
191
192
  "data-role": rest["data-role"],
192
193
  role: role
193
- }), dialogTitle(), /*#__PURE__*/_react.default.createElement(_dialog.DialogContentStyle, null, /*#__PURE__*/_react.default.createElement(_dialog.DialogInnerContentStyle, {
194
+ }, contentPadding), dialogTitle(), /*#__PURE__*/_react.default.createElement(_dialog.DialogContentStyle, contentPadding, /*#__PURE__*/_react.default.createElement(_dialog.DialogInnerContentStyle, _extends({
194
195
  ref: innerContentRef
195
- }, _react.default.Children.map(children, child => {
196
+ }, contentPadding), _react.default.Children.map(children, child => {
196
197
  if ((child === null || child === void 0 ? void 0 : child.type) === _form.default) {
197
198
  return /*#__PURE__*/_react.default.cloneElement(child, {
198
199
  dialogRef
@@ -214,7 +215,7 @@ Dialog.propTypes = {
214
215
  "aria-label": _propTypes.default.string,
215
216
 
216
217
  /**
217
- * Prop to specify the aria-labeledby property of the Dialog component
218
+ * Prop to specify the aria-labelledby property of the Dialog component
218
219
  * To be used when the title prop is a custom React Node,
219
220
  * or the component is labelled by an internal element other than the title.
220
221
  */
@@ -272,7 +273,14 @@ Dialog.propTypes = {
272
273
  bespokeFocusTrap: _propTypes.default.func,
273
274
 
274
275
  /** The ARIA role to be applied to the Dialog container */
275
- role: _propTypes.default.string
276
+ role: _propTypes.default.string,
277
+
278
+ /** Padding to be set on the Dialog content */
279
+ contentPadding: _propTypes.default.shape({
280
+ p: _propTypes.default.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8]),
281
+ px: _propTypes.default.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8]),
282
+ py: _propTypes.default.oneOf([0, 1, 2, 3, 4, 5, 6, 7, 8])
283
+ })
276
284
  };
277
285
  Dialog.defaultProps = {
278
286
  size: "medium",
@@ -1,2 +1,5 @@
1
1
  export const DIALOG_SIZES: string[];
2
2
  export const TOP_MARGIN: 20;
3
+ export const CONTENT_TOP_PADDING: 24;
4
+ export const HORIZONTAL_PADDING: 32;
5
+ export const CONTENT_BOTTOM_PADDING: 30;
@@ -3,8 +3,14 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.TOP_MARGIN = exports.DIALOG_SIZES = void 0;
6
+ exports.CONTENT_BOTTOM_PADDING = exports.HORIZONTAL_PADDING = exports.CONTENT_TOP_PADDING = exports.TOP_MARGIN = exports.DIALOG_SIZES = void 0;
7
7
  const DIALOG_SIZES = ["extra-small", "small", "medium-small", "medium", "medium-large", "large", "extra-large"];
8
8
  exports.DIALOG_SIZES = DIALOG_SIZES;
9
9
  const TOP_MARGIN = 20;
10
- exports.TOP_MARGIN = TOP_MARGIN;
10
+ exports.TOP_MARGIN = TOP_MARGIN;
11
+ const CONTENT_TOP_PADDING = 24;
12
+ exports.CONTENT_TOP_PADDING = CONTENT_TOP_PADDING;
13
+ const HORIZONTAL_PADDING = 32;
14
+ exports.HORIZONTAL_PADDING = HORIZONTAL_PADDING;
15
+ const CONTENT_BOTTOM_PADDING = 30;
16
+ exports.CONTENT_BOTTOM_PADDING = CONTENT_BOTTOM_PADDING;
@@ -1,6 +1,14 @@
1
1
  import * as React from "react";
2
2
  import { ModalProps } from "../modal/modal";
3
3
 
4
+ type PaddingValues = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;
5
+
6
+ interface ContentPaddingInterface {
7
+ p?: PaddingValues;
8
+ py?: PaddingValues;
9
+ px?: PaddingValues;
10
+ }
11
+
4
12
  export type DialogSizes =
5
13
  | "auto"
6
14
  | "extra-small"
@@ -20,7 +28,7 @@ export interface DialogProps extends ModalProps {
20
28
  */
21
29
  "aria-label"?: string;
22
30
  /**
23
- * Prop to specify the aria-labeledby property of the Dialog component
31
+ * Prop to specify the aria-labelledby property of the Dialog component
24
32
  * To be used when the title prop is a custom React Node,
25
33
  * or the component is labelled by an internal element other than the title.
26
34
  */
@@ -49,6 +57,8 @@ export interface DialogProps extends ModalProps {
49
57
  title?: React.ReactNode;
50
58
  /** The ARIA role to be applied to the Dialog container */
51
59
  role?: string;
60
+ /** Padding to be set on the Dialog content */
61
+ contentPadding?: ContentPaddingInterface;
52
62
  }
53
63
 
54
64
  declare function Dialog(props: DialogProps): JSX.Element;
@@ -1,4 +1,7 @@
1
1
  export const DialogStyle: import("styled-components").StyledComponent<"div", any, {}, never>;
2
2
  export const DialogTitleStyle: import("styled-components").StyledComponent<"div", any, {}, never>;
3
3
  export const DialogContentStyle: import("styled-components").StyledComponent<"div", any, {}, never>;
4
- export const DialogInnerContentStyle: import("styled-components").StyledComponent<"div", any, {}, never>;
4
+ export const DialogInnerContentStyle: import("styled-components").StyledComponent<"div", any, {
5
+ py: any;
6
+ p: any;
7
+ }, never>;
@@ -7,12 +7,18 @@ exports.DialogInnerContentStyle = exports.DialogContentStyle = exports.DialogTit
7
7
 
8
8
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
9
 
10
+ var _styledSystem = require("styled-system");
11
+
12
+ var _base = _interopRequireDefault(require("../../style/themes/base"));
13
+
10
14
  var _form = require("../form/form.style");
11
15
 
12
16
  var _heading = require("../heading/heading.style");
13
17
 
14
18
  var _iconButton = _interopRequireDefault(require("../icon-button/icon-button.style"));
15
19
 
20
+ var _dialog = require("./dialog.config");
21
+
16
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
23
 
18
24
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
@@ -29,8 +35,51 @@ const dialogSizes = {
29
35
  large: "960px",
30
36
  "extra-large": "1080px"
31
37
  };
32
- const HORIZONTAL_PADDING = 35;
33
- const CONTENT_BOTTOM_PADDING = 30;
38
+
39
+ const calculateWidthValue = props => {
40
+ const {
41
+ paddingLeft,
42
+ paddingRight,
43
+ padding
44
+ } = (0, _styledSystem.padding)(props);
45
+ const paddingValue = paddingLeft ?? paddingRight ?? padding;
46
+ return paddingValue === undefined ? _dialog.HORIZONTAL_PADDING * 2 : paddingValue * 2;
47
+ };
48
+
49
+ const calculateFormSpacingValues = (props, isFormContent) => {
50
+ const {
51
+ paddingTop,
52
+ paddingBottom,
53
+ paddingLeft,
54
+ paddingRight,
55
+ padding
56
+ } = (0, _styledSystem.padding)(props);
57
+ const spacingTopValue = paddingTop ?? padding ?? _dialog.CONTENT_TOP_PADDING;
58
+ const spacingRightValue = paddingRight ?? padding ?? _dialog.HORIZONTAL_PADDING;
59
+ const spacingBottomValue = paddingBottom ?? padding ?? _dialog.CONTENT_BOTTOM_PADDING;
60
+ const spacingLeftValue = paddingLeft ?? padding ?? _dialog.HORIZONTAL_PADDING;
61
+ return {
62
+ "margin-left": spacingLeftValue ? `-${spacingLeftValue}px` : spacingLeftValue,
63
+ "margin-right": spacingRightValue ? `-${spacingRightValue}px` : spacingRightValue,
64
+ ...(isFormContent && {
65
+ "margin-top": spacingTopValue ? `-${spacingTopValue}px` : spacingTopValue,
66
+ "padding-top": spacingTopValue,
67
+ "padding-bottom": spacingBottomValue,
68
+ "padding-left": spacingLeftValue,
69
+ "padding-right": spacingRightValue
70
+ }),
71
+ ...(!isFormContent && {
72
+ "margin-bottom": spacingBottomValue ? `-${spacingBottomValue}px` : spacingBottomValue,
73
+ bottom: spacingBottomValue ? `-${spacingBottomValue}px` : spacingBottomValue
74
+ })
75
+ };
76
+ };
77
+
78
+ const calculatePaddingTopInnerContent = ({
79
+ py,
80
+ p
81
+ }) => [py, p].some(padding => padding !== undefined) ? 0 : `${_dialog.CONTENT_TOP_PADDING}px`;
82
+
34
83
  const DialogStyle = _styledComponents.default.div`
35
84
  background-color: var(--colorsUtilityMajor025);
36
85
  box-shadow: var(--boxShadow300);
@@ -62,7 +111,7 @@ const DialogStyle = _styledComponents.default.div`
62
111
  dialogHeight
63
112
  }) => dialogHeight && (0, _styledComponents.css)`
64
113
  height: ${dialogHeight}px;
65
- `};
114
+ `}
66
115
 
67
116
  ${_form.StyledForm} {
68
117
  padding-bottom: 0px;
@@ -70,21 +119,12 @@ const DialogStyle = _styledComponents.default.div`
70
119
  }
71
120
 
72
121
  ${_form.StyledFormContent}.sticky {
73
- padding-right: ${HORIZONTAL_PADDING}px;
74
- padding-left: ${HORIZONTAL_PADDING}px;
75
- padding-top: 20px;
76
- margin-right: -${HORIZONTAL_PADDING}px;
77
- margin-left: -${HORIZONTAL_PADDING}px;
78
- margin-top: -20px;
122
+ ${props => calculateFormSpacingValues(props, true)}
79
123
  }
80
124
 
81
125
  ${_form.StyledFormFooter}.sticky {
82
- margin-left: -${HORIZONTAL_PADDING}px;
83
- bottom: -${CONTENT_BOTTOM_PADDING}px;
84
- margin-bottom: -${CONTENT_BOTTOM_PADDING}px;
85
- width: calc(100% + ${2 * HORIZONTAL_PADDING}px);
86
- padding-left: ${HORIZONTAL_PADDING}px;
87
- padding-right: ${HORIZONTAL_PADDING}px;
126
+ width: calc(100% + ${calculateWidthValue}px);
127
+ ${props => calculateFormSpacingValues(props, false)}
88
128
  }
89
129
 
90
130
  > ${_iconButton.default} {
@@ -101,7 +141,7 @@ const DialogStyle = _styledComponents.default.div`
101
141
  `;
102
142
  exports.DialogStyle = DialogStyle;
103
143
  const DialogTitleStyle = _styledComponents.default.div`
104
- padding: 23px ${HORIZONTAL_PADDING}px 0;
144
+ padding: 23px ${_dialog.HORIZONTAL_PADDING}px 0;
105
145
  border-bottom: 1px solid #ccd6db;
106
146
  ${({
107
147
  showCloseIcon
@@ -133,12 +173,19 @@ const DialogContentStyle = _styledComponents.default.div`
133
173
  overflow-y: auto;
134
174
  width: 100%;
135
175
  flex: 1;
136
- padding: 0px ${HORIZONTAL_PADDING}px ${CONTENT_BOTTOM_PADDING}px;
176
+ padding: 0px ${_dialog.HORIZONTAL_PADDING}px ${_dialog.CONTENT_BOTTOM_PADDING}px;
177
+ ${_styledSystem.padding}
137
178
  `;
138
179
  exports.DialogContentStyle = DialogContentStyle;
139
180
  const DialogInnerContentStyle = _styledComponents.default.div`
140
- padding-top: 20px;
141
181
  position: relative;
142
182
  flex: 1;
183
+ padding-top: ${calculatePaddingTopInnerContent};
143
184
  `;
144
- exports.DialogInnerContentStyle = DialogInnerContentStyle;
185
+ exports.DialogInnerContentStyle = DialogInnerContentStyle;
186
+ DialogStyle.defaultProps = {
187
+ theme: _base.default
188
+ };
189
+ DialogContentStyle.defaultProps = {
190
+ theme: _base.default
191
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-react",
3
- "version": "104.9.0",
3
+ "version": "104.10.0",
4
4
  "description": "A library of reusable React components for easily building user interfaces.",
5
5
  "engineStrict": true,
6
6
  "engines": {