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.
- package/lib/components/advanced-color-picker/advanced-color-picker.style.d.ts +7 -1
- package/lib/components/dialog/dialog.component.d.ts +9 -2
- package/lib/components/dialog/dialog.component.js +12 -4
- package/lib/components/dialog/dialog.config.d.ts +3 -0
- package/lib/components/dialog/dialog.config.js +8 -2
- package/lib/components/dialog/dialog.d.ts +11 -1
- package/lib/components/dialog/dialog.style.d.ts +4 -1
- package/lib/components/dialog/dialog.style.js +66 -19
- package/package.json +1 -1
|
@@ -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-
|
|
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,
|
|
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-
|
|
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",
|
|
@@ -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-
|
|
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, {
|
|
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
|
-
|
|
33
|
-
const
|
|
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
|
-
|
|
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
|
-
|
|
83
|
-
|
|
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
|
+
};
|