@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.
Files changed (27) hide show
  1. package/README.md +9 -0
  2. package/assets/Appearance/dark/mode/darkMode.module.css +1 -1
  3. package/assets/Appearance/dark/themes/blue/blueDarkComponentTheme.module.css +1 -1
  4. package/assets/Appearance/default/mode/defaultMode.module.css +1 -1
  5. package/assets/Appearance/default/themes/blue/blueDefaultComponentTheme.module.css +1 -1
  6. package/assets/Appearance/pureDark/mode/pureDarkMode.module.css +358 -0
  7. package/assets/Appearance/pureDark/themes/blue/bluePureDarkCTATheme.module.css +34 -0
  8. package/assets/Appearance/pureDark/themes/blue/bluePureDarkComponentTheme.module.css +42 -0
  9. package/assets/Appearance/pureDark/themes/green/greenPureDarkCTATheme.module.css +34 -0
  10. package/assets/Appearance/pureDark/themes/green/greenPureDarkComponentTheme.module.css +42 -0
  11. package/assets/Appearance/pureDark/themes/orange/orangePureDarkCTATheme.module.css +34 -0
  12. package/assets/Appearance/pureDark/themes/orange/orangePureDarkComponentTheme.module.css +42 -0
  13. package/assets/Appearance/pureDark/themes/red/redPureDarkCTATheme.module.css +34 -0
  14. package/assets/Appearance/pureDark/themes/red/redPureDarkComponentTheme.module.css +42 -0
  15. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkCTATheme.module.css +34 -0
  16. package/assets/Appearance/pureDark/themes/yellow/yellowPureDarkComponentTheme.module.css +42 -0
  17. package/es/AppContainer/AppContainer.js +6 -1
  18. package/es/Provider/Config.js +1 -2
  19. package/es/Provider.js +72 -35
  20. package/es/Tooltip/Tooltip.js +40 -2
  21. package/es/common/docStyle.module.css +6 -2
  22. package/lib/AppContainer/AppContainer.js +7 -0
  23. package/lib/Provider/Config.js +1 -2
  24. package/lib/Provider.js +88 -37
  25. package/lib/Tooltip/Tooltip.js +47 -2
  26. package/lib/common/docStyle.module.css +6 -2
  27. 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
 
@@ -7,8 +7,7 @@ let id = {
7
7
  isReducedMotion: false,
8
8
  direction: 'ltr',
9
9
  tooltipDebounce: 175,
10
- tooltipContainer: 'window',
11
- // root || window
10
+ getTooltipContainer: () => {},
12
11
  autoComplete: false
13
12
  };
14
13
  export function getLibraryConfig(key) {
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
- switchMode() {
46
- let appearanceName = this.state.appearanceName;
47
-
48
- if (appearanceName == 'default') {
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
- position: 'fixed',
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
- }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Switch, {
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
  }
@@ -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 = getLibraryConfig('tooltipContainer') === 'root' && targetElement ? targetElement : document.body;
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 = containerElement.getBoundingClientRect();
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: #E2E4E6;
264
- background: #232B38;
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
  }, {
@@ -14,8 +14,7 @@ var id = {
14
14
  isReducedMotion: false,
15
15
  direction: 'ltr',
16
16
  tooltipDebounce: 175,
17
- tooltipContainer: 'window',
18
- // root || window
17
+ getTooltipContainer: function getTooltipContainer() {},
19
18
  autoComplete: false
20
19
  };
21
20
 
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: "switchMode",
111
- value: function switchMode() {
112
- var appearanceName = this.state.appearanceName;
113
-
114
- if (appearanceName == 'default') {
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
- position: 'fixed',
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
- }, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
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
  }