@cashub/ui 0.48.30 → 0.49.0-beta.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.
Files changed (59) hide show
  1. package/assets/images/bg-aside.png +0 -0
  2. package/assets/images/bg-main-vivid.png +0 -0
  3. package/assets/images/bg-main.png +0 -0
  4. package/button/IconButton.js +5 -7
  5. package/icon/assets/android.jsx +10 -0
  6. package/icon/assets/app-management.jsx +10 -0
  7. package/icon/assets/appStore.jsx +6 -0
  8. package/icon/assets/battery.jsx +15 -0
  9. package/icon/assets/bill.jsx +10 -0
  10. package/icon/assets/campaign.jsx +9 -0
  11. package/icon/assets/casstore.jsx +8 -0
  12. package/icon/assets/dashboard.jsx +6 -0
  13. package/icon/assets/enterprise.jsx +15 -0
  14. package/icon/assets/firmware.jsx +8 -0
  15. package/icon/assets/folder.jsx +8 -0
  16. package/icon/assets/group.jsx +18 -0
  17. package/icon/assets/heartbeats.jsx +9 -0
  18. package/icon/assets/invite-user.jsx +9 -0
  19. package/icon/assets/log.jsx +9 -0
  20. package/icon/assets/manufacturer.jsx +7 -0
  21. package/icon/assets/merchant.jsx +16 -0
  22. package/icon/assets/package-collection.jsx +8 -0
  23. package/icon/assets/report.jsx +11 -0
  24. package/icon/assets/resource.jsx +9 -0
  25. package/icon/assets/role.jsx +7 -0
  26. package/icon/assets/shield-lock.jsx +202 -0
  27. package/icon/assets/shield-no-signal.jsx +195 -0
  28. package/icon/assets/shield-unsafe.jsx +191 -0
  29. package/icon/assets/shield.jsx +186 -0
  30. package/icon/assets/statistics.jsx +9 -0
  31. package/icon/assets/tag.jsx +14 -0
  32. package/icon/assets/template-management.jsx +8 -0
  33. package/icon/assets/terminal.jsx +7 -0
  34. package/icon/assets/tradeye.jsx +7 -0
  35. package/icon/registry.js +70 -0
  36. package/iconbox/IconBox.js +46 -10
  37. package/iconbox/assets/bg-enterprise.png +0 -0
  38. package/iconbox/assets/bg-merchant.png +0 -0
  39. package/iconbox/assets/bg-terminal.png +0 -0
  40. package/iconbox/assets/bg-user.png +0 -0
  41. package/iconbox/bgImageRegistry.js +18 -0
  42. package/iconbox/subComponent/IconBoxImage.js +57 -14
  43. package/layout/Aside.js +17 -7
  44. package/layout/Container.js +20 -3
  45. package/layout/Header.jsx +5 -12
  46. package/layout/Layout.jsx +0 -15
  47. package/layout/Logo.jsx +5 -5
  48. package/layout/MenuIcon.jsx +23 -5
  49. package/layout/Sidebar.jsx +38 -48
  50. package/layout/assets/burger-modern.jsx +9 -0
  51. package/layout/bgMainRegistry.js +14 -0
  52. package/package.json +2 -2
  53. package/styles/GlobalStyle.js +101 -79
  54. package/styles/theme/dark.theme.js +4 -1
  55. package/styles/theme/ember.theme.js +100 -0
  56. package/styles/theme/light.theme.js +1 -0
  57. package/styles/theme/midnight.theme.js +99 -0
  58. package/styles/theme/white.theme.js +6 -1
  59. package/styles/themes.js +5 -1
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _merchant = _interopRequireDefault(require("./assets/merchant"));
8
+ var _android = _interopRequireDefault(require("./assets/android"));
9
+ var _appManagement = _interopRequireDefault(require("./assets/app-management"));
10
+ var _appStore = _interopRequireDefault(require("./assets/appStore"));
11
+ var _bill = _interopRequireDefault(require("./assets/bill"));
12
+ var _campaign = _interopRequireDefault(require("./assets/campaign"));
13
+ var _casstore = _interopRequireDefault(require("./assets/casstore"));
14
+ var _dashboard = _interopRequireDefault(require("./assets/dashboard"));
15
+ var _enterprise = _interopRequireDefault(require("./assets/enterprise"));
16
+ var _firmware = _interopRequireDefault(require("./assets/firmware"));
17
+ var _group = _interopRequireDefault(require("./assets/group"));
18
+ var _inviteUser = _interopRequireDefault(require("./assets/invite-user"));
19
+ var _log = _interopRequireDefault(require("./assets/log"));
20
+ var _manufacturer = _interopRequireDefault(require("./assets/manufacturer"));
21
+ var _packageCollection = _interopRequireDefault(require("./assets/package-collection"));
22
+ var _report = _interopRequireDefault(require("./assets/report"));
23
+ var _resource = _interopRequireDefault(require("./assets/resource"));
24
+ var _role = _interopRequireDefault(require("./assets/role"));
25
+ var _statistics = _interopRequireDefault(require("./assets/statistics"));
26
+ var _tag = _interopRequireDefault(require("./assets/tag"));
27
+ var _templateManagement = _interopRequireDefault(require("./assets/template-management"));
28
+ var _terminal = _interopRequireDefault(require("./assets/terminal"));
29
+ var _tradeye = _interopRequireDefault(require("./assets/tradeye"));
30
+ var _shield = _interopRequireDefault(require("./assets/shield"));
31
+ var _shieldLock = _interopRequireDefault(require("./assets/shield-lock"));
32
+ var _shieldUnsafe = _interopRequireDefault(require("./assets/shield-unsafe"));
33
+ var _shieldNoSignal = _interopRequireDefault(require("./assets/shield-no-signal"));
34
+ var _battery = _interopRequireDefault(require("./assets/battery"));
35
+ var _folder = _interopRequireDefault(require("./assets/folder"));
36
+ var _heartbeats = _interopRequireDefault(require("./assets/heartbeats"));
37
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
38
+ const iconOverrides = {
39
+ merchant: _merchant.default,
40
+ android: _android.default,
41
+ 'app-management': _appManagement.default,
42
+ appStore: _appStore.default,
43
+ bill: _bill.default,
44
+ campaign: _campaign.default,
45
+ casstore: _casstore.default,
46
+ dashboard: _dashboard.default,
47
+ enterprise: _enterprise.default,
48
+ firmware: _firmware.default,
49
+ group: _group.default,
50
+ 'invite-user': _inviteUser.default,
51
+ log: _log.default,
52
+ manufacturer: _manufacturer.default,
53
+ 'package-collection': _packageCollection.default,
54
+ report: _report.default,
55
+ resource: _resource.default,
56
+ role: _role.default,
57
+ statistics: _statistics.default,
58
+ tag: _tag.default,
59
+ 'template-management': _templateManagement.default,
60
+ terminal: _terminal.default,
61
+ tradeye: _tradeye.default,
62
+ shield: _shield.default,
63
+ 'shield-lock': _shieldLock.default,
64
+ 'shield-unsafe': _shieldUnsafe.default,
65
+ 'shield-no-signal': _shieldNoSignal.default,
66
+ battery: _battery.default,
67
+ folder: _folder.default,
68
+ heartbeats: _heartbeats.default
69
+ };
70
+ var _default = exports.default = iconOverrides;
@@ -8,21 +8,40 @@ var _styledComponents = _interopRequireDefault(require("styled-components"));
8
8
  var _IconBoxFigure = _interopRequireDefault(require("./subComponent/IconBoxFigure"));
