@ollaid/native-sso 2.7.3 → 2.7.5
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/dist/components/LoginModal.d.ts +2 -1
- package/dist/components/SignupModal.d.ts +2 -1
- package/dist/components/ui.d.ts +1 -0
- package/dist/hooks/useMobileRegistration.d.ts +8 -0
- package/dist/hooks/useNativeAuth.d.ts +6 -0
- package/dist/index.cjs +247 -65
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +247 -65
- package/dist/index.js.map +1 -1
- package/dist/types/mobile.d.ts +2 -0
- package/dist/types/native.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -31,6 +31,12 @@ function IconKeyRound(props) {
|
|
|
31
31
|
/* @__PURE__ */ jsx("circle", { cx: "16.5", cy: "7.5", r: ".5", fill: "currentColor" })
|
|
32
32
|
] });
|
|
33
33
|
}
|
|
34
|
+
function IconLink(props) {
|
|
35
|
+
return /* @__PURE__ */ jsxs("svg", { ...iconProps, ...props, children: [
|
|
36
|
+
/* @__PURE__ */ jsx("path", { d: "M10 13a5 5 0 0 0 7.07 0l2.12-2.12a5 5 0 1 0-7.07-7.07L11 4.93" }),
|
|
37
|
+
/* @__PURE__ */ jsx("path", { d: "M14 11a5 5 0 0 0-7.07 0L4.8 13.12a5 5 0 1 0 7.07 7.07L13 19.07" })
|
|
38
|
+
] });
|
|
39
|
+
}
|
|
34
40
|
function IconArrowLeft(props) {
|
|
35
41
|
return /* @__PURE__ */ jsxs("svg", { ...iconProps, ...props, children: [
|
|
36
42
|
/* @__PURE__ */ jsx("path", { d: "m12 19-7-7 7-7" }),
|
|
@@ -7399,15 +7405,22 @@ const getAuthToken = () => {
|
|
|
7399
7405
|
};
|
|
7400
7406
|
const clearAuthToken = () => {
|
|
7401
7407
|
const storage = getNativeStorage();
|
|
7402
|
-
|
|
7403
|
-
|
|
7404
|
-
|
|
7405
|
-
|
|
7406
|
-
|
|
7407
|
-
|
|
7408
|
-
|
|
7409
|
-
|
|
7410
|
-
|
|
7408
|
+
[
|
|
7409
|
+
STORAGE.AUTH_TOKEN,
|
|
7410
|
+
STORAGE.TOKEN,
|
|
7411
|
+
STORAGE.USER,
|
|
7412
|
+
STORAGE.ACCOUNT_TYPE,
|
|
7413
|
+
STORAGE.ALIAS_REFERENCE,
|
|
7414
|
+
STORAGE.APP_ACCESS_TOKEN_REF,
|
|
7415
|
+
STORAGE.REFRESH_TOKEN,
|
|
7416
|
+
STORAGE.TOKEN_EXPIRES_AT,
|
|
7417
|
+
STORAGE.REFRESH_EXPIRES_AT
|
|
7418
|
+
].forEach((key) => {
|
|
7419
|
+
try {
|
|
7420
|
+
storage.removeItem(key);
|
|
7421
|
+
} catch {
|
|
7422
|
+
}
|
|
7423
|
+
});
|
|
7411
7424
|
};
|
|
7412
7425
|
const clearNativeSsoStorage = (options) => {
|
|
7413
7426
|
const storage = getNativeStorage();
|
|
@@ -7416,30 +7429,44 @@ const clearNativeSsoStorage = (options) => {
|
|
|
7416
7429
|
if (preserveDeviceIdentity && (key === DEVICE_ID_KEY || key === SESSION_UUID_KEY || key === STORAGE_SEED_KEY)) {
|
|
7417
7430
|
return;
|
|
7418
7431
|
}
|
|
7419
|
-
|
|
7432
|
+
try {
|
|
7433
|
+
storage.removeItem(key);
|
|
7434
|
+
} catch {
|
|
7435
|
+
}
|
|
7420
7436
|
});
|
|
7421
7437
|
};
|
|
7422
7438
|
const repairNativeSsoStorage = () => {
|
|
7423
|
-
|
|
7424
|
-
|
|
7425
|
-
|
|
7426
|
-
|
|
7427
|
-
|
|
7428
|
-
|
|
7429
|
-
|
|
7430
|
-
|
|
7431
|
-
|
|
7432
|
-
|
|
7433
|
-
|
|
7434
|
-
|
|
7439
|
+
try {
|
|
7440
|
+
const storage = getNativeStorage();
|
|
7441
|
+
const authToken = getAuthToken();
|
|
7442
|
+
const userRaw = storage.getItem(STORAGE.USER);
|
|
7443
|
+
if (userRaw && !authToken) {
|
|
7444
|
+
clearNativeSsoStorage();
|
|
7445
|
+
return { cleaned: true, reason: "incomplete_session" };
|
|
7446
|
+
}
|
|
7447
|
+
if (authToken && !userRaw) {
|
|
7448
|
+
clearNativeSsoStorage();
|
|
7449
|
+
return { cleaned: true, reason: "incomplete_session" };
|
|
7450
|
+
}
|
|
7451
|
+
if (userRaw) {
|
|
7452
|
+
try {
|
|
7453
|
+
JSON.parse(userRaw);
|
|
7454
|
+
} catch {
|
|
7455
|
+
clearNativeSsoStorage();
|
|
7456
|
+
return { cleaned: true, reason: "invalid_user_json" };
|
|
7457
|
+
}
|
|
7458
|
+
}
|
|
7459
|
+
return { cleaned: false, reason: null };
|
|
7460
|
+
} catch (error) {
|
|
7461
|
+
if (isDebugMode()) {
|
|
7462
|
+
console.warn("⚠️ [native-sso] Storage repair failed, forcing cleanup", error);
|
|
7463
|
+
}
|
|
7435
7464
|
try {
|
|
7436
|
-
JSON.parse(userRaw);
|
|
7437
|
-
} catch {
|
|
7438
7465
|
clearNativeSsoStorage();
|
|
7439
|
-
|
|
7466
|
+
} catch {
|
|
7440
7467
|
}
|
|
7468
|
+
return { cleaned: true, reason: "incomplete_session" };
|
|
7441
7469
|
}
|
|
7442
|
-
return { cleaned: false, reason: null };
|
|
7443
7470
|
};
|
|
7444
7471
|
const logout = async () => {
|
|
7445
7472
|
const { nativeAuthService: nativeAuthService2 } = await Promise.resolve().then(() => nativeAuth);
|
|
@@ -8273,6 +8300,12 @@ function getErrorMessage$2(err, context) {
|
|
|
8273
8300
|
function useMobilePassword(options) {
|
|
8274
8301
|
const { saasApiUrl, iamApiUrl, autoLoadCredentials = true } = options;
|
|
8275
8302
|
const configuredRef = useRef(false);
|
|
8303
|
+
useEffect(() => {
|
|
8304
|
+
const repairResult = repairNativeSsoStorage();
|
|
8305
|
+
if (repairResult.cleaned && isDebugMode()) {
|
|
8306
|
+
console.warn("🔧 [useMobilePassword] Storage SSO réparé", repairResult.reason);
|
|
8307
|
+
}
|
|
8308
|
+
}, []);
|
|
8276
8309
|
useEffect(() => {
|
|
8277
8310
|
if (!configuredRef.current) {
|
|
8278
8311
|
setNativeAuthConfig({ saasApiUrl, iamApiUrl });
|
|
@@ -8918,6 +8951,12 @@ function useNativeAuth(options) {
|
|
|
8918
8951
|
setNativeStorage(storage);
|
|
8919
8952
|
}
|
|
8920
8953
|
const configuredRef = useRef(false);
|
|
8954
|
+
useEffect(() => {
|
|
8955
|
+
const repairResult = repairNativeSsoStorage();
|
|
8956
|
+
if (repairResult.cleaned && isDebugMode()) {
|
|
8957
|
+
console.warn("🔧 [useNativeAuth] Storage SSO réparé", repairResult.reason);
|
|
8958
|
+
}
|
|
8959
|
+
}, []);
|
|
8921
8960
|
const [isDebug, setIsDebug] = useState(isDebugMode());
|
|
8922
8961
|
useEffect(() => {
|
|
8923
8962
|
if (!configuredRef.current) {
|
|
@@ -9095,6 +9134,8 @@ function useNativeAuth(options) {
|
|
|
9095
9134
|
status: "needs_access",
|
|
9096
9135
|
application: response.application || null,
|
|
9097
9136
|
prompt: response.prompt || null,
|
|
9137
|
+
otpMethod: response.otp_method || prev.otpMethod,
|
|
9138
|
+
otpSentTo: response.otp_sent_to || prev.otpSentTo,
|
|
9098
9139
|
user: response.user ? {
|
|
9099
9140
|
reference: `USR-${response.user.id}`,
|
|
9100
9141
|
name: response.user.name,
|
|
@@ -9111,6 +9152,8 @@ function useNativeAuth(options) {
|
|
|
9111
9152
|
status: response.status,
|
|
9112
9153
|
application: response.application || null,
|
|
9113
9154
|
prompt: response.prompt || null,
|
|
9155
|
+
otpMethod: response.otp_method || prev.otpMethod,
|
|
9156
|
+
otpSentTo: response.otp_sent_to || prev.otpSentTo,
|
|
9114
9157
|
user: response.user ? {
|
|
9115
9158
|
reference: `USR-${response.user.id}`,
|
|
9116
9159
|
name: response.user.name,
|
|
@@ -9159,6 +9202,8 @@ function useNativeAuth(options) {
|
|
|
9159
9202
|
processToken: response.process_token || null,
|
|
9160
9203
|
status: "needs_access",
|
|
9161
9204
|
application: response.application || null,
|
|
9205
|
+
otpMethod: response.otp_method || prev.otpMethod,
|
|
9206
|
+
otpSentTo: response.otp_sent_to || prev.otpSentTo,
|
|
9162
9207
|
user: response.user ? {
|
|
9163
9208
|
reference: `USR-${response.user.id}`,
|
|
9164
9209
|
name: response.user.name,
|
|
@@ -9174,6 +9219,8 @@ function useNativeAuth(options) {
|
|
|
9174
9219
|
processToken: response.process_token,
|
|
9175
9220
|
status: response.status,
|
|
9176
9221
|
application: response.application || null,
|
|
9222
|
+
otpMethod: response.otp_method || prev.otpMethod,
|
|
9223
|
+
otpSentTo: response.otp_sent_to || prev.otpSentTo,
|
|
9177
9224
|
loading: false
|
|
9178
9225
|
}));
|
|
9179
9226
|
return { success: true, status: response.status };
|
|
@@ -9483,12 +9530,19 @@ function useNativeAuth(options) {
|
|
|
9483
9530
|
setState((prev) => ({ ...prev, loading: true, error: null }));
|
|
9484
9531
|
try {
|
|
9485
9532
|
const response = await nativeAuthService.resendOtp(state.processToken);
|
|
9486
|
-
setState((prev) => ({
|
|
9533
|
+
setState((prev) => ({
|
|
9534
|
+
...prev,
|
|
9535
|
+
loading: false,
|
|
9536
|
+
otpMethod: response.otp_method || prev.otpMethod,
|
|
9537
|
+
otpSentTo: response.otp_sent_to || prev.otpSentTo
|
|
9538
|
+
}));
|
|
9487
9539
|
return {
|
|
9488
9540
|
success: response.success,
|
|
9489
9541
|
cooldown: response.cooldown_remaining,
|
|
9490
9542
|
message: response.message,
|
|
9491
|
-
otp_code_dev: response.otp_code_dev
|
|
9543
|
+
otp_code_dev: response.otp_code_dev,
|
|
9544
|
+
otp_method: response.otp_method,
|
|
9545
|
+
otp_sent_to: response.otp_sent_to
|
|
9492
9546
|
};
|
|
9493
9547
|
} catch (err) {
|
|
9494
9548
|
const { message, type } = getErrorMessage$1(err, "le renvoi");
|
|
@@ -9585,6 +9639,7 @@ function useNativeAuth(options) {
|
|
|
9585
9639
|
setAccountType
|
|
9586
9640
|
};
|
|
9587
9641
|
}
|
|
9642
|
+
const packageFavicon = "data:image/png;base64,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Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9nL2ltZy8iCiAgICAgICAgICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyIKICAgICAgICAgICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgICAgICAgICAgeG1sbnM6aWxsdXN0cmF0b3I9Imh0dHA6Ly9ucy5hZG9iZS5jb20vaWxsdXN0cmF0b3IvMS4wLyIKICAgICAgICAgICAgeG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIj4KICAgICAgICAgPGRjOmZvcm1hdD5KUEVHIGZpbGUgZm9ybWF0PC9kYzpmb3JtYXQ+CiAgICAgICAgIDxkYzp0aXRsZT4KICAgICAgICAgICAgPHJkZjpBbHQ+CiAgICAgICAgICAgICAgIDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+UHJpbnQ8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnRpdGxlPgogICAgICAgICA8eG1wOk1ldGFkYXRhRGF0ZT4yMDI1LTEwLTIxVDE1OjMzOjQ0WjwveG1wOk1ldGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMjUtMTAtMjFUMTU6MzM6NDRaPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIwMjUtMTAtMjFUMTU6MzM6NDRaPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5BZG9iZSBJbGx1c3RyYXRvciAyOS42IChNYWNpbnRvc2gpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6VGh1bWJuYWlscz4KICAgICAgICAgICAgPHJkZjpBbHQ+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8eG1wR0ltZzp3aWR0aD4yNTY8L3htcEdJbWc6d2lkdGg+CiAgICAgICAgICAgICAgICAgIDx4bXBHSW1nOmhlaWdodD4yNTY8L3htcEdJbWc6aGVpZ2h0PgogICAgICAgICAgICAgICAgICA8eG1wR0ltZzpmb3JtYXQ+SlBFRzwveG1wR0ltZzpmb3JtYXQ+CiAgICAgICAgICAgICAgICAgIDx4bXBHSW1nOmltYWdlPi85ai80QUFRU2taSlJnQUJBZ0VBQUFBQUFBRC83UUFzVUdodmRHOXphRzl3SURNdU1BQTRRa2xOQSswQUFBQUFBQkFBQUFBQUFBRUEmI3hBO0FRQUFBQUFBQVFBQi8rNEFEa0ZrYjJKbEFHVEFBQUFBQWYvYkFJUUFCZ1FFQkFVRUJnVUZCZ2tHQlFZSkN3Z0dCZ2dMREFvS0N3b0smI3hBO0RCQU1EQXdNREF3UURBNFBFQThPREJNVEZCUVRFeHdiR3hzY0h4OGZIeDhmSHg4Zkh3RUhCd2NOREEwWUVCQVlHaFVSRlJvZkh4OGYmI3hBO0h4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zi84QUFFUWdCQUFFQUF3RVImI3hBO0FBSVJBUU1SQWYvRUFhSUFBQUFIQVFFQkFRRUFBQUFBQUFBQUFBUUZBd0lHQVFBSENBa0tDd0VBQWdJREFRRUJBUUVBQUFBQUFBQUEmI3hBO0FRQUNBd1FGQmdjSUNRb0xFQUFDQVFNREFnUUNCZ2NEQkFJR0FuTUJBZ01SQkFBRklSSXhRVkVHRTJFaWNZRVVNcEdoQnhXeFFpUEImI3hBO1V0SGhNeFppOENSeWd2RWxRelJUa3FLeVkzUENOVVFuazZPek5oZFVaSFREMHVJSUpvTUpDaGdaaEpSRlJxUzBWdE5WS0JyeTQvUEUmI3hBOzFPVDBaWFdGbGFXMXhkWGw5V1oyaHBhbXRzYlc1dlkzUjFkbmQ0ZVhwN2ZIMStmM09FaFlhSGlJbUtpNHlOam8rQ2s1U1ZscGVZbVomI3hBO3FibkoyZW41S2pwS1dtcDZpcHFxdXNyYTZ2b1JBQUlDQVFJREJRVUVCUVlFQ0FNRGJRRUFBaEVEQkNFU01VRUZVUk5oSWdaeGdaRXkmI3hBO29iSHdGTUhSNFNOQ0ZWSmljdkV6SkRSRGdoYVNVeVdpWTdMQ0IzUFNOZUpFZ3hkVWt3Z0pDaGdaSmpaRkdpZGtkRlUzOHFPend5Z3AmI3hBOzArUHpoSlNrdE1UVTVQUmxkWVdWcGJYRjFlWDFSbFptZG9hV3ByYkcxdWIyUjFkbmQ0ZVhwN2ZIMStmM09FaFlhSGlJbUtpNHlOam8mI3hBOytEbEpXV2w1aVptcHVjblo2ZmtxT2twYWFucUttcXE2eXRycSt2L2FBQXdEQVFBQ0VRTVJBRDhBOVU0cTdGWFlxN0ZYWXE3RlhZcTcmI3hBO0ZYWXE3RlhZcTdGWFlxN0ZYQWcxQU5TTmo3ZDhWZGlyc1ZkVVZwWGNia2ZQRlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlgmI3hBO1lxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGVWg4MmVmUEovbEsxK3MrWXRWZzA5V0JhT0oyNVRTQWRmVGhYbEkvK3hYSlJnWmMmI3hBO2tHUUhONGI1dC81ekYwNkZuZzhxYUs5MFJVTGU2ZzNwSlVkeEJHV1poODNVKzJaVWRJZXBham03bmsydmY4NUgvbTdyRHQvdVovUjAmI3hBO0xWcEJZUkpBQlh3a28wMzN2bDhkUEFkR3M1Q1dDNmw1bzh6YW9TZFQxZTl2aTFReHViaVdhdGExcnpadkU1WUlnY2d4Skw3Qy93Q2MmI3hBO1UvOEF5VWR2L3dBeHQxL3hJWmdhbjYzSXhjbnNPWTdZN0ZYeVQvem1GTExGNTgwT1NKMmpkZE0yZFNRUldlVWRSbWZwZnBMajV1YnkmI3hBO2pSdnpUL01mUm1CMDd6SnFFU3J1SW11SGxpLzVGU0YwL0RMemlpZWpXSkVQUy9MUC9PWFg1Z2FlVWoxeTB0TmJnRk9jbkg2cmNIL1omI3hBO3hEMGgvd0Fpc3BscFlubHMyREtYdFBrdi9uSm44cy9NWmpndTdwdEJ2MzI5SFVLSkVUL2szQzFqcC9yOGZsbU5QVHlIbTJESUM5WWomI3hBO2tqa2pXU05nOGJnTWpxYWdnN2dnanFEbERZM2lyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWUUd1Ni8mI3hBO291Z2FaTnFtczNrVmhZUUNzbHhNM0ZmWUR1ekhzbzNQYkRHSkpvSUpwOHcvbVgvemxucXQ2MHVuZVJvanA5cDlrNnZjS3JYRGpvZlMmI3hBO2lQSkl4NEZxdC9xbk0zSHBRUHFhWlplNTgvNmpxZW82bmV5MzJvM1V0NWVUSGxOY3p1MGtqSHhabUpKektBcmswMmhzS3V4VjJLdnQmI3hBO1gvbkZQL3lVZHY4QTh4dDEvd0FTR2E3VS9XNU9MazloekhiSFlxK1Ivd0RuTWY4QTVUblJmKzJZUCtvaVhNL1NmU1hIemMzZ09aVFUmI3hBOzdGWFlxelg4di96Zzg5ZVJaMS9ROThaTlByV1hTcm1zdHExVFUwU29LRS96SVFjcm5pakxteWpNaDlZL2xaL3prQjVRODlDT3hrUDYmI3hBO0k4d2tVT216c0NzcmY4dTh2d2lUL1ZJRGV4RytZR1RBWSs1dmprQmVvWlMyT3hWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXgmI3hBO1YyS3V4VmhQNW8vbXo1YS9MM1NQcldvdjlZMUtjSDlINlZHd0VzekRhcDY4SXgrMDVIeXFkc3N4NGpNN01aVEFmRlA1aGZtWDVyOCsmI3hBO2FzYi9BRnk1ckZHVDlUc0lxcmJ3S2UwYVZPNTdzYXNlNTZac3NlTVJHempTa1N4WEpzWFlxN0ZYWXE3Rlgyci9BTTRwL3dEa283Zi8mI3hBO0FKamJyL2lRelhhbjYzSnhjbnNPWTdZN0ZYeVAvd0E1ai84QUtjNkwvd0Jzd2Y4QVVSTG1mcFBwTGo1dWJ3SE1wcWRpcnNWZGlyYU8mI3hBO3lNSFFsV1VncXdOQ0NPaEJ4VjlIL2tyL0FNNU8zRnM5djVlOCtUbWExTkk3VFhucVpJK3dXNlA3YS84QUZuVWZ0VjZqRHphZnJGdWgmI3hBO2s2RjlTUlN4VFJKTEU2eVJTS0hqa1FobFpXRlFRUnNRUm1FM3JzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVllGK2IvNXQmI3hBOzZSK1hlZ2ZXWlF0MXJOMkdUVE5PNVVMc0J2SkpUY1JKKzBlL1FlMXVMRVpueVlUblQ0YTh6ZVp0YTh6YTFjNjFyVnkxMXFGMDNLU1ImI3hBO3VnSDdLSXZSVlViS282WnNveEFGQnhpYlN2SklkaXJzVmRpcnNWZGlyN1YvNXhUL0FQSlIyLzhBekczWC9FaG11MVAxdVRpNVBZY3gmI3hBOzJ4Mkt2a2YvQUp6SC93Q1U1MFgvQUxaZy93Q29pWE0vU2ZTWEh6YzNnT1pUVTdGWFlxN0ZYWXE3Rlh1bi9PUDM1K1QrVjdtRHl2NWwmI3hBO21NbmxxZCtGcGR1YW14ZGo0bi9kSkorSWZzOVIzekd6NE9MY2MyM0hPdGkrd1k1STVJMWtqWVBHNERJNm1vSU80SUk2ZzVyM0lieFYmI3hBOzJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFZJdlBIbkxTUEozbG05OHdhcTFMZTBYNElsKzNMSzIwY1NmNVR0dDdkVHNNbENCa2FDSkcmI3hBO2crQlBQSG5UV3ZPWG1TNjE3VjVPZHhjR2tVUUo0UXdxVHdoakI2S3RmcE5TZHljMnNJQ0lvT0pJMlVoeVNIWXE3RlhZcTdGVlcxdEwmI3hBO3U4dUV0clNHUzR1SkRTT0dKUzdzZkJWVUVuRWxYb0doL3dET1BuNXZhd2l5dytYcGJXRnYyNzE0N1VpdmpIS3l5ZjhBQzVTYzhCMVomI3hBO2pHUytyL3lKOGs2NTVNL0wrSFJOYldOYjlibWVabGhmMUZDeU1PUHhBRGZiTUhOTVNsWWI0Um9QUXNxWnV4VjRSL3prUCtTUG5EejUmI3hBO3JtbjZ2b0Vsb1VzN1A2dEpiWEVqUlNzM3F1OVUrQmtwUis3RE1yQm1FUlJhc2tDWHpWNXIvS3o4d2ZLZ2FUWGREdWJhMlhyZHFvbXQmI3hBO3h2UVZtaUx4aXZ1Y3pJNUl5NUZwTVNHSzVOaTdGWFlxN0ZYWXE3RlgwOS96aTkrY3p5R0x5RnI5eHlZQWpRTHFRNzBBcWJSbVBoMWkmI3hBOy93Q0IvbEdZV3B4ZnhCdXhUNlBwak1OdmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZmRlAvT1NYNXBONXY4M05wR255OHRBME4yaGcmI3hBOzRuNFpybjdNMDIyeEFJNEo3Ymo3V2JIVDQrRVgxTGpaSldYaitaRFc3RlhZcTdGVzFWbVlLb0pZbWdBM0pKeFY3OStWbi9PSzJzYTEmI3hBO0hEcTNuT1NUU2RPY0I0dE1qRkx5UmV2N3prQ0lRZkNoYjJYTVhKcVFOZzJ4eFh6ZlRYbFR5TDVSOHAyZ3RmTCtsUVdDVW84aUxXWjYmI3hBO2Y3OGxibEkvK3liTUtVekxtM2lJSEpQY2lsMkt1eFYyS3V4VnBsVmxLc0FWSW9RZHdRY1ZlUmZtTi96alI1RjgxSkxkNlZFTkExcHEmI3hBO3NKN1ZSOVhrYi9pMjNGRjMvbVRpZTVybVJqMUVvODl3MXl4Z3ZrM3o1K1hQbXZ5TnFwMDdYclF4Y2lmcTE1SFY3ZWRSKzFGSlFWOXcmI3hBO2FNTzR6T2hrRWhzNDhva01aeWFIWXE3RlhZcXFXMXpjV3R4RmMyOGpRM0VEckpES2hLc2pvZVNzcEhRZ2lveFY5N2ZrdCtaRVBuM3kmI3hBO1RiYWxJd0dyV3RMWFY0aHRTNFJSOFlIOHNpMFlmU08yYXZOajRaVTVVSldHZVpVemRpcnNWZGlyc1ZkaXJzVmRpcnNWZWFmODVCL20mI3hBO0EzazM4dkxwN1NYMDlYMVVteDA4ZzBkVElwOVdVZC8zY2RhSHN4WExzRU9LVERKS2crRk0yYml1eFYyS3V4VmZERE5QTkhCQkcwczAmI3hBO3JCSW9rQlptWmpSVlZSdVNUMEdLdnNQOGlQOEFuSDJ4OHEyMXQ1ajh5UXJjK1o1RkVrRnU0RFIyUU5DQUFlczQ3dCt6MFh4T3Z6WismI3hBO0xZY25JaGpyY3ZjTXhtMTJLdXhWMkt1eFYyS3V4VjJLdXhWS1BOWGxQUVBOV2l6Nk5ydG90M1l6OVZiWmtZZlplTng4U092WWpKUmsmI3hBO1ltd2dpM3cvK2IvNVJheitYZXVDQ1VtNjBXN0xIUzlScFRtbzNNY2dIMlpFcnYyUFVlMnl4WlJNZWJpemhUQU10WXV4VjJLdXhWNnAmI3hBOy93QTQ1Zm1DM2xMOHdyYTN1Sk9Pa2E0VnNiMEUwVlhadjNFcHJ0OEVob1QyVm15alVRNG8rNW5qbFJmY1dhMXluWXE3RlhZcTdGWFkmI3hBO3E3RlhZcTdGWHhoL3psVDV5T3QvbU1kSGhmbFkrWG9oYktCOWszRW9FazdmUjhLSC9Welk2YUZSdnZjYktiTHhqTWhyZGlyc1ZkaXImI3hBOzZkLzV4WS9LQ1AwazgvNjNBR2RpeTZCYnlEN0lGVmU2SVBldFZqK2x2NVRtRnFjdjhJYnNVT3I2WnpEYjNZcTdGWFlxN0ZYWXE3RlgmI3hBO1lxN0ZYWXE3RlVqODYrVHRHODRlVzd2UWRYajUydDB2d1NEN2NVbyt4TEdleklmNkhZNUtFekUyRVNGaDhBZWMvS1dxK1VmTTE5NWYmI3hBOzFSYVhWbEp4NWo3TWlFY281VS95WFVnait1YldFaElXSEVJb3BKa2tPeFYyS3Rna0VFR2hHNEl4VitndjVSZWJ6NXUvTHZSZGJsZm4mI3hBO2R5UWVqZkh2OVlnSmlsSi8xbVhsOGptcXl3NFpFT1hBMkdZWld5ZGlyc1ZkaXJzVmRpcnNWUTJxYWpiNmJwbDNxTnllTnRaUXlYRXomI3hBO2VDUklYWS9jdUVDelNsK2Iyc2FwZGF0cTk3cWwyZVYxZnp5M003ZUx6T1hiOFd6YmdVS2NJbEI0VmRpcnNWWlArV25rcTU4NmVkZE0mI3hBOzh2UkVyRmN5Y3J5WWRZN2FNYzVuK2ZBRUwvbFVHUXlUNFkybUlzMC9RbXhzclN3c29MR3ppV0MwdFkwaHQ0RUZGU09OUXFxbzhBQlQmI3hBO05VVGJtSzJCWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcThCLzV5MC9MMlBVL0xOdjV3czR2OVAwWXJEZkZlcjJjclVCUGNtS1YmI3hBO2hUMlpzeXRMa28xM3RXV08xdmtmTTl4M1lxN0ZYWXErb3Y4QW5EYnpJWHN2TUhscVIvN21TUFVMVlBhUWVsTjl4U1A3OHd0WEhrVy8mI3hBO0NlajZVekRibllxN0ZYWXE3RlhZcTdGWG5YL09RdXN0cFA1UWVZWlViakxkUkpaSU9sUmRTckZJUCtSYk5sMkFYTU1NaDJmQjJiTngmI3hBO1hZcTdGWFlxK252K2NOL0txQ0hYZk5jcUF1ekxwbG94RzRDZ1RUNysvS0w3c3d0WExrRzdDT3I2WXpEYjNZcTdGWFlxN0ZYWXE3RlgmI3hBO1lxN0ZYWXE3RlhZcTdGVUhyV2syZXNhUmU2VGVyenRMK0NTMm5YeFNWQ2pmZ2NJTkcwRVcvT0RXTk11ZEsxZSswdTZGTG13dUpiV2MmI3hBO2VFa0xsRy9GYzI0TmkzRElRbUZYWXE3Rlhybi9BRGkxckIwLzgzYkczNWNVMVMydWJOOTZEYVA2d3RmOWxBTW8xSXVEWmlPNzdhelcmI3hBO3VTN0ZYWXE3RlhZcTdGWFlxOE4vNXkrdmpCK1dsamJLYUc3MVdGV0crNkpETTU2ZjVRWE1uU2oxTldYaytPODJEanV4VjJLdXhWOTAmI3hBOy93RE9OdWtycDM1UGFIdFNXOTllN2xQaVpaMzRIL2tXcTVyTlFibVhLeGpaNmJsTE4yS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMksmI3hBO3V4VjJLdmhIL25JblNrMDc4NHZNTWNZcEhjU1EzUys1bmdTUnoveU1MWnM4QnVBY1hJTjNtK1hNSFlxN0ZXWS9rNWVtei9OVHlwTU8mI3hBO3JhbmJRN2Y4WHlDSC9qZks4bzlKWlE1aCtndWFweTNZcTdGWFlxN0ZYWXE3Rlh6MS93QTVsU1NEeXA1ZmpCL2R0ZnlNd3ArMHNKQzcmI3hBOy93Q3lPWmVrNWxwemNueWRtYzBPeFYyS3V4VitndjVOb3EvbFY1VUNnS1AwWmJtZ0ZOeWdKUDBuTlZsK291WERrR1k1V3lkaXJzVmQmI3hBO2lyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcjRxLzV5cy84QUp1WEgvTUZhL3dERVRteDAzME9ObDV2SHN5R3QyS3V4VlA4QTh2cEgmI3hBO2k4KytXcEVQRjAxV3laVzhDTGhDRGtNbjBuM0pqemZvdm1wY3gyS3V4VjJLdXhWMkt1eFY0UDhBODVpV3p2OEFsNXBWd3RTc09yUnEmI3hBO3dBclFQYnpiazl0MXA5T1pXbCtyNE5XYmsrUWN6M0hkaXJzVmRpcjd5LzV4ODFGYi93REo3eTNLRFZvb1pMZGgzQmduZUlEdjJVWnEmI3hBOzg0cVpjckg5TDBUS21ic1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZmRFgvT1MrcExlL25IclNvZVNXaTIxc3A5MHQwWngmI3hBOzlEc3d6WmFjVkFPTGsrcDVkbDdCMkt1eFZsbjVTMjczSDVvZVU0MDZycTFsSWRxN1JUcElmd1hLOHYwbjNNb2N3L1FyTlU1YnNWZGkmI3hBO3JzVmRpcnNWZGlyeXovbkpyU1RxSDVQNnU2cnlrc0pMZTdRVXI5aVpVYysxSTVHT1g2YzFNTmVRYlBoek5rNHpzVmRpcnNWZldYL08mI3hBO0hmbVZMbnl0clBsMlJ2MzJuWFMzY0lKLzNUZElGSUE4RmVFay93Q3RtRHE0N2d0K0U3VStoTXhHNTJLdXhWMkt1eFYyS3V4VjJLdXgmI3hBO1YyS3V4VjJLdXhWVHVibUMxdHBibTRjUjI4Q05MTkkzUlVRY21ZL0lERUsvT0x6WnJzbXYrWjlXMXVTb2JVcnVhNkNucW9sa0xLdismI3hBO3hCcG0zakdnQTRaTmxLc2toMkt1eFY2aC93QTQxYVNkUi9PSFJXSzhvckZiaTdsNmJDT0IxUTcvQVBGanJsT29OUUxQR04zM05tc2MmI3hBO3AyS3V4VjJLdXhWMkt1eFZLdk5laHByM2xqVnRGZWdYVXJPZTE1SG9wbGpLQnY4QVlrMXlVVFJCUVJZZm5EUEJMQk5KQk1oam1pWXAmI3hBO0lqYkZXVTBJUHlPYmR3MW1LdXhWMkt2UWZ5SzgrTDVML01YVDcrNWs5UFM3eXRqcVpQUVF6RVVjKzBjZ1Z6N0E1Vm1oeFJaUWxSZmUmI3hBO29JSXFPbWF0eTNZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhrSC9PVDNueFBMZjVlUzZWYnljZFQ4eGNyT0pRZmlGc0FEY3YmI3hBOzh1QkVmK3p6STA4TGxmYzE1WlVIeFJteGNaMkt1eFYyS3ZwRC9uRFh5NlpOVjh3ZVluWDRiZUNQVDRHUFF0TTNxeTAvMVJFbjM1aDYmI3hBO3VXd0RkaEhWOVRaaE43c1ZkaXJzVmRpcnNWZGlyc1ZmQzMvT1JubEUrVy96VDFUMDA0MmVya2FuYW50L3BCUHJENkpsZmJ3cG16MDgmI3hBO3JpNHVRVVhtV1hNSFlxN0ZYWXErelA4QW5HZjgxMDgwK1dWOHVhbk5YWDlFakNJem1yWEZvdnd4eWI3bG85a2Y2RDN6WDZqRndteHkmI3hBO0xrWTVXS2UxWmpOcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXFIMUhVYkhUYkM0MUMvbVcyc3JTTnBybWVRMFZJMEZXWS9JWVFMVWwmI3hBOzhEL205K1kxMTU5ODZYV3NIa21uUmY2UHBWdTMrNjdkQ2VKSS9tYzFkdmMwNkFadE1XUGhqVGlUbFpZVGxqRjJLdXhWMkt2dTMvbkgmI3hBO255aWZMUDVXNlhGS25DODFNSFVyc0VVUEs1QU1ZUHVJVlFITlpubGNuS3hpZzlKeWxtN0ZYWXE3RlhZcTdGWFlxN0ZYaWY4QXpsVDUmI3hBO0NiWHZJeWEvYVJjOVE4dk0wMG5FZkUxbkpRVGozNEVLL3NBMlpPbW5VcTcyckxHdytOYzJEanV4VjJLdXhWTXZMbm1MVi9MbXQybXQmI3hBO2FSY0cyMUN5Y1NRU2pwNEZXSDdTc0toZ2Vvd1NpQ0tLZzArNlB5bC9OdlFmekMwTlo3ZDF0OWF0MEg2VDBzbjQ0MjZGMEIzYUpqOWwmI3hBO3ZvTythekxpTUQ1T1ZDZHM4eXBtN0ZYWXE3RlhZcTdGWFlxN0ZYWXFzbW1oZ2hrbm5rV0tHSlM4c3JrS3Fxb3F6TXgyQUE2bkZYeDcmI3hBOy93QTVDL252L2k2ZC9MUGx5WWp5emJ1RGMzUzhsTjdLcHFOalQ5MGpmWkJHNUhMd3pZWU1QRHVlYmo1SjNzSGgyWkxVN0ZYWXE3RlcmI3hBO2Evazc1RWs4N2VmOU4wZGtMV0NQOVoxUmgwVzFoSU1nSjdjelJCN3RsZVdmREcyVUkyWDZBS3Fxb1ZRQW9GQUJzQUJtcWN0dkZYWXEmI3hBOzdGWFlxN0ZYWXE3RlhZcXN1SUliaUNTM25SWllKbGFPV054VldSaFJsSVBVRUhGWHdMK2NmNWNYUGtMenJkYVdGWTZYT1RjNlRPYWsmI3hBO05idVRSQ3g2dEdmZ2I1Vjc1dE1XVGlqYmlUalJZTmxyRjJLdXhWMktwaG9IbURXZkwrclFhdG8xM0paYWhiTnlpbmpOQ1BFRUhabFAmI3hBO1FxUlE5OEVvZ2lpb05Qckw4cS8rY29mTG5tQ09MVFBOclI2SnJPeXJkc2VObE9hZGViZjNMZXpuai9sZHN3TXVtSTNHNGNpT1VIbTkmI3hBO3pqa2praldTTmc4YmdNanFhZ2c3Z2dqcURtTTJ0NHE3RlhZcTdGWFlxN0ZXUGVjL1AvbFB5WnB4dnZNR29SMmlFSDBZSzhwNVNQMlkmI3hBO29oOFRmUG9PNUdUaEF5NUlNZ0h5SitjSC9PUWZtRHoyMG1sNmVyNlY1WXIvQUx4aHYzMXhUbzF3NjdVNyttdndqdnkyT1orTEFJNzkmI3hBO1hIbmt0NUxsN1c3RlhZcTdGWFlxKzFQK2NaL3l5UGxQeWQrbU5RaTRhM3I0U2VSV0h4UTJvRllJdll0WG0zekFQMmMxMm95Y1Jyb0gmI3hBO0p4eG9QWXN4MngyS3V4VjJLdXhWMkt1eFYyS3V4VjJLc0IvT2o4cnJQOHdmS1Vsa29XUFdyTGxQcEYwMjNHV254UnNmNUpRT0xlQm8mI3hBOzNiTGNPVGdQa3duR3crRDlRMCs5MDYrdUxDK2hhM3ZMV1JvYmlDUVVaSkVQRmxJOFFSbXpCdHhVUGhWMkt1eFYyS3V4Vm1Ya3I4M3YmI3hBO3pCOG1jWXRFMWFSTElHcDArZWs5c2E3bWtiMTRWN2xLSEs1NG95NWhrSmtQYWZMdi9PWlo0cW5tVHk5VnYycmpUcGFBL0tHYi9xcm0mI3hBO05MU2R4YkJtNzN2SGtIejNvM25qeTdIcitrUnp4V2NranhDTzZWVWtEUm1qVkNOSXYvRFpqVGdZbWkyeGxZWkhrR1RzVmVhL214K2UmI3hBO3ZsNzh1YnEzc0x5d3VyL1VydUg2eEJGRHdTTGh6S2ZISXhxRFZUMFE1ZGl3bWJDYzZlQitidjhBbkxUei9xeVBCb2R0YjZCYnQvdXkmI3hBO1AvU2JrRHc5V1FCUHVqQjk4eW82V0k1N3RKeWw0enFlcTZucXQ3SmZhbmR6WDE1THZKYzNFalN5TjgyY2s1a0FBY21zbEM0VmRpcnMmI3hBO1ZkaXJzVmV6Zjg0NC9rKy9uRFh4cityd0UrV3RKa0RGWEh3M1Z5dEdXSGZZb3V6U2ZRdmZiSDFHWGhGRG0yWTRXKzBNMXprdXhWMksmI3hBO3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWNGQvemtSK1JmK0xMVi9NL2wySC9uWmJWQjladFVBSDEySkJRRC9qTWkvWi9tSHcveTVrNE0mI3hBOzNEc2VUVmtoZTRmSGtrY2tjalJ5S1VrUWxYUmhRZ2pZZ2c5Q00yRGpyY1ZkaXJzVmRpcnNWZGlyN1YvNXhULzhsSGIvQVBNYmRmOEEmI3hBO0VobXUxUDF1VGk1UFljeDJ4Mkt2a2Y4QTV6SC9BT1U1MFgvdG1EL3FJbHpQMG4wbHg4M040RG1VMU94VjJLdXhWMkt1eFZubjVSZmwmI3hBO1ByUDVoK1lGdFlROXZvMXNRMnFhbFQ0WTBPL0JLN0dSK2lqNlRzTXF5NVJBZWJLRWJMN3E4djZCcFBsL1JyVFJ0SnQxdGRQc2tFY0UmI3hBO0s5aDFKSjZsbUpxeE81TytheVVpVFpjb0Nrd3dKZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZUlmbmwvd0E0OFdmbTRUZVkmI3hBO1BMS1Iybm1ZQXZjVyt5UTNwL3lqMFNYd2JvMzdYOHd5Y09maDJQSnFuanZjUGtIVTlNMURTNytmVDlSdDVMUyt0bk1keGJUS1VkR0gmI3hBO1lnNW5nM3ljY2hEWVZkaXJzVmRpcnNWZmF2OEF6aW4vQU9TanQvOEFtTnV2K0pETmRxZnJjbkZ5ZXc1anRqc1ZmSS8vQURtUC93QXAmI3hBO3pvdi9BR3pCL3dCUkV1WitrK2t1UG01dkFjeW1wMkt1eFYyS3V4VjZUK1VQNUllWXZ6QnZWdUNHc1BMa0wwdTlVWmZ0VTZ4MjRPenYmI3hBOzRub3Zmc0RUbHpDSHZad2dTKzEvS3ZsVFFmS3VpVytpNkhhcmEyRnVOa0c3T3grMUpJeDNaMjdrNXJwU01qWmNrQ2syeUtYWXE3RlgmI3hBO1lxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGV0RmbWIrVHZsRDh3TE9tcHdtMjFXSkN0cHEwQUFuajdoVzdTSlg5bHZlaEIzeTMmI3hBO0hsTU9UQ1VBWHlEK1pQNUplZC9JYzBrdDliRzkwWUg5MXE5cUMwTkNhTDZvKzFFM1RadHE5Q2N6OGVhTXZlNDhvRU1BeTFpN0ZYWXEmI3hBOzdGWDJyL3ppbi81S08zLzVqYnIvQUlrTTEycCt0eWNYSjdEbU8yT3hWOGovQVBPWS93RHluT2kvOXN3ZjlSRXVaK2sra3VQbTV2QWMmI3hBO3ltcDJLdXhWRTZicG1vNnBleFdPbTJzdDVlem5qRGJRSTBrakh3VlZCSndFZ2MxcDlJZmxUL3ppaTVhTFZ2UDU0cUtQRm9VTDduL20mI3hBO0psUS84SWgrYmRzeE11cDZSYm80dTk5TDJkbFoyVnBGWjJjRWR0YVFLSTRMZUZRa2FJb29GVlZBQUE5c3dpYmIxYkZYWXE3RlhZcTcmI3hBO0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZXcEk0NUkyamtVUEc0S3VqQ29JT3hCQjZnNHE4ZTgrZjg0djhBNWZlWkdrdTkmI3hBO0tWdkx1cFNWSmUwVU5iRnZGcllsVkgvUE5seklocVpEbnUxeXhBdkEvTi8vQURqTithUGw5bmt0YkpkZHNoOW1mVG01eVU3Y29HNHkmI3hBOzEvMVF3OTh5b2FpSjhtazR5SGw5OXA5L1lYTFd0L2JTMmx5bjI0SjBhTng4MWNBakxnYllJZkNyN1YvNXhULzhsSGIvQVBNYmRmOEEmI3hBO0VobXUxUDF1VGk1UFljeDJ4Mkt2a2Y4QTV6SC9BT1U1MFgvdG1EL3FJbHpQMG4wbHg4M040RG1VMU1tOHNmbHA1OTh6c242RDBPN3YmI3hBO0lwTmx1ZlRNZHZ2NHp5Y0loL3dXUWxrakhtVWlKTDJyeVgvemg3cVV4anVmT0dxcmFSZFcwL1Q2U1NrZURUdU9Dbi9WVnZubU5QVmQmI3hBO3diUmg3MzBINU4vTHJ5WjVOdFRCNWQwdUt6WmhTVzUzZWVUL0FGNW5MT1JYZWxhRHNNeFo1RExtMmlJSEprZVFaT3hWMkt1eFYyS3UmI3hBO3hWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VkI2cG8yajZ0Yi9BRmJWYkczMUMzLzN6ZFJKTW0vK1RJR0cmI3hBO0VFamtnaGhHcS84QU9QbjVQNmtTMDNsdUNGejBhMWttdGdQa3NMb240WllNOHgxWW5HR1RlU3ZKV2hlVGRFWFJkRFNTT3dXUjVsU1YmI3hBO3pJd2FRMWI0anZUSVRtWkd5eWpHazl5S1hZcXhIemYrVS9rTHpocWx2cWZtUFRQcjkxYXhlaEFXbW5qVUlITDdyRTZCdDJQWExJNVomI3hBO1JGQmlZQTgwUm92NVpmbDVvaksrbCtYZFB0NVUrek9MZU41UjMvdlhEUDhBamdPU1I1bFJFQmsyUVpPeFYyS3V4VjJLdXhWMkt1eFYmI3hBOzJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjImI3hBO0t1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VkxkYzh4YU5vVnZIY2FyY2ZWNFpYOU9OdUR2VnFFMHBHckhvTXF6WjRZeGNqVGs2WFI1YzUmI3hBO01jWXNqM2ZwU2IvbGFua0wvcTZmOGtMai9xbm1QL0tPRCtkOWgvVTUzOGhhditaL3NvL3JkL3l0VHlGLzFkUCtTRngvMVR4L2xIQi8mI3hBO08rdy9xWCtRdFgvTS93QmxIOWJ2K1ZxZVF2OEFxNmY4a0xqL0FLcDQvd0FvNFA1MzJIOVMvd0FoYXY4QW1mN0tQNjNmOHJVOGhmOEEmI3hBO1YwLzVJWEgvQUZUeC9sSEIvTyt3L3FYK1F0WC9BRFA5bEg5YnYrVnFlUXYrcnAveVF1UCtxZVA4bzRQNTMySDlTL3lGcS81bit5aismI3hBO3QzL0sxUElYL1YwLzVJWEgvVlBIK1VjSDg3N0QrcGY1QzFmOHovWlIvVzcvQUpXcDVDLzZ1bi9KQzQvNnA0L3lqZy9uZllmMUwvSVcmI3hBO3IvbWY3S1A2M2Y4QUsxUElYL1YwL3dDU0Z4LzFUeC9sSEIvTyt3L3FYK1F0WC9NLzJVZjF1LzVXcDVDLzZ1bi9BQ1F1UCtxZVA4bzQmI3hBO1A1MzJIOVMveUZxLzVuK3lqK3QzL0sxUElYL1YwLzVJWEgvVlBIK1VjSDg3N0QrcGY1QzFmOHovQUdVZjF1LzVXcDVDL3dDcnAveVEmI3hBO3VQOEFxbmovQUNqZy9uZllmMUwvQUNGcS93Q1ovc28vcmQveXRUeUYvd0JYVC9raGNmOEFWUEgrVWNIODc3RCtwZjVDMWY4QU0vMlUmI3hBO2YxdS81V3A1Qy82dW4vSkM0LzZwNC95amcvbmZZZjFML0lXci9tZjdLUDYzZjhyVThoZjlYVC9raGNmOVU4ZjVSd2Z6dnNQNmwva0wmI3hBO1YvelA5bEg5YnY4QWxhbmtML3E2ZjhrTGovcW5qL0tPRCtkOWgvVXY4aGF2K1ovc28vcmQvd0FyVThoZjlYVC9BSklYSC9WUEgrVWMmI3hBO0g4NzdEK3BmNUMxZjh6L1pSL1c3L2xhbmtML3E2ZjhBSkM0LzZwNC95amcvbmZZZjFML0lXci9tZjdLUDYzZjhyVThoZjlYVC9raGMmI3hBO2Y5VThmNVJ3Znp2c1A2bC9rTFYvelA4QVpSL1c3L2xhbmtML0FLdW4vSkM0L3dDcWVQOEFLT0QrZDloL1V2OEFJV3IvQUpuK3lqK3QmI3hBOzMvSzFQSVgvQUZkUCtTRngvd0JVOGY1UndmenZzUDZsL2tMVi93QXovWlIvVzcvbGFua0wvcTZmOGtMai9xbmovS09EK2Q5aC9VdjgmI3hBO2hhditaL3NvL3JkL3l0VHlGLzFkUCtTRngvMVR4L2xIQi9PK3cvcVgrUXRYL00vMlVmMXUvd0NWcWVRditycC95UXVQK3FlUDhvNFAmI3hBOzUzMkg5Uy95RnEvNW4reWordFV0L3dBelBKRnhjUlc4T3BjcHBuV09OZlF1QlZtTkFLbU1EcWNNZGZoSm9TK3cvcVl6N0YxVVFaR0cmI3hBO3c4NC9yWlBtWTZwMkt1eFYyS3V4VjJLdXhWNXgrZUgvQUJ3TEQvbUwvd0NaYlpxZTEvb0h2ZWw5bVA3Nlg5WDlJZUw1b0h0bllxN0YmI3hBO1hZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGVXc4dmY4ZC9UUCtZdUQvazR1VzRmcmo3dzQmI3hBOzJzL3VaLzFaZmMrbjg3Qjh0ZGlyc1ZkaXJzVmRpcnNWZWNmbmgveHdMRC9tTC81bHRtcDdYK2dlOTZYMlkvdnBmMWYwaDR2bWdlMmQmI3hBO2lyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVlREeTkveDM5TS81aTRQK1RpNWJoK3UmI3hBO1B2RGpheis1bi9WbDl6NmZ6c0h5MTJLdXhWMkt1eFYyS3V4VjV4K2VIL0hBc1A4QW1MLzVsdG1wN1grZ2U5NlgyWS92cGYxZjBoNHYmI3hBO21nZTJkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWVER5OS94MzlNL3dDWXVEL2smI3hBOzR1VzRmcmo3dzQycy91Wi8xWmZjK244N0I4dGRpcnNWZGlyc1ZkaXJzVmVjZm5oL3h3TEQvbUwvQU9aYlpxZTEvb0h2ZWw5bVA3NlgmI3hBOzlYOUllTDVvSHRuWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGVXc4dmY4QUhmMHomI3hBOy9tTGcvd0NUaTViaCt1UHZEamF6KzVuL0FGWmZjK244N0I4dGRpcnNWZGlyc1ZkaXJzVld5UlJTQUNSRmNEY0JnRCt2QVFDa1NJNUsmI3hBO2YxT3ovd0I4Ui84QUFML1RCd0R1WmVKTHZMdnFkbi92aVA4QTRCZjZZOEE3bDhTWGVYZlU3UDhBM3hIL0FNQXY5TWVBZHkrSkx2THYmI3hBO3Fkbi9BTDRqL3dDQVgrbVBBTzVmRWwzbDMxT3ovd0I4Ui84QUFML1RIZ0hjdmlTN3k3Nm5aLzc0ai80QmY2WThBN2w4U1hlWGZVN1AmI3hBOy9mRWYvQUwvQUV4NEIzTDRrdTh1K3AyZisrSS8rQVgrbVBBTzVmRWwzbDMxT3ovM3hIL3dDLzB4NEIzTDRrdTh1K3AyZisrSS93RGcmI3hBO0YvcGp3RHVYeEpkNWQ5VHMvd0RmRWY4QXdDLzB4NEIzTDRrdTh1K3AyZjhBdmlQL0FJQmY2WThBN2w4U1hlWGZVN1AvQUh4SC93QUEmI3hBO3Y5TWVBZHkrSkx2THZxZG4vdmlQL2dGL3Bqd0R1WHhKZDVkOVRzLzk4Ui84QXY4QVRIZ0hjdmlTN3k3Nm5aLzc0ai80QmY2WThBN2wmI3hBOzhTWGVYZlU3UC9mRWYvQUwvVEhnSGN2aVM3eTc2blovNzRqL0FPQVgrbVBBTzVmRWwzbDMxT3ovQU44Ui93REFML1RIZ0hjdmlTN3kmI3hBOzc2blovd0MrSS84QWdGL3Bqd0R1WHhKZDVkOVRzLzhBZkVmL0FBQy8weDRCM0w0a3U4dStwMmYrK0kvK0FYK21QQU81ZkVsM2wzMU8mI3hBO3ovM3hIL3dDL3dCTWVBZHkrSkx2TFl0TFFFRVF4Z2pjRUtQNlk4STdsOFNYZVZYSk1IWXE3RlhZcS8vWjwveG1wR0ltZzppbWFnZT4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOkFsdD4KICAgICAgICAgPC94bXA6VGh1bWJuYWlscz4KICAgICAgICAgPHhtcE1NOkluc3RhbmNlSUQ+eG1wLmlpZDo3MmU5YTkxMi0yYjViLTQ3ZDctOTc3My1jNTg5NmU3Y2I4NGQ8L3htcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4bXBNTTpEb2N1bWVudElEPnhtcC5kaWQ6NzJlOWE5MTItMmI1Yi00N2Q3LTk3NzMtYzU4OTZlN2NiODRkPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06T3JpZ2luYWxEb2N1bWVudElEPnV1aWQ6NUQyMDg5MjQ5M0JGREIxMTkxNEE4NTkwRDMxNTA4Qzg8L3htcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD4KICAgICAgICAgPHhtcE1NOlJlbmRpdGlvbkNsYXNzPnByb29mOnBkZjwveG1wTU06UmVuZGl0aW9uQ2xhc3M+CiAgICAgICAgIDx4bXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnhtcC5paWQ6OGJhMGJjMTYtNzlkYy00ZDM4LWEyNmUtYmQyM2I1OTY0ZDNmPC9zdFJlZjppbnN0YW5jZUlEPgogICAgICAgICAgICA8c3RSZWY6ZG9jdW1lbnRJRD54bXAuZGlkOjhiYTBiYzE2LTc5ZGMtNGQzOC1hMjZlLWJkMjNiNTk2NGQzZjwvc3RSZWY6ZG9jdW1lbnRJRD4KICAgICAgICAgICAgPHN0UmVmOm9yaWdpbmFsRG9jdW1lbnRJRD51dWlkOjVEMjA4OTI0OTNCRkRCMTE5MTRBODU5MEQzMTUwOEM4PC9zdFJlZjpvcmlnaW5hbERvY3VtZW50SUQ+CiAgICAgICAgICAgIDxzdFJlZjpyZW5kaXRpb25DbGFzcz5wcm9vZjpwZGY8L3N0UmVmOnJlbmRpdGlvbkNsYXNzPgogICAgICAgICA8L3htcE1NOkRlcml2ZWRGcm9tPgogICAgICAgICA8eG1wTU06SGlzdG9yeT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MTc4NTZkN2EtMWNkZC00YzllLTk0ZmItODZiMDI4ZmM3NjdmPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDI1LTEwLTIxVDE1OjMzOjM4Wjwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgSWxsdXN0cmF0b3IgMjkuNiAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6NzJlOWE5MTItMmI1Yi00N2Q3LTk3NzMtYzU4OTZlN2NiODRkPC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDI1LTEwLTIxVDE1OjMzOjQ0Wjwvc3RFdnQ6d2hlbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OnNvZnR3YXJlQWdlbnQ+QWRvYmUgSWxsdXN0cmF0b3IgMjkuNiAoTWFjaW50b3NoKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgICAgPHN0RXZ0OmNoYW5nZWQ+Lzwvc3RFdnQ6Y2hhbmdlZD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAgICAgICAgICAgIDwvcmRmOlNlcT4KICAgICAgICAgPC94bXBNTTpIaXN0b3J5PgogICAgICAgICA8aWxsdXN0cmF0b3I6U3RhcnR1cFByb2ZpbGU+UHJpbnQ8L2lsbHVzdHJhdG9yOlN0YXJ0dXBQcm9maWxlPgogICAgICAgICA8aWxsdXN0cmF0b3I6Q3JlYXRvclN1YlRvb2w+QWRvYmUgSWxsdXN0cmF0b3I8L2lsbHVzdHJhdG9yOkNyZWF0b3JTdWJUb29sPgogICAgICAgICA8aWxsdXN0cmF0b3I6SXNGaWxlU2F2ZWRWaWFJbnN0YW50U2F2ZT5GYWxzZTwvaWxsdXN0cmF0b3I6SXNGaWxlU2F2ZWRWaWFJbnN0YW50U2F2ZT4KICAgICAgICAgPHBkZjpQcm9kdWNlcj5BZG9iZSBQREYgbGlicmFyeSAxNS4wMDwvcGRmOlByb2R1Y2VyPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+/+AAEEpGSUYAAQIBASwBLAAA/+0ALFBob3Rvc2hvcCAzLjAAOEJJTQPtAAAAAAAQASwAAAABAAEBLAAAAAEAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/90ABAA1/+4ADkFkb2JlAGTAAAAAAf/AABEIAaEBoQMAEQABEQECEQH/xAGiAAEBAQACAgIDAAAAAAAAAAALAAoICQYHAQIDBAUBAQEBAAEFAQEBAAAAAAAAAAAHCAkDBAUGCgIBCxAAAQIFAQIE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";
|
|
9588
9643
|
const C$2 = {
|
|
9589
9644
|
primary: "#002147",
|
|
9590
9645
|
accent: "#e8430a",
|
|
@@ -9611,6 +9666,40 @@ const iconCircle$1 = (bg) => ({
|
|
|
9611
9666
|
alignItems: "center",
|
|
9612
9667
|
justifyContent: "center"
|
|
9613
9668
|
});
|
|
9669
|
+
const appBadgeCircle = (bg) => ({
|
|
9670
|
+
width: "2.9rem",
|
|
9671
|
+
height: "2.9rem",
|
|
9672
|
+
borderRadius: "9999px",
|
|
9673
|
+
backgroundColor: bg,
|
|
9674
|
+
border: `1px solid ${C$2.gray200}`,
|
|
9675
|
+
boxShadow: "0 8px 18px rgba(0, 0, 0, 0.08)",
|
|
9676
|
+
display: "flex",
|
|
9677
|
+
alignItems: "center",
|
|
9678
|
+
justifyContent: "center",
|
|
9679
|
+
padding: "0.5rem",
|
|
9680
|
+
boxSizing: "border-box",
|
|
9681
|
+
overflow: "hidden",
|
|
9682
|
+
flexShrink: 0
|
|
9683
|
+
});
|
|
9684
|
+
const brandLinkPill$1 = {
|
|
9685
|
+
width: "2.2rem",
|
|
9686
|
+
height: "2.2rem",
|
|
9687
|
+
borderRadius: "9999px",
|
|
9688
|
+
backgroundColor: C$2.gray100,
|
|
9689
|
+
border: `1px solid ${C$2.gray200}`,
|
|
9690
|
+
display: "flex",
|
|
9691
|
+
alignItems: "center",
|
|
9692
|
+
justifyContent: "center",
|
|
9693
|
+
flexShrink: 0,
|
|
9694
|
+
boxShadow: "0 4px 10px rgba(0, 0, 0, 0.05)"
|
|
9695
|
+
};
|
|
9696
|
+
const brandRowStyle$1 = {
|
|
9697
|
+
display: "flex",
|
|
9698
|
+
alignItems: "center",
|
|
9699
|
+
justifyContent: "center",
|
|
9700
|
+
gap: "0.65rem",
|
|
9701
|
+
marginBottom: "0.9rem"
|
|
9702
|
+
};
|
|
9614
9703
|
const backBtnStyle$1 = {
|
|
9615
9704
|
position: "absolute",
|
|
9616
9705
|
left: "1rem",
|
|
@@ -9665,6 +9754,7 @@ function LoginModal({
|
|
|
9665
9754
|
onLoginSuccess,
|
|
9666
9755
|
saasApiUrl,
|
|
9667
9756
|
iamApiUrl,
|
|
9757
|
+
logoUrl,
|
|
9668
9758
|
loading,
|
|
9669
9759
|
showSwitchToSignup = true,
|
|
9670
9760
|
defaultAccountType,
|
|
@@ -9685,7 +9775,9 @@ function LoginModal({
|
|
|
9685
9775
|
loginWithAccessOtp,
|
|
9686
9776
|
resendOtp,
|
|
9687
9777
|
reset: resetAuth,
|
|
9688
|
-
clearError
|
|
9778
|
+
clearError,
|
|
9779
|
+
otpMethod,
|
|
9780
|
+
otpSentTo
|
|
9689
9781
|
} = useNativeAuth({ saasApiUrl, iamApiUrl, defaultAccountType });
|
|
9690
9782
|
const [step, setStep] = useState("choice");
|
|
9691
9783
|
const [email, setEmail] = useState("");
|
|
@@ -9706,6 +9798,20 @@ function LoginModal({
|
|
|
9706
9798
|
const CCPHONE = "+221";
|
|
9707
9799
|
const isSubmitting = authLoading || loading;
|
|
9708
9800
|
const error = localError || authError;
|
|
9801
|
+
const applicationLogo = (application == null ? void 0 : application.logo) || logoUrl || null;
|
|
9802
|
+
const applicationName = (application == null ? void 0 : application.name) || "Application";
|
|
9803
|
+
const getOtpDeliveryLabel = (method, sentTo, fallback) => {
|
|
9804
|
+
if (method === "sms") {
|
|
9805
|
+
return sentTo ? `par SMS au ${sentTo}` : "par SMS";
|
|
9806
|
+
}
|
|
9807
|
+
if (method === "email") {
|
|
9808
|
+
return sentTo ? `par email à ${sentTo}` : "par email";
|
|
9809
|
+
}
|
|
9810
|
+
if (fallback === "phone") {
|
|
9811
|
+
return phone ? `par SMS au ${CCPHONE} ${phone}` : "par SMS";
|
|
9812
|
+
}
|
|
9813
|
+
return email ? `par email à ${email}` : "pour vérification";
|
|
9814
|
+
};
|
|
9709
9815
|
useEffect(() => {
|
|
9710
9816
|
if (resendCooldown > 0) {
|
|
9711
9817
|
const timer = setTimeout(() => setResendCooldown((p) => p - 1), 1e3);
|
|
@@ -9970,7 +10076,25 @@ function LoginModal({
|
|
|
9970
10076
|
step !== "choice" && renderBackBtn(),
|
|
9971
10077
|
step === "choice" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
9972
10078
|
/* @__PURE__ */ jsxs(DialogHeader, { style: { textAlign: "center" }, children: [
|
|
9973
|
-
/* @__PURE__ */
|
|
10079
|
+
/* @__PURE__ */ jsxs("div", { style: brandRowStyle$1, children: [
|
|
10080
|
+
/* @__PURE__ */ jsx("div", { style: appBadgeCircle(C$2.white), children: applicationLogo ? /* @__PURE__ */ jsx(
|
|
10081
|
+
"img",
|
|
10082
|
+
{
|
|
10083
|
+
src: applicationLogo,
|
|
10084
|
+
alt: applicationName,
|
|
10085
|
+
style: { width: "100%", height: "100%", objectFit: "cover" }
|
|
10086
|
+
}
|
|
10087
|
+
) : /* @__PURE__ */ jsx(IconShieldCheck, { style: { width: "1.4rem", height: "1.4rem", color: C$2.primary } }) }),
|
|
10088
|
+
/* @__PURE__ */ jsx("div", { style: brandLinkPill$1, "aria-hidden": "true", children: /* @__PURE__ */ jsx(IconLink, { style: { width: "1rem", height: "1rem", color: C$2.gray500 } }) }),
|
|
10089
|
+
/* @__PURE__ */ jsx("div", { style: appBadgeCircle(C$2.white), children: /* @__PURE__ */ jsx(
|
|
10090
|
+
"img",
|
|
10091
|
+
{
|
|
10092
|
+
src: packageFavicon,
|
|
10093
|
+
alt: "Ollaid SSO",
|
|
10094
|
+
style: { width: "100%", height: "100%", objectFit: "contain" }
|
|
10095
|
+
}
|
|
10096
|
+
) })
|
|
10097
|
+
] }),
|
|
9974
10098
|
/* @__PURE__ */ jsx(DialogTitle, { children: "Connexion" }),
|
|
9975
10099
|
/* @__PURE__ */ jsx(DialogDescription, { children: "Choisissez votre méthode de connexion" })
|
|
9976
10100
|
] }),
|
|
@@ -9993,13 +10117,6 @@ function LoginModal({
|
|
|
9993
10117
|
/* @__PURE__ */ jsx("div", { style: { fontSize: "0.75rem", color: C$2.gray500 }, children: "Connexion avec code SMS" })
|
|
9994
10118
|
] })
|
|
9995
10119
|
] }),
|
|
9996
|
-
/* @__PURE__ */ jsxs(Button, { variant: "outline", onClick: () => setStep("access-otp"), style: methodBtnStyle, children: [
|
|
9997
|
-
/* @__PURE__ */ jsx("div", { style: methodIconStyle(C$2.primary), children: /* @__PURE__ */ jsx(IconKeyRound, { style: { width: "1.25rem", height: "1.25rem", color: C$2.white } }) }),
|
|
9998
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
9999
|
-
/* @__PURE__ */ jsx("div", { style: { fontWeight: 500, color: C$2.gray900 }, children: "Accès OTP" }),
|
|
10000
|
-
/* @__PURE__ */ jsx("div", { style: { fontSize: "0.75rem", color: C$2.gray500 }, children: "Disponible sur le backoffice IAM" })
|
|
10001
|
-
] })
|
|
10002
|
-
] }),
|
|
10003
10120
|
/* @__PURE__ */ jsxs("div", { style: { textAlign: "center", fontSize: "0.875rem", paddingTop: "0.5rem" }, children: [
|
|
10004
10121
|
/* @__PURE__ */ jsx("span", { style: { color: C$2.gray500 }, children: "Mot de passe oublié ? " }),
|
|
10005
10122
|
/* @__PURE__ */ jsx("button", { type: "button", style: linkStyle$1, onClick: () => setShowPasswordRecovery(true), children: "Récupérer" })
|
|
@@ -10103,9 +10220,8 @@ function LoginModal({
|
|
|
10103
10220
|
/* @__PURE__ */ jsx("div", { style: iconCircle$1(C$2.accent), children: /* @__PURE__ */ jsx(IconKeyRound, { style: { width: "1.5rem", height: "1.5rem", color: C$2.white } }) }),
|
|
10104
10221
|
/* @__PURE__ */ jsx(DialogTitle, { children: "Vérification" }),
|
|
10105
10222
|
/* @__PURE__ */ jsxs(DialogDescription, { children: [
|
|
10106
|
-
"Un code de vérification a été envoyé
|
|
10107
|
-
|
|
10108
|
-
/* @__PURE__ */ jsx("strong", { style: { color: C$2.gray900 }, children: email })
|
|
10223
|
+
"Un code de vérification a été envoyé ",
|
|
10224
|
+
getOtpDeliveryLabel(otpMethod, otpSentTo, "email")
|
|
10109
10225
|
] })
|
|
10110
10226
|
] }),
|
|
10111
10227
|
/* @__PURE__ */ jsx(DialogBody, { children: /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "1rem" }, children: [
|
|
@@ -10119,7 +10235,7 @@ function LoginModal({
|
|
|
10119
10235
|
/* @__PURE__ */ jsxs(DialogHeader, { style: { textAlign: "center" }, children: [
|
|
10120
10236
|
/* @__PURE__ */ jsx("div", { style: iconCircle$1(C$2.accent), children: /* @__PURE__ */ jsx(IconPhone, { style: { width: "1.5rem", height: "1.5rem", color: C$2.white } }) }),
|
|
10121
10237
|
/* @__PURE__ */ jsx(DialogTitle, { children: "Connexion par téléphone" }),
|
|
10122
|
-
/* @__PURE__ */ jsx(DialogDescription, { children: "Entrez votre numéro pour recevoir un code
|
|
10238
|
+
/* @__PURE__ */ jsx(DialogDescription, { children: "Entrez votre numéro pour recevoir un code de vérification" })
|
|
10123
10239
|
] }),
|
|
10124
10240
|
/* @__PURE__ */ jsx(DialogBody, { children: /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "1rem" }, children: [
|
|
10125
10241
|
renderError(),
|
|
@@ -10161,7 +10277,7 @@ function LoginModal({
|
|
|
10161
10277
|
] })
|
|
10162
10278
|
] }) }),
|
|
10163
10279
|
/* @__PURE__ */ jsxs(DialogFooter, { children: [
|
|
10164
|
-
renderLoaderBtn("Recevoir le code
|
|
10280
|
+
renderLoaderBtn("Recevoir le code", "Envoi en cours...", handlePhoneInit, phone.replace(/\D/g, "").length !== 9),
|
|
10165
10281
|
showSwitchToSignup && /* @__PURE__ */ jsxs("div", { style: { textAlign: "center", fontSize: "0.875rem" }, children: [
|
|
10166
10282
|
/* @__PURE__ */ jsx("span", { style: { color: C$2.gray500 }, children: "Pas encore de compte ? " }),
|
|
10167
10283
|
/* @__PURE__ */ jsx("button", { type: "button", style: linkStyle$1, onClick: onSwitchToSignup, children: "Inscrivez-vous" })
|
|
@@ -10173,14 +10289,8 @@ function LoginModal({
|
|
|
10173
10289
|
/* @__PURE__ */ jsx("div", { style: iconCircle$1(C$2.accent), children: /* @__PURE__ */ jsx(IconPhone, { style: { width: "1.5rem", height: "1.5rem", color: C$2.white } }) }),
|
|
10174
10290
|
/* @__PURE__ */ jsx(DialogTitle, { children: "Vérification" }),
|
|
10175
10291
|
/* @__PURE__ */ jsxs(DialogDescription, { children: [
|
|
10176
|
-
"Un code a été envoyé
|
|
10177
|
-
|
|
10178
|
-
/* @__PURE__ */ jsxs("strong", { style: { color: C$2.gray900 }, children: [
|
|
10179
|
-
"+221 ",
|
|
10180
|
-
phone.slice(0, 2),
|
|
10181
|
-
"***",
|
|
10182
|
-
phone.slice(-2)
|
|
10183
|
-
] })
|
|
10292
|
+
"Un code de vérification a été envoyé ",
|
|
10293
|
+
getOtpDeliveryLabel(otpMethod, otpSentTo, "phone")
|
|
10184
10294
|
] })
|
|
10185
10295
|
] }),
|
|
10186
10296
|
/* @__PURE__ */ jsx(DialogBody, { children: /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "1rem" }, children: [
|
|
@@ -10803,7 +10913,9 @@ function useMobileRegistration(options) {
|
|
|
10803
10913
|
status: "idle",
|
|
10804
10914
|
loading: false,
|
|
10805
10915
|
error: null,
|
|
10806
|
-
conflict: null
|
|
10916
|
+
conflict: null,
|
|
10917
|
+
otpMethod: null,
|
|
10918
|
+
otpSentTo: null
|
|
10807
10919
|
});
|
|
10808
10920
|
const [formData, setFormData] = useState({});
|
|
10809
10921
|
const [accountType, setAccountType] = useState("email");
|
|
@@ -10828,6 +10940,8 @@ function useMobileRegistration(options) {
|
|
|
10828
10940
|
...prev,
|
|
10829
10941
|
processToken: response.process_token,
|
|
10830
10942
|
status: "pending_otp",
|
|
10943
|
+
otpMethod: response.otp_method || prev.otpMethod,
|
|
10944
|
+
otpSentTo: response.otp_sent_to || prev.otpSentTo,
|
|
10831
10945
|
loading: false,
|
|
10832
10946
|
conflict: null
|
|
10833
10947
|
}));
|
|
@@ -10952,11 +11066,18 @@ function useMobileRegistration(options) {
|
|
|
10952
11066
|
setState((prev) => ({ ...prev, loading: true, error: null }));
|
|
10953
11067
|
try {
|
|
10954
11068
|
const response = await mobileRegistrationService.resendOtp(state.processToken);
|
|
10955
|
-
setState((prev) => ({
|
|
11069
|
+
setState((prev) => ({
|
|
11070
|
+
...prev,
|
|
11071
|
+
loading: false,
|
|
11072
|
+
otpMethod: response.otp_method || prev.otpMethod,
|
|
11073
|
+
otpSentTo: response.otp_sent_to || prev.otpSentTo
|
|
11074
|
+
}));
|
|
10956
11075
|
return {
|
|
10957
11076
|
success: response.success,
|
|
10958
11077
|
cooldown: response.cooldown_remaining,
|
|
10959
|
-
otp_code_dev: response.otp_code_dev
|
|
11078
|
+
otp_code_dev: response.otp_code_dev,
|
|
11079
|
+
otp_method: response.otp_method,
|
|
11080
|
+
otp_sent_to: response.otp_sent_to
|
|
10960
11081
|
};
|
|
10961
11082
|
} catch (err) {
|
|
10962
11083
|
const message = getErrorMessage(err, "le renvoi");
|
|
@@ -10970,7 +11091,9 @@ function useMobileRegistration(options) {
|
|
|
10970
11091
|
status: "idle",
|
|
10971
11092
|
loading: false,
|
|
10972
11093
|
error: null,
|
|
10973
|
-
conflict: null
|
|
11094
|
+
conflict: null,
|
|
11095
|
+
otpMethod: null,
|
|
11096
|
+
otpSentTo: null
|
|
10974
11097
|
});
|
|
10975
11098
|
setFormData({});
|
|
10976
11099
|
setAccountType("email");
|
|
@@ -10985,6 +11108,8 @@ function useMobileRegistration(options) {
|
|
|
10985
11108
|
loading: state.loading,
|
|
10986
11109
|
error: state.error,
|
|
10987
11110
|
conflict: state.conflict,
|
|
11111
|
+
otpMethod: state.otpMethod,
|
|
11112
|
+
otpSentTo: state.otpSentTo,
|
|
10988
11113
|
isCompleted: state.status === "completed",
|
|
10989
11114
|
hasConflict: state.conflict !== null,
|
|
10990
11115
|
accountType,
|
|
@@ -11026,6 +11151,40 @@ const iconCircle = (bg, size = "3rem") => ({
|
|
|
11026
11151
|
alignItems: "center",
|
|
11027
11152
|
justifyContent: "center"
|
|
11028
11153
|
});
|
|
11154
|
+
const brandBadgeCircle = (bg) => ({
|
|
11155
|
+
width: "2.9rem",
|
|
11156
|
+
height: "2.9rem",
|
|
11157
|
+
borderRadius: "9999px",
|
|
11158
|
+
backgroundColor: bg,
|
|
11159
|
+
border: `1px solid ${C$1.gray200}`,
|
|
11160
|
+
boxShadow: "0 8px 18px rgba(0, 0, 0, 0.08)",
|
|
11161
|
+
display: "flex",
|
|
11162
|
+
alignItems: "center",
|
|
11163
|
+
justifyContent: "center",
|
|
11164
|
+
padding: "0.5rem",
|
|
11165
|
+
boxSizing: "border-box",
|
|
11166
|
+
overflow: "hidden",
|
|
11167
|
+
flexShrink: 0
|
|
11168
|
+
});
|
|
11169
|
+
const brandLinkPill = {
|
|
11170
|
+
width: "2.1rem",
|
|
11171
|
+
height: "2.1rem",
|
|
11172
|
+
borderRadius: "9999px",
|
|
11173
|
+
backgroundColor: C$1.gray100,
|
|
11174
|
+
border: `1px solid ${C$1.gray200}`,
|
|
11175
|
+
display: "flex",
|
|
11176
|
+
alignItems: "center",
|
|
11177
|
+
justifyContent: "center",
|
|
11178
|
+
flexShrink: 0,
|
|
11179
|
+
boxShadow: "0 4px 10px rgba(0, 0, 0, 0.05)"
|
|
11180
|
+
};
|
|
11181
|
+
const brandRowStyle = {
|
|
11182
|
+
display: "flex",
|
|
11183
|
+
alignItems: "center",
|
|
11184
|
+
justifyContent: "center",
|
|
11185
|
+
gap: "0.65rem",
|
|
11186
|
+
marginBottom: "0.9rem"
|
|
11187
|
+
};
|
|
11029
11188
|
const backBtnStyle = {
|
|
11030
11189
|
position: "absolute",
|
|
11031
11190
|
left: "1rem",
|
|
@@ -11081,7 +11240,7 @@ function SuccessOrbit() {
|
|
|
11081
11240
|
alignItems: "center",
|
|
11082
11241
|
justifyContent: "center",
|
|
11083
11242
|
zIndex: 2
|
|
11084
|
-
}, children: /* @__PURE__ */ jsx(
|
|
11243
|
+
}, children: /* @__PURE__ */ jsx(IconLink, { style: { width: "1.7rem", height: "1.7rem", color: C$1.green } }) }),
|
|
11085
11244
|
orbitIcons.map((Icon, i) => {
|
|
11086
11245
|
const angle = i * 360 / orbitIcons.length;
|
|
11087
11246
|
return /* @__PURE__ */ jsx("div", { style: {
|
|
@@ -11105,7 +11264,7 @@ function SuccessOrbit() {
|
|
|
11105
11264
|
})
|
|
11106
11265
|
] });
|
|
11107
11266
|
}
|
|
11108
|
-
function SignupModal({ open, onOpenChange, onSwitchToLogin, onSignupSuccess, saasApiUrl, iamApiUrl, defaultAccountType, onSwitchToLoginWithPhone }) {
|
|
11267
|
+
function SignupModal({ open, onOpenChange, onSwitchToLogin, onSignupSuccess, saasApiUrl, iamApiUrl, logoUrl, defaultAccountType, onSwitchToLoginWithPhone }) {
|
|
11109
11268
|
var _a, _b, _c, _d, _e, _f;
|
|
11110
11269
|
const {
|
|
11111
11270
|
status,
|
|
@@ -11116,6 +11275,8 @@ function SignupModal({ open, onOpenChange, onSwitchToLogin, onSignupSuccess, saa
|
|
|
11116
11275
|
accountType,
|
|
11117
11276
|
setAccountType,
|
|
11118
11277
|
isPhoneOnly,
|
|
11278
|
+
otpMethod,
|
|
11279
|
+
otpSentTo,
|
|
11119
11280
|
updateFormData,
|
|
11120
11281
|
initRegistration,
|
|
11121
11282
|
verifyOtp,
|
|
@@ -11134,6 +11295,7 @@ function SignupModal({ open, onOpenChange, onSwitchToLogin, onSignupSuccess, saa
|
|
|
11134
11295
|
const [signupSuccess, setSignupSuccess] = useState(false);
|
|
11135
11296
|
const [signupData, setSignupData] = useState(null);
|
|
11136
11297
|
const error = localError || regError;
|
|
11298
|
+
const primaryLogo = logoUrl || null;
|
|
11137
11299
|
useEffect(() => {
|
|
11138
11300
|
if (!open) {
|
|
11139
11301
|
setStep("intro");
|
|
@@ -11265,6 +11427,20 @@ function SignupModal({ open, onOpenChange, onSwitchToLogin, onSignupSuccess, saa
|
|
|
11265
11427
|
goToStep("info");
|
|
11266
11428
|
};
|
|
11267
11429
|
const renderError = () => error ? /* @__PURE__ */ jsx("div", { style: { padding: "0.75rem", borderRadius: "0.375rem", backgroundColor: C$1.redBg, color: C$1.red, fontSize: "0.875rem" }, children: error }) : null;
|
|
11430
|
+
const getOtpDeliveryLabel = (method, sentTo) => {
|
|
11431
|
+
if (method === "sms") {
|
|
11432
|
+
return sentTo ? `par SMS au ${sentTo}` : "par SMS";
|
|
11433
|
+
}
|
|
11434
|
+
if (method === "email") {
|
|
11435
|
+
return sentTo ? `par email à ${sentTo}` : "par email";
|
|
11436
|
+
}
|
|
11437
|
+
return accountType === "phone-only" ? `par SMS au ${formData.ccphone || "+221"} ${formData.phone || ""}`.trim() : formData.email ? `par email à ${formData.email}` : "pour vérification";
|
|
11438
|
+
};
|
|
11439
|
+
const BrandHeader = ({ color = C$1.primary }) => /* @__PURE__ */ jsxs("div", { style: brandRowStyle, children: [
|
|
11440
|
+
/* @__PURE__ */ jsx("div", { style: brandBadgeCircle(C$1.white), children: primaryLogo ? /* @__PURE__ */ jsx("img", { src: primaryLogo, alt: "Application", style: { width: "100%", height: "100%", objectFit: "cover" } }) : /* @__PURE__ */ jsx(IconShieldCheck, { style: { width: "1.4rem", height: "1.4rem", color } }) }),
|
|
11441
|
+
/* @__PURE__ */ jsx("div", { style: brandLinkPill, "aria-hidden": "true", children: /* @__PURE__ */ jsx(IconLink, { style: { width: "1rem", height: "1rem", color: C$1.gray500 } }) }),
|
|
11442
|
+
/* @__PURE__ */ jsx("div", { style: brandBadgeCircle(C$1.white), children: /* @__PURE__ */ jsx("img", { src: packageFavicon, alt: "Ollaid SSO", style: { width: "100%", height: "100%", objectFit: "contain" } }) })
|
|
11443
|
+
] });
|
|
11268
11444
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11269
11445
|
/* @__PURE__ */ jsx(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsx(DialogContent, { children: signupSuccess && signupData ? /* @__PURE__ */ jsxs(DialogHeader, { style: { textAlign: "center" }, children: [
|
|
11270
11446
|
/* @__PURE__ */ jsx(SuccessOrbit, {}),
|
|
@@ -11281,7 +11457,7 @@ function SignupModal({ open, onOpenChange, onSwitchToLogin, onSignupSuccess, saa
|
|
|
11281
11457
|
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11282
11458
|
step === "intro" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11283
11459
|
/* @__PURE__ */ jsxs(DialogHeader, { style: { textAlign: "center" }, children: [
|
|
11284
|
-
/* @__PURE__ */ jsx(
|
|
11460
|
+
/* @__PURE__ */ jsx(BrandHeader, { color: C$1.accent }),
|
|
11285
11461
|
/* @__PURE__ */ jsx(DialogTitle, { children: "Ouvrez un compte Ollaid" }),
|
|
11286
11462
|
/* @__PURE__ */ jsx(DialogDescription, { children: "Un compte unique qui vous donne accès à toutes les applications" })
|
|
11287
11463
|
] }),
|
|
@@ -11304,7 +11480,7 @@ function SignupModal({ open, onOpenChange, onSwitchToLogin, onSignupSuccess, saa
|
|
|
11304
11480
|
step === "account-type" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11305
11481
|
/* @__PURE__ */ jsx("button", { onClick: () => goToStep("intro"), style: backBtnStyle, type: "button", children: /* @__PURE__ */ jsx(IconArrowLeft, { style: { width: "1rem", height: "1rem" } }) }),
|
|
11306
11482
|
/* @__PURE__ */ jsxs(DialogHeader, { style: { textAlign: "center" }, children: [
|
|
11307
|
-
/* @__PURE__ */ jsx(
|
|
11483
|
+
/* @__PURE__ */ jsx(BrandHeader, { color: C$1.primary }),
|
|
11308
11484
|
/* @__PURE__ */ jsx(DialogTitle, { children: "Choisissez votre type de compte" })
|
|
11309
11485
|
] }),
|
|
11310
11486
|
/* @__PURE__ */ jsxs(DialogBody, { children: [
|
|
@@ -11347,7 +11523,7 @@ function SignupModal({ open, onOpenChange, onSwitchToLogin, onSignupSuccess, saa
|
|
|
11347
11523
|
/* @__PURE__ */ jsx("button", { onClick: () => goToStep("account-type"), style: backBtnStyle, type: "button", children: /* @__PURE__ */ jsx(IconArrowLeft, { style: { width: "1rem", height: "1rem" } }) }),
|
|
11348
11524
|
conflict ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11349
11525
|
/* @__PURE__ */ jsxs(DialogHeader, { style: { textAlign: "center" }, children: [
|
|
11350
|
-
/* @__PURE__ */ jsx(
|
|
11526
|
+
/* @__PURE__ */ jsx(BrandHeader, { color: C$1.amber }),
|
|
11351
11527
|
/* @__PURE__ */ jsx(DialogTitle, { children: conflict.type === "phone" ? "Numéro déjà utilisé" : "Email déjà utilisé" }),
|
|
11352
11528
|
/* @__PURE__ */ jsxs(DialogDescription, { children: [
|
|
11353
11529
|
conflict.type === "phone" ? `Le numéro ${formData.ccphone || ""} ${formData.phone || ""} est déjà associé à un compte.` : `L'adresse ${formData.email || ""} est déjà associée à un compte.`,
|
|
@@ -11387,13 +11563,13 @@ function SignupModal({ open, onOpenChange, onSwitchToLogin, onSignupSuccess, saa
|
|
|
11387
11563
|
/* ---- NORMAL INFO FORM ---- */
|
|
11388
11564
|
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11389
11565
|
/* @__PURE__ */ jsxs(DialogHeader, { style: { textAlign: "center" }, children: [
|
|
11390
|
-
/* @__PURE__ */ jsx(
|
|
11566
|
+
/* @__PURE__ */ jsx(BrandHeader, { color: C$1.primary }),
|
|
11391
11567
|
/* @__PURE__ */ jsx(DialogTitle, { children: "Créer votre compte" })
|
|
11392
11568
|
] }),
|
|
11393
11569
|
/* @__PURE__ */ jsxs("form", { onSubmit: handleInfoSubmit, style: { display: "flex", flexDirection: "column", flex: 1, minHeight: 0 }, children: [
|
|
11394
11570
|
/* @__PURE__ */ jsxs(DialogBody, { children: [
|
|
11395
11571
|
isPhoneOnly && /* @__PURE__ */ jsx("div", { style: { padding: "0.75rem", borderRadius: "0.375rem", backgroundColor: C$1.accent + "1a", color: C$1.accent, fontSize: "0.8125rem", marginBottom: "0.5rem", textAlign: "center" }, children: "📱 Inscription par téléphone — 🇸🇳 Sénégal uniquement" }),
|
|
11396
|
-
!isPhoneOnly && /* @__PURE__ */ jsx("div", { style: { padding: "0.75rem", borderRadius: "0.375rem", backgroundColor: C$1.amberBg, color: "#92400e", fontSize: "0.8125rem", marginBottom: "0.5rem", textAlign: "center" }, children: "⚠️ Un code OTP sera envoyé
|
|
11572
|
+
!isPhoneOnly && /* @__PURE__ */ jsx("div", { style: { padding: "0.75rem", borderRadius: "0.375rem", backgroundColor: C$1.amberBg, color: "#92400e", fontSize: "0.8125rem", marginBottom: "0.5rem", textAlign: "center" }, children: "⚠️ Un code OTP sera envoyé pour vérification" }),
|
|
11397
11573
|
/* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "0.75rem" }, children: [
|
|
11398
11574
|
renderError(),
|
|
11399
11575
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
@@ -11469,7 +11645,7 @@ function SignupModal({ open, onOpenChange, onSwitchToLogin, onSignupSuccess, saa
|
|
|
11469
11645
|
/* @__PURE__ */ jsx(DialogTitle, { children: "Vérification" }),
|
|
11470
11646
|
/* @__PURE__ */ jsxs(DialogDescription, { children: [
|
|
11471
11647
|
"Entrez le code envoyé ",
|
|
11472
|
-
|
|
11648
|
+
getOtpDeliveryLabel(otpMethod, otpSentTo)
|
|
11473
11649
|
] })
|
|
11474
11650
|
] }),
|
|
11475
11651
|
/* @__PURE__ */ jsx(DialogBody, { children: /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "1rem" }, children: [
|
|
@@ -11512,7 +11688,7 @@ function SignupModal({ open, onOpenChange, onSwitchToLogin, onSignupSuccess, saa
|
|
|
11512
11688
|
step === "confirm" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11513
11689
|
/* @__PURE__ */ jsx("button", { onClick: () => goToStep("password"), style: backBtnStyle, type: "button", children: /* @__PURE__ */ jsx(IconArrowLeft, { style: { width: "1rem", height: "1rem" } }) }),
|
|
11514
11690
|
/* @__PURE__ */ jsxs(DialogHeader, { style: { textAlign: "center" }, children: [
|
|
11515
|
-
/* @__PURE__ */ jsx(
|
|
11691
|
+
/* @__PURE__ */ jsx(BrandHeader, { color: C$1.primary }),
|
|
11516
11692
|
/* @__PURE__ */ jsx(DialogTitle, { children: "Confirmer votre inscription" })
|
|
11517
11693
|
] }),
|
|
11518
11694
|
/* @__PURE__ */ jsx(DialogBody, { children: /* @__PURE__ */ jsxs("div", { style: { display: "flex", flexDirection: "column", gap: "0.75rem" }, children: [
|
|
@@ -13283,10 +13459,14 @@ const ShieldCheckIcon = ({ size = 24, color = COLORS.accent }) => /* @__PURE__ *
|
|
|
13283
13459
|
/* @__PURE__ */ jsx("path", { d: "m9 12 2 2 4-4" })
|
|
13284
13460
|
] });
|
|
13285
13461
|
function needsOnboarding(user) {
|
|
13286
|
-
|
|
13462
|
+
var _a, _b, _c, _d;
|
|
13463
|
+
return !((_a = user.name) == null ? void 0 : _a.trim()) || !user.image_url || !user.phone || !user.email || !((_b = user.address) == null ? void 0 : _b.trim()) || !((_c = user.town) == null ? void 0 : _c.trim()) || !((_d = user.country) == null ? void 0 : _d.trim());
|
|
13287
13464
|
}
|
|
13288
13465
|
function isProfileComplete(user) {
|
|
13289
|
-
|
|
13466
|
+
var _a, _b, _c, _d;
|
|
13467
|
+
return Boolean(
|
|
13468
|
+
((_a = user.name) == null ? void 0 : _a.trim()) && user.image_url && user.phone && user.email && ((_b = user.address) == null ? void 0 : _b.trim()) && ((_c = user.town) == null ? void 0 : _c.trim()) && ((_d = user.country) == null ? void 0 : _d.trim())
|
|
13469
|
+
);
|
|
13290
13470
|
}
|
|
13291
13471
|
const GRADIENT_STYLE_ID = "ollaid-sso-gradient-anim";
|
|
13292
13472
|
function injectGradientAnimation() {
|
|
@@ -13878,6 +14058,7 @@ function NativeSSOPage({
|
|
|
13878
14058
|
onLoginSuccess: handleLoginSuccess,
|
|
13879
14059
|
saasApiUrl,
|
|
13880
14060
|
iamApiUrl,
|
|
14061
|
+
logoUrl,
|
|
13881
14062
|
defaultAccountType: accountType,
|
|
13882
14063
|
initialPhone: loginInitialPhone
|
|
13883
14064
|
}
|
|
@@ -13894,6 +14075,7 @@ function NativeSSOPage({
|
|
|
13894
14075
|
onSignupSuccess: handleLoginSuccess,
|
|
13895
14076
|
saasApiUrl,
|
|
13896
14077
|
iamApiUrl,
|
|
14078
|
+
logoUrl,
|
|
13897
14079
|
defaultAccountType: accountType
|
|
13898
14080
|
}
|
|
13899
14081
|
),
|