datastake-daf 0.6.587 → 0.6.588
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/build/favicon.ico +0 -0
- package/build/logo192.png +0 -0
- package/build/logo512.png +0 -0
- package/build/manifest.json +25 -0
- package/build/robots.txt +3 -0
- package/dist/hooks/index.js +4656 -16
- package/dist/layouts/index.js +16 -869
- package/dist/style/datastake/datastake.css +1 -1
- package/dist/utils/index.js +22 -1
- package/package.json +1 -1
- package/src/@daf/layouts/AppLayout/components/Notifications/index.js +1 -1
- package/src/@daf/utils/theme.js +1 -0
- package/src/helpers/theme.js +29 -1
- package/src/layouts.js +1 -2
- package/src/styles/datastake/datastake.css +1 -1
- package/src/@daf/layouts/AuthLayout/AuthLayout.stories.js +0 -502
- package/src/@daf/layouts/AuthLayout/components/Navbar/config.js +0 -43
- package/src/@daf/layouts/AuthLayout/components/Navbar/index.jsx +0 -76
- package/src/@daf/layouts/AuthLayout/components/Navbar/index.scss +0 -173
- package/src/@daf/layouts/AuthLayout/components/Navbar/style.js +0 -305
- package/src/@daf/layouts/AuthLayout/index.jsx +0 -85
- package/src/@daf/layouts/AuthLayout/style.js +0 -401
|
@@ -1508,7 +1508,7 @@ ul.ant-menu.ant-menu-dark.ant-menu-root.ant-menu-vertical::-webkit-scrollbar-thu
|
|
|
1508
1508
|
|
|
1509
1509
|
.components-layout .sidenav-cont .menus-cont .sidemenu-cont .ant-menu-submenu,
|
|
1510
1510
|
.components-layout .sidenav-cont .menus-cont .sidemenu-cont .ant-menu-item {
|
|
1511
|
-
color: white;
|
|
1511
|
+
color: var(--custom-sidenav-text-color, white) !important;
|
|
1512
1512
|
}
|
|
1513
1513
|
|
|
1514
1514
|
.components-layout.nested
|
package/dist/utils/index.js
CHANGED
|
@@ -13992,15 +13992,36 @@ const createTheme = (overrides = {}) => {
|
|
|
13992
13992
|
...overrides
|
|
13993
13993
|
};
|
|
13994
13994
|
};
|
|
13995
|
+
|
|
13996
|
+
/**
|
|
13997
|
+
* Creates an admin theme by merging base theme with app theme and overrides
|
|
13998
|
+
* @param {Object} params - Parameters object
|
|
13999
|
+
* @param {Object} params.appTheme - App-specific theme overrides
|
|
14000
|
+
* @param {Object} params.overrides - Additional theme overrides
|
|
14001
|
+
* @param {string[]} params.keysToRemove - Array of keys to remove from the final theme
|
|
14002
|
+
* @returns {Object} - Merged theme object with specified keys removed
|
|
14003
|
+
*
|
|
14004
|
+
* @example
|
|
14005
|
+
* // Create admin theme without specific color keys
|
|
14006
|
+
* const myTheme = createAdminTheme({
|
|
14007
|
+
* appTheme: { colorPrimary: '#FF0000' },
|
|
14008
|
+
* keysToRemove: ['red1', 'red2', 'red3']
|
|
14009
|
+
* });
|
|
14010
|
+
*/
|
|
13995
14011
|
const createAdminTheme = ({
|
|
13996
14012
|
appTheme = {},
|
|
13997
14013
|
overrides = {}
|
|
13998
14014
|
}) => {
|
|
13999
|
-
|
|
14015
|
+
const mergedTheme = {
|
|
14000
14016
|
...baseTheme,
|
|
14001
14017
|
...appTheme,
|
|
14002
14018
|
...overrides
|
|
14003
14019
|
};
|
|
14020
|
+
const keysToRemove = ['customSidenavColor', 'customSidenavSubMenuColor', 'customSidenavHoverColor', 'customSidenavSubsectionHover', 'customCollapsedSidenavHoverColor', 'customSidenavDisabledMenuItemColor', 'customSidenavTextColor', 'nestedSidenavColor', 'nestedSidenavSubMenuColor', 'nestedSidenavHoverColor', 'nestedCollapsedSidenavHoverColor', 'nestedSidenavDisabledMenuItemColor', 'nestedSidenavSubmenuBgColor', 'customHeaderColor'];
|
|
14021
|
+
keysToRemove.forEach(key => {
|
|
14022
|
+
delete mergedTheme[key];
|
|
14023
|
+
});
|
|
14024
|
+
return mergedTheme;
|
|
14004
14025
|
};
|
|
14005
14026
|
|
|
14006
14027
|
const getRedirectLink = (link, APP) => {
|
package/package.json
CHANGED
package/src/@daf/utils/theme.js
CHANGED
|
@@ -55,6 +55,7 @@ export const mapTheme = (theme = {}) => ({
|
|
|
55
55
|
'--custom-sidenav-subsection-hover':theme.customSidenavSubsectionHover,
|
|
56
56
|
'--custom-collapsed-sidenav-hover-color':theme.customCollapsedSidenavHoverColor,
|
|
57
57
|
'--custom-sidenav-disabled-menu-item-color':theme.customSidenavDisabledMenuItemColor,
|
|
58
|
+
'--custom-sidenav-text-color':theme.customSidenavTextColor,
|
|
58
59
|
|
|
59
60
|
'--nested-sidenav-color':theme.nestedSidenavColor,
|
|
60
61
|
'--nested-sidenav-submenu-color':theme.nestedSidenavSubMenuColor,
|
package/src/helpers/theme.js
CHANGED
|
@@ -295,10 +295,38 @@ export const createTheme = (overrides = {}) => {
|
|
|
295
295
|
};
|
|
296
296
|
};
|
|
297
297
|
|
|
298
|
+
/**
|
|
299
|
+
* Creates an admin theme by merging base theme with app theme and overrides
|
|
300
|
+
* @param {Object} params - Parameters object
|
|
301
|
+
* @param {Object} params.appTheme - App-specific theme overrides
|
|
302
|
+
* @param {Object} params.overrides - Additional theme overrides
|
|
303
|
+
* @param {string[]} params.keysToRemove - Array of keys to remove from the final theme
|
|
304
|
+
* @returns {Object} - Merged theme object with specified keys removed
|
|
305
|
+
*
|
|
306
|
+
* @example
|
|
307
|
+
* // Create admin theme without specific color keys
|
|
308
|
+
* const myTheme = createAdminTheme({
|
|
309
|
+
* appTheme: { colorPrimary: '#FF0000' },
|
|
310
|
+
* keysToRemove: ['red1', 'red2', 'red3']
|
|
311
|
+
* });
|
|
312
|
+
*/
|
|
298
313
|
export const createAdminTheme = ({appTheme = {}, overrides = {}}) => {
|
|
299
|
-
|
|
314
|
+
const mergedTheme = {
|
|
300
315
|
...baseTheme,
|
|
301
316
|
...appTheme,
|
|
302
317
|
...overrides,
|
|
303
318
|
};
|
|
319
|
+
|
|
320
|
+
const keysToRemove = ['customSidenavColor', 'customSidenavSubMenuColor', 'customSidenavHoverColor',
|
|
321
|
+
'customSidenavSubsectionHover', 'customCollapsedSidenavHoverColor', 'customSidenavDisabledMenuItemColor',
|
|
322
|
+
'customSidenavTextColor', 'nestedSidenavColor', 'nestedSidenavSubMenuColor', 'nestedSidenavHoverColor',
|
|
323
|
+
'nestedCollapsedSidenavHoverColor', 'nestedSidenavDisabledMenuItemColor', 'nestedSidenavSubmenuBgColor',
|
|
324
|
+
'customHeaderColor'
|
|
325
|
+
];
|
|
326
|
+
|
|
327
|
+
keysToRemove.forEach(key => {
|
|
328
|
+
delete mergedTheme[key];
|
|
329
|
+
});
|
|
330
|
+
|
|
331
|
+
return mergedTheme;
|
|
304
332
|
}
|
package/src/layouts.js
CHANGED
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export { default as AppLayout } from './@daf/layouts/AppLayout/index.jsx';
|
|
2
|
-
export { default as AuthLayout } from './@daf/layouts/AuthLayout/index.jsx';
|
|
1
|
+
export { default as AppLayout } from './@daf/layouts/AppLayout/index.jsx';
|
|
@@ -1508,7 +1508,7 @@ ul.ant-menu.ant-menu-dark.ant-menu-root.ant-menu-vertical::-webkit-scrollbar-thu
|
|
|
1508
1508
|
|
|
1509
1509
|
.components-layout .sidenav-cont .menus-cont .sidemenu-cont .ant-menu-submenu,
|
|
1510
1510
|
.components-layout .sidenav-cont .menus-cont .sidemenu-cont .ant-menu-item {
|
|
1511
|
-
color: white;
|
|
1511
|
+
color: var(--custom-sidenav-text-color, white) !important;
|
|
1512
1512
|
}
|
|
1513
1513
|
|
|
1514
1514
|
.components-layout.nested
|
|
@@ -1,502 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import AuthLayout from "./index.jsx";
|
|
3
|
-
import ThemeLayout from "../../core/components/ThemeLayout/index.jsx";
|
|
4
|
-
|
|
5
|
-
// Mock translation function
|
|
6
|
-
const mockT = (key) => {
|
|
7
|
-
const translations = {
|
|
8
|
-
"Welcome Back": "Welcome Back",
|
|
9
|
-
"Please introduce yourself": "Please introduce yourself",
|
|
10
|
-
"Sign In": "Sign In",
|
|
11
|
-
"Enter your credentials to access your account": "Enter your credentials to access your account",
|
|
12
|
-
"Create Account": "Create Account",
|
|
13
|
-
"Join us today and start your journey": "Join us today and start your journey",
|
|
14
|
-
"Reset Password": "Reset Password",
|
|
15
|
-
"Enter your email to reset your password": "Enter your email to reset your password",
|
|
16
|
-
"Back": "Back",
|
|
17
|
-
"Email": "Email",
|
|
18
|
-
"Password": "Password",
|
|
19
|
-
"Remember me": "Remember me",
|
|
20
|
-
"Forgot password?": "Forgot password?",
|
|
21
|
-
"Log in": "Log in",
|
|
22
|
-
"Don't have an account?": "Don't have an account?",
|
|
23
|
-
"Sign up": "Sign up",
|
|
24
|
-
};
|
|
25
|
-
return translations[key] || key;
|
|
26
|
-
};
|
|
27
|
-
|
|
28
|
-
// Mock form content
|
|
29
|
-
const LoginForm = () => (
|
|
30
|
-
<div style={{ width: "100%", maxWidth: "400px" }}>
|
|
31
|
-
<div style={{ marginBottom: "20px" }}>
|
|
32
|
-
<label style={{ display: "block", marginBottom: "8px", fontSize: "14px", fontWeight: "500" }}>
|
|
33
|
-
Email
|
|
34
|
-
</label>
|
|
35
|
-
<input
|
|
36
|
-
type="email"
|
|
37
|
-
placeholder="Enter your email"
|
|
38
|
-
required
|
|
39
|
-
style={{
|
|
40
|
-
width: "100%",
|
|
41
|
-
padding: "12px",
|
|
42
|
-
border: "1px solid #ddd",
|
|
43
|
-
borderRadius: "8px",
|
|
44
|
-
fontSize: "14px"
|
|
45
|
-
}}
|
|
46
|
-
/>
|
|
47
|
-
</div>
|
|
48
|
-
<div style={{ marginBottom: "20px" }}>
|
|
49
|
-
<label style={{ display: "block", marginBottom: "8px", fontSize: "14px", fontWeight: "500" }}>
|
|
50
|
-
Password
|
|
51
|
-
</label>
|
|
52
|
-
<input
|
|
53
|
-
type="password"
|
|
54
|
-
required
|
|
55
|
-
placeholder="Enter your password"
|
|
56
|
-
style={{
|
|
57
|
-
width: "100%",
|
|
58
|
-
padding: "12px",
|
|
59
|
-
border: "1px solid #ddd",
|
|
60
|
-
borderRadius: "8px",
|
|
61
|
-
fontSize: "14px"
|
|
62
|
-
}}
|
|
63
|
-
/>
|
|
64
|
-
</div>
|
|
65
|
-
<div style={{
|
|
66
|
-
display: "flex",
|
|
67
|
-
justifyContent: "space-between",
|
|
68
|
-
alignItems: "center",
|
|
69
|
-
marginBottom: "24px"
|
|
70
|
-
}}>
|
|
71
|
-
<label style={{ display: "flex", alignItems: "center", fontSize: "14px" }}>
|
|
72
|
-
<input type="checkbox" style={{ marginRight: "8px" }} />
|
|
73
|
-
Remember me
|
|
74
|
-
</label>
|
|
75
|
-
<a href="#" style={{ fontSize: "14px", color: "#4F46E5", textDecoration: "none" }}>
|
|
76
|
-
Forgot password?
|
|
77
|
-
</a>
|
|
78
|
-
</div>
|
|
79
|
-
<button
|
|
80
|
-
style={{
|
|
81
|
-
width: "100%",
|
|
82
|
-
padding: "12px",
|
|
83
|
-
backgroundColor: "#3D8EDB",
|
|
84
|
-
color: "white",
|
|
85
|
-
border: "none",
|
|
86
|
-
borderRadius: "8px",
|
|
87
|
-
fontSize: "16px",
|
|
88
|
-
fontWeight: "600",
|
|
89
|
-
cursor: "pointer"
|
|
90
|
-
}}
|
|
91
|
-
onClick={() => console.log("Login clicked")}
|
|
92
|
-
>
|
|
93
|
-
Log in
|
|
94
|
-
</button>
|
|
95
|
-
<p style={{
|
|
96
|
-
textAlign: "center",
|
|
97
|
-
marginTop: "24px",
|
|
98
|
-
fontSize: "14px",
|
|
99
|
-
color: "#6B7280"
|
|
100
|
-
}}>
|
|
101
|
-
|
|
102
|
-
{/* <a href="#" style={{ color: "#4F46E5", textDecoration: "none", fontWeight: "600" }}>
|
|
103
|
-
Sign up
|
|
104
|
-
</a> */}
|
|
105
|
-
</p>
|
|
106
|
-
</div>
|
|
107
|
-
);
|
|
108
|
-
|
|
109
|
-
const SignupForm = () => (
|
|
110
|
-
<div style={{ width: "100%", maxWidth: "400px" }}>
|
|
111
|
-
<div style={{ marginBottom: "20px" }}>
|
|
112
|
-
<label style={{ display: "block", marginBottom: "8px", fontSize: "14px", fontWeight: "500" }}>
|
|
113
|
-
Full Name
|
|
114
|
-
</label>
|
|
115
|
-
<input
|
|
116
|
-
type="text"
|
|
117
|
-
placeholder="Enter your full name"
|
|
118
|
-
style={{
|
|
119
|
-
width: "100%",
|
|
120
|
-
padding: "12px",
|
|
121
|
-
border: "1px solid #ddd",
|
|
122
|
-
borderRadius: "8px",
|
|
123
|
-
fontSize: "14px"
|
|
124
|
-
}}
|
|
125
|
-
/>
|
|
126
|
-
</div>
|
|
127
|
-
<div style={{ marginBottom: "20px" }}>
|
|
128
|
-
<label style={{ display: "block", marginBottom: "8px", fontSize: "14px", fontWeight: "500" }}>
|
|
129
|
-
Email
|
|
130
|
-
</label>
|
|
131
|
-
<input
|
|
132
|
-
type="email"
|
|
133
|
-
placeholder="Enter your email"
|
|
134
|
-
style={{
|
|
135
|
-
width: "100%",
|
|
136
|
-
padding: "12px",
|
|
137
|
-
border: "1px solid #ddd",
|
|
138
|
-
borderRadius: "8px",
|
|
139
|
-
fontSize: "14px"
|
|
140
|
-
}}
|
|
141
|
-
/>
|
|
142
|
-
</div>
|
|
143
|
-
<div style={{ marginBottom: "20px" }}>
|
|
144
|
-
<label style={{ display: "block", marginBottom: "8px", fontSize: "14px", fontWeight: "500" }}>
|
|
145
|
-
Password
|
|
146
|
-
</label>
|
|
147
|
-
<input
|
|
148
|
-
type="password"
|
|
149
|
-
placeholder="Create a password"
|
|
150
|
-
style={{
|
|
151
|
-
width: "100%",
|
|
152
|
-
padding: "12px",
|
|
153
|
-
border: "1px solid #ddd",
|
|
154
|
-
borderRadius: "8px",
|
|
155
|
-
fontSize: "14px"
|
|
156
|
-
}}
|
|
157
|
-
/>
|
|
158
|
-
</div>
|
|
159
|
-
<div style={{ marginBottom: "24px" }}>
|
|
160
|
-
<label style={{ display: "flex", alignItems: "center", fontSize: "14px" }}>
|
|
161
|
-
<input type="checkbox" style={{ marginRight: "8px" }} />
|
|
162
|
-
I agree to the Terms and Conditions
|
|
163
|
-
</label>
|
|
164
|
-
</div>
|
|
165
|
-
<button
|
|
166
|
-
style={{
|
|
167
|
-
width: "100%",
|
|
168
|
-
padding: "12px",
|
|
169
|
-
backgroundColor: "#3D8EDB",
|
|
170
|
-
color: "white",
|
|
171
|
-
border: "none",
|
|
172
|
-
borderRadius: "8px",
|
|
173
|
-
fontSize: "16px",
|
|
174
|
-
fontWeight: "600",
|
|
175
|
-
cursor: "pointer"
|
|
176
|
-
}}
|
|
177
|
-
onClick={() => console.log("Sign up clicked")}
|
|
178
|
-
>
|
|
179
|
-
Create Account
|
|
180
|
-
</button>
|
|
181
|
-
<p style={{
|
|
182
|
-
textAlign: "center",
|
|
183
|
-
marginTop: "24px",
|
|
184
|
-
fontSize: "14px",
|
|
185
|
-
color: "#6B7280"
|
|
186
|
-
}}>
|
|
187
|
-
Already have an account?{" "}
|
|
188
|
-
<a href="#" style={{ color: "#4F46E5", textDecoration: "none", fontWeight: "600" }}>
|
|
189
|
-
Log in
|
|
190
|
-
</a>
|
|
191
|
-
</p>
|
|
192
|
-
</div>
|
|
193
|
-
);
|
|
194
|
-
|
|
195
|
-
export default {
|
|
196
|
-
title: "Layouts/AuthLayout",
|
|
197
|
-
component: AuthLayout,
|
|
198
|
-
tags: ["autodocs"],
|
|
199
|
-
decorators: [
|
|
200
|
-
(Story) => (
|
|
201
|
-
<ThemeLayout>
|
|
202
|
-
<div style={{ width: "100vw", height: "100vh" }}>
|
|
203
|
-
<Story />
|
|
204
|
-
</div>
|
|
205
|
-
</ThemeLayout>
|
|
206
|
-
),
|
|
207
|
-
],
|
|
208
|
-
argTypes: {
|
|
209
|
-
title: {
|
|
210
|
-
control: "text",
|
|
211
|
-
description: "Main title of the auth page",
|
|
212
|
-
},
|
|
213
|
-
subTitle: {
|
|
214
|
-
control: "text",
|
|
215
|
-
description: "Subtitle or description text",
|
|
216
|
-
},
|
|
217
|
-
appName: {
|
|
218
|
-
control: "select",
|
|
219
|
-
options: ["default", "sbg", "tif", "mmt", "tazama"],
|
|
220
|
-
description: "Application name for theming",
|
|
221
|
-
},
|
|
222
|
-
showTopHeader: {
|
|
223
|
-
control: "boolean",
|
|
224
|
-
description: "Show or hide the top navigation bar",
|
|
225
|
-
},
|
|
226
|
-
showLanguageSelector: {
|
|
227
|
-
control: "boolean",
|
|
228
|
-
description: "Show or hide the language selector",
|
|
229
|
-
},
|
|
230
|
-
showBack: {
|
|
231
|
-
control: "boolean",
|
|
232
|
-
description: "Show or hide the back button",
|
|
233
|
-
},
|
|
234
|
-
backLabel: {
|
|
235
|
-
control: "text",
|
|
236
|
-
description: "Label for the back button",
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
};
|
|
240
|
-
|
|
241
|
-
// Default Login Story
|
|
242
|
-
export const Default = {
|
|
243
|
-
name: "Login Page",
|
|
244
|
-
args: {
|
|
245
|
-
title: "Welcome Back",
|
|
246
|
-
subTitle: "Please introduce yourself",
|
|
247
|
-
appName: "default",
|
|
248
|
-
showTopHeader: true,
|
|
249
|
-
showLanguageSelector: true,
|
|
250
|
-
showBack: false,
|
|
251
|
-
backLabel: "Back",
|
|
252
|
-
},
|
|
253
|
-
render: (args) => (
|
|
254
|
-
<AuthLayout
|
|
255
|
-
t={mockT}
|
|
256
|
-
title={args.title}
|
|
257
|
-
subTitle={args.subTitle}
|
|
258
|
-
logo="/assets/images/datastake-logo.svg"
|
|
259
|
-
appName={args.appName}
|
|
260
|
-
rightImageUrl="/assets/images/tif-bg.png"
|
|
261
|
-
showTopHeader={args.showTopHeader}
|
|
262
|
-
showLanguageSelector={args.showLanguageSelector}
|
|
263
|
-
updateLanguage={(lng) => console.log("Language changed to:", lng)}
|
|
264
|
-
showBack={args.showBack}
|
|
265
|
-
onBack={() => console.log("Back clicked")}
|
|
266
|
-
backLabel={args.backLabel}
|
|
267
|
-
>
|
|
268
|
-
<LoginForm />
|
|
269
|
-
</AuthLayout>
|
|
270
|
-
),
|
|
271
|
-
};
|
|
272
|
-
|
|
273
|
-
// Sign Up Story
|
|
274
|
-
export const SignUp = {
|
|
275
|
-
name: "Sign Up Page",
|
|
276
|
-
render: () => (
|
|
277
|
-
<AuthLayout
|
|
278
|
-
t={mockT}
|
|
279
|
-
title="Create Account"
|
|
280
|
-
subTitle="Join us today and start your journey"
|
|
281
|
-
logo="/assets/images/datastake-logo.svg"
|
|
282
|
-
appName="default"
|
|
283
|
-
rightImageUrl="/assets/images/auth-bg-2.svg"
|
|
284
|
-
showTopHeader={true}
|
|
285
|
-
showLanguageSelector={true}
|
|
286
|
-
updateLanguage={(lng) => console.log("Language changed to:", lng)}
|
|
287
|
-
>
|
|
288
|
-
<SignupForm />
|
|
289
|
-
</AuthLayout>
|
|
290
|
-
),
|
|
291
|
-
};
|
|
292
|
-
|
|
293
|
-
// With Back Button
|
|
294
|
-
export const WithBackButton = {
|
|
295
|
-
name: "With Back Button",
|
|
296
|
-
render: () => (
|
|
297
|
-
<AuthLayout
|
|
298
|
-
t={mockT}
|
|
299
|
-
title="Reset Password"
|
|
300
|
-
subTitle="Enter your email to reset your password"
|
|
301
|
-
logo="/assets/images/datastake-logo.svg"
|
|
302
|
-
appName="default"
|
|
303
|
-
rightImageUrl="/assets/images/tif-bg.png"
|
|
304
|
-
showTopHeader={true}
|
|
305
|
-
showLanguageSelector={false}
|
|
306
|
-
showBack={true}
|
|
307
|
-
onBack={() => console.log("Back clicked")}
|
|
308
|
-
backLabel="Back"
|
|
309
|
-
>
|
|
310
|
-
<div style={{ width: "100%", maxWidth: "400px" }}>
|
|
311
|
-
<div style={{ marginBottom: "20px" }}>
|
|
312
|
-
<label style={{ display: "block", marginBottom: "8px", fontSize: "14px", fontWeight: "500" }}>
|
|
313
|
-
Email
|
|
314
|
-
</label>
|
|
315
|
-
<input
|
|
316
|
-
type="email"
|
|
317
|
-
placeholder="Enter your email"
|
|
318
|
-
style={{
|
|
319
|
-
width: "100%",
|
|
320
|
-
padding: "12px",
|
|
321
|
-
border: "1px solid #ddd",
|
|
322
|
-
borderRadius: "8px",
|
|
323
|
-
fontSize: "14px"
|
|
324
|
-
}}
|
|
325
|
-
/>
|
|
326
|
-
</div>
|
|
327
|
-
<button
|
|
328
|
-
style={{
|
|
329
|
-
width: "100%",
|
|
330
|
-
padding: "12px",
|
|
331
|
-
backgroundColor: "#4F46E5",
|
|
332
|
-
color: "white",
|
|
333
|
-
border: "none",
|
|
334
|
-
borderRadius: "8px",
|
|
335
|
-
fontSize: "16px",
|
|
336
|
-
fontWeight: "600",
|
|
337
|
-
cursor: "pointer"
|
|
338
|
-
}}
|
|
339
|
-
onClick={() => console.log("Reset clicked")}
|
|
340
|
-
>
|
|
341
|
-
Send Reset Link
|
|
342
|
-
</button>
|
|
343
|
-
</div>
|
|
344
|
-
</AuthLayout>
|
|
345
|
-
),
|
|
346
|
-
};
|
|
347
|
-
|
|
348
|
-
// No Header
|
|
349
|
-
export const NoHeader = {
|
|
350
|
-
name: "Without Top Header",
|
|
351
|
-
render: () => (
|
|
352
|
-
<AuthLayout
|
|
353
|
-
t={mockT}
|
|
354
|
-
title="Sign In"
|
|
355
|
-
subTitle="Enter your credentials to access your account"
|
|
356
|
-
logo="/assets/images/datastake-logo.svg"
|
|
357
|
-
appName="default"
|
|
358
|
-
rightImageUrl="/assets/images/auth-bg.svg"
|
|
359
|
-
showTopHeader={false}
|
|
360
|
-
showLanguageSelector={false}
|
|
361
|
-
>
|
|
362
|
-
<LoginForm />
|
|
363
|
-
</AuthLayout>
|
|
364
|
-
),
|
|
365
|
-
};
|
|
366
|
-
|
|
367
|
-
// SBG Theme
|
|
368
|
-
export const SBGTheme = {
|
|
369
|
-
name: "SBG Theme",
|
|
370
|
-
render: () => (
|
|
371
|
-
<AuthLayout
|
|
372
|
-
t={mockT}
|
|
373
|
-
title="Welcome to SBG"
|
|
374
|
-
subTitle="Sustainable Business Growth Platform"
|
|
375
|
-
logo="/assets/sbg-images/sbg-logo.svg"
|
|
376
|
-
appName="sbg"
|
|
377
|
-
rightImageUrl="/assets/images/auth-bg.svg"
|
|
378
|
-
showTopHeader={true}
|
|
379
|
-
showLanguageSelector={true}
|
|
380
|
-
updateLanguage={(lng) => console.log("Language changed to:", lng)}
|
|
381
|
-
>
|
|
382
|
-
<LoginForm />
|
|
383
|
-
</AuthLayout>
|
|
384
|
-
),
|
|
385
|
-
};
|
|
386
|
-
|
|
387
|
-
// TIF Theme
|
|
388
|
-
export const TIFTheme = {
|
|
389
|
-
name: "TIF Theme",
|
|
390
|
-
render: () => (
|
|
391
|
-
<AuthLayout
|
|
392
|
-
t={mockT}
|
|
393
|
-
title="Welcome to TIF"
|
|
394
|
-
subTitle="Transparency & Information Framework"
|
|
395
|
-
logo="/assets/images/tif-logo.svg"
|
|
396
|
-
appName="tif"
|
|
397
|
-
rightImageUrl="/assets/images/tif-bg.png"
|
|
398
|
-
showTopHeader={true}
|
|
399
|
-
showLanguageSelector={true}
|
|
400
|
-
updateLanguage={(lng) => console.log("Language changed to:", lng)}
|
|
401
|
-
>
|
|
402
|
-
<LoginForm />
|
|
403
|
-
</AuthLayout>
|
|
404
|
-
),
|
|
405
|
-
};
|
|
406
|
-
|
|
407
|
-
// With Additional Content
|
|
408
|
-
export const WithAdditionalContent = {
|
|
409
|
-
name: "With Additional Content",
|
|
410
|
-
render: () => (
|
|
411
|
-
<AuthLayout
|
|
412
|
-
t={mockT}
|
|
413
|
-
title="Welcome Back"
|
|
414
|
-
subTitle="Please introduce yourself"
|
|
415
|
-
logo="/assets/images/datastake-logo.svg"
|
|
416
|
-
appName="default"
|
|
417
|
-
rightImageUrl="/assets/images/auth-bg.svg"
|
|
418
|
-
showTopHeader={true}
|
|
419
|
-
showLanguageSelector={true}
|
|
420
|
-
updateLanguage={(lng) => console.log("Language changed to:", lng)}
|
|
421
|
-
additionalContent={
|
|
422
|
-
<div style={{
|
|
423
|
-
marginTop: "32px",
|
|
424
|
-
padding: "16px",
|
|
425
|
-
backgroundColor: "#F3F4F6",
|
|
426
|
-
borderRadius: "8px",
|
|
427
|
-
textAlign: "center"
|
|
428
|
-
}}>
|
|
429
|
-
<p style={{ fontSize: "14px", color: "#6B7280", margin: 0 }}>
|
|
430
|
-
Need help? <a href="#" style={{ color: "#4F46E5", textDecoration: "none" }}>Contact Support</a>
|
|
431
|
-
</p>
|
|
432
|
-
</div>
|
|
433
|
-
}
|
|
434
|
-
>
|
|
435
|
-
<LoginForm />
|
|
436
|
-
</AuthLayout>
|
|
437
|
-
),
|
|
438
|
-
};
|
|
439
|
-
|
|
440
|
-
// Custom Right Image
|
|
441
|
-
export const CustomRightImage = {
|
|
442
|
-
name: "Custom Right Background",
|
|
443
|
-
render: () => (
|
|
444
|
-
<AuthLayout
|
|
445
|
-
t={mockT}
|
|
446
|
-
title="Welcome"
|
|
447
|
-
subTitle="Access your dashboard"
|
|
448
|
-
logo="/assets/images/datastake-logo.svg"
|
|
449
|
-
appName="default"
|
|
450
|
-
rightImageUrl="/assets/images/kota-bg.jpg"
|
|
451
|
-
showTopHeader={true}
|
|
452
|
-
showLanguageSelector={true}
|
|
453
|
-
updateLanguage={(lng) => console.log("Language changed to:", lng)}
|
|
454
|
-
>
|
|
455
|
-
<LoginForm />
|
|
456
|
-
</AuthLayout>
|
|
457
|
-
),
|
|
458
|
-
};
|
|
459
|
-
|
|
460
|
-
// Minimal Setup
|
|
461
|
-
export const Minimal = {
|
|
462
|
-
name: "Minimal Setup",
|
|
463
|
-
render: () => (
|
|
464
|
-
<AuthLayout
|
|
465
|
-
t={mockT}
|
|
466
|
-
title="Sign In"
|
|
467
|
-
logo="/assets/images/datastake-logo.svg"
|
|
468
|
-
appName="default"
|
|
469
|
-
showTopHeader={false}
|
|
470
|
-
>
|
|
471
|
-
<LoginForm />
|
|
472
|
-
</AuthLayout>
|
|
473
|
-
),
|
|
474
|
-
};
|
|
475
|
-
|
|
476
|
-
// With JSX Subtitle
|
|
477
|
-
export const WithJSXSubtitle = {
|
|
478
|
-
name: "With JSX Subtitle",
|
|
479
|
-
render: () => (
|
|
480
|
-
<AuthLayout
|
|
481
|
-
t={mockT}
|
|
482
|
-
title="Welcome Back"
|
|
483
|
-
subTitle={
|
|
484
|
-
<span>
|
|
485
|
-
New here?{" "}
|
|
486
|
-
<a href="#" style={{ color: "#4F46E5", textDecoration: "none", fontWeight: "600" }}>
|
|
487
|
-
Create an account
|
|
488
|
-
</a>
|
|
489
|
-
</span>
|
|
490
|
-
}
|
|
491
|
-
logo="/assets/images/datastake-logo.svg"
|
|
492
|
-
appName="default"
|
|
493
|
-
rightImageUrl="/assets/images/auth-bg.svg"
|
|
494
|
-
showTopHeader={true}
|
|
495
|
-
showLanguageSelector={true}
|
|
496
|
-
updateLanguage={(lng) => console.log("Language changed to:", lng)}
|
|
497
|
-
>
|
|
498
|
-
<LoginForm />
|
|
499
|
-
</AuthLayout>
|
|
500
|
-
),
|
|
501
|
-
};
|
|
502
|
-
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
export const navItems = [
|
|
2
|
-
{
|
|
3
|
-
key: 'home',
|
|
4
|
-
route: '',
|
|
5
|
-
label: 'Home',
|
|
6
|
-
},
|
|
7
|
-
{
|
|
8
|
-
key: 'about',
|
|
9
|
-
route: 'about',
|
|
10
|
-
label: 'About',
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
key: 'platform',
|
|
14
|
-
route: 'platform',
|
|
15
|
-
label: 'Platform',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
key: 'applications',
|
|
19
|
-
route: 'applications',
|
|
20
|
-
label: 'Applications',
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
key: 'buzz',
|
|
24
|
-
route: 'buzz',
|
|
25
|
-
label: 'Buzz',
|
|
26
|
-
},
|
|
27
|
-
];
|
|
28
|
-
|
|
29
|
-
export const languages = [
|
|
30
|
-
{
|
|
31
|
-
value: 'en',
|
|
32
|
-
label: '🇬🇧 EN',
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
value: 'fr',
|
|
36
|
-
label: '🇫🇷 FR',
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
value: 'sp',
|
|
40
|
-
label: '🇪🇸 ES',
|
|
41
|
-
},
|
|
42
|
-
];
|
|
43
|
-
|