9
9
  var _IconBoxImage = _interopRequireDefault(require("./subComponent/IconBoxImage"));
10
10
  var _bgChartTriangle = _interopRequireDefault(require("../assets/images/bg-chart-triangle.png"));
11
+ var _bgImageRegistry = _interopRequireDefault(require("./bgImageRegistry"));
11
12
  var _jsxRuntime = require("react/jsx-runtime");
12
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
14
  const IconBox = _ref => {
14
15
  let {
15
16
  icon,
17
+ iconKey,
18
+ iconColor,
16
19
  title,
17
- children
20
+ children,
21
+ sizeXS = true,
22
+ sizeS = false,
23
+ size,
24
+ bgImageKey,
25
+ gradientFrom,
26
+ gradientTo
18
27
  } = _ref;
28
+ const bgImage = bgImageKey && _bgImageRegistry.default[bgImageKey];
19
29
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Wrapper, {
30
+ bgImage: bgImage,
31
+ gradientFrom: gradientFrom,
32
+ gradientTo: gradientTo,
20
33
  children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(IconBoxHead, {
21
34
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_IconBoxFigure.default, {
22
- sizeXS: true,
35
+ sizeXS: sizeXS,
36
+ sizeS: sizeS,
37
+ size: size,
23
38
  marginRight: true,
24
39
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconBoxImage.default, {
25
- sizeXS: true,
40
+ sizeXS: sizeXS,
41
+ sizeS: sizeS,
42
+ size: size,
43
+ iconKey: iconKey,
44
+ iconColor: iconColor,
26
45
  src: icon,
27
46
  alt: `${title}'s icon`
28
47
  })
@@ -40,14 +59,31 @@ const Wrapper = _styledComponents.default.div`
40
59
  padding: var(--spacing-l);
41
60
  margin-bottom: var(--spacing);
42
61
  border-radius: var(--border-radius);
43
- background: var(--color-background2);
44
62
  color: var(--font-on-background);
45
-
46
- background: var(--color-background2);
47
- background-image: url(${_bgChartTriangle.default});
48
- background-repeat: no-repeat;
49
- background-position: right bottom;
50
- background-size: 30% 70%;
63
+ ${_ref2 => {
64
+ let {
65
+ bgImage,
66
+ gradientFrom,
67
+ gradientTo
68
+ } = _ref2;
69
+ if (bgImage || gradientFrom && gradientTo) {
70
+ const gradient = gradientFrom && gradientTo ? `linear-gradient(135deg, ${gradientFrom}, ${gradientTo})` : 'var(--color-background2)';
71
+ const image = bgImage ? `url(${bgImage}), ` : '';
72
+ return `
73
+ background: ${image}${gradient};
74
+ background-repeat: no-repeat;
75
+ background-position: right bottom;
76
+ background-size: cover;
77
+ `;
78
+ }
79
+ return `
80
+ background: var(--color-background2);
81
+ background-image: url(${_bgChartTriangle.default});
82
+ background-repeat: no-repeat;
83
+ background-position: right bottom;
84
+ background-size: 30% 70%;
85
+ `;
86
+ }}
51
87
  `;
52
88
  const IconBoxHead = _styledComponents.default.div`
53
89
  display: flex;
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _bgEnterprise = _interopRequireDefault(require("./assets/bg-enterprise.png"));
8
+ var _bgMerchant = _interopRequireDefault(require("./assets/bg-merchant.png"));
9
+ var _bgTerminal = _interopRequireDefault(require("./assets/bg-terminal.png"));
10
+ var _bgUser = _interopRequireDefault(require("./assets/bg-user.png"));
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ const bgImageRegistry = {
13
+ enterprise: _bgEnterprise.default,
14
+ merchant: _bgMerchant.default,
15
+ terminal: _bgTerminal.default,
16
+ user: _bgUser.default
17
+ };
18
+ var _default = exports.default = bgImageRegistry;
@@ -4,39 +4,82 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = void 0;
7
- var _styledComponents = _interopRequireDefault(require("styled-components"));
7
+ var _react = require("react");
8
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
9
+ var _registry = _interopRequireDefault(require("../../icon/registry"));
10
+ var _jsxRuntime = require("react/jsx-runtime");
8
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- const IconBoxImage = _styledComponents.default.img.attrs(() => ({
10
- crossOrigin: 'anonymous'
11
- }))`
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
14
+ const Wrapper = _styledComponents.default.span`
15
+ display: inline-flex;
12
16
  width: 120px;
13
17
  height: 120px;
14
-
15
- ${_ref => {
18
+ color: ${_ref => {
16
19
  let {
17
- rounded
20
+ iconColor
18
21
  } = _ref;
19
- return rounded && 'border-radius: var(--border-radius);';
20
- }}
21
-
22
+ return iconColor || 'var(--color-primary)';
23
+ }};
24
+ img, svg {
25
+ width: 100%;
26
+ height: 100%;
27
+ display: block;
28
+ }
22
29
  ${_ref2 => {
23
30
  let {
24
- sizeS
31
+ rounded
25
32
  } = _ref2;
33
+ return rounded && 'border-radius: var(--border-radius); overflow: hidden;';
34
+ }}
35
+ ${_ref3 => {
36
+ let {
37
+ sizeS
38
+ } = _ref3;
26
39
  return sizeS && `
27
40
  width: 80px;
28
41
  height: 80px;
29
42
  `;
30
43
  }}
31
-
32
- ${_ref3 => {
44
+ ${_ref4 => {
33
45
  let {
34
46
  sizeXS
35
- } = _ref3;
47
+ } = _ref4;
36
48
  return sizeXS && `
37
49
  width: 40px;
38
50
  height: 40px;
39
51
  `;
52
+ }}
53
+ ${_ref5 => {
54
+ let {
55
+ size
56
+ } = _ref5;
57
+ return size && `
58
+ width: ${size}px;
59
+ height: ${size}px;
60
+ `;
40
61
  }}
41
62
  `;
63
+ const IconBoxImage = _ref6 => {
64
+ let {
65
+ src: icon,
66
+ iconKey,
67
+ iconColor,
68
+ alt,
69
+ ...rest
70
+ } = _ref6;
71
+ const theme = (0, _react.useContext)(_styledComponents.ThemeContext);
72
+ const override = theme?.useModernIcons && iconKey && _registry.default[iconKey];
73
+ const IconComponent = override || icon;
74
+ const isComponent = typeof IconComponent === 'function';
75
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapper, {
76
+ iconColor: iconColor,
77
+ ...rest,
78
+ children: isComponent ? /*#__PURE__*/(0, _jsxRuntime.jsx)(IconComponent, {}) : /*#__PURE__*/(0, _jsxRuntime.jsx)("img", {
79
+ crossOrigin: "anonymous",
80
+ src: IconComponent,
81
+ alt: alt
82
+ })
83
+ });
84
+ };
42
85
  var _default = exports.default = IconBoxImage;
package/layout/Aside.js CHANGED
@@ -19,19 +19,30 @@ const Aside = _styledComponents.default.aside`
19
19
  } = _ref;
20
20
  return $display ? `${_sidebar.default.open.width}` : `${_sidebar.default.close.width}`;
21
21
  }};
22
-
23
22
  padding-top: var(--spacing-s);
24
23
  height: calc(100vh - ${_header.default.height} - var(--spacing));
25
- background: url(${_bgAside.default}), var(--color-background2);
26
- background-size: 356px 436px;
27
- background-repeat: no-repeat;
28
- background-position: bottom;
24
+ ${_ref2 => {
25
+ let {
26
+ theme
27
+ } = _ref2;
28
+ if (theme?.hideAsideDecoration) {
29
+ return `background: var(--color-background4);`;
30
+ }
31
+ return `
32
+ background: url(${_bgAside.default}), var(--color-background4);
33
+ background-size: 356px 436px, auto;
34
+ background-repeat: no-repeat, no-repeat;
35
+ background-position: bottom, center;
36
+ `;
37
+ }}
38
+ --font-on-background: var(--color-text-sidebar);
39
+ --color-hover: var(--color-hover-sidebar);
40
+ --color-active: var(--color-active-sidebar);
29
41
  border-top-right-radius: var(--border-radius);
30
42
  position: fixed;
31
43
  top: calc(${_header.default.height} + var(--spacing));
32
44
  transition: width 0.2s;
33
45
  z-index: 60;
34
-
35
46
  ${_media.default.tablet`
36
47
  height: 100%;
37
48
  top: 0;
@@ -39,7 +50,6 @@ const Aside = _styledComponents.default.aside`
39
50
  border-top-right-radius:0;
40
51
  left: 0;
41
52
  box-shadow: var(--box-shadow);
42
-
43
53
  ${props => props.$display === false && (0, _styledComponents.css)`
44
54
  left: -${_sidebar.default.open.width};
45
55
  `}
@@ -8,6 +8,7 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
8
8
  var _header = _interopRequireDefault(require("../styles/config/header.style"));
9
9
  var _sidebar = _interopRequireDefault(require("../styles/config/sidebar.style"));
10
10
  var _media = _interopRequireDefault(require("../styles/mixin/media"));
11
+ var _bgMainRegistry = _interopRequireDefault(require("./bgMainRegistry"));
11
12
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
13
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -16,19 +17,35 @@ const Container = _styledComponents.default.div`
16
17
  width: 100%;
17
18
  padding: calc(${_header.default.height} + var(--spacing)) var(--spacing)
18
19
  var(--spacing);
19
-
20
+ background-color: var(--color-background1);
20
21
  ${_ref => {
22
+ let {
23
+ theme
24
+ } = _ref;
25
+ if (theme?.hideMainDecoration) {
26
+ return '';
27
+ }
28
+ const bgKey = theme?.bgMainKey || 'default';
29
+ const bgImage = _bgMainRegistry.default[bgKey];
30
+ return `
31
+ background-image: url(${bgImage});
32
+ background-size: cover;
33
+ background-repeat: no-repeat;
34
+ background-position: center;
35
+ background-attachment: fixed;
36
+ `;
37
+ }}
38
+ ${_ref2 => {
21
39
  let {
22
40
  hasSidebar,
23
41
  $display
24
- } = _ref;
42
+ } = _ref2;
25
43
  return hasSidebar === true && (0, _styledComponents.css)`
26
44
  width: calc(
27
45
  100% -
28
46
  ${$display === true ? _sidebar.default.open.width : _sidebar.default.close.width}
29
47
  );
30
48
  margin-left: ${$display === true ? _sidebar.default.open.width : _sidebar.default.close.width};
31
-
32
49
  ${_media.default.tablet`
33
50
  width: 100%;
34
51
  margin-left: 0;
package/layout/Header.jsx CHANGED
@@ -3,25 +3,23 @@ import headerStyle from '../styles/config/header.style';
3
3
  import media from '../styles/mixin/media';
4
4
  import MenuIcon from './MenuIcon';
5
5
  import Logo from './Logo';
6
-
7
- const Header = ({ theme, logo, hasSidebar, toggleSidebar, children }) => {
6
+ const Header = ({ logo, hasSidebar, toggleSidebar, children }) => {
8
7
  return (
9
8
  <>
10
9
  <Wrapper>
11
10
  <Brand>
12
11
  {hasSidebar && (
13
- <MenuIcon theme={theme} toggleSidebar={toggleSidebar} />
12
+ <MenuIcon toggleSidebar={toggleSidebar} />
14
13
  )}
15
- {logo && <Logo src={logo} />}
14
+ {logo && <Logo srcColor={logo.color} srcWhite={logo.white} />}
16
15
  </Brand>
17
16
  <Topbar>{children}</Topbar>
18
17
  </Wrapper>
19
18
  </>
20
19
  );
21
20
  };
22
-
23
21
  const Wrapper = styled.header`
24
- background: var(--color-background2);
22
+ background: var(--color-background4);
25
23
  display: flex;
26
24
  justify-content: space-between;
27
25
  align-items: center;
@@ -30,26 +28,21 @@ const Wrapper = styled.header`
30
28
  width: 100%;
31
29
  height: ${headerStyle.height};
32
30
  padding: 0 calc(var(--spacing-s) + 0.25rem) 0 var(--spacing-s);
33
-
34
31
  ${media.tablet`
35
32
  padding: 0 var(--spacing-s) 0 calc(var(--spacing-s) - 0.25rem);
36
33
  `}
37
34
  `;
38
-
39
35
  const Brand = styled.div`
40
36
  display: flex;
41
-
37
+ --font-on-background: var(--font-on-primary);
42
38
  > * {
43
39
  flex: none;
44
40
  }
45
41
  `;
46
-
47
42
  const Topbar = styled.div`
48
43
  display: flex;
49
-
50
44
  > *:not(:last-child) {
51
45
  margin-right: calc(var(--spacing) - 0.5rem);
52
46
  }
53
47
  `;
54
-
55
48
  export default Header;
package/layout/Layout.jsx CHANGED
@@ -6,10 +6,8 @@ import Container from './Container';
6
6
  import Footer from './Footer';
7
7
  import Sidebar from './Sidebar';
8
8
  import Backdrop from './Backdrop';
9
-
10
9
  const Layout = ({
11
10
  mode,
12
- theme,
13
11
  logo,
14
12
  headerContent,
15
13
  navContent,
@@ -17,35 +15,28 @@ const Layout = ({
17
15
  children,
18
16
  }) => {
19
17
  const [display, setDisplay] = useState(!!navContent);
20
-
21
18
  const toggleSidebar = () => {
22
19
  setDisplay(!display);
23
20
  };
24
-
25
21
  // hide sidebar
26
22
  useEffect(() => {
27
23
  if (mode === 'tablet') {
28
24
  setDisplay(false);
29
25
  }
30
26
  }, [mode, setDisplay]);
31
-
32
27
  return (
33
28
  <Wrapper>
34
29
  <Header
35
- theme={theme}
36
30
  logo={logo}
37
31
  hasSidebar={!!navContent}
38
32
  toggleSidebar={toggleSidebar}
39
33
  >
40
34
  {headerContent}
41
35
  </Header>
42
-
43
36
  <Main>
44
37
  <Backdrop $display={display} onClick={toggleSidebar} />
45
-
46
38
  {navContent && (
47
39
  <Sidebar
48
- theme={theme}
49
40
  logo={logo}
50
41
  hasSidebar={!!navContent}
51
42
  $display={display}
@@ -54,31 +45,25 @@ const Layout = ({
54
45
  {navContent}
55
46
  </Sidebar>
56
47
  )}
57
-
58
48
  <Container hasSidebar={!!navContent} $display={display}>
59
49
  {children}
60
50
  </Container>
61
-
62
51
  <ScrollToTopButton />
63
52
  </Main>
64
-
65
53
  <Footer hasSidebar={!!navContent} $display={display}>
66
54
  {footerContent}
67
55
  </Footer>
68
56
  </Wrapper>
69
57
  );
70
58
  };
71
-
72
59
  const Wrapper = styled.div`
73
60
  display: flex;
74
61
  flex-direction: column;
75
62
  min-height: 100vh;
76
63
  `;
77
-
78
64
  const Main = styled.div`
79
65
  display: flex;
80
66
  flex: 1;
81
67
  position: relative;
82
68
  `;
83
-
84
69
  export default Layout;
package/layout/Logo.jsx CHANGED
@@ -1,17 +1,17 @@
1
- import styled from 'styled-components';
1
+ import { useContext } from 'react';
2
+ import styled, { ThemeContext } from 'styled-components';
2
3
  import { ImageFluid } from '../image';
3
-
4
- const Logo = ({ src }) => {
4
+ const Logo = ({ srcColor, srcWhite }) => {
5
+ const theme = useContext(ThemeContext);
6
+ const src = theme?.useLightBrand ? srcWhite : srcColor;
5
7
  return (
6
8
  <Figure>
7
9
  <ImageFluid src={src} alt='CasHUB logo' />
8
10
  </Figure>
9
11
  );
10
12
  };
11
-
12
13
  const Figure = styled.figure`
13
14
  max-width: 220px;
14
15
  height: 40px;
15
16
  `;
16
-
17
17
  export default Logo;
@@ -1,27 +1,45 @@
1
- import styled from 'styled-components';
1
+ import { useContext } from 'react';
2
+ import styled, { ThemeContext } from 'styled-components';
2
3
  import { ImageFluid } from '../image';
3
4
  import { IconFigure } from '../figure';
4
5
  import { IconButton } from '../button';
5
6
  import burgerWhite from '../assets/icons/burger-white.png';
6
7
  import burgerBlack from '../assets/icons/burger-black.png';
8
+ import BurgerModernIcon from './assets/burger-modern';
7
9
 
8
- const MenuIcon = ({ theme, toggleSidebar }) => {
10
+ const MenuIcon = ({ toggleSidebar }) => {
11
+ const theme = useContext(ThemeContext);
12
+ if (theme?.useModernIcons) {
13
+ return (
14
+ <Wrapper onClick={toggleSidebar}>
15
+ <IconFigure>
16
+ <ModernIconColor>
17
+ <BurgerModernIcon />
18
+ </ModernIconColor>
19
+ </IconFigure>
20
+ </Wrapper>
21
+ );
22
+ }
23
+ const src = theme?.useLightBrand ? burgerWhite : burgerBlack;
9
24
  return (
10
25
  <Wrapper onClick={toggleSidebar}>
11
26
  <IconFigure>
12
27
  <ImageFluid
13
28
  crossOrigin='anonymous'
14
- src={theme === 'Dark' ? burgerWhite : burgerBlack}
29
+ src={src}
15
30
  alt='Sidebar toggler'
16
31
  />
17
32
  </IconFigure>
18
33
  </Wrapper>
19
34
  );
20
35
  };
21
-
22
36
  const Wrapper = styled(IconButton)`
23
37
  margin: 0;
24
38
  margin-right: calc(var(--spacing) - 0.5rem);
25
39
  `;
26
-
40
+ const ModernIconColor = styled.span`
41
+ display: inline-flex;
42
+ color: var(--color-icon-header);
43
+ svg { display: block; }
44
+ `;
27
45
  export default MenuIcon;