@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.
- package/assets/images/bg-aside.png +0 -0
- package/assets/images/bg-main-vivid.png +0 -0
- package/assets/images/bg-main.png +0 -0
- package/button/IconButton.js +5 -7
- package/icon/assets/android.jsx +10 -0
- package/icon/assets/app-management.jsx +10 -0
- package/icon/assets/appStore.jsx +6 -0
- package/icon/assets/battery.jsx +15 -0
- package/icon/assets/bill.jsx +10 -0
- package/icon/assets/campaign.jsx +9 -0
- package/icon/assets/casstore.jsx +8 -0
- package/icon/assets/dashboard.jsx +6 -0
- package/icon/assets/enterprise.jsx +15 -0
- package/icon/assets/firmware.jsx +8 -0
- package/icon/assets/folder.jsx +8 -0
- package/icon/assets/group.jsx +18 -0
- package/icon/assets/heartbeats.jsx +9 -0
- package/icon/assets/invite-user.jsx +9 -0
- package/icon/assets/log.jsx +9 -0
- package/icon/assets/manufacturer.jsx +7 -0
- package/icon/assets/merchant.jsx +16 -0
- package/icon/assets/package-collection.jsx +8 -0
- package/icon/assets/report.jsx +11 -0
- package/icon/assets/resource.jsx +9 -0
- package/icon/assets/role.jsx +7 -0
- package/icon/assets/shield-lock.jsx +202 -0
- package/icon/assets/shield-no-signal.jsx +195 -0
- package/icon/assets/shield-unsafe.jsx +191 -0
- package/icon/assets/shield.jsx +186 -0
- package/icon/assets/statistics.jsx +9 -0
- package/icon/assets/tag.jsx +14 -0
- package/icon/assets/template-management.jsx +8 -0
- package/icon/assets/terminal.jsx +7 -0
- package/icon/assets/tradeye.jsx +7 -0
- package/icon/registry.js +70 -0
- package/iconbox/IconBox.js +46 -10
- package/iconbox/assets/bg-enterprise.png +0 -0
- package/iconbox/assets/bg-merchant.png +0 -0
- package/iconbox/assets/bg-terminal.png +0 -0
- package/iconbox/assets/bg-user.png +0 -0
- package/iconbox/bgImageRegistry.js +18 -0
- package/iconbox/subComponent/IconBoxImage.js +57 -14
- package/layout/Aside.js +17 -7
- package/layout/Container.js +20 -3
- package/layout/Header.jsx +5 -12
- package/layout/Layout.jsx +0 -15
- package/layout/Logo.jsx +5 -5
- package/layout/MenuIcon.jsx +23 -5
- package/layout/Sidebar.jsx +38 -48
- package/layout/assets/burger-modern.jsx +9 -0
- package/layout/bgMainRegistry.js +14 -0
- package/package.json +2 -2
- package/styles/GlobalStyle.js +101 -79
- package/styles/theme/dark.theme.js +4 -1
- package/styles/theme/ember.theme.js +100 -0
- package/styles/theme/light.theme.js +1 -0
- package/styles/theme/midnight.theme.js +99 -0
- package/styles/theme/white.theme.js +6 -1
- package/styles/themes.js +5 -1
package/icon/registry.js
ADDED
|
@@ -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;
|
package/iconbox/IconBox.js
CHANGED
|
@@ -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:
|
|
35
|
+
sizeXS: sizeXS,
|
|
36
|
+
sizeS: sizeS,
|
|
37
|
+
size: size,
|
|
23
38
|
marginRight: true,
|
|
24
39
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconBoxImage.default, {
|
|
25
|
-
sizeXS:
|
|
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
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
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
|
|
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
|
-
|
|
10
|
-
|
|
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
|
-
|
|
20
|
+
iconColor
|
|
18
21
|
} = _ref;
|
|
19
|
-
return
|
|
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
|
-
|
|
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
|
-
} =
|
|
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
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
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
|
`}
|
package/layout/Container.js
CHANGED
|
@@ -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
|
-
} =
|
|
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
|
|
12
|
+
<MenuIcon toggleSidebar={toggleSidebar} />
|
|
14
13
|
)}
|
|
15
|
-
{logo && <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-
|
|
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
|
|
1
|
+
import { useContext } from 'react';
|
|
2
|
+
import styled, { ThemeContext } from 'styled-components';
|
|
2
3
|
import { ImageFluid } from '../image';
|
|
3
|
-
|
|
4
|
-
const
|
|
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;
|
package/layout/MenuIcon.jsx
CHANGED
|
@@ -1,27 +1,45 @@
|
|
|
1
|
-
import
|
|
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 = ({
|
|
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={
|
|
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;
|