@zohodesk/components 1.0.0-alpha-237 → 1.0.0-alpha-238
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/README.md +9 -0
- package/assets/Appearance/dark/mode/darkMode.module.css +1 -1
- package/assets/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +1 -1
- package/assets/Appearance/default/mode/defaultMode.module.css +1 -1
- package/assets/Appearance/default/themes/blue/blueDefaultComponentTheme.module.css +1 -1
- package/assets/Appearance/pureDark/mode/pureDarkMode.module.css +358 -0
- package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTATheme.module.css +34 -0
- package/assets/Appearance/pureDark/themes/blue/bluePureDarkComponentTheme.module.css +42 -0
- package/assets/Appearance/pureDark/themes/green/greenPureDarkCTATheme.module.css +34 -0
- package/assets/Appearance/pureDark/themes/green/greenPureDarkComponentTheme.module.css +42 -0
- package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTATheme.module.css +34 -0
- package/assets/Appearance/pureDark/themes/orange/orangePureDarkComponentTheme.module.css +42 -0
- package/assets/Appearance/pureDark/themes/red/redPureDarkCTATheme.module.css +34 -0
- package/assets/Appearance/pureDark/themes/red/redPureDarkComponentTheme.module.css +42 -0
- package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTATheme.module.css +34 -0
- package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkComponentTheme.module.css +42 -0
- package/es/AppContainer/AppContainer.js +6 -1
- package/es/Provider/Config.js +1 -2
- package/es/Provider.js +72 -35
- package/es/Tooltip/Tooltip.js +40 -2
- package/es/common/docStyle.module.css +6 -2
- package/lib/AppContainer/AppContainer.js +7 -0
- package/lib/Provider/Config.js +1 -2
- package/lib/Provider.js +88 -37
- package/lib/Tooltip/Tooltip.js +47 -2
- package/lib/common/docStyle.module.css +6 -2
- package/package.json +5 -5
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[data-mode='pureDark'][data-theme='red'] {
|
|
2
|
+
--zdt_cta_primary_text: #e94f4f;
|
|
3
|
+
--zdt_cta_primary_hover_text: #ee7c7c;
|
|
4
|
+
--zdt_cta_primary_bg: #e94f4f;
|
|
5
|
+
--zdt_cta_primary_hover_bg: #a81111;
|
|
6
|
+
--zdt_cta_primary_border: #e94f4f;
|
|
7
|
+
--zdt_cta_primary_hover_border: #a81111;
|
|
8
|
+
--zdt_cta_primary_box_shadow: rgba(222, 53, 53, 0.2);
|
|
9
|
+
--zdt_cta_primary_hover_box_shadow: rgba(171, 26, 24, 0.25);
|
|
10
|
+
--zdt_cta_primary_light_bg: #2f2424;
|
|
11
|
+
--zdt_cta_primary_light_hover_bg: #4b323d;
|
|
12
|
+
--zdt_cta_primary_light_border: #4b323d;
|
|
13
|
+
--zdt_cta_secondary_bg: #e94f4f;
|
|
14
|
+
--zdt_cta_secondary_text: var(--dot_white);
|
|
15
|
+
--zdt_cta_secondary_border: rgba(255, 255, 255, 0.15);
|
|
16
|
+
--zdt_cta_secondary_light_border: #492a2a;
|
|
17
|
+
--zdt_cta_alpha_text: #e94f4f;
|
|
18
|
+
--zdt_cta_alpha_hover_text: #a81111;
|
|
19
|
+
--zdt_cta_alpha_border: #e94f4f;
|
|
20
|
+
--zdt_cta_alpha_hover_border: #a81111;
|
|
21
|
+
--zdt_cta_alpha_bg: #372f3a;
|
|
22
|
+
--zdt_cta_beta_border: #e94f4f;
|
|
23
|
+
--zdt_cta_grey_10_bg: #262626;
|
|
24
|
+
--zdt_cta_grey_10_border: #262626;
|
|
25
|
+
--zdt_cta_grey_15_bg: #161515;
|
|
26
|
+
--zdt_cta_grey_15_border: #161515;
|
|
27
|
+
--zdt_cta_grey_20_bg: #161b23;
|
|
28
|
+
--zdt_cta_grey_35_bg: #585858;
|
|
29
|
+
--zdt_cta_grey_35_text: #585858;
|
|
30
|
+
--zdt_cta_grey_35_border: #383838;
|
|
31
|
+
--zdt_cta_grey_40_bg: #585858;
|
|
32
|
+
--zdt_cta_grey_40_text: #585858;
|
|
33
|
+
--zdt_cta_grey_40_border: #585858
|
|
34
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[data-mode='pureDark'][data-theme='red'] {
|
|
2
|
+
/* stencil */
|
|
3
|
+
--zdt_stencil_dark_bg: #212121;
|
|
4
|
+
--zdt_stencil_dark_gradient_bg: linear-gradient(to left, #212121 0%, #262626 33.33%, #262626 66.66%, #212121 100%);
|
|
5
|
+
|
|
6
|
+
/* dropbox */
|
|
7
|
+
--zdt_dropbox_dark_bg: #212121;
|
|
8
|
+
|
|
9
|
+
/* listitem */
|
|
10
|
+
--zdt_listitem_dark_bg: #212121;
|
|
11
|
+
--zdt_listitem_dark_text: var(--dot_platinum);
|
|
12
|
+
--zdt_listitem_dark_effect_bg: #2b2b2b;
|
|
13
|
+
--zdt_listitem_dark_active_bg: #3b4d6d;
|
|
14
|
+
--zdt_listitem_dark_tickicon: #ff801f;
|
|
15
|
+
|
|
16
|
+
/* tag */
|
|
17
|
+
--zdt_tag_dark_text: #d0d0d4;
|
|
18
|
+
--zdt_tag_dark_bg: #262626;
|
|
19
|
+
--zdt_tag_dark_hover_text: #d0d0d4;
|
|
20
|
+
--zdt_tag_dark_hover_bg: var(--dot_matterhorn);
|
|
21
|
+
--zdt_tag_dark_close_bg: #864654;
|
|
22
|
+
--zdt_tag_dark_close_text: var(--dot_brightRed);
|
|
23
|
+
|
|
24
|
+
/* multiselect */
|
|
25
|
+
--zdt_multiselect_dark_border: #585858;
|
|
26
|
+
--zdt_multiselect_darkmsg_bg: #212121;
|
|
27
|
+
--zdt_multiselect_darkmsg_text: #d0d0d4;
|
|
28
|
+
--zdt_multiselect_darkdelete_hover_text: var(--dot_platinum);
|
|
29
|
+
|
|
30
|
+
/* avatar */
|
|
31
|
+
--zdt_avatar_white_border: var(--dot_cadetblue);
|
|
32
|
+
--zdt_avatar_white_text: var(--dot_white);
|
|
33
|
+
|
|
34
|
+
/* label */
|
|
35
|
+
--zdt_label_dark_text: #d0d0d4;
|
|
36
|
+
|
|
37
|
+
/* textbox */
|
|
38
|
+
--zdt_textbox_light_text: var(--dot_white);
|
|
39
|
+
|
|
40
|
+
/* dropdown */
|
|
41
|
+
--zdt_dropdown_darkheading_text: var(--dot_cadetblue);
|
|
42
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[data-mode='pureDark'][data-theme='yellow'] {
|
|
2
|
+
--zdt_cta_primary_text: #d79835;
|
|
3
|
+
--zdt_cta_primary_hover_text: #e1b36a;
|
|
4
|
+
--zdt_cta_primary_bg: #d79835;
|
|
5
|
+
--zdt_cta_primary_hover_bg: #9b6808;
|
|
6
|
+
--zdt_cta_primary_border: #d79835;
|
|
7
|
+
--zdt_cta_primary_hover_border: #9b6808;
|
|
8
|
+
--zdt_cta_primary_box_shadow: rgba(232, 185, 35, 0.2);
|
|
9
|
+
--zdt_cta_primary_hover_box_shadow: rgba(181, 145, 0, 0.25);
|
|
10
|
+
--zdt_cta_primary_light_bg: #2e2922;
|
|
11
|
+
--zdt_cta_primary_light_hover_bg: #474137;
|
|
12
|
+
--zdt_cta_primary_light_border: #474137;
|
|
13
|
+
--zdt_cta_secondary_bg: #d79835;
|
|
14
|
+
--zdt_cta_secondary_text: var(--dot_white);
|
|
15
|
+
--zdt_cta_secondary_border: rgba(255, 255, 255, 0.15);
|
|
16
|
+
--zdt_cta_secondary_light_border: #453925;
|
|
17
|
+
--zdt_cta_alpha_text: #d79835;
|
|
18
|
+
--zdt_cta_alpha_hover_text: #9b6808;
|
|
19
|
+
--zdt_cta_alpha_border: #d79835;
|
|
20
|
+
--zdt_cta_alpha_hover_border: #9b6808;
|
|
21
|
+
--zdt_cta_alpha_bg: #353638;
|
|
22
|
+
--zdt_cta_beta_border: #d79835;
|
|
23
|
+
--zdt_cta_grey_10_bg: #262626;
|
|
24
|
+
--zdt_cta_grey_10_border: #262626;
|
|
25
|
+
--zdt_cta_grey_15_bg: #161515;
|
|
26
|
+
--zdt_cta_grey_15_border: #161515;
|
|
27
|
+
--zdt_cta_grey_20_bg: #161b23;
|
|
28
|
+
--zdt_cta_grey_35_bg: #585858;
|
|
29
|
+
--zdt_cta_grey_35_text: #585858;
|
|
30
|
+
--zdt_cta_grey_35_border: #383838;
|
|
31
|
+
--zdt_cta_grey_40_bg: #585858;
|
|
32
|
+
--zdt_cta_grey_40_text: #585858;
|
|
33
|
+
--zdt_cta_grey_40_border: #585858
|
|
34
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[data-mode='pureDark'][data-theme='yellow'] {
|
|
2
|
+
/* stencil */
|
|
3
|
+
--zdt_stencil_dark_bg: #212121;
|
|
4
|
+
--zdt_stencil_dark_gradient_bg: linear-gradient(to left, #212121 0%, #262626 33.33%, #262626 66.66%, #212121 100%);
|
|
5
|
+
|
|
6
|
+
/* dropbox */
|
|
7
|
+
--zdt_dropbox_dark_bg: #212121;
|
|
8
|
+
|
|
9
|
+
/* listitem */
|
|
10
|
+
--zdt_listitem_dark_bg: #212121;
|
|
11
|
+
--zdt_listitem_dark_text: var(--dot_platinum);
|
|
12
|
+
--zdt_listitem_dark_effect_bg: #2b2b2b;
|
|
13
|
+
--zdt_listitem_dark_active_bg: #3b4d6d;
|
|
14
|
+
--zdt_listitem_dark_tickicon: #d79835;
|
|
15
|
+
|
|
16
|
+
/* tag */
|
|
17
|
+
--zdt_tag_dark_text: #d0d0d4;
|
|
18
|
+
--zdt_tag_dark_bg: #262626;
|
|
19
|
+
--zdt_tag_dark_hover_text: #d0d0d4;
|
|
20
|
+
--zdt_tag_dark_hover_bg: var(--dot_matterhorn);
|
|
21
|
+
--zdt_tag_dark_close_bg: #864654;
|
|
22
|
+
--zdt_tag_dark_close_text: var(--dot_brightRed);
|
|
23
|
+
|
|
24
|
+
/* multiselect */
|
|
25
|
+
--zdt_multiselect_dark_border: #585858;
|
|
26
|
+
--zdt_multiselect_darkmsg_bg: #212121;
|
|
27
|
+
--zdt_multiselect_darkmsg_text: #d0d0d4;
|
|
28
|
+
--zdt_multiselect_darkdelete_hover_text: var(--dot_platinum);
|
|
29
|
+
|
|
30
|
+
/* avatar */
|
|
31
|
+
--zdt_avatar_white_border: var(--dot_cadetblue);
|
|
32
|
+
--zdt_avatar_white_text: var(--dot_white);
|
|
33
|
+
|
|
34
|
+
/* label */
|
|
35
|
+
--zdt_label_dark_text: #d0d0d4;
|
|
36
|
+
|
|
37
|
+
/* textbox */
|
|
38
|
+
--zdt_textbox_light_text: var(--dot_white);
|
|
39
|
+
|
|
40
|
+
/* dropdown */
|
|
41
|
+
--zdt_dropdown_darkheading_text: var(--dot_cadetblue);
|
|
42
|
+
}
|
|
@@ -13,7 +13,7 @@ import '@zohodesk/variables/lib/fontFamilyVariables.module.css';
|
|
|
13
13
|
import '@zohodesk/variables/assets/transitionVariables.module.css';
|
|
14
14
|
import '@zohodesk/variables/assets/no_transitionVariables.module.css';
|
|
15
15
|
import style from './AppContainer.module.css';
|
|
16
|
-
import { getLibraryConfig } from '../Provider/Config';
|
|
16
|
+
import { getLibraryConfig, setLibraryConfig } from '../Provider/Config';
|
|
17
17
|
export default class AppContainer extends React.Component {
|
|
18
18
|
constructor(props) {
|
|
19
19
|
super(props);
|
|
@@ -24,6 +24,9 @@ export default class AppContainer extends React.Component {
|
|
|
24
24
|
this.getContainerRef = this.getContainerRef.bind(this);
|
|
25
25
|
this.timer = null;
|
|
26
26
|
this.tooltipDebounce = getLibraryConfig('tooltipDebounce');
|
|
27
|
+
setLibraryConfig({
|
|
28
|
+
getTooltipContainer: () => this.containerElement
|
|
29
|
+
});
|
|
27
30
|
}
|
|
28
31
|
|
|
29
32
|
mouseOverDispatch(e) {
|
|
@@ -62,6 +65,7 @@ export default class AppContainer extends React.Component {
|
|
|
62
65
|
if (this.containerElement) {
|
|
63
66
|
this.containerElement.addEventListener('mouseover', this.handleOver, false);
|
|
64
67
|
this.containerElement.addEventListener('mouseout', this.removeTimeout, false);
|
|
68
|
+
this.tooltipRef.observeElement();
|
|
65
69
|
}
|
|
66
70
|
}
|
|
67
71
|
|
|
@@ -69,6 +73,7 @@ export default class AppContainer extends React.Component {
|
|
|
69
73
|
if (this.containerElement) {
|
|
70
74
|
this.containerElement.removeEventListener('mouseover', this.handleOver, false);
|
|
71
75
|
this.containerElement.addEventListener('mouseout', this.removeTimeout, false);
|
|
76
|
+
this.tooltipRef.unObserveElement();
|
|
72
77
|
}
|
|
73
78
|
}
|
|
74
79
|
|
package/es/Provider/Config.js
CHANGED
package/es/Provider.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import AppContainer from './AppContainer/AppContainer';
|
|
3
3
|
import { Container } from './Layout';
|
|
4
|
-
import Switch from './Switch/Switch';
|
|
5
4
|
/* default mode & theme css */
|
|
6
5
|
|
|
7
6
|
import '../assets/Appearance/default/themes/blue/blueDefaultCTATheme.module.css';
|
|
@@ -28,6 +27,19 @@ import '../assets/Appearance/dark/themes/orange/orangeDarkComponentTheme.module.
|
|
|
28
27
|
import '../assets/Appearance/dark/themes/red/redDarkComponentTheme.module.css';
|
|
29
28
|
import '../assets/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module.css';
|
|
30
29
|
import '../assets/Appearance/dark/mode/darkMode.module.css';
|
|
30
|
+
/* pure dark mode & theme css */
|
|
31
|
+
|
|
32
|
+
import '../assets/Appearance/pureDark/themes/blue/bluePureDarkCTATheme.module.css';
|
|
33
|
+
import '../assets/Appearance/pureDark/themes/green/greenPureDarkCTATheme.module.css';
|
|
34
|
+
import '../assets/Appearance/pureDark/themes/orange/orangePureDarkCTATheme.module.css';
|
|
35
|
+
import '../assets/Appearance/pureDark/themes/red/redPureDarkCTATheme.module.css';
|
|
36
|
+
import '../assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTATheme.module.css';
|
|
37
|
+
import '../assets/Appearance/pureDark/themes/blue/bluePureDarkComponentTheme.module.css';
|
|
38
|
+
import '../assets/Appearance/pureDark/themes/green/greenPureDarkComponentTheme.module.css';
|
|
39
|
+
import '../assets/Appearance/pureDark/themes/orange/orangePureDarkComponentTheme.module.css';
|
|
40
|
+
import '../assets/Appearance/pureDark/themes/red/redPureDarkComponentTheme.module.css';
|
|
41
|
+
import '../assets/Appearance/pureDark/themes/yellow/yellowPureDarkComponentTheme.module.css';
|
|
42
|
+
import '../assets/Appearance/pureDark/mode/pureDarkMode.module.css';
|
|
31
43
|
import LibraryContext from './Provider/LibraryContextInit';
|
|
32
44
|
import { setGlobalIdPrefix } from './Provider/IdProvider';
|
|
33
45
|
export default class Provider extends React.Component {
|
|
@@ -38,22 +50,13 @@ export default class Provider extends React.Component {
|
|
|
38
50
|
appearanceName: 'default',
|
|
39
51
|
themeName: 'blue'
|
|
40
52
|
};
|
|
41
|
-
this.switchMode = this.switchMode.bind(this);
|
|
42
53
|
this.setTheme = this.setTheme.bind(this);
|
|
43
54
|
}
|
|
44
55
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
this.setState({
|
|
50
|
-
appearanceName: 'dark'
|
|
51
|
-
});
|
|
52
|
-
} else {
|
|
53
|
-
this.setState({
|
|
54
|
-
appearanceName: 'default'
|
|
55
|
-
});
|
|
56
|
-
}
|
|
56
|
+
setAppearance(mode) {
|
|
57
|
+
this.setState({
|
|
58
|
+
appearanceName: mode
|
|
59
|
+
});
|
|
57
60
|
}
|
|
58
61
|
|
|
59
62
|
setTheme(theme) {
|
|
@@ -89,6 +92,29 @@ export default class Provider extends React.Component {
|
|
|
89
92
|
let yellow = {
|
|
90
93
|
backgroundColor: '#e8b923'
|
|
91
94
|
};
|
|
95
|
+
let light = {
|
|
96
|
+
backgroundColor: '#fff'
|
|
97
|
+
};
|
|
98
|
+
let night = {
|
|
99
|
+
backgroundColor: '#232b38'
|
|
100
|
+
};
|
|
101
|
+
let dark = {
|
|
102
|
+
backgroundColor: '#212121'
|
|
103
|
+
};
|
|
104
|
+
let fixedPosition = {
|
|
105
|
+
position: 'fixed',
|
|
106
|
+
bottom: '0',
|
|
107
|
+
backgroundColor: '#272727',
|
|
108
|
+
padding: '10px',
|
|
109
|
+
borderRadius: '15px 15px 0 0',
|
|
110
|
+
minWidth: '100px',
|
|
111
|
+
textAlign: 'center',
|
|
112
|
+
boxShadow: '0 0 3px #000',
|
|
113
|
+
fontSize: '12px',
|
|
114
|
+
zIndex: '3',
|
|
115
|
+
display: 'flex',
|
|
116
|
+
alignItems: 'center'
|
|
117
|
+
};
|
|
92
118
|
return /*#__PURE__*/React.createElement(LibraryContext.Provider, {
|
|
93
119
|
value: {
|
|
94
120
|
isReducedMotion: false,
|
|
@@ -104,29 +130,40 @@ export default class Provider extends React.Component {
|
|
|
104
130
|
}, /*#__PURE__*/React.createElement(Container, {
|
|
105
131
|
scroll: "vertical"
|
|
106
132
|
}, this.props.children), /*#__PURE__*/React.createElement("div", {
|
|
133
|
+
style: Object.assign({}, fixedPosition, {
|
|
134
|
+
left: '20%',
|
|
135
|
+
transform: 'translate(-20%)'
|
|
136
|
+
})
|
|
137
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
138
|
+
style: {
|
|
139
|
+
color: '#fff'
|
|
140
|
+
}
|
|
141
|
+
}, "Appearance:"), /*#__PURE__*/React.createElement("div", {
|
|
142
|
+
style: {
|
|
143
|
+
display: 'flex'
|
|
144
|
+
}
|
|
145
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
146
|
+
title: "Light Mode",
|
|
147
|
+
style: Object.assign({}, themeClass, light),
|
|
148
|
+
onClick: () => this.setAppearance('default')
|
|
149
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
150
|
+
title: "Night Mode",
|
|
151
|
+
style: Object.assign({}, themeClass, night),
|
|
152
|
+
onClick: () => this.setAppearance('dark')
|
|
153
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
154
|
+
title: "Dark Mode",
|
|
155
|
+
style: Object.assign({}, themeClass, dark),
|
|
156
|
+
onClick: () => this.setAppearance('pureDark')
|
|
157
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
158
|
+
style: Object.assign({}, fixedPosition, {
|
|
159
|
+
left: '80%',
|
|
160
|
+
transform: 'translate(-80%)'
|
|
161
|
+
})
|
|
162
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
107
163
|
style: {
|
|
108
|
-
|
|
109
|
-
bottom: '0',
|
|
110
|
-
backgroundColor: '#272727',
|
|
111
|
-
padding: '10px',
|
|
112
|
-
borderRadius: '15px 15px 0 0',
|
|
113
|
-
minWidth: '100px',
|
|
114
|
-
textAlign: 'center',
|
|
115
|
-
left: '50%',
|
|
116
|
-
transform: 'translate(-50%)',
|
|
117
|
-
boxShadow: '0 0 3px #000',
|
|
118
|
-
fontSize: '12px',
|
|
119
|
-
zIndex: '3',
|
|
120
|
-
display: 'flex',
|
|
121
|
-
alignItems: 'center'
|
|
164
|
+
color: '#fff'
|
|
122
165
|
}
|
|
123
|
-
},
|
|
124
|
-
id: "switchMode",
|
|
125
|
-
text: "Light/Night Mode",
|
|
126
|
-
labelSize: "small",
|
|
127
|
-
onChange: this.switchMode,
|
|
128
|
-
checked: appearanceName == 'dark'
|
|
129
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
166
|
+
}, "Themes:"), /*#__PURE__*/React.createElement("div", {
|
|
130
167
|
style: {
|
|
131
168
|
display: 'flex'
|
|
132
169
|
}
|
package/es/Tooltip/Tooltip.js
CHANGED
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { getLibraryConfig } from '../Provider/Config';
|
|
4
4
|
import style from './Tooltip.module.css';
|
|
5
|
+
import ResizeObserver from '../Responsive/ResizeObserver';
|
|
5
6
|
export default class Tooltip extends React.Component {
|
|
6
7
|
constructor(props) {
|
|
7
8
|
super(props);
|
|
@@ -19,6 +20,43 @@ export default class Tooltip extends React.Component {
|
|
|
19
20
|
this.getDirection = document.getElementsByTagName('html')[0];
|
|
20
21
|
this.leftRightScreenEdge = this.leftRightScreenEdge.bind(this);
|
|
21
22
|
this.topBottomScreenEdge = this.topBottomScreenEdge.bind(this);
|
|
23
|
+
this.observer = new ResizeObserver(this.onResize);
|
|
24
|
+
this.isResized = true;
|
|
25
|
+
this.tooltipContainerClientRect = {};
|
|
26
|
+
this.tooltipContainerEl = {};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
onResize(sizeOfObservedEl, observedEl) {
|
|
30
|
+
this.isResized = true;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
observeElement() {
|
|
34
|
+
this.tooltipContainerEl = this.getToolTipContainerEl();
|
|
35
|
+
this.observer.observe(this.tooltipContainerEl);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
unObserveElement() {
|
|
39
|
+
this.observer.unobserve(this.tooltipContainerEl);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
getClientRectOfContEl(el) {
|
|
43
|
+
if (this.isResized) {
|
|
44
|
+
return this.setClientRectOfContEl(el);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
return this.tooltipContainerClientRect;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
setClientRectOfContEl(containerEl) {
|
|
51
|
+
this.isResized = false;
|
|
52
|
+
this.tooltipContainerClientRect = containerEl.getBoundingClientRect();
|
|
53
|
+
return this.tooltipContainerClientRect;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
getToolTipContainerEl() {
|
|
57
|
+
const getTooltipContainer = getLibraryConfig('getTooltipContainer');
|
|
58
|
+
const tooltipContainer = typeof getTooltipContainer === 'function' ? getTooltipContainer() : null;
|
|
59
|
+
return tooltipContainer ? tooltipContainer : document.body;
|
|
22
60
|
}
|
|
23
61
|
|
|
24
62
|
getToolTipDOM(el) {
|
|
@@ -92,7 +130,7 @@ export default class Tooltip extends React.Component {
|
|
|
92
130
|
}
|
|
93
131
|
|
|
94
132
|
handleOver(e, targetElement) {
|
|
95
|
-
let containerElement =
|
|
133
|
+
let containerElement = this.tooltipContainerEl;
|
|
96
134
|
let element = e.target;
|
|
97
135
|
let titleDiv = element.hasAttribute('data-title') || element.hasAttribute('title') ? element : element.closest('[data-title]') || element.closest('[title]');
|
|
98
136
|
|
|
@@ -150,7 +188,7 @@ export default class Tooltip extends React.Component {
|
|
|
150
188
|
let dataTooltipnoArrow = titleDiv.getAttribute('data-tooltip-noarrow') === 'true' ? true : false;
|
|
151
189
|
let dataTooltipWrap = titleDiv.getAttribute('data-title-wrap') === 'true' ? true : false;
|
|
152
190
|
let clientRect = titleDiv.getBoundingClientRect();
|
|
153
|
-
let boxLayout =
|
|
191
|
+
let boxLayout = this.getClientRectOfContEl(containerElement);
|
|
154
192
|
this.setState({
|
|
155
193
|
title,
|
|
156
194
|
isHtml,
|
|
@@ -260,8 +260,12 @@
|
|
|
260
260
|
background: #fff;
|
|
261
261
|
}
|
|
262
262
|
[data-mode='dark'] {
|
|
263
|
-
color: #
|
|
264
|
-
background: #
|
|
263
|
+
color: #e2e4e6;
|
|
264
|
+
background: #232b38;
|
|
265
|
+
}
|
|
266
|
+
[data-mode='pureDark'] {
|
|
267
|
+
color: #e2e4e6;
|
|
268
|
+
background: #212121;
|
|
265
269
|
}
|
|
266
270
|
|
|
267
271
|
.baseHue {
|
|
@@ -77,6 +77,11 @@ var AppContainer = /*#__PURE__*/function (_React$Component) {
|
|
|
77
77
|
_this.getContainerRef = _this.getContainerRef.bind(_assertThisInitialized(_this));
|
|
78
78
|
_this.timer = null;
|
|
79
79
|
_this.tooltipDebounce = (0, _Config.getLibraryConfig)('tooltipDebounce');
|
|
80
|
+
(0, _Config.setLibraryConfig)({
|
|
81
|
+
getTooltipContainer: function getTooltipContainer() {
|
|
82
|
+
return _this.containerElement;
|
|
83
|
+
}
|
|
84
|
+
});
|
|
80
85
|
return _this;
|
|
81
86
|
}
|
|
82
87
|
|
|
@@ -125,6 +130,7 @@ var AppContainer = /*#__PURE__*/function (_React$Component) {
|
|
|
125
130
|
if (this.containerElement) {
|
|
126
131
|
this.containerElement.addEventListener('mouseover', this.handleOver, false);
|
|
127
132
|
this.containerElement.addEventListener('mouseout', this.removeTimeout, false);
|
|
133
|
+
this.tooltipRef.observeElement();
|
|
128
134
|
}
|
|
129
135
|
}
|
|
130
136
|
}, {
|
|
@@ -133,6 +139,7 @@ var AppContainer = /*#__PURE__*/function (_React$Component) {
|
|
|
133
139
|
if (this.containerElement) {
|
|
134
140
|
this.containerElement.removeEventListener('mouseover', this.handleOver, false);
|
|
135
141
|
this.containerElement.addEventListener('mouseout', this.removeTimeout, false);
|
|
142
|
+
this.tooltipRef.unObserveElement();
|
|
136
143
|
}
|
|
137
144
|
}
|
|
138
145
|
}, {
|
package/lib/Provider/Config.js
CHANGED
package/lib/Provider.js
CHANGED
|
@@ -13,8 +13,6 @@ var _AppContainer = _interopRequireDefault(require("./AppContainer/AppContainer"
|
|
|
13
13
|
|
|
14
14
|
var _Layout = require("./Layout");
|
|
15
15
|
|
|
16
|
-
var _Switch = _interopRequireDefault(require("./Switch/Switch"));
|
|
17
|
-
|
|
18
16
|
require("../assets/Appearance/default/themes/blue/blueDefaultCTATheme.module.css");
|
|
19
17
|
|
|
20
18
|
require("../assets/Appearance/default/themes/green/greenDefaultCTATheme.module.css");
|
|
@@ -59,6 +57,28 @@ require("../assets/Appearance/dark/themes/yellow/yellowDarkComponentTheme.module
|
|
|
59
57
|
|
|
60
58
|
require("../assets/Appearance/dark/mode/darkMode.module.css");
|
|
61
59
|
|
|
60
|
+
require("../assets/Appearance/pureDark/themes/blue/bluePureDarkCTATheme.module.css");
|
|
61
|
+
|
|
62
|
+
require("../assets/Appearance/pureDark/themes/green/greenPureDarkCTATheme.module.css");
|
|
63
|
+
|
|
64
|
+
require("../assets/Appearance/pureDark/themes/orange/orangePureDarkCTATheme.module.css");
|
|
65
|
+
|
|
66
|
+
require("../assets/Appearance/pureDark/themes/red/redPureDarkCTATheme.module.css");
|
|
67
|
+
|
|
68
|
+
require("../assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTATheme.module.css");
|
|
69
|
+
|
|
70
|
+
require("../assets/Appearance/pureDark/themes/blue/bluePureDarkComponentTheme.module.css");
|
|
71
|
+
|
|
72
|
+
require("../assets/Appearance/pureDark/themes/green/greenPureDarkComponentTheme.module.css");
|
|
73
|
+
|
|
74
|
+
require("../assets/Appearance/pureDark/themes/orange/orangePureDarkComponentTheme.module.css");
|
|
75
|
+
|
|
76
|
+
require("../assets/Appearance/pureDark/themes/red/redPureDarkComponentTheme.module.css");
|
|
77
|
+
|
|
78
|
+
require("../assets/Appearance/pureDark/themes/yellow/yellowPureDarkComponentTheme.module.css");
|
|
79
|
+
|
|
80
|
+
require("../assets/Appearance/pureDark/mode/pureDarkMode.module.css");
|
|
81
|
+
|
|
62
82
|
var _LibraryContextInit = _interopRequireDefault(require("./Provider/LibraryContextInit"));
|
|
63
83
|
|
|
64
84
|
var _IdProvider = require("./Provider/IdProvider");
|
|
@@ -101,25 +121,16 @@ var Provider = /*#__PURE__*/function (_React$Component) {
|
|
|
101
121
|
appearanceName: 'default',
|
|
102
122
|
themeName: 'blue'
|
|
103
123
|
};
|
|
104
|
-
_this.switchMode = _this.switchMode.bind(_assertThisInitialized(_this));
|
|
105
124
|
_this.setTheme = _this.setTheme.bind(_assertThisInitialized(_this));
|
|
106
125
|
return _this;
|
|
107
126
|
}
|
|
108
127
|
|
|
109
128
|
_createClass(Provider, [{
|
|
110
|
-
key: "
|
|
111
|
-
value: function
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
this.setState({
|
|
116
|
-
appearanceName: 'dark'
|
|
117
|
-
});
|
|
118
|
-
} else {
|
|
119
|
-
this.setState({
|
|
120
|
-
appearanceName: 'default'
|
|
121
|
-
});
|
|
122
|
-
}
|
|
129
|
+
key: "setAppearance",
|
|
130
|
+
value: function setAppearance(mode) {
|
|
131
|
+
this.setState({
|
|
132
|
+
appearanceName: mode
|
|
133
|
+
});
|
|
123
134
|
}
|
|
124
135
|
}, {
|
|
125
136
|
key: "setTheme",
|
|
@@ -158,6 +169,29 @@ var Provider = /*#__PURE__*/function (_React$Component) {
|
|
|
158
169
|
var yellow = {
|
|
159
170
|
backgroundColor: '#e8b923'
|
|
160
171
|
};
|
|
172
|
+
var light = {
|
|
173
|
+
backgroundColor: '#fff'
|
|
174
|
+
};
|
|
175
|
+
var night = {
|
|
176
|
+
backgroundColor: '#232b38'
|
|
177
|
+
};
|
|
178
|
+
var dark = {
|
|
179
|
+
backgroundColor: '#212121'
|
|
180
|
+
};
|
|
181
|
+
var fixedPosition = {
|
|
182
|
+
position: 'fixed',
|
|
183
|
+
bottom: '0',
|
|
184
|
+
backgroundColor: '#272727',
|
|
185
|
+
padding: '10px',
|
|
186
|
+
borderRadius: '15px 15px 0 0',
|
|
187
|
+
minWidth: '100px',
|
|
188
|
+
textAlign: 'center',
|
|
189
|
+
boxShadow: '0 0 3px #000',
|
|
190
|
+
fontSize: '12px',
|
|
191
|
+
zIndex: '3',
|
|
192
|
+
display: 'flex',
|
|
193
|
+
alignItems: 'center'
|
|
194
|
+
};
|
|
161
195
|
return /*#__PURE__*/_react["default"].createElement(_LibraryContextInit["default"].Provider, {
|
|
162
196
|
value: {
|
|
163
197
|
isReducedMotion: false,
|
|
@@ -173,29 +207,46 @@ var Provider = /*#__PURE__*/function (_React$Component) {
|
|
|
173
207
|
}, /*#__PURE__*/_react["default"].createElement(_Layout.Container, {
|
|
174
208
|
scroll: "vertical"
|
|
175
209
|
}, this.props.children), /*#__PURE__*/_react["default"].createElement("div", {
|
|
210
|
+
style: Object.assign({}, fixedPosition, {
|
|
211
|
+
left: '20%',
|
|
212
|
+
transform: 'translate(-20%)'
|
|
213
|
+
})
|
|
214
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
215
|
+
style: {
|
|
216
|
+
color: '#fff'
|
|
217
|
+
}
|
|
218
|
+
}, "Appearance:"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
219
|
+
style: {
|
|
220
|
+
display: 'flex'
|
|
221
|
+
}
|
|
222
|
+
}, /*#__PURE__*/_react["default"].createElement("span", {
|
|
223
|
+
title: "Light Mode",
|
|
224
|
+
style: Object.assign({}, themeClass, light),
|
|
225
|
+
onClick: function onClick() {
|
|
226
|
+
return _this2.setAppearance('default');
|
|
227
|
+
}
|
|
228
|
+
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
229
|
+
title: "Night Mode",
|
|
230
|
+
style: Object.assign({}, themeClass, night),
|
|
231
|
+
onClick: function onClick() {
|
|
232
|
+
return _this2.setAppearance('dark');
|
|
233
|
+
}
|
|
234
|
+
}), /*#__PURE__*/_react["default"].createElement("span", {
|
|
235
|
+
title: "Dark Mode",
|
|
236
|
+
style: Object.assign({}, themeClass, dark),
|
|
237
|
+
onClick: function onClick() {
|
|
238
|
+
return _this2.setAppearance('pureDark');
|
|
239
|
+
}
|
|
240
|
+
}))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
241
|
+
style: Object.assign({}, fixedPosition, {
|
|
242
|
+
left: '80%',
|
|
243
|
+
transform: 'translate(-80%)'
|
|
244
|
+
})
|
|
245
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
176
246
|
style: {
|
|
177
|
-
|
|
178
|
-
bottom: '0',
|
|
179
|
-
backgroundColor: '#272727',
|
|
180
|
-
padding: '10px',
|
|
181
|
-
borderRadius: '15px 15px 0 0',
|
|
182
|
-
minWidth: '100px',
|
|
183
|
-
textAlign: 'center',
|
|
184
|
-
left: '50%',
|
|
185
|
-
transform: 'translate(-50%)',
|
|
186
|
-
boxShadow: '0 0 3px #000',
|
|
187
|
-
fontSize: '12px',
|
|
188
|
-
zIndex: '3',
|
|
189
|
-
display: 'flex',
|
|
190
|
-
alignItems: 'center'
|
|
247
|
+
color: '#fff'
|
|
191
248
|
}
|
|
192
|
-
},
|
|
193
|
-
id: "switchMode",
|
|
194
|
-
text: "Light/Night Mode",
|
|
195
|
-
labelSize: "small",
|
|
196
|
-
onChange: this.switchMode,
|
|
197
|
-
checked: appearanceName == 'dark'
|
|
198
|
-
})), /*#__PURE__*/_react["default"].createElement("div", {
|
|
249
|
+
}, "Themes:"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
199
250
|
style: {
|
|
200
251
|
display: 'flex'
|
|
201
252
|
}
|