carbon-react 110.4.0 → 110.5.1
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/esm/__internal__/i18n-context/index.d.ts +2 -1
- package/esm/__internal__/popover/popover.component.d.ts +2 -1
- package/esm/__internal__/popover/popover.component.js +15 -4
- package/esm/__internal__/popover/popover.style.d.ts +6 -2
- package/esm/__internal__/popover/popover.style.js +6 -2
- package/esm/components/i18n-provider/i18n-provider.component.d.ts +8 -0
- package/esm/components/i18n-provider/i18n-provider.component.js +100 -80
- package/esm/components/i18n-provider/index.d.ts +2 -1
- package/esm/components/icon/icon.component.js +22 -9
- package/esm/components/message/index.d.ts +2 -1
- package/esm/components/message/message-content/message-content.component.d.ts +9 -0
- package/esm/components/message/message-content/message-content.component.js +4 -5
- package/esm/components/message/message-content/message-content.style.d.ts +2 -0
- package/esm/components/message/message-content/message-content.style.js +0 -3
- package/esm/components/message/message.component.d.ts +27 -0
- package/esm/components/message/message.component.js +169 -37
- package/esm/components/message/message.style.d.ts +8 -0
- package/esm/components/message/message.style.js +1 -8
- package/esm/components/message/type-icon/type-icon.component.d.ts +10 -0
- package/esm/components/message/type-icon/type-icon.component.js +4 -8
- package/esm/components/message/type-icon/type-icon.style.d.ts +9 -0
- package/esm/components/message/type-icon/type-icon.style.js +0 -10
- package/esm/components/search/search.component.js +28 -2
- package/esm/components/search/search.d.ts +3 -1
- package/esm/components/select/filterable-select/filterable-select.component.js +7 -5
- package/esm/components/select/multi-select/multi-select.component.js +4 -3
- package/esm/components/select/select-list/select-list.component.js +34 -18
- package/esm/components/select/simple-select/simple-select.component.js +4 -3
- package/esm/components/sidebar/__internal__/sidebar-header/index.d.ts +1 -0
- package/esm/components/sidebar/__internal__/sidebar-header/sidebar-header.component.d.ts +9 -0
- package/esm/components/sidebar/__internal__/sidebar-header/sidebar-header.component.js +7 -18
- package/esm/components/sidebar/__internal__/sidebar-header/sidebar-header.style.d.ts +2 -0
- package/esm/components/sidebar/index.d.ts +2 -1
- package/esm/components/sidebar/index.js +1 -2
- package/esm/components/sidebar/sidebar.component.d.ts +44 -0
- package/esm/components/sidebar/sidebar.component.js +187 -48
- package/esm/components/sidebar/sidebar.config.d.ts +11 -0
- package/esm/components/sidebar/sidebar.style.d.ts +8 -0
- package/esm/components/step-sequence/index.d.ts +4 -2
- package/esm/components/step-sequence/step-sequence-item/index.d.ts +2 -0
- package/esm/components/step-sequence/step-sequence-item/step-sequence-item.component.d.ts +19 -0
- package/esm/components/step-sequence/step-sequence-item/step-sequence-item.component.js +26 -41
- package/esm/components/step-sequence/step-sequence-item/step-sequence-item.style.d.ts +9 -0
- package/esm/components/step-sequence/step-sequence-item/step-sequence-item.style.js +18 -2
- package/esm/components/step-sequence/step-sequence.component.d.ts +13 -0
- package/esm/components/step-sequence/step-sequence.component.js +170 -18
- package/esm/components/step-sequence/step-sequence.config.d.ts +2 -0
- package/esm/components/step-sequence/step-sequence.style.d.ts +4 -0
- package/esm/components/tabs/__internal__/tab-title/tab-title.component.d.ts +4 -0
- package/esm/components/tabs/__internal__/tab-title/tab-title.component.js +34 -4
- package/esm/components/tabs/__internal__/tab-title/tab-title.d.ts +6 -0
- package/esm/components/tabs/__internal__/tab-title/tab-title.style.d.ts +4 -0
- package/lib/__internal__/i18n-context/index.d.ts +2 -1
- package/lib/__internal__/popover/popover.component.d.ts +2 -1
- package/lib/__internal__/popover/popover.component.js +16 -5
- package/lib/__internal__/popover/popover.style.d.ts +6 -2
- package/lib/__internal__/popover/popover.style.js +8 -3
- package/lib/components/i18n-provider/i18n-provider.component.d.ts +8 -0
- package/lib/components/i18n-provider/i18n-provider.component.js +102 -82
- package/lib/components/i18n-provider/index.d.ts +2 -1
- package/lib/components/icon/icon.component.js +22 -8
- package/lib/components/message/index.d.ts +2 -1
- package/lib/components/message/message-content/message-content.component.d.ts +9 -0
- package/lib/components/message/message-content/message-content.component.js +5 -6
- package/lib/components/message/message-content/message-content.style.d.ts +2 -0
- package/lib/components/message/message-content/message-content.style.js +0 -4
- package/lib/components/message/message.component.d.ts +27 -0
- package/lib/components/message/message.component.js +170 -40
- package/lib/components/message/message.style.d.ts +8 -0
- package/lib/components/message/message.style.js +1 -9
- package/lib/components/message/type-icon/type-icon.component.d.ts +10 -0
- package/lib/components/message/type-icon/type-icon.component.js +4 -8
- package/lib/components/message/type-icon/type-icon.style.d.ts +9 -0
- package/lib/components/message/type-icon/type-icon.style.js +0 -13
- package/lib/components/search/search.component.js +28 -2
- package/lib/components/search/search.d.ts +3 -1
- package/lib/components/select/filterable-select/filterable-select.component.js +7 -5
- package/lib/components/select/multi-select/multi-select.component.js +4 -3
- package/lib/components/select/select-list/select-list.component.js +34 -18
- package/lib/components/select/simple-select/simple-select.component.js +4 -3
- package/lib/components/sidebar/__internal__/sidebar-header/index.d.ts +1 -0
- package/lib/components/sidebar/__internal__/sidebar-header/sidebar-header.component.d.ts +9 -0
- package/lib/components/sidebar/__internal__/sidebar-header/sidebar-header.component.js +7 -19
- package/lib/components/sidebar/__internal__/sidebar-header/sidebar-header.style.d.ts +2 -0
- package/lib/components/sidebar/index.d.ts +2 -1
- package/lib/components/sidebar/sidebar.component.d.ts +44 -0
- package/lib/components/sidebar/sidebar.component.js +187 -50
- package/lib/components/sidebar/sidebar.config.d.ts +11 -0
- package/lib/components/sidebar/sidebar.style.d.ts +8 -0
- package/lib/components/step-sequence/index.d.ts +4 -2
- package/lib/components/step-sequence/step-sequence-item/index.d.ts +2 -0
- package/lib/components/step-sequence/step-sequence-item/step-sequence-item.component.d.ts +19 -0
- package/lib/components/step-sequence/step-sequence-item/step-sequence-item.component.js +30 -48
- package/lib/components/step-sequence/step-sequence-item/step-sequence-item.style.d.ts +9 -0
- package/lib/components/step-sequence/step-sequence-item/step-sequence-item.style.js +22 -3
- package/lib/components/step-sequence/step-sequence.component.d.ts +13 -0
- package/lib/components/step-sequence/step-sequence.component.js +171 -21
- package/lib/components/step-sequence/step-sequence.config.d.ts +2 -0
- package/lib/components/step-sequence/step-sequence.style.d.ts +4 -0
- package/lib/components/tabs/__internal__/tab-title/tab-title.component.d.ts +4 -0
- package/lib/components/tabs/__internal__/tab-title/tab-title.component.js +38 -4
- package/lib/components/tabs/__internal__/tab-title/tab-title.d.ts +6 -0
- package/lib/components/tabs/__internal__/tab-title/tab-title.style.d.ts +4 -0
- package/package.json +1 -1
- package/esm/components/i18n-provider/i18n-provider.d.ts +0 -11
- package/esm/components/message/message.d.ts +0 -29
- package/esm/components/sidebar/__internal__/sidebar-header/__definition__.js +0 -13
- package/esm/components/sidebar/sidebar.d.ts +0 -57
- package/esm/components/step-sequence/step-sequence-item/step-sequence-item-content.style.js +0 -5
- package/esm/components/step-sequence/step-sequence-item/step-sequence-item-hidden-label.style.js +0 -9
- package/esm/components/step-sequence/step-sequence-item/step-sequence-item-indicator.style.js +0 -9
- package/esm/components/step-sequence/step-sequence-item/step-sequence-item.d.ts +0 -22
- package/esm/components/step-sequence/step-sequence.d.ts +0 -12
- package/lib/components/i18n-provider/i18n-provider.d.ts +0 -11
- package/lib/components/message/message.d.ts +0 -29
- package/lib/components/sidebar/__internal__/sidebar-header/__definition__.js +0 -25
- package/lib/components/sidebar/sidebar.d.ts +0 -57
- package/lib/components/step-sequence/step-sequence-item/step-sequence-item-content.style.js +0 -16
- package/lib/components/step-sequence/step-sequence-item/step-sequence-item-hidden-label.style.js +0 -20
- package/lib/components/step-sequence/step-sequence-item/step-sequence-item-indicator.style.js +0 -20
- package/lib/components/step-sequence/step-sequence-item/step-sequence-item.d.ts +0 -22
- package/lib/components/step-sequence/step-sequence.d.ts +0 -12
|
@@ -13,6 +13,7 @@ export interface PopoverProps {
|
|
|
13
13
|
onFirstUpdate?: (state: Partial<State>) => void;
|
|
14
14
|
disablePortal?: boolean;
|
|
15
15
|
reference: React.RefObject<HTMLElement>;
|
|
16
|
+
isOpen?: boolean;
|
|
16
17
|
}
|
|
17
|
-
declare const Popover: ({ children, placement, disablePortal, reference, onFirstUpdate, modifiers, disableBackgroundUI, }: PopoverProps) => JSX.Element;
|
|
18
|
+
declare const Popover: ({ children, placement, disablePortal, reference, onFirstUpdate, modifiers, disableBackgroundUI, isOpen, }: PopoverProps) => JSX.Element;
|
|
18
19
|
export default Popover;
|
|
@@ -3,7 +3,7 @@ import PropTypes from "prop-types";
|
|
|
3
3
|
import ReactDOM from "react-dom";
|
|
4
4
|
import { createPopper } from "@popperjs/core";
|
|
5
5
|
import useResizeObserver from "../../hooks/__internal__/useResizeObserver";
|
|
6
|
-
import StyledBackdrop from "./popover.style";
|
|
6
|
+
import { StyledBackdrop, StyledPopoverContent } from "./popover.style";
|
|
7
7
|
import CarbonScopedTokensProvider from "../../style/design-tokens/carbon-scoped-tokens-provider/carbon-scoped-tokens-provider.component";
|
|
8
8
|
import { ModalContext } from "../../components/modal/modal.component";
|
|
9
9
|
|
|
@@ -14,12 +14,12 @@ const Popover = ({
|
|
|
14
14
|
reference,
|
|
15
15
|
onFirstUpdate,
|
|
16
16
|
modifiers,
|
|
17
|
-
disableBackgroundUI
|
|
17
|
+
disableBackgroundUI,
|
|
18
|
+
isOpen = true
|
|
18
19
|
}) => {
|
|
19
20
|
var _reference$current;
|
|
20
21
|
|
|
21
|
-
const elementDOM = useRef(null);
|
|
22
|
-
|
|
22
|
+
const elementDOM = useRef(null);
|
|
23
23
|
const {
|
|
24
24
|
isInModal
|
|
25
25
|
} = useContext(ModalContext);
|
|
@@ -52,6 +52,13 @@ const Popover = ({
|
|
|
52
52
|
|
|
53
53
|
popperInstance === null || popperInstance === void 0 ? void 0 : (_popperInstance$curre = popperInstance.current) === null || _popperInstance$curre === void 0 ? void 0 : _popperInstance$curre.update();
|
|
54
54
|
});
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (isOpen) {
|
|
57
|
+
var _popperInstance$curre2;
|
|
58
|
+
|
|
59
|
+
popperInstance === null || popperInstance === void 0 ? void 0 : (_popperInstance$curre2 = popperInstance.current) === null || _popperInstance$curre2 === void 0 ? void 0 : _popperInstance$curre2.update();
|
|
60
|
+
}
|
|
61
|
+
}, [isOpen]);
|
|
55
62
|
useLayoutEffect(() => {
|
|
56
63
|
if (reference.current) {
|
|
57
64
|
popperInstance.current = createPopper(reference.current, popperElementRef.current, {
|
|
@@ -82,6 +89,9 @@ const Popover = ({
|
|
|
82
89
|
}
|
|
83
90
|
};
|
|
84
91
|
}, [disablePortal, mountNode]);
|
|
92
|
+
content = /*#__PURE__*/React.createElement(StyledPopoverContent, {
|
|
93
|
+
isOpen: isOpen
|
|
94
|
+
}, content);
|
|
85
95
|
|
|
86
96
|
if (disableBackgroundUI) {
|
|
87
97
|
content = /*#__PURE__*/React.createElement(StyledBackdrop, null, content);
|
|
@@ -98,6 +108,7 @@ Popover.propTypes = {
|
|
|
98
108
|
"children": PropTypes.element.isRequired,
|
|
99
109
|
"disableBackgroundUI": PropTypes.bool,
|
|
100
110
|
"disablePortal": PropTypes.bool,
|
|
111
|
+
"isOpen": PropTypes.bool,
|
|
101
112
|
"modifiers": PropTypes.arrayOf(PropTypes.shape({
|
|
102
113
|
"enabled": PropTypes.bool,
|
|
103
114
|
"name": PropTypes.string.isRequired,
|
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
declare const StyledBackdrop: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
2
|
-
|
|
1
|
+
export declare const StyledBackdrop: import("styled-components").StyledComponent<"div", any, {}, never>;
|
|
2
|
+
declare type StyledPopoverContentProps = {
|
|
3
|
+
isOpen?: boolean;
|
|
4
|
+
};
|
|
5
|
+
export declare const StyledPopoverContent: import("styled-components").StyledComponent<"div", any, StyledPopoverContentProps, never>;
|
|
6
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import styled from "styled-components";
|
|
2
2
|
import baseTheme from "../../style/themes/base";
|
|
3
|
-
const StyledBackdrop = styled.div`
|
|
3
|
+
export const StyledBackdrop = styled.div`
|
|
4
4
|
bottom: 0;
|
|
5
5
|
left: 0;
|
|
6
6
|
position: fixed;
|
|
@@ -14,4 +14,8 @@ const StyledBackdrop = styled.div`
|
|
|
14
14
|
StyledBackdrop.defaultProps = {
|
|
15
15
|
theme: baseTheme
|
|
16
16
|
};
|
|
17
|
-
export
|
|
17
|
+
export const StyledPopoverContent = styled.div`
|
|
18
|
+
${({
|
|
19
|
+
isOpen
|
|
20
|
+
}) => !isOpen && "display: none;"}
|
|
21
|
+
`;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import Locale from "../../locales";
|
|
3
|
+
export interface I18nProviderProps {
|
|
4
|
+
locale?: Partial<Locale>;
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare const I18nProvider: ({ locale, children }: I18nProviderProps) => JSX.Element;
|
|
8
|
+
export default I18nProvider;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import merge from "lodash/merge";
|
|
3
2
|
import PropTypes from "prop-types";
|
|
3
|
+
import merge from "lodash/merge";
|
|
4
4
|
import Context from "../../__internal__/i18n-context";
|
|
5
5
|
import enGB from "../../locales/en-gb";
|
|
6
6
|
|
|
@@ -9,87 +9,107 @@ const I18nProvider = ({
|
|
|
9
9
|
children
|
|
10
10
|
}) => locale ? /*#__PURE__*/React.createElement(Context.Provider, {
|
|
11
11
|
value: merge({}, enGB, locale)
|
|
12
|
-
}, children) : children;
|
|
12
|
+
}, children) : /*#__PURE__*/React.createElement(React.Fragment, null, children);
|
|
13
13
|
|
|
14
|
-
I18nProvider.defaultProps = {
|
|
15
|
-
locale: undefined
|
|
16
|
-
};
|
|
17
14
|
I18nProvider.propTypes = {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
})
|
|
88
|
-
}),
|
|
89
|
-
|
|
90
|
-
|
|
15
|
+
"children": PropTypes.node,
|
|
16
|
+
"locale": PropTypes.shape({
|
|
17
|
+
"actionPopover": PropTypes.shape({
|
|
18
|
+
"ariaLabel": PropTypes.func.isRequired
|
|
19
|
+
}),
|
|
20
|
+
"actions": PropTypes.shape({
|
|
21
|
+
"delete": PropTypes.func.isRequired,
|
|
22
|
+
"edit": PropTypes.func.isRequired
|
|
23
|
+
}),
|
|
24
|
+
"batchSelection": PropTypes.shape({
|
|
25
|
+
"selected": PropTypes.func.isRequired
|
|
26
|
+
}),
|
|
27
|
+
"confirm": PropTypes.shape({
|
|
28
|
+
"no": PropTypes.func.isRequired,
|
|
29
|
+
"yes": PropTypes.func.isRequired
|
|
30
|
+
}),
|
|
31
|
+
"date": PropTypes.shape({
|
|
32
|
+
"dateFnsLocale": PropTypes.func.isRequired
|
|
33
|
+
}),
|
|
34
|
+
"dialog": PropTypes.shape({
|
|
35
|
+
"ariaLabels": PropTypes.shape({
|
|
36
|
+
"close": PropTypes.func.isRequired
|
|
37
|
+
}).isRequired
|
|
38
|
+
}),
|
|
39
|
+
"dialogFullScreen": PropTypes.shape({
|
|
40
|
+
"ariaLabels": PropTypes.shape({
|
|
41
|
+
"close": PropTypes.func.isRequired
|
|
42
|
+
}).isRequired
|
|
43
|
+
}),
|
|
44
|
+
"errors": PropTypes.shape({
|
|
45
|
+
"messages": PropTypes.shape({
|
|
46
|
+
"formSummary": PropTypes.func.isRequired
|
|
47
|
+
}).isRequired
|
|
48
|
+
}),
|
|
49
|
+
"heading": PropTypes.shape({
|
|
50
|
+
"backLinkAriaLabel": PropTypes.func.isRequired
|
|
51
|
+
}),
|
|
52
|
+
"link": PropTypes.shape({
|
|
53
|
+
"skipLinkLabel": PropTypes.func.isRequired
|
|
54
|
+
}),
|
|
55
|
+
"locale": PropTypes.func,
|
|
56
|
+
"message": PropTypes.shape({
|
|
57
|
+
"closeButtonAriaLabel": PropTypes.func.isRequired
|
|
58
|
+
}),
|
|
59
|
+
"numeralDate": PropTypes.shape({
|
|
60
|
+
"validation": PropTypes.shape({
|
|
61
|
+
"day": PropTypes.func.isRequired,
|
|
62
|
+
"month": PropTypes.func.isRequired,
|
|
63
|
+
"year": PropTypes.func.isRequired
|
|
64
|
+
}).isRequired
|
|
65
|
+
}),
|
|
66
|
+
"pager": PropTypes.shape({
|
|
67
|
+
"first": PropTypes.func.isRequired,
|
|
68
|
+
"last": PropTypes.func.isRequired,
|
|
69
|
+
"next": PropTypes.func.isRequired,
|
|
70
|
+
"ofY": PropTypes.func.isRequired,
|
|
71
|
+
"pageX": PropTypes.func.isRequired,
|
|
72
|
+
"previous": PropTypes.func.isRequired,
|
|
73
|
+
"records": PropTypes.func.isRequired,
|
|
74
|
+
"show": PropTypes.func.isRequired
|
|
75
|
+
}),
|
|
76
|
+
"select": PropTypes.shape({
|
|
77
|
+
"actionButtonText": PropTypes.func.isRequired,
|
|
78
|
+
"noResultsForTerm": PropTypes.func.isRequired,
|
|
79
|
+
"placeholder": PropTypes.func.isRequired
|
|
80
|
+
}),
|
|
81
|
+
"sidebar": PropTypes.shape({
|
|
82
|
+
"ariaLabels": PropTypes.shape({
|
|
83
|
+
"close": PropTypes.func.isRequired
|
|
84
|
+
}).isRequired
|
|
85
|
+
}),
|
|
86
|
+
"switch": PropTypes.shape({
|
|
87
|
+
"off": PropTypes.func.isRequired,
|
|
88
|
+
"on": PropTypes.func.isRequired
|
|
89
|
+
}),
|
|
90
|
+
"textEditor": PropTypes.shape({
|
|
91
|
+
"ariaLabels": PropTypes.shape({
|
|
92
|
+
"bold": PropTypes.func.isRequired,
|
|
93
|
+
"bulletList": PropTypes.func.isRequired,
|
|
94
|
+
"italic": PropTypes.func.isRequired,
|
|
95
|
+
"numberList": PropTypes.func.isRequired
|
|
96
|
+
}).isRequired,
|
|
97
|
+
"tooltipMessages": PropTypes.shape({
|
|
98
|
+
"bold": PropTypes.func.isRequired,
|
|
99
|
+
"bulletList": PropTypes.func.isRequired,
|
|
100
|
+
"italic": PropTypes.func.isRequired,
|
|
101
|
+
"numberList": PropTypes.func.isRequired
|
|
102
|
+
}).isRequired
|
|
103
|
+
}),
|
|
104
|
+
"tileSelect": PropTypes.shape({
|
|
105
|
+
"deselect": PropTypes.func.isRequired
|
|
106
|
+
}),
|
|
107
|
+
"toast": PropTypes.shape({
|
|
108
|
+
"ariaLabels": PropTypes.shape({
|
|
109
|
+
"close": PropTypes.func.isRequired
|
|
110
|
+
}).isRequired
|
|
91
111
|
})
|
|
92
|
-
})
|
|
93
|
-
children: PropTypes.node.isRequired
|
|
112
|
+
})
|
|
94
113
|
};
|
|
114
|
+
export { I18nProvider };
|
|
95
115
|
export default I18nProvider;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { default } from "./i18n-provider";
|
|
1
|
+
export { default } from "./i18n-provider.component";
|
|
2
|
+
export type { I18nProviderProps } from "./i18n-provider.component";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useContext } from "react";
|
|
1
|
+
import React, { useContext, useMemo } from "react";
|
|
2
2
|
import PropTypes from "prop-types";
|
|
3
3
|
import invariant from "invariant";
|
|
4
4
|
import Tooltip from "../tooltip";
|
|
@@ -7,6 +7,7 @@ import { TooltipContext } from "../../__internal__/tooltip-provider";
|
|
|
7
7
|
import tagComponent from "../../__internal__/utils/helpers/tags/tags";
|
|
8
8
|
import StyledIcon from "./icon.style";
|
|
9
9
|
import { ICON_TOOLTIP_POSITIONS } from "./icon-config";
|
|
10
|
+
import { TabTitleContext } from "../tabs/__internal__/tab-title/tab-title.component";
|
|
10
11
|
const Icon = /*#__PURE__*/React.forwardRef(({
|
|
11
12
|
"aria-hidden": ariaHidden,
|
|
12
13
|
ariaLabel,
|
|
@@ -47,9 +48,12 @@ const Icon = /*#__PURE__*/React.forwardRef(({
|
|
|
47
48
|
disabled: disabledFromContext,
|
|
48
49
|
target
|
|
49
50
|
} = useContext(TooltipContext);
|
|
51
|
+
const {
|
|
52
|
+
isInTab
|
|
53
|
+
} = useContext(TabTitleContext);
|
|
50
54
|
/** Return Icon type with overrides */
|
|
51
55
|
|
|
52
|
-
const iconType = () => {
|
|
56
|
+
const iconType = useMemo(() => {
|
|
53
57
|
// switch tweaks icon names for actual icons in the set
|
|
54
58
|
switch (type) {
|
|
55
59
|
case "help":
|
|
@@ -71,10 +75,16 @@ const Icon = /*#__PURE__*/React.forwardRef(({
|
|
|
71
75
|
default:
|
|
72
76
|
return type;
|
|
73
77
|
}
|
|
74
|
-
};
|
|
75
|
-
|
|
78
|
+
}, [type]);
|
|
76
79
|
const isFocusable = focusableFromContext !== undefined ? focusableFromContext : focusable;
|
|
77
80
|
const hasTooltip = !disabled && !disabledFromContext && !!tooltipMessage && isFocusable;
|
|
81
|
+
const computedTabIndex = useMemo(() => {
|
|
82
|
+
if (isInTab) {
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return hasTooltip && tabIndex === undefined ? 0 : tabIndex;
|
|
87
|
+
}, [isInTab, hasTooltip, tabIndex]);
|
|
78
88
|
const styledIconProps = {
|
|
79
89
|
"aria-hidden": ariaHidden,
|
|
80
90
|
"aria-label": ariaLabel,
|
|
@@ -83,7 +93,7 @@ const Icon = /*#__PURE__*/React.forwardRef(({
|
|
|
83
93
|
bgShape,
|
|
84
94
|
className: className || undefined,
|
|
85
95
|
color,
|
|
86
|
-
"data-element": iconType
|
|
96
|
+
"data-element": iconType,
|
|
87
97
|
disabled: disabledFromContext || disabled,
|
|
88
98
|
fontSize,
|
|
89
99
|
hasTooltip,
|
|
@@ -92,15 +102,18 @@ const Icon = /*#__PURE__*/React.forwardRef(({
|
|
|
92
102
|
key: "icon",
|
|
93
103
|
ref,
|
|
94
104
|
role,
|
|
95
|
-
tabIndex:
|
|
96
|
-
type: iconType
|
|
105
|
+
tabIndex: computedTabIndex,
|
|
106
|
+
type: iconType,
|
|
97
107
|
...tagComponent("icon", rest),
|
|
98
108
|
...filterStyledSystemMarginProps(rest)
|
|
99
109
|
};
|
|
100
110
|
|
|
111
|
+
const shouldShowTooltip = () => {
|
|
112
|
+
return tooltipVisibleFromContext !== undefined ? tooltipVisibleFromContext : tooltipVisible;
|
|
113
|
+
};
|
|
114
|
+
|
|
101
115
|
if (tooltipMessage) {
|
|
102
|
-
const
|
|
103
|
-
const visible = disabled ? undefined : showTooltip;
|
|
116
|
+
const visible = disabled ? undefined : shouldShowTooltip();
|
|
104
117
|
return /*#__PURE__*/React.createElement(Tooltip, {
|
|
105
118
|
message: tooltipMessage,
|
|
106
119
|
position: tooltipPositionFromContext || tooltipPosition,
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
export { default } from "./message";
|
|
1
|
+
export { default } from "./message.component";
|
|
2
|
+
export type { MessageProps } from "./message.component";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
interface MessageContentProps {
|
|
3
|
+
/** set message title */
|
|
4
|
+
title?: React.ReactNode;
|
|
5
|
+
/** set content to component */
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
}
|
|
8
|
+
declare const MessageContent: ({ title, children }: MessageContentProps) => JSX.Element;
|
|
9
|
+
export default MessageContent;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import PropTypes from "prop-types";
|
|
3
|
-
import Content from "../../content
|
|
3
|
+
import Content from "../../content";
|
|
4
4
|
import MessageContentStyle from "./message-content.style";
|
|
5
5
|
|
|
6
6
|
const MessageContent = ({
|
|
@@ -8,13 +8,12 @@ const MessageContent = ({
|
|
|
8
8
|
children
|
|
9
9
|
}) => {
|
|
10
10
|
return /*#__PURE__*/React.createElement(MessageContentStyle, null, /*#__PURE__*/React.createElement(Content, {
|
|
11
|
-
title: title
|
|
12
|
-
className: "message-content"
|
|
11
|
+
title: title
|
|
13
12
|
}, children));
|
|
14
13
|
};
|
|
15
14
|
|
|
16
15
|
MessageContent.propTypes = {
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
"children": PropTypes.node,
|
|
17
|
+
"title": PropTypes.node
|
|
19
18
|
};
|
|
20
19
|
export default MessageContent;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import styled from "styled-components";
|
|
2
|
-
import { margin } from "styled-system";
|
|
3
2
|
const MessageContentStyle = styled.div`
|
|
4
3
|
padding: 15px 50px 15px 20px;
|
|
5
4
|
white-space: pre-wrap;
|
|
@@ -12,7 +11,5 @@ const MessageContentStyle = styled.div`
|
|
|
12
11
|
.carbon-content__body {
|
|
13
12
|
margin-top: 0px;
|
|
14
13
|
}
|
|
15
|
-
|
|
16
|
-
${margin}
|
|
17
14
|
`;
|
|
18
15
|
export default MessageContentStyle;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { MarginProps } from "styled-system";
|
|
3
|
+
export declare type MessageVariant = "error" | "info" | "success" | "warning";
|
|
4
|
+
export interface MessageProps extends MarginProps {
|
|
5
|
+
/** set content to component */
|
|
6
|
+
children?: React.ReactNode;
|
|
7
|
+
/** set custom class to component */
|
|
8
|
+
className?: string;
|
|
9
|
+
/** set custom aria label for message close button */
|
|
10
|
+
closeButtonAriaLabel?: string;
|
|
11
|
+
/** set custom id to component root */
|
|
12
|
+
id?: string;
|
|
13
|
+
/** function runs when user click dismiss button */
|
|
14
|
+
onDismiss?: (e: React.KeyboardEvent<HTMLButtonElement> | React.MouseEvent<HTMLButtonElement>) => void;
|
|
15
|
+
/** show message component */
|
|
16
|
+
open?: boolean;
|
|
17
|
+
/** determines if the close icon is shown */
|
|
18
|
+
showCloseIcon?: boolean;
|
|
19
|
+
/** set message title */
|
|
20
|
+
title?: React.ReactNode;
|
|
21
|
+
/** set background to be invisible */
|
|
22
|
+
transparent?: boolean;
|
|
23
|
+
/** set type of message based on new DLS standard */
|
|
24
|
+
variant?: MessageVariant;
|
|
25
|
+
}
|
|
26
|
+
export declare const Message: ({ open, transparent, title, variant, children, onDismiss, id, className, closeButtonAriaLabel, showCloseIcon, ...props }: MessageProps) => JSX.Element | null;
|
|
27
|
+
export default Message;
|