@asgardeo/react 0.13.2 → 0.13.3
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/cjs/index.js +828 -428
- package/dist/cjs/index.js.map +4 -4
- package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.d.ts +7 -1
- package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.d.ts +79 -0
- package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.d.ts +20 -0
- package/dist/components/presentation/LanguageSwitcher/LanguageSwitcher.d.ts +77 -0
- package/dist/components/presentation/OrganizationList/BaseOrganizationList.d.ts +7 -1
- package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.d.ts +7 -1
- package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.d.ts +7 -0
- package/dist/components/presentation/UserProfile/BaseUserProfile.d.ts +7 -1
- package/dist/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.d.ts +7 -1
- package/dist/components/presentation/auth/InviteUser/v2/BaseInviteUser.d.ts +7 -1
- package/dist/components/presentation/auth/SignIn/SignIn.d.ts +5 -0
- package/dist/components/presentation/auth/SignIn/v2/BaseSignIn.d.ts +7 -1
- package/dist/components/presentation/auth/SignIn/v2/SignIn.d.ts +7 -1
- package/dist/components/presentation/auth/SignUp/v2/BaseSignUp.d.ts +7 -1
- package/dist/contexts/FlowMeta/FlowMetaContext.d.ts +5 -0
- package/dist/contexts/I18n/ComponentPreferencesContext.d.ts +26 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +485 -69
- package/dist/index.js.map +4 -4
- package/package.json +3 -3
package/dist/cjs/index.js
CHANGED
|
@@ -35,10 +35,11 @@ __export(index_exports, {
|
|
|
35
35
|
Alert: () => Alert_default,
|
|
36
36
|
AsgardeoContext: () => AsgardeoContext_default,
|
|
37
37
|
AsgardeoProvider: () => AsgardeoProvider_default,
|
|
38
|
-
AsgardeoRuntimeError: () =>
|
|
38
|
+
AsgardeoRuntimeError: () => import_browser91.AsgardeoRuntimeError,
|
|
39
39
|
BaseAcceptInvite: () => BaseAcceptInvite_default,
|
|
40
40
|
BaseCreateOrganization: () => BaseCreateOrganization,
|
|
41
41
|
BaseInviteUser: () => BaseInviteUser_default,
|
|
42
|
+
BaseLanguageSwitcher: () => BaseLanguageSwitcher_default,
|
|
42
43
|
BaseOrganization: () => BaseOrganization_default,
|
|
43
44
|
BaseOrganizationList: () => BaseOrganizationList_default,
|
|
44
45
|
BaseOrganizationProfile: () => BaseOrganizationProfile_default,
|
|
@@ -64,12 +65,12 @@ __export(index_exports, {
|
|
|
64
65
|
DatePicker: () => DatePicker_default,
|
|
65
66
|
Divider: () => Divider_default,
|
|
66
67
|
EmailOtp: () => EmailOtp_default,
|
|
67
|
-
EmbeddedFlowActionVariant: () =>
|
|
68
|
-
EmbeddedFlowComponentType: () =>
|
|
69
|
-
EmbeddedFlowEventType: () =>
|
|
70
|
-
EmbeddedFlowTextVariant: () =>
|
|
71
|
-
EmbeddedSignInFlowStatus: () =>
|
|
72
|
-
EmbeddedSignInFlowType: () =>
|
|
68
|
+
EmbeddedFlowActionVariant: () => import_browser91.EmbeddedFlowActionVariantV2,
|
|
69
|
+
EmbeddedFlowComponentType: () => import_browser91.EmbeddedFlowComponentTypeV2,
|
|
70
|
+
EmbeddedFlowEventType: () => import_browser91.EmbeddedFlowEventTypeV2,
|
|
71
|
+
EmbeddedFlowTextVariant: () => import_browser91.EmbeddedFlowTextVariantV2,
|
|
72
|
+
EmbeddedSignInFlowStatus: () => import_browser91.EmbeddedSignInFlowStatusV2,
|
|
73
|
+
EmbeddedSignInFlowType: () => import_browser91.EmbeddedSignInFlowTypeV2,
|
|
73
74
|
Eye: () => Eye_default,
|
|
74
75
|
EyeOff: () => EyeOff_default,
|
|
75
76
|
FacebookButton: () => FacebookButton_default,
|
|
@@ -86,6 +87,7 @@ __export(index_exports, {
|
|
|
86
87
|
InputLabel: () => InputLabel_default,
|
|
87
88
|
InviteUser: () => InviteUser_default,
|
|
88
89
|
KeyValueInput: () => KeyValueInput_default,
|
|
90
|
+
LanguageSwitcher: () => LanguageSwitcher_default,
|
|
89
91
|
LinkedInButton: () => LinkedInButton_default,
|
|
90
92
|
Loading: () => Loading_default,
|
|
91
93
|
LogOut: () => LogOut_default,
|
|
@@ -131,14 +133,14 @@ __export(index_exports, {
|
|
|
131
133
|
createPatchOperations: () => import_browser88.createPatchOperations,
|
|
132
134
|
createSignInOption: () => createSignInOption,
|
|
133
135
|
createSignInOptionFromAuthenticator: () => createSignInOptionFromAuthenticator,
|
|
134
|
-
getActiveTheme: () =>
|
|
136
|
+
getActiveTheme: () => import_browser91.getActiveTheme,
|
|
135
137
|
getAllOrganizations: () => getAllOrganizations_default,
|
|
136
138
|
getMeOrganizations: () => getMeOrganizations_default,
|
|
137
139
|
getMeProfile: () => getScim2Me_default,
|
|
138
140
|
getOrganization: () => getOrganization_default,
|
|
139
141
|
getSchemas: () => getSchemas_default,
|
|
140
|
-
http: () =>
|
|
141
|
-
navigate: () =>
|
|
142
|
+
http: () => import_browser91.http,
|
|
143
|
+
navigate: () => import_browser91.navigate,
|
|
142
144
|
updateMeProfile: () => updateMeProfile_default,
|
|
143
145
|
updateOrganization: () => updateOrganization_default,
|
|
144
146
|
useAsgardeo: () => useAsgardeo_default,
|
|
@@ -959,6 +961,11 @@ var AsgardeoReactClient = class extends import_browser6.AsgardeoBrowserClient {
|
|
|
959
961
|
const config = await this.asgardeo.getConfigData();
|
|
960
962
|
if (config.platform === import_browser6.Platform.AsgardeoV2) {
|
|
961
963
|
this.asgardeo.clearSession();
|
|
964
|
+
if (config.signInUrl) {
|
|
965
|
+
(0, import_browser6.navigate)(config.signInUrl);
|
|
966
|
+
} else {
|
|
967
|
+
this.signIn(config.signInOptions);
|
|
968
|
+
}
|
|
962
969
|
args[1]?.(config.afterSignOutUrl || "");
|
|
963
970
|
return Promise.resolve(config.afterSignOutUrl || "");
|
|
964
971
|
}
|
|
@@ -1212,6 +1219,7 @@ var FlowProvider_default = FlowProvider;
|
|
|
1212
1219
|
|
|
1213
1220
|
// src/contexts/FlowMeta/FlowMetaProvider.tsx
|
|
1214
1221
|
var import_browser10 = require("@asgardeo/browser");
|
|
1222
|
+
var import_i18n = require("@asgardeo/i18n");
|
|
1215
1223
|
var import_react9 = require("react");
|
|
1216
1224
|
|
|
1217
1225
|
// src/contexts/FlowMeta/FlowMetaContext.ts
|
|
@@ -1261,6 +1269,7 @@ var FlowMetaProvider = ({
|
|
|
1261
1269
|
const [meta, setMeta] = (0, import_react9.useState)(null);
|
|
1262
1270
|
const [isLoading, setIsLoading] = (0, import_react9.useState)(false);
|
|
1263
1271
|
const [error, setError] = (0, import_react9.useState)(null);
|
|
1272
|
+
const [pendingLanguage, setPendingLanguage] = (0, import_react9.useState)(null);
|
|
1264
1273
|
const hasFetchedRef = (0, import_react9.useRef)(false);
|
|
1265
1274
|
const fetchFlowMeta = (0, import_react9.useCallback)(async () => {
|
|
1266
1275
|
if (!enabled) {
|
|
@@ -1278,6 +1287,44 @@ var FlowMetaProvider = ({
|
|
|
1278
1287
|
setIsLoading(false);
|
|
1279
1288
|
}
|
|
1280
1289
|
}, [enabled, baseUrl, applicationId]);
|
|
1290
|
+
const switchLanguage = (0, import_react9.useCallback)(
|
|
1291
|
+
async (language) => {
|
|
1292
|
+
if (!enabled) return;
|
|
1293
|
+
setIsLoading(true);
|
|
1294
|
+
setError(null);
|
|
1295
|
+
try {
|
|
1296
|
+
const result = await (0, import_browser10.getFlowMetaV2)({
|
|
1297
|
+
baseUrl,
|
|
1298
|
+
id: applicationId,
|
|
1299
|
+
language,
|
|
1300
|
+
type: import_browser10.FlowMetaType.App
|
|
1301
|
+
});
|
|
1302
|
+
if (result.i18n?.translations && i18nContext?.injectBundles) {
|
|
1303
|
+
const flatTranslations = {};
|
|
1304
|
+
Object.entries(result.i18n.translations).forEach(([namespace, keys]) => {
|
|
1305
|
+
Object.entries(keys).forEach(([key, value2]) => {
|
|
1306
|
+
flatTranslations[`${namespace}.${key}`] = value2;
|
|
1307
|
+
});
|
|
1308
|
+
});
|
|
1309
|
+
const bundle = { translations: flatTranslations };
|
|
1310
|
+
i18nContext.injectBundles({ [language]: bundle });
|
|
1311
|
+
}
|
|
1312
|
+
setPendingLanguage(language);
|
|
1313
|
+
setMeta(result);
|
|
1314
|
+
} catch (err) {
|
|
1315
|
+
setError(err instanceof Error ? err : new Error(String(err)));
|
|
1316
|
+
} finally {
|
|
1317
|
+
setIsLoading(false);
|
|
1318
|
+
}
|
|
1319
|
+
},
|
|
1320
|
+
[enabled, baseUrl, applicationId, i18nContext]
|
|
1321
|
+
);
|
|
1322
|
+
(0, import_react9.useEffect)(() => {
|
|
1323
|
+
if (pendingLanguage && i18nContext?.setLanguage) {
|
|
1324
|
+
i18nContext.setLanguage(pendingLanguage);
|
|
1325
|
+
setPendingLanguage(null);
|
|
1326
|
+
}
|
|
1327
|
+
}, [pendingLanguage, i18nContext?.setLanguage]);
|
|
1281
1328
|
(0, import_react9.useEffect)(() => {
|
|
1282
1329
|
if (!hasFetchedRef.current) {
|
|
1283
1330
|
hasFetchedRef.current = true;
|
|
@@ -1290,7 +1337,7 @@ var FlowMetaProvider = ({
|
|
|
1290
1337
|
if (!meta?.i18n?.translations || !i18nContext?.injectBundles) {
|
|
1291
1338
|
return;
|
|
1292
1339
|
}
|
|
1293
|
-
const metaLanguage = meta.i18n.language ||
|
|
1340
|
+
const metaLanguage = meta.i18n.language || import_i18n.TranslationBundleConstants.FALLBACK_LOCALE;
|
|
1294
1341
|
const flatTranslations = {};
|
|
1295
1342
|
Object.entries(meta.i18n.translations).forEach(([namespace, keys]) => {
|
|
1296
1343
|
Object.entries(keys).forEach(([key, value2]) => {
|
|
@@ -1311,7 +1358,8 @@ var FlowMetaProvider = ({
|
|
|
1311
1358
|
error,
|
|
1312
1359
|
fetchFlowMeta,
|
|
1313
1360
|
isLoading,
|
|
1314
|
-
meta
|
|
1361
|
+
meta,
|
|
1362
|
+
switchLanguage
|
|
1315
1363
|
};
|
|
1316
1364
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(FlowMetaContext_default.Provider, { value, children });
|
|
1317
1365
|
};
|
|
@@ -1319,50 +1367,112 @@ var FlowMetaProvider_default = FlowMetaProvider;
|
|
|
1319
1367
|
|
|
1320
1368
|
// src/contexts/I18n/I18nProvider.tsx
|
|
1321
1369
|
var import_browser11 = require("@asgardeo/browser");
|
|
1322
|
-
var
|
|
1370
|
+
var import_i18n2 = require("@asgardeo/i18n");
|
|
1323
1371
|
var import_react10 = require("react");
|
|
1324
1372
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
1325
1373
|
var logger = (0, import_browser11.createPackageComponentLogger)(
|
|
1326
1374
|
"@asgardeo/react",
|
|
1327
1375
|
"I18nProvider"
|
|
1328
1376
|
);
|
|
1329
|
-
var
|
|
1377
|
+
var DEFAULT_STORAGE_KEY = "asgardeo-i18n-language";
|
|
1378
|
+
var DEFAULT_URL_PARAM = "lang";
|
|
1330
1379
|
var detectBrowserLanguage = () => {
|
|
1331
1380
|
if (typeof window !== "undefined" && window.navigator) {
|
|
1332
|
-
return window.navigator.language ||
|
|
1381
|
+
return window.navigator.language || import_i18n2.TranslationBundleConstants.FALLBACK_LOCALE;
|
|
1333
1382
|
}
|
|
1334
|
-
return
|
|
1383
|
+
return import_i18n2.TranslationBundleConstants.FALLBACK_LOCALE;
|
|
1335
1384
|
};
|
|
1336
|
-
var
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1385
|
+
var deriveRootDomain = (hostname) => {
|
|
1386
|
+
const parts = hostname.split(".");
|
|
1387
|
+
return parts.length > 1 ? parts.slice(-2).join(".") : hostname;
|
|
1388
|
+
};
|
|
1389
|
+
var getCookie = (name) => {
|
|
1390
|
+
if (typeof document === "undefined") return null;
|
|
1391
|
+
const match = document.cookie.match(
|
|
1392
|
+
new RegExp(`(?:^|; )${name.replace(/([.*+?^${}()|[\]\\])/g, "\\$1")}=([^;]*)`)
|
|
1393
|
+
);
|
|
1394
|
+
return match ? decodeURIComponent(match[1]) : null;
|
|
1395
|
+
};
|
|
1396
|
+
var setCookie = (name, value, domain) => {
|
|
1397
|
+
if (typeof document === "undefined") return;
|
|
1398
|
+
const maxAge = 365 * 24 * 60 * 60;
|
|
1399
|
+
const secure = typeof window !== "undefined" && window.location.protocol === "https:" ? "; Secure" : "";
|
|
1400
|
+
document.cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}; Max-Age=${maxAge}; Path=/; Domain=${domain}; SameSite=Lax${secure}`;
|
|
1401
|
+
};
|
|
1402
|
+
var createStorageAdapter = (strategy, key, cookieDomain) => {
|
|
1403
|
+
switch (strategy) {
|
|
1404
|
+
case "cookie":
|
|
1405
|
+
return {
|
|
1406
|
+
read: () => getCookie(key),
|
|
1407
|
+
write: (language) => {
|
|
1408
|
+
const domain = cookieDomain ?? (typeof window !== "undefined" ? deriveRootDomain(window.location.hostname) : "");
|
|
1409
|
+
if (domain) setCookie(key, language, domain);
|
|
1410
|
+
}
|
|
1411
|
+
};
|
|
1412
|
+
case "localStorage":
|
|
1413
|
+
return {
|
|
1414
|
+
read: () => {
|
|
1415
|
+
if (typeof window === "undefined" || !window.localStorage) return null;
|
|
1416
|
+
try {
|
|
1417
|
+
return window.localStorage.getItem(key);
|
|
1418
|
+
} catch {
|
|
1419
|
+
return null;
|
|
1420
|
+
}
|
|
1421
|
+
},
|
|
1422
|
+
write: (language) => {
|
|
1423
|
+
if (typeof window === "undefined" || !window.localStorage) return;
|
|
1424
|
+
try {
|
|
1425
|
+
window.localStorage.setItem(key, language);
|
|
1426
|
+
} catch {
|
|
1427
|
+
logger.warn("Failed to persist language preference to localStorage.");
|
|
1428
|
+
}
|
|
1429
|
+
}
|
|
1430
|
+
};
|
|
1431
|
+
case "none":
|
|
1432
|
+
default:
|
|
1433
|
+
return { read: () => null, write: () => {
|
|
1434
|
+
} };
|
|
1343
1435
|
}
|
|
1344
|
-
return null;
|
|
1345
1436
|
};
|
|
1346
|
-
var
|
|
1347
|
-
if (typeof window
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
}
|
|
1437
|
+
var detectUrlParamLanguage = (paramName) => {
|
|
1438
|
+
if (typeof window === "undefined") return null;
|
|
1439
|
+
try {
|
|
1440
|
+
return new URLSearchParams(window.location.search).get(paramName);
|
|
1441
|
+
} catch {
|
|
1442
|
+
return null;
|
|
1353
1443
|
}
|
|
1354
1444
|
};
|
|
1355
1445
|
var I18nProvider = ({
|
|
1356
1446
|
children,
|
|
1357
1447
|
preferences
|
|
1358
1448
|
}) => {
|
|
1359
|
-
const defaultBundles = (0,
|
|
1449
|
+
const defaultBundles = (0, import_i18n2.getDefaultI18nBundles)();
|
|
1450
|
+
const storageStrategy = preferences?.storageStrategy ?? "cookie";
|
|
1451
|
+
const storageKey = preferences?.storageKey ?? DEFAULT_STORAGE_KEY;
|
|
1452
|
+
const urlParamConfig = preferences?.urlParam === void 0 ? DEFAULT_URL_PARAM : preferences.urlParam;
|
|
1453
|
+
const resolvedCookieDomain = (0, import_react10.useMemo)(() => {
|
|
1454
|
+
if (storageStrategy !== "cookie") return void 0;
|
|
1455
|
+
if (preferences?.cookieDomain) return preferences.cookieDomain;
|
|
1456
|
+
return typeof window !== "undefined" ? deriveRootDomain(window.location.hostname) : void 0;
|
|
1457
|
+
}, [storageStrategy, preferences?.cookieDomain]);
|
|
1458
|
+
const storage = (0, import_react10.useMemo)(
|
|
1459
|
+
() => createStorageAdapter(storageStrategy, storageKey, resolvedCookieDomain),
|
|
1460
|
+
[storageStrategy, storageKey, resolvedCookieDomain]
|
|
1461
|
+
);
|
|
1360
1462
|
const determineInitialLanguage = () => {
|
|
1361
|
-
|
|
1362
|
-
|
|
1463
|
+
if (preferences?.language) return preferences.language;
|
|
1464
|
+
if (urlParamConfig !== false) {
|
|
1465
|
+
const urlLanguage = detectUrlParamLanguage(urlParamConfig);
|
|
1466
|
+
if (urlLanguage) {
|
|
1467
|
+
storage.write(urlLanguage);
|
|
1468
|
+
return urlLanguage;
|
|
1469
|
+
}
|
|
1470
|
+
}
|
|
1471
|
+
const storedLanguage = storage.read();
|
|
1472
|
+
if (storedLanguage) return storedLanguage;
|
|
1363
1473
|
const browserLanguage = detectBrowserLanguage();
|
|
1364
|
-
|
|
1365
|
-
return
|
|
1474
|
+
if (browserLanguage) return browserLanguage;
|
|
1475
|
+
return preferences?.fallbackLanguage || import_i18n2.TranslationBundleConstants.FALLBACK_LOCALE;
|
|
1366
1476
|
};
|
|
1367
1477
|
const [currentLanguage, setCurrentLanguage] = (0, import_react10.useState)(determineInitialLanguage);
|
|
1368
1478
|
const [injectedBundles, setInjectedBundles] = (0, import_react10.useState)({});
|
|
@@ -1371,13 +1481,16 @@ var I18nProvider = ({
|
|
|
1371
1481
|
setInjectedBundles((prev) => {
|
|
1372
1482
|
const merged = { ...prev };
|
|
1373
1483
|
Object.entries(newBundles).forEach(([key, bundle]) => {
|
|
1484
|
+
const normalizedTranslations = (0, import_i18n2.normalizeTranslations)(
|
|
1485
|
+
bundle.translations
|
|
1486
|
+
);
|
|
1374
1487
|
if (merged[key]) {
|
|
1375
1488
|
merged[key] = {
|
|
1376
1489
|
...merged[key],
|
|
1377
|
-
translations: (0, import_browser11.deepMerge)(merged[key].translations,
|
|
1490
|
+
translations: (0, import_browser11.deepMerge)(merged[key].translations, normalizedTranslations)
|
|
1378
1491
|
};
|
|
1379
1492
|
} else {
|
|
1380
|
-
merged[key] = bundle;
|
|
1493
|
+
merged[key] = { ...bundle, translations: normalizedTranslations };
|
|
1381
1494
|
}
|
|
1382
1495
|
});
|
|
1383
1496
|
return merged;
|
|
@@ -1392,34 +1505,40 @@ var I18nProvider = ({
|
|
|
1392
1505
|
merged[languageKey] = bundle;
|
|
1393
1506
|
});
|
|
1394
1507
|
Object.entries(injectedBundles).forEach(([key, bundle]) => {
|
|
1508
|
+
const normalizedTranslations = (0, import_i18n2.normalizeTranslations)(
|
|
1509
|
+
bundle.translations
|
|
1510
|
+
);
|
|
1395
1511
|
if (merged[key]) {
|
|
1396
1512
|
merged[key] = {
|
|
1397
1513
|
...merged[key],
|
|
1398
|
-
translations: (0, import_browser11.deepMerge)(merged[key].translations,
|
|
1514
|
+
translations: (0, import_browser11.deepMerge)(merged[key].translations, normalizedTranslations)
|
|
1399
1515
|
};
|
|
1400
1516
|
} else {
|
|
1401
|
-
merged[key] = bundle;
|
|
1517
|
+
merged[key] = { ...bundle, translations: normalizedTranslations };
|
|
1402
1518
|
}
|
|
1403
1519
|
});
|
|
1404
1520
|
if (preferences?.bundles) {
|
|
1405
1521
|
Object.entries(preferences.bundles).forEach(([key, userBundle]) => {
|
|
1522
|
+
const normalizedTranslations = (0, import_i18n2.normalizeTranslations)(
|
|
1523
|
+
userBundle.translations
|
|
1524
|
+
);
|
|
1406
1525
|
if (merged[key]) {
|
|
1407
1526
|
merged[key] = {
|
|
1408
1527
|
...merged[key],
|
|
1409
1528
|
metadata: userBundle.metadata ? { ...merged[key].metadata, ...userBundle.metadata } : merged[key].metadata,
|
|
1410
|
-
translations: (0, import_browser11.deepMerge)(merged[key].translations,
|
|
1529
|
+
translations: (0, import_browser11.deepMerge)(merged[key].translations, normalizedTranslations)
|
|
1411
1530
|
};
|
|
1412
1531
|
} else {
|
|
1413
|
-
merged[key] = userBundle;
|
|
1532
|
+
merged[key] = { ...userBundle, translations: normalizedTranslations };
|
|
1414
1533
|
}
|
|
1415
1534
|
});
|
|
1416
1535
|
}
|
|
1417
1536
|
return merged;
|
|
1418
1537
|
}, [defaultBundles, injectedBundles, preferences?.bundles]);
|
|
1419
|
-
const fallbackLanguage = preferences?.fallbackLanguage ||
|
|
1538
|
+
const fallbackLanguage = preferences?.fallbackLanguage || import_i18n2.TranslationBundleConstants.FALLBACK_LOCALE;
|
|
1420
1539
|
(0, import_react10.useEffect)(() => {
|
|
1421
|
-
|
|
1422
|
-
}, [currentLanguage]);
|
|
1540
|
+
storage.write(currentLanguage);
|
|
1541
|
+
}, [currentLanguage, storage]);
|
|
1423
1542
|
const t = (0, import_react10.useCallback)(
|
|
1424
1543
|
(key, params) => {
|
|
1425
1544
|
let translation;
|
|
@@ -2485,49 +2604,63 @@ var useTheme_default = useTheme;
|
|
|
2485
2604
|
|
|
2486
2605
|
// src/hooks/useTranslation.ts
|
|
2487
2606
|
var import_browser17 = require("@asgardeo/browser");
|
|
2607
|
+
var import_i18n3 = require("@asgardeo/i18n");
|
|
2608
|
+
var import_react26 = require("react");
|
|
2609
|
+
|
|
2610
|
+
// src/contexts/I18n/ComponentPreferencesContext.ts
|
|
2488
2611
|
var import_react25 = require("react");
|
|
2612
|
+
var ComponentPreferencesContext = (0, import_react25.createContext)(void 0);
|
|
2613
|
+
var ComponentPreferencesContext_default = ComponentPreferencesContext;
|
|
2614
|
+
|
|
2615
|
+
// src/hooks/useTranslation.ts
|
|
2489
2616
|
var useTranslation = (componentPreferences) => {
|
|
2490
|
-
const context = (0,
|
|
2617
|
+
const context = (0, import_react26.useContext)(I18nContext_default);
|
|
2618
|
+
const componentPrefs = (0, import_react26.useContext)(ComponentPreferencesContext_default);
|
|
2619
|
+
const contextPreferences = componentPrefs?.i18n;
|
|
2491
2620
|
if (!context) {
|
|
2492
2621
|
throw new Error(
|
|
2493
2622
|
"useTranslation must be used within an I18nProvider. Make sure your component is wrapped with AsgardeoProvider which includes I18nProvider."
|
|
2494
2623
|
);
|
|
2495
2624
|
}
|
|
2625
|
+
const effectivePreferences = componentPreferences ?? contextPreferences;
|
|
2496
2626
|
const { t: globalT, currentLanguage, setLanguage, bundles: globalBundles, fallbackLanguage } = context;
|
|
2497
|
-
const mergedBundles = (0,
|
|
2498
|
-
if (!
|
|
2627
|
+
const mergedBundles = (0, import_react26.useMemo)(() => {
|
|
2628
|
+
if (!effectivePreferences?.bundles) {
|
|
2499
2629
|
return globalBundles;
|
|
2500
2630
|
}
|
|
2501
2631
|
const merged = {};
|
|
2502
2632
|
Object.entries(globalBundles).forEach(([key, bundle]) => {
|
|
2503
2633
|
merged[key] = bundle;
|
|
2504
2634
|
});
|
|
2505
|
-
Object.entries(
|
|
2635
|
+
Object.entries(effectivePreferences.bundles).forEach(([key, componentBundle]) => {
|
|
2636
|
+
const normalizedTranslations = (0, import_i18n3.normalizeTranslations)(
|
|
2637
|
+
componentBundle.translations
|
|
2638
|
+
);
|
|
2506
2639
|
if (merged[key]) {
|
|
2507
2640
|
merged[key] = {
|
|
2508
2641
|
...merged[key],
|
|
2509
2642
|
metadata: componentBundle.metadata ? { ...merged[key].metadata, ...componentBundle.metadata } : merged[key].metadata,
|
|
2510
|
-
translations: (0, import_browser17.deepMerge)(merged[key].translations,
|
|
2643
|
+
translations: (0, import_browser17.deepMerge)(merged[key].translations, normalizedTranslations)
|
|
2511
2644
|
};
|
|
2512
2645
|
} else {
|
|
2513
|
-
merged[key] = componentBundle;
|
|
2646
|
+
merged[key] = { ...componentBundle, translations: normalizedTranslations };
|
|
2514
2647
|
}
|
|
2515
2648
|
});
|
|
2516
2649
|
return merged;
|
|
2517
|
-
}, [globalBundles,
|
|
2518
|
-
const enhancedT = (0,
|
|
2519
|
-
if (!
|
|
2650
|
+
}, [globalBundles, effectivePreferences?.bundles]);
|
|
2651
|
+
const enhancedT = (0, import_react26.useMemo)(() => {
|
|
2652
|
+
if (!effectivePreferences?.bundles) {
|
|
2520
2653
|
return globalT;
|
|
2521
2654
|
}
|
|
2522
2655
|
return (key, params) => {
|
|
2523
2656
|
let translation;
|
|
2524
2657
|
const currentBundle = mergedBundles[currentLanguage];
|
|
2525
|
-
if (currentBundle?.translations[key]) {
|
|
2658
|
+
if (currentBundle?.translations?.[key]) {
|
|
2526
2659
|
translation = currentBundle.translations[key];
|
|
2527
2660
|
}
|
|
2528
2661
|
if (!translation && currentLanguage !== fallbackLanguage) {
|
|
2529
2662
|
const fallbackBundle = mergedBundles[fallbackLanguage];
|
|
2530
|
-
if (fallbackBundle?.translations[key]) {
|
|
2663
|
+
if (fallbackBundle?.translations?.[key]) {
|
|
2531
2664
|
translation = fallbackBundle.translations[key];
|
|
2532
2665
|
}
|
|
2533
2666
|
}
|
|
@@ -2542,7 +2675,7 @@ var useTranslation = (componentPreferences) => {
|
|
|
2542
2675
|
}
|
|
2543
2676
|
return translation;
|
|
2544
2677
|
};
|
|
2545
|
-
}, [mergedBundles, currentLanguage, fallbackLanguage, globalT,
|
|
2678
|
+
}, [mergedBundles, currentLanguage, fallbackLanguage, globalT, effectivePreferences?.bundles]);
|
|
2546
2679
|
return {
|
|
2547
2680
|
availableLanguages: Object.keys(mergedBundles),
|
|
2548
2681
|
currentLanguage,
|
|
@@ -2553,7 +2686,7 @@ var useTranslation = (componentPreferences) => {
|
|
|
2553
2686
|
var useTranslation_default = useTranslation;
|
|
2554
2687
|
|
|
2555
2688
|
// src/hooks/useForm.ts
|
|
2556
|
-
var
|
|
2689
|
+
var import_react27 = require("react");
|
|
2557
2690
|
var useForm = (config = {}) => {
|
|
2558
2691
|
const {
|
|
2559
2692
|
initialValues = {},
|
|
@@ -2563,15 +2696,15 @@ var useForm = (config = {}) => {
|
|
|
2563
2696
|
validateOnBlur = true,
|
|
2564
2697
|
requiredMessage = "This field is required"
|
|
2565
2698
|
} = config;
|
|
2566
|
-
const [values, setFormValues] = (0,
|
|
2567
|
-
const [touched, setFormTouched] = (0,
|
|
2568
|
-
const [errors, setFormErrors] = (0,
|
|
2569
|
-
const [isSubmitted, setIsSubmitted] = (0,
|
|
2570
|
-
const getFieldConfig = (0,
|
|
2699
|
+
const [values, setFormValues] = (0, import_react27.useState)({ ...initialValues });
|
|
2700
|
+
const [touched, setFormTouched] = (0, import_react27.useState)({});
|
|
2701
|
+
const [errors, setFormErrors] = (0, import_react27.useState)({});
|
|
2702
|
+
const [isSubmitted, setIsSubmitted] = (0, import_react27.useState)(false);
|
|
2703
|
+
const getFieldConfig = (0, import_react27.useCallback)(
|
|
2571
2704
|
(name) => fields.find((field) => field.name === name),
|
|
2572
2705
|
[fields]
|
|
2573
2706
|
);
|
|
2574
|
-
const validateField = (0,
|
|
2707
|
+
const validateField = (0, import_react27.useCallback)(
|
|
2575
2708
|
(name) => {
|
|
2576
2709
|
const value = values[name] || "";
|
|
2577
2710
|
const fieldConfig = getFieldConfig(name);
|
|
@@ -2586,7 +2719,7 @@ var useForm = (config = {}) => {
|
|
|
2586
2719
|
},
|
|
2587
2720
|
[values, getFieldConfig, requiredMessage]
|
|
2588
2721
|
);
|
|
2589
|
-
const validateForm = (0,
|
|
2722
|
+
const validateForm = (0, import_react27.useCallback)(() => {
|
|
2590
2723
|
const newErrors = {};
|
|
2591
2724
|
fields.forEach((field) => {
|
|
2592
2725
|
const error = validateField(field.name);
|
|
@@ -2608,7 +2741,7 @@ var useForm = (config = {}) => {
|
|
|
2608
2741
|
};
|
|
2609
2742
|
}, [fields, validateField, validator, values]);
|
|
2610
2743
|
const isValid = Object.keys(errors).length === 0;
|
|
2611
|
-
const setValue = (0,
|
|
2744
|
+
const setValue = (0, import_react27.useCallback)(
|
|
2612
2745
|
(name, value) => {
|
|
2613
2746
|
setFormValues((prev) => ({
|
|
2614
2747
|
...prev,
|
|
@@ -2629,13 +2762,13 @@ var useForm = (config = {}) => {
|
|
|
2629
2762
|
},
|
|
2630
2763
|
[validateField, validateOnChange]
|
|
2631
2764
|
);
|
|
2632
|
-
const setValues = (0,
|
|
2765
|
+
const setValues = (0, import_react27.useCallback)((newValues) => {
|
|
2633
2766
|
setFormValues((prev) => ({
|
|
2634
2767
|
...prev,
|
|
2635
2768
|
...newValues
|
|
2636
2769
|
}));
|
|
2637
2770
|
}, []);
|
|
2638
|
-
const setTouched = (0,
|
|
2771
|
+
const setTouched = (0, import_react27.useCallback)(
|
|
2639
2772
|
(name, isTouched = true) => {
|
|
2640
2773
|
setFormTouched((prev) => ({
|
|
2641
2774
|
...prev,
|
|
@@ -2656,7 +2789,7 @@ var useForm = (config = {}) => {
|
|
|
2656
2789
|
},
|
|
2657
2790
|
[validateField, validateOnBlur]
|
|
2658
2791
|
);
|
|
2659
|
-
const setTouchedFields = (0,
|
|
2792
|
+
const setTouchedFields = (0, import_react27.useCallback)(
|
|
2660
2793
|
(touchedFields) => {
|
|
2661
2794
|
setFormTouched((prev) => ({
|
|
2662
2795
|
...prev,
|
|
@@ -2665,7 +2798,7 @@ var useForm = (config = {}) => {
|
|
|
2665
2798
|
},
|
|
2666
2799
|
[]
|
|
2667
2800
|
);
|
|
2668
|
-
const touchAllFields = (0,
|
|
2801
|
+
const touchAllFields = (0, import_react27.useCallback)(() => {
|
|
2669
2802
|
const allTouched = fields.reduce((acc, field) => {
|
|
2670
2803
|
acc[field.name] = true;
|
|
2671
2804
|
return acc;
|
|
@@ -2674,13 +2807,13 @@ var useForm = (config = {}) => {
|
|
|
2674
2807
|
const validation = validateForm();
|
|
2675
2808
|
setFormErrors(validation.errors);
|
|
2676
2809
|
}, [fields, validateForm]);
|
|
2677
|
-
const setError = (0,
|
|
2810
|
+
const setError = (0, import_react27.useCallback)((name, error) => {
|
|
2678
2811
|
setFormErrors((prev) => ({
|
|
2679
2812
|
...prev,
|
|
2680
2813
|
[name]: error
|
|
2681
2814
|
}));
|
|
2682
2815
|
}, []);
|
|
2683
|
-
const setErrors = (0,
|
|
2816
|
+
const setErrors = (0, import_react27.useCallback)(
|
|
2684
2817
|
(newErrors) => {
|
|
2685
2818
|
setFormErrors((prev) => ({
|
|
2686
2819
|
...prev,
|
|
@@ -2689,16 +2822,16 @@ var useForm = (config = {}) => {
|
|
|
2689
2822
|
},
|
|
2690
2823
|
[]
|
|
2691
2824
|
);
|
|
2692
|
-
const clearErrors = (0,
|
|
2825
|
+
const clearErrors = (0, import_react27.useCallback)(() => {
|
|
2693
2826
|
setFormErrors({});
|
|
2694
2827
|
}, []);
|
|
2695
|
-
const reset = (0,
|
|
2828
|
+
const reset = (0, import_react27.useCallback)(() => {
|
|
2696
2829
|
setFormValues({ ...initialValues });
|
|
2697
2830
|
setFormTouched({});
|
|
2698
2831
|
setFormErrors({});
|
|
2699
2832
|
setIsSubmitted(false);
|
|
2700
2833
|
}, [initialValues]);
|
|
2701
|
-
const handleSubmit = (0,
|
|
2834
|
+
const handleSubmit = (0, import_react27.useCallback)(
|
|
2702
2835
|
(onSubmit) => async (e) => {
|
|
2703
2836
|
if (e) {
|
|
2704
2837
|
e.preventDefault();
|
|
@@ -2712,7 +2845,7 @@ var useForm = (config = {}) => {
|
|
|
2712
2845
|
},
|
|
2713
2846
|
[values, touchAllFields, validateForm]
|
|
2714
2847
|
);
|
|
2715
|
-
const getFieldProps = (0,
|
|
2848
|
+
const getFieldProps = (0, import_react27.useCallback)(
|
|
2716
2849
|
(name) => {
|
|
2717
2850
|
const fieldConfig = getFieldConfig(name);
|
|
2718
2851
|
return {
|
|
@@ -2781,17 +2914,17 @@ var useBranding_default = useBranding;
|
|
|
2781
2914
|
// src/components/actions/SignInButton/BaseSignInButton.tsx
|
|
2782
2915
|
var import_browser21 = require("@asgardeo/browser");
|
|
2783
2916
|
var import_css5 = require("@emotion/css");
|
|
2784
|
-
var
|
|
2917
|
+
var import_react31 = require("react");
|
|
2785
2918
|
|
|
2786
2919
|
// src/components/primitives/Button/Button.tsx
|
|
2787
2920
|
var import_browser20 = require("@asgardeo/browser");
|
|
2788
2921
|
var import_css4 = require("@emotion/css");
|
|
2789
|
-
var
|
|
2922
|
+
var import_react30 = require("react");
|
|
2790
2923
|
|
|
2791
2924
|
// src/components/primitives/Button/Button.styles.ts
|
|
2792
2925
|
var import_css = require("@emotion/css");
|
|
2793
|
-
var
|
|
2794
|
-
var useStyles = (theme, colorScheme, color, variant, size, fullWidth, disabled, loading, shape = "square") => (0,
|
|
2926
|
+
var import_react28 = require("react");
|
|
2927
|
+
var useStyles = (theme, colorScheme, color, variant, size, fullWidth, disabled, loading, shape = "square") => (0, import_react28.useMemo)(() => {
|
|
2795
2928
|
const iconSizeMap = {
|
|
2796
2929
|
large: `calc(${theme.vars.spacing.unit} * 5)`,
|
|
2797
2930
|
medium: `calc(${theme.vars.spacing.unit} * 4)`,
|
|
@@ -3114,8 +3247,8 @@ var import_css3 = require("@emotion/css");
|
|
|
3114
3247
|
|
|
3115
3248
|
// src/components/primitives/Spinner/Spinner.styles.ts
|
|
3116
3249
|
var import_css2 = require("@emotion/css");
|
|
3117
|
-
var
|
|
3118
|
-
var useStyles2 = (theme, colorScheme, size, color) => (0,
|
|
3250
|
+
var import_react29 = require("react");
|
|
3251
|
+
var useStyles2 = (theme, colorScheme, size, color) => (0, import_react29.useMemo)(() => {
|
|
3119
3252
|
const spinnerColor = color || theme.vars.colors.primary.main;
|
|
3120
3253
|
const spinnerSizes = {
|
|
3121
3254
|
large: "32px",
|
|
@@ -3189,7 +3322,7 @@ var getSpinnerWidth = (sizeVal, spacingUnit) => {
|
|
|
3189
3322
|
}
|
|
3190
3323
|
return `calc(${spacingUnit} * 2.5)`;
|
|
3191
3324
|
};
|
|
3192
|
-
var Button = (0,
|
|
3325
|
+
var Button = (0, import_react30.forwardRef)(
|
|
3193
3326
|
({
|
|
3194
3327
|
color = "primary",
|
|
3195
3328
|
variant = "solid",
|
|
@@ -3269,7 +3402,7 @@ var Button_default = Button;
|
|
|
3269
3402
|
|
|
3270
3403
|
// src/components/actions/SignInButton/BaseSignInButton.tsx
|
|
3271
3404
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
3272
|
-
var BaseSignInButton = (0,
|
|
3405
|
+
var BaseSignInButton = (0, import_react31.forwardRef)(
|
|
3273
3406
|
({ children, className, style, signIn, isLoading, meta, preferences, ...rest }, ref) => {
|
|
3274
3407
|
if (typeof children === "function") {
|
|
3275
3408
|
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children: children({ isLoading, meta, signIn }) });
|
|
@@ -3294,13 +3427,13 @@ var BaseSignInButton_default = BaseSignInButton;
|
|
|
3294
3427
|
|
|
3295
3428
|
// src/components/actions/SignInButton/SignInButton.tsx
|
|
3296
3429
|
var import_browser22 = require("@asgardeo/browser");
|
|
3297
|
-
var
|
|
3430
|
+
var import_react32 = require("react");
|
|
3298
3431
|
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
3299
|
-
var SignInButton = (0,
|
|
3432
|
+
var SignInButton = (0, import_react32.forwardRef)(
|
|
3300
3433
|
({ children, onClick, preferences, signInOptions: overriddenSignInOptions = {}, ...rest }, ref) => {
|
|
3301
3434
|
const { signIn, signInUrl, signInOptions, meta } = useAsgardeo_default();
|
|
3302
3435
|
const { t } = useTranslation_default(preferences?.i18n);
|
|
3303
|
-
const [isLoading, setIsLoading] = (0,
|
|
3436
|
+
const [isLoading, setIsLoading] = (0, import_react32.useState)(false);
|
|
3304
3437
|
const handleSignIn = async (e) => {
|
|
3305
3438
|
try {
|
|
3306
3439
|
setIsLoading(true);
|
|
@@ -3344,9 +3477,9 @@ var SignInButton_default = SignInButton;
|
|
|
3344
3477
|
// src/components/actions/SignOutButton/BaseSignOutButton.tsx
|
|
3345
3478
|
var import_browser23 = require("@asgardeo/browser");
|
|
3346
3479
|
var import_css6 = require("@emotion/css");
|
|
3347
|
-
var
|
|
3480
|
+
var import_react33 = require("react");
|
|
3348
3481
|
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
3349
|
-
var BaseSignOutButton = (0,
|
|
3482
|
+
var BaseSignOutButton = (0, import_react33.forwardRef)(
|
|
3350
3483
|
({ children, className, style, signOut, isLoading, meta, preferences, ...rest }, ref) => {
|
|
3351
3484
|
if (typeof children === "function") {
|
|
3352
3485
|
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_jsx_runtime15.Fragment, { children: children({ isLoading, meta, signOut }) });
|
|
@@ -3371,12 +3504,12 @@ var BaseSignOutButton_default = BaseSignOutButton;
|
|
|
3371
3504
|
|
|
3372
3505
|
// src/components/actions/SignOutButton/SignOutButton.tsx
|
|
3373
3506
|
var import_browser24 = require("@asgardeo/browser");
|
|
3374
|
-
var
|
|
3507
|
+
var import_react34 = require("react");
|
|
3375
3508
|
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
3376
|
-
var SignOutButton = (0,
|
|
3509
|
+
var SignOutButton = (0, import_react34.forwardRef)(({ children, onClick, preferences, ...rest }, ref) => {
|
|
3377
3510
|
const { signOut, meta } = useAsgardeo_default();
|
|
3378
3511
|
const { t } = useTranslation_default(preferences?.i18n);
|
|
3379
|
-
const [isLoading, setIsLoading] = (0,
|
|
3512
|
+
const [isLoading, setIsLoading] = (0, import_react34.useState)(false);
|
|
3380
3513
|
const handleSignOut = async (e) => {
|
|
3381
3514
|
try {
|
|
3382
3515
|
setIsLoading(true);
|
|
@@ -3415,9 +3548,9 @@ var SignOutButton_default = SignOutButton;
|
|
|
3415
3548
|
// src/components/actions/SignUpButton/BaseSignUpButton.tsx
|
|
3416
3549
|
var import_browser25 = require("@asgardeo/browser");
|
|
3417
3550
|
var import_css7 = require("@emotion/css");
|
|
3418
|
-
var
|
|
3551
|
+
var import_react35 = require("react");
|
|
3419
3552
|
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
3420
|
-
var BaseSignUpButton = (0,
|
|
3553
|
+
var BaseSignUpButton = (0, import_react35.forwardRef)(
|
|
3421
3554
|
({ children, className, style, signUp, isLoading, meta, preferences, ...rest }, ref) => {
|
|
3422
3555
|
if (typeof children === "function") {
|
|
3423
3556
|
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_jsx_runtime17.Fragment, { children: children({ isLoading, meta, signUp }) });
|
|
@@ -3444,12 +3577,12 @@ var BaseSignUpButton_default = BaseSignUpButton;
|
|
|
3444
3577
|
|
|
3445
3578
|
// src/components/actions/SignUpButton/SignUpButton.tsx
|
|
3446
3579
|
var import_browser26 = require("@asgardeo/browser");
|
|
3447
|
-
var
|
|
3580
|
+
var import_react36 = require("react");
|
|
3448
3581
|
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
3449
|
-
var SignUpButton = (0,
|
|
3582
|
+
var SignUpButton = (0, import_react36.forwardRef)(({ children, onClick, preferences, ...rest }, ref) => {
|
|
3450
3583
|
const { signUp, signUpUrl, meta } = useAsgardeo_default();
|
|
3451
3584
|
const { t } = useTranslation_default(preferences?.i18n);
|
|
3452
|
-
const [isLoading, setIsLoading] = (0,
|
|
3585
|
+
const [isLoading, setIsLoading] = (0, import_react36.useState)(false);
|
|
3453
3586
|
const handleSignUp = async (e) => {
|
|
3454
3587
|
try {
|
|
3455
3588
|
setIsLoading(true);
|
|
@@ -3537,14 +3670,14 @@ var import_browser52 = require("@asgardeo/browser");
|
|
|
3537
3670
|
// src/components/presentation/auth/SignIn/v1/BaseSignIn.tsx
|
|
3538
3671
|
var import_browser48 = require("@asgardeo/browser");
|
|
3539
3672
|
var import_css35 = require("@emotion/css");
|
|
3540
|
-
var
|
|
3673
|
+
var import_react60 = require("react");
|
|
3541
3674
|
|
|
3542
3675
|
// src/components/presentation/auth/SignIn/v1/options/SignInOptionFactory.tsx
|
|
3543
3676
|
var import_browser43 = require("@asgardeo/browser");
|
|
3544
3677
|
|
|
3545
3678
|
// src/components/presentation/auth/SignIn/v1/options/EmailOtp.tsx
|
|
3546
3679
|
var import_browser37 = require("@asgardeo/browser");
|
|
3547
|
-
var
|
|
3680
|
+
var import_react48 = require("react");
|
|
3548
3681
|
|
|
3549
3682
|
// src/components/factories/FieldFactory.tsx
|
|
3550
3683
|
var import_browser36 = require("@asgardeo/browser");
|
|
@@ -3555,8 +3688,8 @@ var import_css15 = require("@emotion/css");
|
|
|
3555
3688
|
|
|
3556
3689
|
// src/components/primitives/Checkbox/Checkbox.styles.ts
|
|
3557
3690
|
var import_css8 = require("@emotion/css");
|
|
3558
|
-
var
|
|
3559
|
-
var useStyles3 = (theme, colorScheme, hasError, required) => (0,
|
|
3691
|
+
var import_react37 = require("react");
|
|
3692
|
+
var useStyles3 = (theme, colorScheme, hasError, required) => (0, import_react37.useMemo)(() => {
|
|
3560
3693
|
const containerStyles = import_css8.css`
|
|
3561
3694
|
display: flex;
|
|
3562
3695
|
align-items: center;
|
|
@@ -3618,8 +3751,8 @@ var import_css12 = require("@emotion/css");
|
|
|
3618
3751
|
|
|
3619
3752
|
// src/components/primitives/FormControl/FormControl.styles.ts
|
|
3620
3753
|
var import_css9 = require("@emotion/css");
|
|
3621
|
-
var
|
|
3622
|
-
var useStyles4 = (theme, colorScheme, helperTextAlign, helperTextMarginLeft, hasError) => (0,
|
|
3754
|
+
var import_react38 = require("react");
|
|
3755
|
+
var useStyles4 = (theme, colorScheme, helperTextAlign, helperTextMarginLeft, hasError) => (0, import_react38.useMemo)(() => {
|
|
3623
3756
|
const formControl = import_css9.css`
|
|
3624
3757
|
text-align: start;
|
|
3625
3758
|
font-family: ${theme.vars.typography.fontFamily};
|
|
@@ -3647,8 +3780,8 @@ var import_css11 = require("@emotion/css");
|
|
|
3647
3780
|
|
|
3648
3781
|
// src/components/primitives/Typography/Typography.styles.ts
|
|
3649
3782
|
var import_css10 = require("@emotion/css");
|
|
3650
|
-
var
|
|
3651
|
-
var useStyles5 = (theme, colorScheme, variant, align, color, noWrap, inline, gutterBottom, fontWeight, fontSize, lineHeight) => (0,
|
|
3783
|
+
var import_react39 = require("react");
|
|
3784
|
+
var useStyles5 = (theme, colorScheme, variant, align, color, noWrap, inline, gutterBottom, fontWeight, fontSize, lineHeight) => (0, import_react39.useMemo)(() => {
|
|
3652
3785
|
const getColorValue = (colorVariant) => {
|
|
3653
3786
|
switch (colorVariant) {
|
|
3654
3787
|
case "primary":
|
|
@@ -4039,8 +4172,8 @@ var import_css14 = require("@emotion/css");
|
|
|
4039
4172
|
|
|
4040
4173
|
// src/components/primitives/InputLabel/InputLabel.styles.ts
|
|
4041
4174
|
var import_css13 = require("@emotion/css");
|
|
4042
|
-
var
|
|
4043
|
-
var useStyles6 = (theme, colorScheme, variant, error, marginBottom) => (0,
|
|
4175
|
+
var import_react40 = require("react");
|
|
4176
|
+
var useStyles6 = (theme, colorScheme, variant, error, marginBottom) => (0, import_react40.useMemo)(() => {
|
|
4044
4177
|
const baseLabel = import_css13.css`
|
|
4045
4178
|
display: ${variant};
|
|
4046
4179
|
margin-bottom: ${marginBottom || (variant === "block" ? `calc(${theme.vars.spacing.unit} + 1px)` : "0")};
|
|
@@ -4172,8 +4305,8 @@ var import_css17 = require("@emotion/css");
|
|
|
4172
4305
|
|
|
4173
4306
|
// src/components/primitives/DatePicker/DatePicker.styles.ts
|
|
4174
4307
|
var import_css16 = require("@emotion/css");
|
|
4175
|
-
var
|
|
4176
|
-
var useStyles7 = (theme, colorScheme, hasError, disabled) => (0,
|
|
4308
|
+
var import_react41 = require("react");
|
|
4309
|
+
var useStyles7 = (theme, colorScheme, hasError, disabled) => (0, import_react41.useMemo)(() => {
|
|
4177
4310
|
const inputStyles = import_css16.css`
|
|
4178
4311
|
width: 100%;
|
|
4179
4312
|
padding: ${theme.vars.spacing.unit} calc(${theme.vars.spacing.unit} * 1.5);
|
|
@@ -4299,12 +4432,12 @@ var DatePicker_default = DatePicker;
|
|
|
4299
4432
|
// src/components/primitives/OtpField/OtpField.tsx
|
|
4300
4433
|
var import_browser32 = require("@asgardeo/browser");
|
|
4301
4434
|
var import_css19 = require("@emotion/css");
|
|
4302
|
-
var
|
|
4435
|
+
var import_react43 = require("react");
|
|
4303
4436
|
|
|
4304
4437
|
// src/components/primitives/OtpField/OtpField.styles.ts
|
|
4305
4438
|
var import_css18 = require("@emotion/css");
|
|
4306
|
-
var
|
|
4307
|
-
var useStyles8 = (theme, colorScheme, disabled, hasError, length) => (0,
|
|
4439
|
+
var import_react42 = require("react");
|
|
4440
|
+
var useStyles8 = (theme, colorScheme, disabled, hasError, length) => (0, import_react42.useMemo)(() => {
|
|
4308
4441
|
const inputContainer = import_css18.css`
|
|
4309
4442
|
display: flex;
|
|
4310
4443
|
gap: ${theme.vars.spacing.unit};
|
|
@@ -4384,12 +4517,12 @@ var OtpField = ({
|
|
|
4384
4517
|
}) => {
|
|
4385
4518
|
const { theme, colorScheme } = useTheme_default();
|
|
4386
4519
|
const styles = OtpField_styles_default(theme, colorScheme, !!disabled, !!error, length);
|
|
4387
|
-
const [otp, setOtp] = (0,
|
|
4388
|
-
const inputRefs = (0,
|
|
4389
|
-
(0,
|
|
4520
|
+
const [otp, setOtp] = (0, import_react43.useState)(Array(length).fill(""));
|
|
4521
|
+
const inputRefs = (0, import_react43.useRef)([]);
|
|
4522
|
+
(0, import_react43.useEffect)(() => {
|
|
4390
4523
|
inputRefs.current = inputRefs.current.slice(0, length);
|
|
4391
4524
|
}, [length]);
|
|
4392
|
-
(0,
|
|
4525
|
+
(0, import_react43.useEffect)(() => {
|
|
4393
4526
|
if (value) {
|
|
4394
4527
|
const newOtp = value.split("").slice(0, length);
|
|
4395
4528
|
while (newOtp.length < length) {
|
|
@@ -4400,7 +4533,7 @@ var OtpField = ({
|
|
|
4400
4533
|
setOtp(Array(length).fill(""));
|
|
4401
4534
|
}
|
|
4402
4535
|
}, [value, length]);
|
|
4403
|
-
(0,
|
|
4536
|
+
(0, import_react43.useEffect)(() => {
|
|
4404
4537
|
if (autoFocus && inputRefs.current[0]) {
|
|
4405
4538
|
inputRefs.current[0].focus();
|
|
4406
4539
|
}
|
|
@@ -4516,12 +4649,12 @@ var OtpField_default = OtpField;
|
|
|
4516
4649
|
// src/components/primitives/PasswordField/PasswordField.tsx
|
|
4517
4650
|
var import_browser34 = require("@asgardeo/browser");
|
|
4518
4651
|
var import_css23 = require("@emotion/css");
|
|
4519
|
-
var
|
|
4652
|
+
var import_react46 = require("react");
|
|
4520
4653
|
|
|
4521
4654
|
// src/components/primitives/PasswordField/PasswordField.styles.ts
|
|
4522
4655
|
var import_css20 = require("@emotion/css");
|
|
4523
|
-
var
|
|
4524
|
-
var useStyles9 = (theme, colorScheme, showPassword, disabled, hasError) => (0,
|
|
4656
|
+
var import_react44 = require("react");
|
|
4657
|
+
var useStyles9 = (theme, colorScheme, showPassword, disabled, hasError) => (0, import_react44.useMemo)(() => {
|
|
4525
4658
|
const toggleIcon = import_css20.css`
|
|
4526
4659
|
cursor: ${disabled ? "not-allowed" : "pointer"};
|
|
4527
4660
|
color: ${theme.vars.colors.text.secondary};
|
|
@@ -4600,8 +4733,8 @@ var import_css22 = require("@emotion/css");
|
|
|
4600
4733
|
|
|
4601
4734
|
// src/components/primitives/TextField/TextField.styles.ts
|
|
4602
4735
|
var import_css21 = require("@emotion/css");
|
|
4603
|
-
var
|
|
4604
|
-
var useStyles10 = (theme, colorScheme, disabled, hasError, hasStartIcon, hasEndIcon) => (0,
|
|
4736
|
+
var import_react45 = require("react");
|
|
4737
|
+
var useStyles10 = (theme, colorScheme, disabled, hasError, hasStartIcon, hasEndIcon) => (0, import_react45.useMemo)(() => {
|
|
4605
4738
|
const inlineStartPadding = hasStartIcon ? `calc(${theme.vars.spacing.unit} * 5)` : `calc(${theme.vars.spacing.unit} * 1.5)`;
|
|
4606
4739
|
const inlineEndPadding = hasEndIcon ? `calc(${theme.vars.spacing.unit} * 5)` : `calc(${theme.vars.spacing.unit} * 1.5)`;
|
|
4607
4740
|
const inputContainer = import_css21.css`
|
|
@@ -4797,7 +4930,7 @@ var PasswordField = ({
|
|
|
4797
4930
|
...textFieldProps
|
|
4798
4931
|
}) => {
|
|
4799
4932
|
const { theme, colorScheme } = useTheme_default();
|
|
4800
|
-
const [showPassword, setShowPassword] = (0,
|
|
4933
|
+
const [showPassword, setShowPassword] = (0, import_react46.useState)(false);
|
|
4801
4934
|
const styles = PasswordField_styles_default(theme, colorScheme, showPassword, !!disabled, !!error);
|
|
4802
4935
|
const togglePasswordVisibility = () => {
|
|
4803
4936
|
if (!disabled) {
|
|
@@ -4839,8 +4972,8 @@ var import_css25 = require("@emotion/css");
|
|
|
4839
4972
|
|
|
4840
4973
|
// src/components/primitives/Select/Select.styles.ts
|
|
4841
4974
|
var import_css24 = require("@emotion/css");
|
|
4842
|
-
var
|
|
4843
|
-
var useStyles11 = (theme, colorScheme, disabled, hasError) => (0,
|
|
4975
|
+
var import_react47 = require("react");
|
|
4976
|
+
var useStyles11 = (theme, colorScheme, disabled, hasError) => (0, import_react47.useMemo)(() => {
|
|
4844
4977
|
const dropdownArrowColor = theme.colors.text.secondary.replace("#", "");
|
|
4845
4978
|
const dropdownArrow = `data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23${dropdownArrowColor}%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E`;
|
|
4846
4979
|
const select = import_css24.css`
|
|
@@ -5120,7 +5253,7 @@ var EmailOtp = ({
|
|
|
5120
5253
|
const { t } = useTranslation_default(preferences?.i18n);
|
|
5121
5254
|
const { setTitle, setSubtitle } = useFlow_default();
|
|
5122
5255
|
const formFields = authenticator.metadata?.params?.sort((a, b) => a.order - b.order) || [];
|
|
5123
|
-
(0,
|
|
5256
|
+
(0, import_react48.useEffect)(() => {
|
|
5124
5257
|
setTitle(t("email.otp.heading"));
|
|
5125
5258
|
setSubtitle(t("email.otp.subheading"));
|
|
5126
5259
|
}, [setTitle, setSubtitle, t]);
|
|
@@ -5171,7 +5304,7 @@ var EmailOtp_default = EmailOtp;
|
|
|
5171
5304
|
|
|
5172
5305
|
// src/components/presentation/auth/SignIn/v1/options/IdentifierFirst.tsx
|
|
5173
5306
|
var import_browser38 = require("@asgardeo/browser");
|
|
5174
|
-
var
|
|
5307
|
+
var import_react49 = require("react");
|
|
5175
5308
|
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
5176
5309
|
var IdentifierFirst = ({
|
|
5177
5310
|
authenticator,
|
|
@@ -5187,7 +5320,7 @@ var IdentifierFirst = ({
|
|
|
5187
5320
|
const { t } = useTranslation_default(preferences?.i18n);
|
|
5188
5321
|
const { setTitle, setSubtitle } = useFlow_default();
|
|
5189
5322
|
const formFields = authenticator.metadata?.params?.sort((a, b) => a.order - b.order) || [];
|
|
5190
|
-
(0,
|
|
5323
|
+
(0, import_react49.useEffect)(() => {
|
|
5191
5324
|
setTitle(t("identifier.first.heading"));
|
|
5192
5325
|
setSubtitle(t("identifier.first.subheading"));
|
|
5193
5326
|
}, [setTitle, setSubtitle, t]);
|
|
@@ -5323,7 +5456,7 @@ var MultiOptionButton_default = MultiOptionButton;
|
|
|
5323
5456
|
|
|
5324
5457
|
// src/components/presentation/auth/SignIn/v1/options/SmsOtp.tsx
|
|
5325
5458
|
var import_browser40 = require("@asgardeo/browser");
|
|
5326
|
-
var
|
|
5459
|
+
var import_react50 = require("react");
|
|
5327
5460
|
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
5328
5461
|
var SmsOtp = ({
|
|
5329
5462
|
authenticator,
|
|
@@ -5339,7 +5472,7 @@ var SmsOtp = ({
|
|
|
5339
5472
|
const { t } = useTranslation_default(preferences?.i18n);
|
|
5340
5473
|
const { setTitle, setSubtitle } = useFlow_default();
|
|
5341
5474
|
const formFields = authenticator.metadata?.params?.sort((a, b) => a.order - b.order) || [];
|
|
5342
|
-
(0,
|
|
5475
|
+
(0, import_react50.useEffect)(() => {
|
|
5343
5476
|
setTitle(t("sms.otp.heading"));
|
|
5344
5477
|
setSubtitle(t("sms.otp.subheading"));
|
|
5345
5478
|
}, [setTitle, setSubtitle, t]);
|
|
@@ -5421,7 +5554,7 @@ var SocialButton_default = SocialLogin;
|
|
|
5421
5554
|
|
|
5422
5555
|
// src/components/presentation/auth/SignIn/v1/options/Totp.tsx
|
|
5423
5556
|
var import_browser41 = require("@asgardeo/browser");
|
|
5424
|
-
var
|
|
5557
|
+
var import_react51 = require("react");
|
|
5425
5558
|
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
5426
5559
|
var Totp = ({
|
|
5427
5560
|
authenticator,
|
|
@@ -5437,7 +5570,7 @@ var Totp = ({
|
|
|
5437
5570
|
const { t } = useTranslation_default(preferences?.i18n);
|
|
5438
5571
|
const { setTitle, setSubtitle } = useFlow_default();
|
|
5439
5572
|
const formFields = authenticator.metadata?.params?.sort((a, b) => a.order - b.order) || [];
|
|
5440
|
-
(0,
|
|
5573
|
+
(0, import_react51.useEffect)(() => {
|
|
5441
5574
|
setTitle(t("totp.heading"));
|
|
5442
5575
|
setSubtitle(t("totp.subheading"));
|
|
5443
5576
|
}, [setTitle, setSubtitle, t]);
|
|
@@ -5488,7 +5621,7 @@ var Totp_default = Totp;
|
|
|
5488
5621
|
|
|
5489
5622
|
// src/components/presentation/auth/SignIn/v1/options/UsernamePassword.tsx
|
|
5490
5623
|
var import_browser42 = require("@asgardeo/browser");
|
|
5491
|
-
var
|
|
5624
|
+
var import_react52 = require("react");
|
|
5492
5625
|
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
5493
5626
|
var UsernamePassword = ({
|
|
5494
5627
|
authenticator,
|
|
@@ -5504,7 +5637,7 @@ var UsernamePassword = ({
|
|
|
5504
5637
|
const { t } = useTranslation_default(preferences?.i18n);
|
|
5505
5638
|
const { setTitle, setSubtitle } = useFlow_default();
|
|
5506
5639
|
const formFields = authenticator.metadata?.params?.sort((a, b) => a.order - b.order)?.filter((param) => param.param !== "totp") || [];
|
|
5507
|
-
(0,
|
|
5640
|
+
(0, import_react52.useEffect)(() => {
|
|
5508
5641
|
setTitle(t("username.password.heading"));
|
|
5509
5642
|
setSubtitle(t("username.password.subheading"));
|
|
5510
5643
|
}, [setTitle, setSubtitle, t]);
|
|
@@ -5878,12 +6011,12 @@ var createSignInOptionFromAuthenticator = (authenticator, formValues, touchedFie
|
|
|
5878
6011
|
// src/components/primitives/Alert/Alert.tsx
|
|
5879
6012
|
var import_browser44 = require("@asgardeo/browser");
|
|
5880
6013
|
var import_css27 = require("@emotion/css");
|
|
5881
|
-
var
|
|
6014
|
+
var import_react54 = require("react");
|
|
5882
6015
|
|
|
5883
6016
|
// src/components/primitives/Alert/Alert.styles.ts
|
|
5884
6017
|
var import_css26 = require("@emotion/css");
|
|
5885
|
-
var
|
|
5886
|
-
var useStyles12 = (theme, colorScheme, variant) => (0,
|
|
6018
|
+
var import_react53 = require("react");
|
|
6019
|
+
var useStyles12 = (theme, colorScheme, variant) => (0, import_react53.useMemo)(() => {
|
|
5887
6020
|
const baseAlert = import_css26.css`
|
|
5888
6021
|
padding: calc(${theme.vars.spacing.unit} * 2);
|
|
5889
6022
|
border-radius: ${theme.vars.borderRadius.medium};
|
|
@@ -6063,9 +6196,9 @@ var getDefaultIcon = (variant) => {
|
|
|
6063
6196
|
return Info_default;
|
|
6064
6197
|
}
|
|
6065
6198
|
};
|
|
6066
|
-
var AlertVariantContext = (0,
|
|
6067
|
-
var useAlertVariant = () => (0,
|
|
6068
|
-
var Alert = (0,
|
|
6199
|
+
var AlertVariantContext = (0, import_react54.createContext)("info");
|
|
6200
|
+
var useAlertVariant = () => (0, import_react54.useContext)(AlertVariantContext);
|
|
6201
|
+
var Alert = (0, import_react54.forwardRef)(({ variant = "info", showIcon = true, children, className, style, ...rest }, ref) => {
|
|
6069
6202
|
const { theme, colorScheme } = useTheme_default();
|
|
6070
6203
|
const styles = Alert_styles_default(theme, colorScheme, variant);
|
|
6071
6204
|
const IconComponent = getDefaultIcon(variant);
|
|
@@ -6135,12 +6268,12 @@ var Alert_default = Alert;
|
|
|
6135
6268
|
// src/components/primitives/Card/Card.tsx
|
|
6136
6269
|
var import_browser45 = require("@asgardeo/browser");
|
|
6137
6270
|
var import_css29 = require("@emotion/css");
|
|
6138
|
-
var
|
|
6271
|
+
var import_react56 = require("react");
|
|
6139
6272
|
|
|
6140
6273
|
// src/components/primitives/Card/Card.styles.ts
|
|
6141
6274
|
var import_css28 = require("@emotion/css");
|
|
6142
|
-
var
|
|
6143
|
-
var useStyles13 = (theme, colorScheme, variant, clickable) => (0,
|
|
6275
|
+
var import_react55 = require("react");
|
|
6276
|
+
var useStyles13 = (theme, colorScheme, variant, clickable) => (0, import_react55.useMemo)(() => {
|
|
6144
6277
|
const baseCard = import_css28.css`
|
|
6145
6278
|
border-radius: ${theme.vars.borderRadius.medium};
|
|
6146
6279
|
background-color: ${theme.vars.colors.background.surface};
|
|
@@ -6219,7 +6352,7 @@ var Card_styles_default = useStyles13;
|
|
|
6219
6352
|
|
|
6220
6353
|
// src/components/primitives/Card/Card.tsx
|
|
6221
6354
|
var import_jsx_runtime53 = require("react/jsx-runtime");
|
|
6222
|
-
var Card = (0,
|
|
6355
|
+
var Card = (0, import_react56.forwardRef)(
|
|
6223
6356
|
({ variant = "default", clickable = false, children, className, style, ...rest }, ref) => {
|
|
6224
6357
|
const { theme, colorScheme } = useTheme_default();
|
|
6225
6358
|
const styles = Card_styles_default(theme, colorScheme, variant, clickable);
|
|
@@ -6245,7 +6378,7 @@ var Card = (0, import_react55.forwardRef)(
|
|
|
6245
6378
|
);
|
|
6246
6379
|
}
|
|
6247
6380
|
);
|
|
6248
|
-
var CardHeader = (0,
|
|
6381
|
+
var CardHeader = (0, import_react56.forwardRef)(({ children, className, style, ...rest }, ref) => {
|
|
6249
6382
|
const { theme, colorScheme } = useTheme_default();
|
|
6250
6383
|
const styles = Card_styles_default(theme, colorScheme, "default", false);
|
|
6251
6384
|
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
@@ -6329,7 +6462,7 @@ var CardDescription = ({ children, className, style, ...rest }) => {
|
|
|
6329
6462
|
}
|
|
6330
6463
|
);
|
|
6331
6464
|
};
|
|
6332
|
-
var CardAction = (0,
|
|
6465
|
+
var CardAction = (0, import_react56.forwardRef)(({ children, className, style, ...rest }, ref) => {
|
|
6333
6466
|
const { theme, colorScheme } = useTheme_default();
|
|
6334
6467
|
const styles = Card_styles_default(theme, colorScheme, "default", false);
|
|
6335
6468
|
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
@@ -6343,7 +6476,7 @@ var CardAction = (0, import_react55.forwardRef)(({ children, className, style, .
|
|
|
6343
6476
|
}
|
|
6344
6477
|
);
|
|
6345
6478
|
});
|
|
6346
|
-
var CardContent = (0,
|
|
6479
|
+
var CardContent = (0, import_react56.forwardRef)(({ children, className, style, ...rest }, ref) => {
|
|
6347
6480
|
const { theme, colorScheme } = useTheme_default();
|
|
6348
6481
|
const styles = Card_styles_default(theme, colorScheme, "default", false);
|
|
6349
6482
|
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
@@ -6357,7 +6490,7 @@ var CardContent = (0, import_react55.forwardRef)(({ children, className, style,
|
|
|
6357
6490
|
}
|
|
6358
6491
|
);
|
|
6359
6492
|
});
|
|
6360
|
-
var CardFooter = (0,
|
|
6493
|
+
var CardFooter = (0, import_react56.forwardRef)(({ children, className, style, ...rest }, ref) => {
|
|
6361
6494
|
const { theme, colorScheme } = useTheme_default();
|
|
6362
6495
|
const styles = Card_styles_default(theme, colorScheme, "default", false);
|
|
6363
6496
|
return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
|
|
@@ -6392,8 +6525,8 @@ var import_css31 = require("@emotion/css");
|
|
|
6392
6525
|
|
|
6393
6526
|
// src/components/primitives/Divider/Divider.styles.ts
|
|
6394
6527
|
var import_css30 = require("@emotion/css");
|
|
6395
|
-
var
|
|
6396
|
-
var useStyles14 = (theme, colorScheme, orientation, variant, color, hasChildren) => (0,
|
|
6528
|
+
var import_react57 = require("react");
|
|
6529
|
+
var useStyles14 = (theme, colorScheme, orientation, variant, color, hasChildren) => (0, import_react57.useMemo)(() => {
|
|
6397
6530
|
const baseColor = color || theme.colors.border;
|
|
6398
6531
|
let borderStyle;
|
|
6399
6532
|
if (variant === "solid") {
|
|
@@ -6534,8 +6667,8 @@ var import_css33 = require("@emotion/css");
|
|
|
6534
6667
|
|
|
6535
6668
|
// src/components/primitives/Logo/Logo.styles.ts
|
|
6536
6669
|
var import_css32 = require("@emotion/css");
|
|
6537
|
-
var
|
|
6538
|
-
var useStyles15 = (theme, colorScheme, size) => (0,
|
|
6670
|
+
var import_react58 = require("react");
|
|
6671
|
+
var useStyles15 = (theme, colorScheme, size) => (0, import_react58.useMemo)(() => {
|
|
6539
6672
|
const baseLogo = import_css32.css`
|
|
6540
6673
|
width: auto;
|
|
6541
6674
|
object-fit: contain;
|
|
@@ -6600,8 +6733,8 @@ var Logo_default = Logo;
|
|
|
6600
6733
|
|
|
6601
6734
|
// src/components/presentation/auth/SignIn/BaseSignIn.styles.ts
|
|
6602
6735
|
var import_css34 = require("@emotion/css");
|
|
6603
|
-
var
|
|
6604
|
-
var useStyles16 = (theme, colorScheme) => (0,
|
|
6736
|
+
var import_react59 = require("react");
|
|
6737
|
+
var useStyles16 = (theme, colorScheme) => (0, import_react59.useMemo)(() => {
|
|
6605
6738
|
const signIn = import_css34.css`
|
|
6606
6739
|
min-width: 420px;
|
|
6607
6740
|
margin: 0 auto;
|
|
@@ -6770,14 +6903,14 @@ var BaseSignInContent = ({
|
|
|
6770
6903
|
const { t } = useTranslation_default();
|
|
6771
6904
|
const { subtitle: flowSubtitle, title: flowTitle, messages: flowMessages } = useFlow_default();
|
|
6772
6905
|
const styles = BaseSignIn_styles_default(theme, theme.vars.colors.text.primary);
|
|
6773
|
-
const [isSignInInitializationRequestLoading, setIsSignInInitializationRequestLoading] = (0,
|
|
6774
|
-
const [isInitialized, setIsInitialized] = (0,
|
|
6775
|
-
const [currentFlow, setCurrentFlow] = (0,
|
|
6776
|
-
const [currentAuthenticator, setCurrentAuthenticator] = (0,
|
|
6777
|
-
const [error, setError] = (0,
|
|
6778
|
-
const [messages, setMessages] = (0,
|
|
6906
|
+
const [isSignInInitializationRequestLoading, setIsSignInInitializationRequestLoading] = (0, import_react60.useState)(false);
|
|
6907
|
+
const [isInitialized, setIsInitialized] = (0, import_react60.useState)(false);
|
|
6908
|
+
const [currentFlow, setCurrentFlow] = (0, import_react60.useState)(null);
|
|
6909
|
+
const [currentAuthenticator, setCurrentAuthenticator] = (0, import_react60.useState)(null);
|
|
6910
|
+
const [error, setError] = (0, import_react60.useState)(null);
|
|
6911
|
+
const [messages, setMessages] = (0, import_react60.useState)([]);
|
|
6779
6912
|
const isLoading = externalIsLoading || isSignInInitializationRequestLoading;
|
|
6780
|
-
const reRenderCheckRef = (0,
|
|
6913
|
+
const reRenderCheckRef = (0, import_react60.useRef)(false);
|
|
6781
6914
|
const formFields = currentAuthenticator?.metadata?.params?.map((param) => ({
|
|
6782
6915
|
initialValue: "",
|
|
6783
6916
|
name: param.param,
|
|
@@ -6805,7 +6938,7 @@ var BaseSignInContent = ({
|
|
|
6805
6938
|
touchAllFields,
|
|
6806
6939
|
reset: resetForm
|
|
6807
6940
|
} = form;
|
|
6808
|
-
const setupFormFields = (0,
|
|
6941
|
+
const setupFormFields = (0, import_react60.useCallback)(
|
|
6809
6942
|
(authenticator) => {
|
|
6810
6943
|
const initialValues = {};
|
|
6811
6944
|
authenticator.metadata?.params?.forEach((param) => {
|
|
@@ -7207,11 +7340,11 @@ var BaseSignInContent = ({
|
|
|
7207
7340
|
setFormValue(param, value);
|
|
7208
7341
|
setFormTouched(param, true);
|
|
7209
7342
|
};
|
|
7210
|
-
const hasMultipleOptions = (0,
|
|
7343
|
+
const hasMultipleOptions = (0, import_react60.useCallback)(
|
|
7211
7344
|
() => currentFlow && "nextStep" in currentFlow && currentFlow.nextStep?.stepType === import_browser48.EmbeddedSignInFlowStepType.MultiOptionsPrompt && currentFlow.nextStep?.authenticators && currentFlow.nextStep.authenticators.length > 1,
|
|
7212
7345
|
[currentFlow]
|
|
7213
7346
|
);
|
|
7214
|
-
const getAvailableAuthenticators = (0,
|
|
7347
|
+
const getAvailableAuthenticators = (0, import_react60.useCallback)(() => {
|
|
7215
7348
|
if (!currentFlow || !("nextStep" in currentFlow) || !currentFlow.nextStep?.authenticators) {
|
|
7216
7349
|
return [];
|
|
7217
7350
|
}
|
|
@@ -7243,7 +7376,7 @@ var BaseSignInContent = ({
|
|
|
7243
7376
|
);
|
|
7244
7377
|
const errorClasses = (0, import_css35.cx)([(0, import_browser48.withVendorCSSClassPrefix)("signin__error")], errorClassName);
|
|
7245
7378
|
const messageClasses = (0, import_css35.cx)([(0, import_browser48.withVendorCSSClassPrefix)("signin__messages")], messageClassName);
|
|
7246
|
-
(0,
|
|
7379
|
+
(0, import_react60.useEffect)(() => {
|
|
7247
7380
|
if (isLoading) {
|
|
7248
7381
|
return;
|
|
7249
7382
|
}
|
|
@@ -7408,7 +7541,7 @@ var BaseSignInContent = ({
|
|
|
7408
7541
|
);
|
|
7409
7542
|
}
|
|
7410
7543
|
if (isPasskeyAuthenticator(currentAuthenticator) && !isLoading) {
|
|
7411
|
-
(0,
|
|
7544
|
+
(0, import_react60.useEffect)(() => {
|
|
7412
7545
|
handleAuthenticatorSelection(currentAuthenticator);
|
|
7413
7546
|
}, [currentAuthenticator]);
|
|
7414
7547
|
return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Card_default, { className: (0, import_css35.cx)(containerClasses, styles["card"]), "data-testid": "asgardeo-signin", variant, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Card_default.Content, { children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: styles["centeredContainer"], children: [
|
|
@@ -7496,7 +7629,7 @@ var BaseSignIn_default = BaseSignIn;
|
|
|
7496
7629
|
// src/components/presentation/auth/SignIn/v2/BaseSignIn.tsx
|
|
7497
7630
|
var import_browser51 = require("@asgardeo/browser");
|
|
7498
7631
|
var import_css37 = require("@emotion/css");
|
|
7499
|
-
var
|
|
7632
|
+
var import_react62 = require("react");
|
|
7500
7633
|
|
|
7501
7634
|
// src/utils/v2/resolveTranslationsInObject.ts
|
|
7502
7635
|
var import_browser49 = require("@asgardeo/browser");
|
|
@@ -7678,7 +7811,7 @@ var getAuthComponentHeadings_default = getAuthComponentHeadings;
|
|
|
7678
7811
|
var import_browser50 = require("@asgardeo/browser");
|
|
7679
7812
|
var import_css36 = require("@emotion/css");
|
|
7680
7813
|
var import_dompurify = __toESM(require("dompurify"), 1);
|
|
7681
|
-
var
|
|
7814
|
+
var import_react61 = require("react");
|
|
7682
7815
|
|
|
7683
7816
|
// src/components/adapters/ImageComponent.tsx
|
|
7684
7817
|
var import_jsx_runtime57 = require("react/jsx-runtime");
|
|
@@ -7858,7 +7991,7 @@ var createAuthComponentFromFlow = (component, formValues, touchedFields, formErr
|
|
|
7858
7991
|
type: fieldType,
|
|
7859
7992
|
value
|
|
7860
7993
|
});
|
|
7861
|
-
return (0,
|
|
7994
|
+
return (0, import_react61.cloneElement)(field, { key });
|
|
7862
7995
|
}
|
|
7863
7996
|
case import_browser50.EmbeddedFlowComponentTypeV2.Action: {
|
|
7864
7997
|
const actionId = component.id;
|
|
@@ -8137,10 +8270,10 @@ var BaseSignInContent2 = ({
|
|
|
8137
8270
|
const { t } = useTranslation_default();
|
|
8138
8271
|
const { subtitle: flowSubtitle, title: flowTitle, messages: flowMessages, addMessage, clearMessages } = useFlow_default();
|
|
8139
8272
|
const styles = BaseSignIn_styles_default(theme, theme.vars.colors.text.primary);
|
|
8140
|
-
const [isSubmitting, setIsSubmitting] = (0,
|
|
8141
|
-
const [apiError, setApiError] = (0,
|
|
8273
|
+
const [isSubmitting, setIsSubmitting] = (0, import_react62.useState)(false);
|
|
8274
|
+
const [apiError, setApiError] = (0, import_react62.useState)(null);
|
|
8142
8275
|
const isLoading = externalIsLoading || isSubmitting;
|
|
8143
|
-
const handleError = (0,
|
|
8276
|
+
const handleError = (0, import_react62.useCallback)(
|
|
8144
8277
|
(error) => {
|
|
8145
8278
|
const errorMessage = error?.failureReason || extractErrorMessage(error, t);
|
|
8146
8279
|
setApiError(error instanceof Error ? error : new Error(errorMessage));
|
|
@@ -8152,7 +8285,7 @@ var BaseSignInContent2 = ({
|
|
|
8152
8285
|
},
|
|
8153
8286
|
[t, addMessage, clearMessages]
|
|
8154
8287
|
);
|
|
8155
|
-
const extractFormFields = (0,
|
|
8288
|
+
const extractFormFields = (0, import_react62.useCallback)(
|
|
8156
8289
|
(flowComponents) => {
|
|
8157
8290
|
const fields = [];
|
|
8158
8291
|
const processComponents = (comps) => {
|
|
@@ -8267,7 +8400,7 @@ var BaseSignInContent2 = ({
|
|
|
8267
8400
|
buttonClassName
|
|
8268
8401
|
);
|
|
8269
8402
|
const messageClasses = (0, import_css37.cx)([(0, import_browser51.withVendorCSSClassPrefix)("signin__messages")], messageClassName);
|
|
8270
|
-
const renderComponents = (0,
|
|
8403
|
+
const renderComponents = (0, import_react62.useCallback)(
|
|
8271
8404
|
(flowComponents) => renderSignInComponents(
|
|
8272
8405
|
flowComponents,
|
|
8273
8406
|
formValues,
|
|
@@ -8358,13 +8491,15 @@ var BaseSignInContent2 = ({
|
|
|
8358
8491
|
] })
|
|
8359
8492
|
] });
|
|
8360
8493
|
};
|
|
8361
|
-
var BaseSignIn2 = ({ showLogo = true, ...rest }) => {
|
|
8494
|
+
var BaseSignIn2 = ({ preferences, showLogo = true, ...rest }) => {
|
|
8362
8495
|
const { theme } = useTheme_default();
|
|
8363
8496
|
const styles = BaseSignIn_styles_default(theme, theme.vars.colors.text.primary);
|
|
8364
|
-
|
|
8497
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { children: [
|
|
8365
8498
|
showLogo && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: styles.logoContainer, children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Logo_default, { size: "large" }) }),
|
|
8366
8499
|
/* @__PURE__ */ (0, import_jsx_runtime61.jsx)(FlowProvider_default, { children: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(BaseSignInContent2, { showLogo, ...rest }) })
|
|
8367
8500
|
] });
|
|
8501
|
+
if (!preferences) return content;
|
|
8502
|
+
return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(ComponentPreferencesContext_default.Provider, { value: preferences, children: content });
|
|
8368
8503
|
};
|
|
8369
8504
|
var BaseSignIn_default2 = BaseSignIn2;
|
|
8370
8505
|
|
|
@@ -8384,10 +8519,10 @@ var import_browser56 = require("@asgardeo/browser");
|
|
|
8384
8519
|
|
|
8385
8520
|
// src/components/presentation/auth/SignIn/v2/SignIn.tsx
|
|
8386
8521
|
var import_browser55 = require("@asgardeo/browser");
|
|
8387
|
-
var
|
|
8522
|
+
var import_react64 = require("react");
|
|
8388
8523
|
|
|
8389
8524
|
// src/hooks/v2/useOAuthCallback.ts
|
|
8390
|
-
var
|
|
8525
|
+
var import_react63 = require("react");
|
|
8391
8526
|
function cleanupUrlParams() {
|
|
8392
8527
|
if (typeof window === "undefined") return;
|
|
8393
8528
|
const url = new URL(window.location.href);
|
|
@@ -8412,9 +8547,9 @@ function useOAuthCallback({
|
|
|
8412
8547
|
setFlowId,
|
|
8413
8548
|
tokenValidationAttemptedRef
|
|
8414
8549
|
}) {
|
|
8415
|
-
const internalRef = (0,
|
|
8550
|
+
const internalRef = (0, import_react63.useRef)(false);
|
|
8416
8551
|
const oauthCodeProcessedRef = processedRef ?? internalRef;
|
|
8417
|
-
(0,
|
|
8552
|
+
(0, import_react63.useEffect)(() => {
|
|
8418
8553
|
if (!isInitialized || isSubmitting) {
|
|
8419
8554
|
return;
|
|
8420
8555
|
}
|
|
@@ -8663,6 +8798,7 @@ var handlePasskeyAuthentication = async (challengeData) => {
|
|
|
8663
8798
|
var import_jsx_runtime63 = require("react/jsx-runtime");
|
|
8664
8799
|
var SignIn = ({
|
|
8665
8800
|
className,
|
|
8801
|
+
preferences,
|
|
8666
8802
|
size = "medium",
|
|
8667
8803
|
onSuccess,
|
|
8668
8804
|
onError,
|
|
@@ -8670,13 +8806,13 @@ var SignIn = ({
|
|
|
8670
8806
|
children
|
|
8671
8807
|
}) => {
|
|
8672
8808
|
const { applicationId, afterSignInUrl, signIn, isInitialized, isLoading, meta } = useAsgardeo_default();
|
|
8673
|
-
const { t } = useTranslation_default();
|
|
8674
|
-
const [components, setComponents] = (0,
|
|
8675
|
-
const [currentFlowId, setCurrentFlowId] = (0,
|
|
8676
|
-
const [isFlowInitialized, setIsFlowInitialized] = (0,
|
|
8677
|
-
const [flowError, setFlowError] = (0,
|
|
8678
|
-
const [isSubmitting, setIsSubmitting] = (0,
|
|
8679
|
-
const [passkeyState, setPasskeyState] = (0,
|
|
8809
|
+
const { t } = useTranslation_default(preferences?.i18n);
|
|
8810
|
+
const [components, setComponents] = (0, import_react64.useState)([]);
|
|
8811
|
+
const [currentFlowId, setCurrentFlowId] = (0, import_react64.useState)(null);
|
|
8812
|
+
const [isFlowInitialized, setIsFlowInitialized] = (0, import_react64.useState)(false);
|
|
8813
|
+
const [flowError, setFlowError] = (0, import_react64.useState)(null);
|
|
8814
|
+
const [isSubmitting, setIsSubmitting] = (0, import_react64.useState)(false);
|
|
8815
|
+
const [passkeyState, setPasskeyState] = (0, import_react64.useState)({
|
|
8680
8816
|
actionId: null,
|
|
8681
8817
|
challenge: null,
|
|
8682
8818
|
creationOptions: null,
|
|
@@ -8684,9 +8820,9 @@ var SignIn = ({
|
|
|
8684
8820
|
flowId: null,
|
|
8685
8821
|
isActive: false
|
|
8686
8822
|
});
|
|
8687
|
-
const initializationAttemptedRef = (0,
|
|
8688
|
-
const oauthCodeProcessedRef = (0,
|
|
8689
|
-
const passkeyProcessedRef = (0,
|
|
8823
|
+
const initializationAttemptedRef = (0, import_react64.useRef)(false);
|
|
8824
|
+
const oauthCodeProcessedRef = (0, import_react64.useRef)(false);
|
|
8825
|
+
const passkeyProcessedRef = (0, import_react64.useRef)(false);
|
|
8690
8826
|
const setFlowId = (flowId) => {
|
|
8691
8827
|
setCurrentFlowId(flowId);
|
|
8692
8828
|
if (flowId) {
|
|
@@ -8818,7 +8954,7 @@ var SignIn = ({
|
|
|
8818
8954
|
initializationAttemptedRef.current = false;
|
|
8819
8955
|
}
|
|
8820
8956
|
};
|
|
8821
|
-
(0,
|
|
8957
|
+
(0, import_react64.useEffect)(() => {
|
|
8822
8958
|
const urlParams = getUrlParams2();
|
|
8823
8959
|
if (urlParams.error) {
|
|
8824
8960
|
handleOAuthError(urlParams.error, urlParams.errorDescription);
|
|
@@ -8935,7 +9071,7 @@ var SignIn = ({
|
|
|
8935
9071
|
processedRef: oauthCodeProcessedRef,
|
|
8936
9072
|
setFlowId
|
|
8937
9073
|
});
|
|
8938
|
-
(0,
|
|
9074
|
+
(0, import_react64.useEffect)(() => {
|
|
8939
9075
|
if (!passkeyState.isActive || !passkeyState.challenge && !passkeyState.creationOptions || !passkeyState.flowId) {
|
|
8940
9076
|
return;
|
|
8941
9077
|
}
|
|
@@ -9008,7 +9144,8 @@ var SignIn = ({
|
|
|
9008
9144
|
error: flowError,
|
|
9009
9145
|
className,
|
|
9010
9146
|
size,
|
|
9011
|
-
variant
|
|
9147
|
+
variant,
|
|
9148
|
+
preferences
|
|
9012
9149
|
}
|
|
9013
9150
|
);
|
|
9014
9151
|
};
|
|
@@ -9016,7 +9153,7 @@ var SignIn_default = SignIn;
|
|
|
9016
9153
|
|
|
9017
9154
|
// src/components/presentation/auth/SignIn/SignIn.tsx
|
|
9018
9155
|
var import_jsx_runtime64 = require("react/jsx-runtime");
|
|
9019
|
-
var SignIn2 = ({ className, size = "medium", children, ...rest }) => {
|
|
9156
|
+
var SignIn2 = ({ className, size = "medium", children, preferences, ...rest }) => {
|
|
9020
9157
|
const { signIn, afterSignInUrl, isInitialized, isLoading, platform } = useAsgardeo_default();
|
|
9021
9158
|
const handleInitialize = async () => await signIn({ response_mode: "direct" });
|
|
9022
9159
|
const handleOnSubmit = async (payload, request) => await signIn(payload, request);
|
|
@@ -9040,6 +9177,7 @@ var SignIn2 = ({ className, size = "medium", children, ...rest }) => {
|
|
|
9040
9177
|
variant: rest.variant,
|
|
9041
9178
|
onSuccess: rest.onSuccess,
|
|
9042
9179
|
onError: rest.onError,
|
|
9180
|
+
preferences,
|
|
9043
9181
|
children
|
|
9044
9182
|
}
|
|
9045
9183
|
);
|
|
@@ -9057,6 +9195,7 @@ var SignIn2 = ({ className, size = "medium", children, ...rest }) => {
|
|
|
9057
9195
|
showLogo: true,
|
|
9058
9196
|
showSubtitle: true,
|
|
9059
9197
|
showTitle: true,
|
|
9198
|
+
preferences,
|
|
9060
9199
|
...rest
|
|
9061
9200
|
}
|
|
9062
9201
|
);
|
|
@@ -9069,7 +9208,7 @@ var import_browser67 = require("@asgardeo/browser");
|
|
|
9069
9208
|
// src/components/presentation/auth/SignUp/v1/BaseSignUp.tsx
|
|
9070
9209
|
var import_browser65 = require("@asgardeo/browser");
|
|
9071
9210
|
var import_css39 = require("@emotion/css");
|
|
9072
|
-
var
|
|
9211
|
+
var import_react66 = require("react");
|
|
9073
9212
|
|
|
9074
9213
|
// src/components/presentation/auth/SignUp/v1/SignUpOptionFactory.tsx
|
|
9075
9214
|
var import_browser64 = require("@asgardeo/browser");
|
|
@@ -9585,8 +9724,8 @@ var renderSignUpComponents2 = (components, formValues, touchedFields, formErrors
|
|
|
9585
9724
|
|
|
9586
9725
|
// src/components/presentation/auth/SignUp/BaseSignUp.styles.ts
|
|
9587
9726
|
var import_css38 = require("@emotion/css");
|
|
9588
|
-
var
|
|
9589
|
-
var useStyles17 = (theme, colorScheme) => (0,
|
|
9727
|
+
var import_react65 = require("react");
|
|
9728
|
+
var useStyles17 = (theme, colorScheme) => (0, import_react65.useMemo)(() => {
|
|
9590
9729
|
const signUp = import_css38.css`
|
|
9591
9730
|
min-width: 420px;
|
|
9592
9731
|
margin: 0 auto;
|
|
@@ -9751,7 +9890,7 @@ var BaseSignUpContent = ({
|
|
|
9751
9890
|
const { subtitle: flowSubtitle, title: flowTitle, messages: flowMessages, addMessage, clearMessages } = useFlow_default();
|
|
9752
9891
|
useAsgardeo_default();
|
|
9753
9892
|
const styles = BaseSignUp_styles_default(theme, colorScheme);
|
|
9754
|
-
const handleError = (0,
|
|
9893
|
+
const handleError = (0, import_react66.useCallback)(
|
|
9755
9894
|
(error) => {
|
|
9756
9895
|
let errorMessage = t("errors.signup.flow.failure");
|
|
9757
9896
|
if (error && typeof error === "object") {
|
|
@@ -9784,11 +9923,11 @@ var BaseSignUpContent = ({
|
|
|
9784
9923
|
},
|
|
9785
9924
|
[t, addMessage, clearMessages]
|
|
9786
9925
|
);
|
|
9787
|
-
const [isLoading, setIsLoading] = (0,
|
|
9788
|
-
const [isFlowInitialized, setIsFlowInitialized] = (0,
|
|
9789
|
-
const [currentFlow, setCurrentFlow] = (0,
|
|
9790
|
-
const initializationAttemptedRef = (0,
|
|
9791
|
-
const extractFormFields = (0,
|
|
9926
|
+
const [isLoading, setIsLoading] = (0, import_react66.useState)(false);
|
|
9927
|
+
const [isFlowInitialized, setIsFlowInitialized] = (0, import_react66.useState)(false);
|
|
9928
|
+
const [currentFlow, setCurrentFlow] = (0, import_react66.useState)(null);
|
|
9929
|
+
const initializationAttemptedRef = (0, import_react66.useRef)(false);
|
|
9930
|
+
const extractFormFields = (0, import_react66.useCallback)(
|
|
9792
9931
|
(components) => {
|
|
9793
9932
|
const fields = [];
|
|
9794
9933
|
const processComponents = (comps) => {
|
|
@@ -9841,7 +9980,7 @@ var BaseSignUpContent = ({
|
|
|
9841
9980
|
validateForm,
|
|
9842
9981
|
reset: resetForm
|
|
9843
9982
|
} = form;
|
|
9844
|
-
const setupFormFields = (0,
|
|
9983
|
+
const setupFormFields = (0, import_react66.useCallback)(
|
|
9845
9984
|
(flowResponse) => {
|
|
9846
9985
|
const fields = extractFormFields(flowResponse.data?.components || []);
|
|
9847
9986
|
const initialValues = {};
|
|
@@ -10043,7 +10182,7 @@ var BaseSignUpContent = ({
|
|
|
10043
10182
|
);
|
|
10044
10183
|
const errorClasses = (0, import_css39.cx)([(0, import_browser65.withVendorCSSClassPrefix)("signup__error")], errorClassName);
|
|
10045
10184
|
const messageClasses = (0, import_css39.cx)([(0, import_browser65.withVendorCSSClassPrefix)("signup__messages")], messageClassName);
|
|
10046
|
-
const renderComponents = (0,
|
|
10185
|
+
const renderComponents = (0, import_react66.useCallback)(
|
|
10047
10186
|
(components) => renderSignUpComponents2(
|
|
10048
10187
|
components,
|
|
10049
10188
|
formValues,
|
|
@@ -10073,7 +10212,7 @@ var BaseSignUpContent = ({
|
|
|
10073
10212
|
handleSubmit
|
|
10074
10213
|
]
|
|
10075
10214
|
);
|
|
10076
|
-
(0,
|
|
10215
|
+
(0, import_react66.useEffect)(() => {
|
|
10077
10216
|
if (isInitialized && !isFlowInitialized && !initializationAttemptedRef.current) {
|
|
10078
10217
|
initializationAttemptedRef.current = true;
|
|
10079
10218
|
(async () => {
|
|
@@ -10168,7 +10307,7 @@ var BaseSignUp_default = BaseSignUp;
|
|
|
10168
10307
|
// src/components/presentation/auth/SignUp/v2/BaseSignUp.tsx
|
|
10169
10308
|
var import_browser66 = require("@asgardeo/browser");
|
|
10170
10309
|
var import_css40 = require("@emotion/css");
|
|
10171
|
-
var
|
|
10310
|
+
var import_react67 = require("react");
|
|
10172
10311
|
var import_jsx_runtime72 = require("react/jsx-runtime");
|
|
10173
10312
|
var logger7 = (0, import_browser66.createPackageComponentLogger)(
|
|
10174
10313
|
"@asgardeo/react",
|
|
@@ -10199,20 +10338,20 @@ var BaseSignUpContent2 = ({
|
|
|
10199
10338
|
const { subtitle: flowSubtitle, title: flowTitle, messages: flowMessages, addMessage, clearMessages } = useFlow_default();
|
|
10200
10339
|
const { meta } = useAsgardeo_default();
|
|
10201
10340
|
const styles = BaseSignUp_styles_default(theme, colorScheme);
|
|
10202
|
-
const [isLoading, setIsLoading] = (0,
|
|
10203
|
-
const [isFlowInitialized, setIsFlowInitialized] = (0,
|
|
10204
|
-
const [currentFlow, setCurrentFlow] = (0,
|
|
10205
|
-
const [apiError, setApiError] = (0,
|
|
10206
|
-
const [passkeyState, setPasskeyState] = (0,
|
|
10341
|
+
const [isLoading, setIsLoading] = (0, import_react67.useState)(false);
|
|
10342
|
+
const [isFlowInitialized, setIsFlowInitialized] = (0, import_react67.useState)(false);
|
|
10343
|
+
const [currentFlow, setCurrentFlow] = (0, import_react67.useState)(null);
|
|
10344
|
+
const [apiError, setApiError] = (0, import_react67.useState)(null);
|
|
10345
|
+
const [passkeyState, setPasskeyState] = (0, import_react67.useState)({
|
|
10207
10346
|
actionId: null,
|
|
10208
10347
|
creationOptions: null,
|
|
10209
10348
|
error: null,
|
|
10210
10349
|
flowId: null,
|
|
10211
10350
|
isActive: false
|
|
10212
10351
|
});
|
|
10213
|
-
const initializationAttemptedRef = (0,
|
|
10214
|
-
const passkeyProcessedRef = (0,
|
|
10215
|
-
const handleError = (0,
|
|
10352
|
+
const initializationAttemptedRef = (0, import_react67.useRef)(false);
|
|
10353
|
+
const passkeyProcessedRef = (0, import_react67.useRef)(false);
|
|
10354
|
+
const handleError = (0, import_react67.useCallback)(
|
|
10216
10355
|
(error) => {
|
|
10217
10356
|
const errorMessage = error?.failureReason || extractErrorMessage(error, t);
|
|
10218
10357
|
setApiError(error instanceof Error ? error : new Error(errorMessage));
|
|
@@ -10224,7 +10363,7 @@ var BaseSignUpContent2 = ({
|
|
|
10224
10363
|
},
|
|
10225
10364
|
[t, addMessage, clearMessages]
|
|
10226
10365
|
);
|
|
10227
|
-
const normalizeFlowResponseLocal = (0,
|
|
10366
|
+
const normalizeFlowResponseLocal = (0, import_react67.useCallback)(
|
|
10228
10367
|
(response) => {
|
|
10229
10368
|
if (response?.data?.components && Array.isArray(response.data.components)) {
|
|
10230
10369
|
return response;
|
|
@@ -10251,7 +10390,7 @@ var BaseSignUpContent2 = ({
|
|
|
10251
10390
|
},
|
|
10252
10391
|
[t, children]
|
|
10253
10392
|
);
|
|
10254
|
-
const extractFormFields = (0,
|
|
10393
|
+
const extractFormFields = (0, import_react67.useCallback)(
|
|
10255
10394
|
(components) => {
|
|
10256
10395
|
const fields = [];
|
|
10257
10396
|
const processComponents = (comps) => {
|
|
@@ -10302,7 +10441,7 @@ var BaseSignUpContent2 = ({
|
|
|
10302
10441
|
touchAllFields,
|
|
10303
10442
|
reset: resetForm
|
|
10304
10443
|
} = form;
|
|
10305
|
-
const setupFormFields = (0,
|
|
10444
|
+
const setupFormFields = (0, import_react67.useCallback)(
|
|
10306
10445
|
(flowResponse) => {
|
|
10307
10446
|
const fields = extractFormFields(flowResponse.data?.components || []);
|
|
10308
10447
|
const initialValues = {};
|
|
@@ -10504,7 +10643,7 @@ var BaseSignUpContent2 = ({
|
|
|
10504
10643
|
setIsLoading(false);
|
|
10505
10644
|
}
|
|
10506
10645
|
};
|
|
10507
|
-
(0,
|
|
10646
|
+
(0, import_react67.useEffect)(() => {
|
|
10508
10647
|
if (!passkeyState.isActive || !passkeyState.creationOptions || !passkeyState.flowId) {
|
|
10509
10648
|
return;
|
|
10510
10649
|
}
|
|
@@ -10570,7 +10709,7 @@ var BaseSignUpContent2 = ({
|
|
|
10570
10709
|
);
|
|
10571
10710
|
const errorClasses = (0, import_css40.cx)([(0, import_browser66.withVendorCSSClassPrefix)("signup__error")], errorClassName);
|
|
10572
10711
|
const messageClasses = (0, import_css40.cx)([(0, import_browser66.withVendorCSSClassPrefix)("signup__messages")], messageClassName);
|
|
10573
|
-
const renderComponents = (0,
|
|
10712
|
+
const renderComponents = (0, import_react67.useCallback)(
|
|
10574
10713
|
(components) => renderSignUpComponents(
|
|
10575
10714
|
components,
|
|
10576
10715
|
formValues,
|
|
@@ -10610,7 +10749,7 @@ var BaseSignUpContent2 = ({
|
|
|
10610
10749
|
state: urlParams.get("state")
|
|
10611
10750
|
};
|
|
10612
10751
|
};
|
|
10613
|
-
(0,
|
|
10752
|
+
(0, import_react67.useEffect)(() => {
|
|
10614
10753
|
const urlParams = getUrlParams2();
|
|
10615
10754
|
if (urlParams.code || urlParams.state) {
|
|
10616
10755
|
return;
|
|
@@ -10712,13 +10851,15 @@ var BaseSignUpContent2 = ({
|
|
|
10712
10851
|
] })
|
|
10713
10852
|
] });
|
|
10714
10853
|
};
|
|
10715
|
-
var BaseSignUp2 = ({ showLogo = true, ...rest }) => {
|
|
10854
|
+
var BaseSignUp2 = ({ preferences, showLogo = true, ...rest }) => {
|
|
10716
10855
|
const { theme, colorScheme } = useTheme_default();
|
|
10717
10856
|
const styles = BaseSignUp_styles_default(theme, colorScheme);
|
|
10718
|
-
|
|
10857
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { children: [
|
|
10719
10858
|
showLogo && /* @__PURE__ */ (0, import_jsx_runtime72.jsx)("div", { className: styles.logoContainer, children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(Logo_default, { size: "large" }) }),
|
|
10720
10859
|
/* @__PURE__ */ (0, import_jsx_runtime72.jsx)(FlowProvider_default, { children: /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(BaseSignUpContent2, { showLogo, ...rest }) })
|
|
10721
10860
|
] });
|
|
10861
|
+
if (!preferences) return content;
|
|
10862
|
+
return /* @__PURE__ */ (0, import_jsx_runtime72.jsx)(ComponentPreferencesContext_default.Provider, { value: preferences, children: content });
|
|
10722
10863
|
};
|
|
10723
10864
|
var BaseSignUp_default2 = BaseSignUp2;
|
|
10724
10865
|
|
|
@@ -10866,12 +11007,12 @@ var import_browser72 = require("@asgardeo/browser");
|
|
|
10866
11007
|
// src/components/presentation/auth/InviteUser/v2/BaseInviteUser.tsx
|
|
10867
11008
|
var import_browser71 = require("@asgardeo/browser");
|
|
10868
11009
|
var import_css42 = require("@emotion/css");
|
|
10869
|
-
var
|
|
11010
|
+
var import_react69 = require("react");
|
|
10870
11011
|
|
|
10871
11012
|
// src/components/presentation/auth/InviteUser/v2/BaseInviteUser.styles.ts
|
|
10872
11013
|
var import_css41 = require("@emotion/css");
|
|
10873
|
-
var
|
|
10874
|
-
var useStyles18 = (theme, colorScheme) => (0,
|
|
11014
|
+
var import_react68 = require("react");
|
|
11015
|
+
var useStyles18 = (theme, colorScheme) => (0, import_react68.useMemo)(() => {
|
|
10875
11016
|
const card = import_css41.css`
|
|
10876
11017
|
background: ${theme.vars.colors.background.surface};
|
|
10877
11018
|
border-radius: ${theme.vars.borderRadius.large};
|
|
@@ -10919,27 +11060,28 @@ var BaseInviteUser = ({
|
|
|
10919
11060
|
className = "",
|
|
10920
11061
|
children,
|
|
10921
11062
|
isInitialized = true,
|
|
11063
|
+
preferences,
|
|
10922
11064
|
size = "medium",
|
|
10923
11065
|
variant = "outlined",
|
|
10924
11066
|
showTitle = true,
|
|
10925
11067
|
showSubtitle = true
|
|
10926
11068
|
}) => {
|
|
10927
11069
|
const { meta } = useAsgardeo_default();
|
|
10928
|
-
const { t } = useTranslation_default();
|
|
11070
|
+
const { t } = useTranslation_default(preferences?.i18n);
|
|
10929
11071
|
const { theme } = useTheme_default();
|
|
10930
11072
|
const styles = BaseInviteUser_styles_default(theme, theme.vars.colors.text.primary);
|
|
10931
|
-
const [isLoading, setIsLoading] = (0,
|
|
10932
|
-
const [isFlowInitialized, setIsFlowInitialized] = (0,
|
|
10933
|
-
const [currentFlow, setCurrentFlow] = (0,
|
|
10934
|
-
const [apiError, setApiError] = (0,
|
|
10935
|
-
const [formValues, setFormValues] = (0,
|
|
10936
|
-
const [formErrors, setFormErrors] = (0,
|
|
10937
|
-
const [touchedFields, setTouchedFields] = (0,
|
|
10938
|
-
const [inviteLink, setInviteLink] = (0,
|
|
10939
|
-
const [inviteLinkCopied, setInviteLinkCopied] = (0,
|
|
10940
|
-
const [isFormValid, setIsFormValid] = (0,
|
|
10941
|
-
const initializationAttemptedRef = (0,
|
|
10942
|
-
const handleError = (0,
|
|
11073
|
+
const [isLoading, setIsLoading] = (0, import_react69.useState)(false);
|
|
11074
|
+
const [isFlowInitialized, setIsFlowInitialized] = (0, import_react69.useState)(false);
|
|
11075
|
+
const [currentFlow, setCurrentFlow] = (0, import_react69.useState)(null);
|
|
11076
|
+
const [apiError, setApiError] = (0, import_react69.useState)(null);
|
|
11077
|
+
const [formValues, setFormValues] = (0, import_react69.useState)({});
|
|
11078
|
+
const [formErrors, setFormErrors] = (0, import_react69.useState)({});
|
|
11079
|
+
const [touchedFields, setTouchedFields] = (0, import_react69.useState)({});
|
|
11080
|
+
const [inviteLink, setInviteLink] = (0, import_react69.useState)();
|
|
11081
|
+
const [inviteLinkCopied, setInviteLinkCopied] = (0, import_react69.useState)(false);
|
|
11082
|
+
const [isFormValid, setIsFormValid] = (0, import_react69.useState)(true);
|
|
11083
|
+
const initializationAttemptedRef = (0, import_react69.useRef)(false);
|
|
11084
|
+
const handleError = (0, import_react69.useCallback)(
|
|
10943
11085
|
(error) => {
|
|
10944
11086
|
const errorMessage = error?.failureReason || extractErrorMessage(error, t, "components.inviteUser.errors.generic");
|
|
10945
11087
|
setApiError(error instanceof Error ? error : new Error(errorMessage));
|
|
@@ -10947,7 +11089,7 @@ var BaseInviteUser = ({
|
|
|
10947
11089
|
},
|
|
10948
11090
|
[t, onError]
|
|
10949
11091
|
);
|
|
10950
|
-
const normalizeFlowResponseLocal = (0,
|
|
11092
|
+
const normalizeFlowResponseLocal = (0, import_react69.useCallback)(
|
|
10951
11093
|
(response) => {
|
|
10952
11094
|
if (!response?.data?.meta?.components) {
|
|
10953
11095
|
return response;
|
|
@@ -10975,7 +11117,7 @@ var BaseInviteUser = ({
|
|
|
10975
11117
|
},
|
|
10976
11118
|
[t, children]
|
|
10977
11119
|
);
|
|
10978
|
-
const handleInputChange = (0,
|
|
11120
|
+
const handleInputChange = (0, import_react69.useCallback)((name, value) => {
|
|
10979
11121
|
setFormValues((prev) => ({ ...prev, [name]: value }));
|
|
10980
11122
|
setFormErrors((prev) => {
|
|
10981
11123
|
const newErrors = { ...prev };
|
|
@@ -10983,10 +11125,10 @@ var BaseInviteUser = ({
|
|
|
10983
11125
|
return newErrors;
|
|
10984
11126
|
});
|
|
10985
11127
|
}, []);
|
|
10986
|
-
const handleInputBlur = (0,
|
|
11128
|
+
const handleInputBlur = (0, import_react69.useCallback)((name) => {
|
|
10987
11129
|
setTouchedFields((prev) => ({ ...prev, [name]: true }));
|
|
10988
11130
|
}, []);
|
|
10989
|
-
const validateForm = (0,
|
|
11131
|
+
const validateForm = (0, import_react69.useCallback)(
|
|
10990
11132
|
(components2) => {
|
|
10991
11133
|
const errors = {};
|
|
10992
11134
|
const validateComponents = (comps) => {
|
|
@@ -11010,7 +11152,7 @@ var BaseInviteUser = ({
|
|
|
11010
11152
|
},
|
|
11011
11153
|
[formValues]
|
|
11012
11154
|
);
|
|
11013
|
-
const handleSubmit = (0,
|
|
11155
|
+
const handleSubmit = (0, import_react69.useCallback)(
|
|
11014
11156
|
async (component, data) => {
|
|
11015
11157
|
if (!currentFlow) {
|
|
11016
11158
|
return;
|
|
@@ -11073,7 +11215,7 @@ var BaseInviteUser = ({
|
|
|
11073
11215
|
normalizeFlowResponseLocal
|
|
11074
11216
|
]
|
|
11075
11217
|
);
|
|
11076
|
-
const copyInviteLink = (0,
|
|
11218
|
+
const copyInviteLink = (0, import_react69.useCallback)(async () => {
|
|
11077
11219
|
if (!inviteLink) return;
|
|
11078
11220
|
try {
|
|
11079
11221
|
await navigator.clipboard.writeText(inviteLink);
|
|
@@ -11090,7 +11232,7 @@ var BaseInviteUser = ({
|
|
|
11090
11232
|
setTimeout(() => setInviteLinkCopied(false), 3e3);
|
|
11091
11233
|
}
|
|
11092
11234
|
}, [inviteLink]);
|
|
11093
|
-
const resetFlow = (0,
|
|
11235
|
+
const resetFlow = (0, import_react69.useCallback)(() => {
|
|
11094
11236
|
setIsFlowInitialized(false);
|
|
11095
11237
|
setCurrentFlow(null);
|
|
11096
11238
|
setApiError(null);
|
|
@@ -11101,7 +11243,7 @@ var BaseInviteUser = ({
|
|
|
11101
11243
|
setInviteLinkCopied(false);
|
|
11102
11244
|
initializationAttemptedRef.current = false;
|
|
11103
11245
|
}, []);
|
|
11104
|
-
(0,
|
|
11246
|
+
(0, import_react69.useEffect)(() => {
|
|
11105
11247
|
if (isInitialized && !isFlowInitialized && !initializationAttemptedRef.current) {
|
|
11106
11248
|
initializationAttemptedRef.current = true;
|
|
11107
11249
|
(async () => {
|
|
@@ -11128,7 +11270,7 @@ var BaseInviteUser = ({
|
|
|
11128
11270
|
})();
|
|
11129
11271
|
}
|
|
11130
11272
|
}, [isInitialized, isFlowInitialized, onInitialize, onFlowChange, handleError, normalizeFlowResponseLocal]);
|
|
11131
|
-
(0,
|
|
11273
|
+
(0, import_react69.useEffect)(() => {
|
|
11132
11274
|
if (currentFlow && isFlowInitialized) {
|
|
11133
11275
|
const components2 = currentFlow.data?.components || [];
|
|
11134
11276
|
if (components2.length > 0) {
|
|
@@ -11137,7 +11279,7 @@ var BaseInviteUser = ({
|
|
|
11137
11279
|
}
|
|
11138
11280
|
}
|
|
11139
11281
|
}, [formValues, currentFlow, isFlowInitialized, validateForm]);
|
|
11140
|
-
const extractHeadings = (0,
|
|
11282
|
+
const extractHeadings = (0, import_react69.useCallback)((components2) => {
|
|
11141
11283
|
let title2;
|
|
11142
11284
|
let subtitle2;
|
|
11143
11285
|
components2.forEach((comp) => {
|
|
@@ -11151,13 +11293,13 @@ var BaseInviteUser = ({
|
|
|
11151
11293
|
});
|
|
11152
11294
|
return { subtitle: subtitle2, title: title2 };
|
|
11153
11295
|
}, []);
|
|
11154
|
-
const filterHeadings = (0,
|
|
11296
|
+
const filterHeadings = (0, import_react69.useCallback)(
|
|
11155
11297
|
(components2) => components2.filter(
|
|
11156
11298
|
(comp) => !(comp.type === "TEXT" && (comp.variant === "HEADING_1" || comp.variant === "HEADING_2"))
|
|
11157
11299
|
),
|
|
11158
11300
|
[]
|
|
11159
11301
|
);
|
|
11160
|
-
const renderComponents = (0,
|
|
11302
|
+
const renderComponents = (0, import_react69.useCallback)(
|
|
11161
11303
|
(components2) => renderInviteUserComponents(
|
|
11162
11304
|
components2,
|
|
11163
11305
|
formValues,
|
|
@@ -11338,16 +11480,16 @@ var InviteUser = ({
|
|
|
11338
11480
|
var InviteUser_default = InviteUser;
|
|
11339
11481
|
|
|
11340
11482
|
// src/components/presentation/auth/AcceptInvite/v2/AcceptInvite.tsx
|
|
11341
|
-
var
|
|
11483
|
+
var import_react72 = require("react");
|
|
11342
11484
|
|
|
11343
11485
|
// src/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.tsx
|
|
11344
11486
|
var import_css44 = require("@emotion/css");
|
|
11345
|
-
var
|
|
11487
|
+
var import_react71 = require("react");
|
|
11346
11488
|
|
|
11347
11489
|
// src/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.styles.ts
|
|
11348
11490
|
var import_css43 = require("@emotion/css");
|
|
11349
|
-
var
|
|
11350
|
-
var useStyles19 = (theme, colorScheme) => (0,
|
|
11491
|
+
var import_react70 = require("react");
|
|
11492
|
+
var useStyles19 = (theme, colorScheme) => (0, import_react70.useMemo)(() => {
|
|
11351
11493
|
const card = import_css43.css`
|
|
11352
11494
|
background: ${theme.vars.colors.background.surface};
|
|
11353
11495
|
border-radius: ${theme.vars.borderRadius.large};
|
|
@@ -11396,28 +11538,29 @@ var BaseAcceptInvite = ({
|
|
|
11396
11538
|
onGoToSignIn,
|
|
11397
11539
|
className = "",
|
|
11398
11540
|
children,
|
|
11541
|
+
preferences,
|
|
11399
11542
|
size = "medium",
|
|
11400
11543
|
variant = "outlined",
|
|
11401
11544
|
showTitle = true,
|
|
11402
11545
|
showSubtitle = true
|
|
11403
11546
|
}) => {
|
|
11404
11547
|
const { meta } = useAsgardeo_default();
|
|
11405
|
-
const { t } = useTranslation_default();
|
|
11548
|
+
const { t } = useTranslation_default(preferences?.i18n);
|
|
11406
11549
|
const { theme } = useTheme_default();
|
|
11407
11550
|
const styles = BaseAcceptInvite_styles_default(theme, theme.vars.colors.text.primary);
|
|
11408
|
-
const [isLoading, setIsLoading] = (0,
|
|
11409
|
-
const [isValidatingToken, setIsValidatingToken] = (0,
|
|
11410
|
-
const [isTokenInvalid, setIsTokenInvalid] = (0,
|
|
11411
|
-
const [isComplete, setIsComplete] = (0,
|
|
11412
|
-
const [currentFlow, setCurrentFlow] = (0,
|
|
11413
|
-
const [apiError, setApiError] = (0,
|
|
11414
|
-
const [formValues, setFormValues] = (0,
|
|
11415
|
-
const [formErrors, setFormErrors] = (0,
|
|
11416
|
-
const [touchedFields, setTouchedFields] = (0,
|
|
11417
|
-
const [isFormValid, setIsFormValid] = (0,
|
|
11418
|
-
const [completionTitle, setCompletionTitle] = (0,
|
|
11419
|
-
const tokenValidationAttemptedRef = (0,
|
|
11420
|
-
const handleError = (0,
|
|
11551
|
+
const [isLoading, setIsLoading] = (0, import_react71.useState)(false);
|
|
11552
|
+
const [isValidatingToken, setIsValidatingToken] = (0, import_react71.useState)(true);
|
|
11553
|
+
const [isTokenInvalid, setIsTokenInvalid] = (0, import_react71.useState)(false);
|
|
11554
|
+
const [isComplete, setIsComplete] = (0, import_react71.useState)(false);
|
|
11555
|
+
const [currentFlow, setCurrentFlow] = (0, import_react71.useState)(null);
|
|
11556
|
+
const [apiError, setApiError] = (0, import_react71.useState)(null);
|
|
11557
|
+
const [formValues, setFormValues] = (0, import_react71.useState)({});
|
|
11558
|
+
const [formErrors, setFormErrors] = (0, import_react71.useState)({});
|
|
11559
|
+
const [touchedFields, setTouchedFields] = (0, import_react71.useState)({});
|
|
11560
|
+
const [isFormValid, setIsFormValid] = (0, import_react71.useState)(true);
|
|
11561
|
+
const [completionTitle, setCompletionTitle] = (0, import_react71.useState)(void 0);
|
|
11562
|
+
const tokenValidationAttemptedRef = (0, import_react71.useRef)(false);
|
|
11563
|
+
const handleError = (0, import_react71.useCallback)(
|
|
11421
11564
|
(error) => {
|
|
11422
11565
|
const errorMessage = error?.failureReason || extractErrorMessage(error, t, "components.acceptInvite.errors.generic");
|
|
11423
11566
|
setApiError(error instanceof Error ? error : new Error(errorMessage));
|
|
@@ -11425,7 +11568,7 @@ var BaseAcceptInvite = ({
|
|
|
11425
11568
|
},
|
|
11426
11569
|
[t, onError]
|
|
11427
11570
|
);
|
|
11428
|
-
const normalizeFlowResponseLocal = (0,
|
|
11571
|
+
const normalizeFlowResponseLocal = (0, import_react71.useCallback)(
|
|
11429
11572
|
(response) => {
|
|
11430
11573
|
if (!response?.data?.meta?.components) {
|
|
11431
11574
|
return response;
|
|
@@ -11485,7 +11628,7 @@ var BaseAcceptInvite = ({
|
|
|
11485
11628
|
},
|
|
11486
11629
|
tokenValidationAttemptedRef
|
|
11487
11630
|
});
|
|
11488
|
-
const handleInputChange = (0,
|
|
11631
|
+
const handleInputChange = (0, import_react71.useCallback)((name, value) => {
|
|
11489
11632
|
setFormValues((prev) => ({ ...prev, [name]: value }));
|
|
11490
11633
|
setFormErrors((prev) => {
|
|
11491
11634
|
const newErrors = { ...prev };
|
|
@@ -11493,10 +11636,10 @@ var BaseAcceptInvite = ({
|
|
|
11493
11636
|
return newErrors;
|
|
11494
11637
|
});
|
|
11495
11638
|
}, []);
|
|
11496
|
-
const handleInputBlur = (0,
|
|
11639
|
+
const handleInputBlur = (0, import_react71.useCallback)((name) => {
|
|
11497
11640
|
setTouchedFields((prev) => ({ ...prev, [name]: true }));
|
|
11498
11641
|
}, []);
|
|
11499
|
-
const validateForm = (0,
|
|
11642
|
+
const validateForm = (0, import_react71.useCallback)(
|
|
11500
11643
|
(components2) => {
|
|
11501
11644
|
const errors = {};
|
|
11502
11645
|
const validateComponents = (comps) => {
|
|
@@ -11517,7 +11660,7 @@ var BaseAcceptInvite = ({
|
|
|
11517
11660
|
},
|
|
11518
11661
|
[formValues]
|
|
11519
11662
|
);
|
|
11520
|
-
const handleSubmit = (0,
|
|
11663
|
+
const handleSubmit = (0, import_react71.useCallback)(
|
|
11521
11664
|
async (component, data) => {
|
|
11522
11665
|
if (!currentFlow) {
|
|
11523
11666
|
return;
|
|
@@ -11596,7 +11739,7 @@ var BaseAcceptInvite = ({
|
|
|
11596
11739
|
normalizeFlowResponseLocal
|
|
11597
11740
|
]
|
|
11598
11741
|
);
|
|
11599
|
-
(0,
|
|
11742
|
+
(0, import_react71.useEffect)(() => {
|
|
11600
11743
|
if (tokenValidationAttemptedRef.current) {
|
|
11601
11744
|
return;
|
|
11602
11745
|
}
|
|
@@ -11638,7 +11781,7 @@ var BaseAcceptInvite = ({
|
|
|
11638
11781
|
}
|
|
11639
11782
|
})();
|
|
11640
11783
|
}, [flowId, inviteToken, onSubmit, onFlowChange, handleError, normalizeFlowResponseLocal]);
|
|
11641
|
-
const extractHeadings = (0,
|
|
11784
|
+
const extractHeadings = (0, import_react71.useCallback)((components2) => {
|
|
11642
11785
|
let title2;
|
|
11643
11786
|
let subtitle2;
|
|
11644
11787
|
components2.forEach((comp) => {
|
|
@@ -11652,13 +11795,13 @@ var BaseAcceptInvite = ({
|
|
|
11652
11795
|
});
|
|
11653
11796
|
return { subtitle: subtitle2, title: title2 };
|
|
11654
11797
|
}, []);
|
|
11655
|
-
const filterHeadings = (0,
|
|
11798
|
+
const filterHeadings = (0, import_react71.useCallback)(
|
|
11656
11799
|
(components2) => components2.filter(
|
|
11657
11800
|
(comp) => !(comp.type === "TEXT" && (comp.variant === "HEADING_1" || comp.variant === "HEADING_2"))
|
|
11658
11801
|
),
|
|
11659
11802
|
[]
|
|
11660
11803
|
);
|
|
11661
|
-
const renderComponents = (0,
|
|
11804
|
+
const renderComponents = (0, import_react71.useCallback)(
|
|
11662
11805
|
(components2) => renderInviteUserComponents(
|
|
11663
11806
|
components2,
|
|
11664
11807
|
formValues,
|
|
@@ -11790,10 +11933,10 @@ var AcceptInvite = ({
|
|
|
11790
11933
|
showTitle = true,
|
|
11791
11934
|
showSubtitle = true
|
|
11792
11935
|
}) => {
|
|
11793
|
-
const { flowId: urlFlowId, inviteToken: urlInviteToken } = (0,
|
|
11936
|
+
const { flowId: urlFlowId, inviteToken: urlInviteToken } = (0, import_react72.useMemo)(() => getUrlParams(), []);
|
|
11794
11937
|
const flowId = flowIdProp || urlFlowId;
|
|
11795
11938
|
const inviteToken = inviteTokenProp || urlInviteToken;
|
|
11796
|
-
const apiBaseUrl = (0,
|
|
11939
|
+
const apiBaseUrl = (0, import_react72.useMemo)(() => {
|
|
11797
11940
|
if (baseUrl) {
|
|
11798
11941
|
return baseUrl;
|
|
11799
11942
|
}
|
|
@@ -11843,9 +11986,9 @@ var AcceptInvite_default = AcceptInvite;
|
|
|
11843
11986
|
|
|
11844
11987
|
// src/components/auth/Callback/Callback.tsx
|
|
11845
11988
|
var import_browser73 = require("@asgardeo/browser");
|
|
11846
|
-
var
|
|
11989
|
+
var import_react73 = require("react");
|
|
11847
11990
|
var Callback = ({ onNavigate, onError }) => {
|
|
11848
|
-
const processingRef = (0,
|
|
11991
|
+
const processingRef = (0, import_react73.useRef)(false);
|
|
11849
11992
|
const navigate6 = (path) => {
|
|
11850
11993
|
if (onNavigate) {
|
|
11851
11994
|
onNavigate(path);
|
|
@@ -11853,7 +11996,7 @@ var Callback = ({ onNavigate, onError }) => {
|
|
|
11853
11996
|
(0, import_browser73.navigate)(path);
|
|
11854
11997
|
}
|
|
11855
11998
|
};
|
|
11856
|
-
(0,
|
|
11999
|
+
(0, import_react73.useEffect)(() => {
|
|
11857
12000
|
const processOAuthCallback = () => {
|
|
11858
12001
|
if (processingRef.current) {
|
|
11859
12002
|
return;
|
|
@@ -11977,12 +12120,12 @@ var Organization_default = Organization5;
|
|
|
11977
12120
|
// src/components/presentation/UserProfile/BaseUserProfile.tsx
|
|
11978
12121
|
var import_browser79 = require("@asgardeo/browser");
|
|
11979
12122
|
var import_css52 = require("@emotion/css");
|
|
11980
|
-
var
|
|
12123
|
+
var import_react82 = require("react");
|
|
11981
12124
|
|
|
11982
12125
|
// src/components/presentation/UserProfile/BaseUserProfile.styles.ts
|
|
11983
12126
|
var import_browser74 = require("@asgardeo/browser");
|
|
11984
12127
|
var import_css45 = require("@emotion/css");
|
|
11985
|
-
var
|
|
12128
|
+
var import_react74 = require("react");
|
|
11986
12129
|
var useStyles20 = (theme, colorScheme) => {
|
|
11987
12130
|
const valuePlaceholder = import_css45.css`
|
|
11988
12131
|
font-style: italic;
|
|
@@ -12027,7 +12170,7 @@ var useStyles20 = (theme, colorScheme) => {
|
|
|
12027
12170
|
padding: ${theme.vars.spacing.unit};
|
|
12028
12171
|
vertical-align: top;
|
|
12029
12172
|
`;
|
|
12030
|
-
return (0,
|
|
12173
|
+
return (0, import_react74.useMemo)(() => {
|
|
12031
12174
|
const root = import_css45.css`
|
|
12032
12175
|
padding: calc(${theme.vars.spacing.unit} * 4);
|
|
12033
12176
|
min-width: 600px;
|
|
@@ -12239,12 +12382,12 @@ var getDisplayName_default = getDisplayName;
|
|
|
12239
12382
|
// src/components/primitives/Avatar/Avatar.tsx
|
|
12240
12383
|
var import_browser76 = require("@asgardeo/browser");
|
|
12241
12384
|
var import_css47 = require("@emotion/css");
|
|
12242
|
-
var
|
|
12385
|
+
var import_react76 = require("react");
|
|
12243
12386
|
|
|
12244
12387
|
// src/components/primitives/Avatar/Avatar.styles.ts
|
|
12245
12388
|
var import_css46 = require("@emotion/css");
|
|
12246
|
-
var
|
|
12247
|
-
var useStyles21 = (theme, colorScheme, size, variant, backgroundColor) => (0,
|
|
12389
|
+
var import_react75 = require("react");
|
|
12390
|
+
var useStyles21 = (theme, colorScheme, size, variant, backgroundColor) => (0, import_react75.useMemo)(() => {
|
|
12248
12391
|
const baseAvatar = import_css46.css`
|
|
12249
12392
|
align-items: center;
|
|
12250
12393
|
background: ${backgroundColor || theme.vars.colors.background.surface};
|
|
@@ -12326,19 +12469,19 @@ var Avatar = ({
|
|
|
12326
12469
|
return (acc << 5) - acc + charCode & 4294967295;
|
|
12327
12470
|
}, 0);
|
|
12328
12471
|
const seed = Math.abs(hash);
|
|
12329
|
-
const generateColor = (
|
|
12330
|
-
const hue1 = (seed +
|
|
12472
|
+
const generateColor = (offset4) => {
|
|
12473
|
+
const hue1 = (seed + offset4) % 360;
|
|
12331
12474
|
const hue2 = (hue1 + 60 + seed % 120) % 360;
|
|
12332
12475
|
const saturation = 70 + seed % 20;
|
|
12333
12476
|
const lightness1 = 55 + seed % 15;
|
|
12334
|
-
const lightness2 = 60 + (seed +
|
|
12477
|
+
const lightness2 = 60 + (seed + offset4) % 15;
|
|
12335
12478
|
return `hsl(${hue1}, ${saturation}%, ${lightness1}%), hsl(${hue2}, ${saturation}%, ${lightness2}%)`;
|
|
12336
12479
|
};
|
|
12337
12480
|
const angle = 45 + seed % 91;
|
|
12338
12481
|
const colors = generateColor(seed);
|
|
12339
12482
|
return `linear-gradient(${angle}deg, ${colors})`;
|
|
12340
12483
|
};
|
|
12341
|
-
const backgroundColor = (0,
|
|
12484
|
+
const backgroundColor = (0, import_react76.useMemo)(() => {
|
|
12342
12485
|
if (!name || imageUrl) {
|
|
12343
12486
|
return void 0;
|
|
12344
12487
|
}
|
|
@@ -12399,13 +12542,13 @@ var Avatar = ({
|
|
|
12399
12542
|
// src/components/primitives/Dialog/Dialog.tsx
|
|
12400
12543
|
var import_browser77 = require("@asgardeo/browser");
|
|
12401
12544
|
var import_css49 = require("@emotion/css");
|
|
12402
|
-
var
|
|
12403
|
-
var
|
|
12545
|
+
var import_react78 = require("@floating-ui/react");
|
|
12546
|
+
var import_react79 = require("react");
|
|
12404
12547
|
|
|
12405
12548
|
// src/components/primitives/Dialog/Dialog.styles.ts
|
|
12406
12549
|
var import_css48 = require("@emotion/css");
|
|
12407
|
-
var
|
|
12408
|
-
var useStyles22 = (theme, colorScheme) => (0,
|
|
12550
|
+
var import_react77 = require("react");
|
|
12551
|
+
var useStyles22 = (theme, colorScheme) => (0, import_react77.useMemo)(() => {
|
|
12409
12552
|
const overlay = import_css48.css`
|
|
12410
12553
|
background-color: rgba(0, 0, 0, 0.5);
|
|
12411
12554
|
display: flex;
|
|
@@ -12566,23 +12709,23 @@ function useDialog({
|
|
|
12566
12709
|
open: controlledOpen,
|
|
12567
12710
|
onOpenChange: setControlledOpen
|
|
12568
12711
|
} = {}) {
|
|
12569
|
-
const [uncontrolledOpen, setUncontrolledOpen] = (0,
|
|
12570
|
-
const [labelId, setLabelId] = (0,
|
|
12571
|
-
const [descriptionId, setDescriptionId] = (0,
|
|
12712
|
+
const [uncontrolledOpen, setUncontrolledOpen] = (0, import_react79.useState)(initialOpen);
|
|
12713
|
+
const [labelId, setLabelId] = (0, import_react79.useState)();
|
|
12714
|
+
const [descriptionId, setDescriptionId] = (0, import_react79.useState)();
|
|
12572
12715
|
const open = controlledOpen ?? uncontrolledOpen;
|
|
12573
12716
|
const setOpen = setControlledOpen ?? setUncontrolledOpen;
|
|
12574
|
-
const data = (0,
|
|
12717
|
+
const data = (0, import_react78.useFloating)({
|
|
12575
12718
|
onOpenChange: setOpen,
|
|
12576
12719
|
open
|
|
12577
12720
|
});
|
|
12578
12721
|
const { context } = data;
|
|
12579
|
-
const click = (0,
|
|
12722
|
+
const click = (0, import_react78.useClick)(context, {
|
|
12580
12723
|
enabled: controlledOpen == null
|
|
12581
12724
|
});
|
|
12582
|
-
const dismiss = (0,
|
|
12583
|
-
const role = (0,
|
|
12584
|
-
const interactions = (0,
|
|
12585
|
-
return (0,
|
|
12725
|
+
const dismiss = (0, import_react78.useDismiss)(context, { outsidePressEvent: "mousedown" });
|
|
12726
|
+
const role = (0, import_react78.useRole)(context);
|
|
12727
|
+
const interactions = (0, import_react78.useInteractions)([click, dismiss, role]);
|
|
12728
|
+
return (0, import_react79.useMemo)(
|
|
12586
12729
|
() => ({
|
|
12587
12730
|
open,
|
|
12588
12731
|
setOpen,
|
|
@@ -12596,9 +12739,9 @@ function useDialog({
|
|
|
12596
12739
|
[open, setOpen, interactions, data, labelId, descriptionId]
|
|
12597
12740
|
);
|
|
12598
12741
|
}
|
|
12599
|
-
var DialogContext = (0,
|
|
12742
|
+
var DialogContext = (0, import_react79.createContext)(null);
|
|
12600
12743
|
var useDialogContext = () => {
|
|
12601
|
-
const context = (0,
|
|
12744
|
+
const context = (0, import_react79.useContext)(DialogContext);
|
|
12602
12745
|
if (context == null) {
|
|
12603
12746
|
throw new Error("Dialog components must be wrapped in <Dialog />");
|
|
12604
12747
|
}
|
|
@@ -12608,13 +12751,13 @@ function Dialog({ children, ...options }) {
|
|
|
12608
12751
|
const dialog = useDialog(options);
|
|
12609
12752
|
return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(DialogContext.Provider, { value: dialog, children });
|
|
12610
12753
|
}
|
|
12611
|
-
var DialogTrigger = (0,
|
|
12754
|
+
var DialogTrigger = (0, import_react79.forwardRef)(
|
|
12612
12755
|
({ children, asChild = false, ...props }, propRef) => {
|
|
12613
12756
|
const context = useDialogContext();
|
|
12614
12757
|
const childrenRef = children.ref;
|
|
12615
|
-
const ref = (0,
|
|
12616
|
-
if (asChild && (0,
|
|
12617
|
-
return (0,
|
|
12758
|
+
const ref = (0, import_react78.useMergeRefs)([context.refs.setReference, propRef, childrenRef]);
|
|
12759
|
+
if (asChild && (0, import_react79.isValidElement)(children)) {
|
|
12760
|
+
return (0, import_react79.cloneElement)(
|
|
12618
12761
|
children,
|
|
12619
12762
|
context.getReferenceProps({
|
|
12620
12763
|
ref,
|
|
@@ -12627,19 +12770,19 @@ var DialogTrigger = (0, import_react78.forwardRef)(
|
|
|
12627
12770
|
return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)("button", { ref, "data-state": context.open ? "open" : "closed", ...context.getReferenceProps(props), children });
|
|
12628
12771
|
}
|
|
12629
12772
|
);
|
|
12630
|
-
var DialogContent = (0,
|
|
12773
|
+
var DialogContent = (0, import_react79.forwardRef)(
|
|
12631
12774
|
(props, propRef) => {
|
|
12632
12775
|
const { context: floatingContext, ...context } = useDialogContext();
|
|
12633
12776
|
const { theme, colorScheme } = useTheme_default();
|
|
12634
12777
|
const styles = Dialog_styles_default(theme, colorScheme);
|
|
12635
|
-
const ref = (0,
|
|
12778
|
+
const ref = (0, import_react78.useMergeRefs)([context.refs.setFloating, propRef]);
|
|
12636
12779
|
if (!floatingContext.open) return null;
|
|
12637
|
-
return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
12638
|
-
|
|
12780
|
+
return /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_react78.FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
12781
|
+
import_react78.FloatingOverlay,
|
|
12639
12782
|
{
|
|
12640
12783
|
className: (0, import_css49.cx)((0, import_browser77.withVendorCSSClassPrefix)((0, import_browser77.bem)("dialog", "overlay")), styles["overlay"]),
|
|
12641
12784
|
lockScroll: true,
|
|
12642
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
12785
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(import_react78.FloatingFocusManager, { context: floatingContext, initialFocus: -1, children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
|
|
12643
12786
|
"div",
|
|
12644
12787
|
{
|
|
12645
12788
|
ref,
|
|
@@ -12654,13 +12797,13 @@ var DialogContent = (0, import_react78.forwardRef)(
|
|
|
12654
12797
|
) });
|
|
12655
12798
|
}
|
|
12656
12799
|
);
|
|
12657
|
-
var DialogHeading = (0,
|
|
12800
|
+
var DialogHeading = (0, import_react79.forwardRef)(
|
|
12658
12801
|
({ children, ...props }, ref) => {
|
|
12659
12802
|
const context = useDialogContext();
|
|
12660
12803
|
const { theme, colorScheme } = useTheme_default();
|
|
12661
12804
|
const styles = Dialog_styles_default(theme, colorScheme);
|
|
12662
|
-
const id = (0,
|
|
12663
|
-
(0,
|
|
12805
|
+
const id = (0, import_react78.useId)();
|
|
12806
|
+
(0, import_react79.useLayoutEffect)(() => {
|
|
12664
12807
|
context.setLabelId(id);
|
|
12665
12808
|
return () => {
|
|
12666
12809
|
context.setLabelId(void 0);
|
|
@@ -12694,13 +12837,13 @@ var DialogHeading = (0, import_react78.forwardRef)(
|
|
|
12694
12837
|
] });
|
|
12695
12838
|
}
|
|
12696
12839
|
);
|
|
12697
|
-
var DialogDescription = (0,
|
|
12840
|
+
var DialogDescription = (0, import_react79.forwardRef)(
|
|
12698
12841
|
({ children, ...props }, ref) => {
|
|
12699
12842
|
const context = useDialogContext();
|
|
12700
12843
|
const { theme, colorScheme } = useTheme_default();
|
|
12701
12844
|
const styles = Dialog_styles_default(theme, colorScheme);
|
|
12702
|
-
const id = (0,
|
|
12703
|
-
(0,
|
|
12845
|
+
const id = (0, import_react78.useId)();
|
|
12846
|
+
(0, import_react79.useLayoutEffect)(() => {
|
|
12704
12847
|
context.setDescriptionId(id);
|
|
12705
12848
|
return () => {
|
|
12706
12849
|
context.setDescriptionId(void 0);
|
|
@@ -12718,17 +12861,17 @@ var DialogDescription = (0, import_react78.forwardRef)(
|
|
|
12718
12861
|
);
|
|
12719
12862
|
}
|
|
12720
12863
|
);
|
|
12721
|
-
var DialogClose = (0,
|
|
12864
|
+
var DialogClose = (0, import_react79.forwardRef)(
|
|
12722
12865
|
({ children, asChild = false, ...props }, propRef) => {
|
|
12723
12866
|
const context = useDialogContext();
|
|
12724
12867
|
const childrenRef = children?.ref;
|
|
12725
|
-
const ref = (0,
|
|
12868
|
+
const ref = (0, import_react78.useMergeRefs)([propRef, childrenRef]);
|
|
12726
12869
|
const handleClick = (event) => {
|
|
12727
12870
|
context.setOpen(false);
|
|
12728
12871
|
props.onClick?.(event);
|
|
12729
12872
|
};
|
|
12730
|
-
if (asChild && (0,
|
|
12731
|
-
return (0,
|
|
12873
|
+
if (asChild && (0, import_react79.isValidElement)(children)) {
|
|
12874
|
+
return (0, import_react79.cloneElement)(children, {
|
|
12732
12875
|
ref,
|
|
12733
12876
|
...props,
|
|
12734
12877
|
...children.props,
|
|
@@ -12763,12 +12906,12 @@ var Dialog_default = Dialog;
|
|
|
12763
12906
|
// src/components/primitives/MultiInput/MultiInput.tsx
|
|
12764
12907
|
var import_browser78 = require("@asgardeo/browser");
|
|
12765
12908
|
var import_css51 = require("@emotion/css");
|
|
12766
|
-
var
|
|
12909
|
+
var import_react81 = require("react");
|
|
12767
12910
|
|
|
12768
12911
|
// src/components/primitives/MultiInput/MultiInput.styles.ts
|
|
12769
12912
|
var import_css50 = require("@emotion/css");
|
|
12770
|
-
var
|
|
12771
|
-
var useStyles23 = (theme, colorScheme, disabled, hasError, canAddMore, canRemove) => (0,
|
|
12913
|
+
var import_react80 = require("react");
|
|
12914
|
+
var useStyles23 = (theme, colorScheme, disabled, hasError, canAddMore, canRemove) => (0, import_react80.useMemo)(() => {
|
|
12772
12915
|
const container = import_css50.css`
|
|
12773
12916
|
display: flex;
|
|
12774
12917
|
flex-direction: column;
|
|
@@ -12883,7 +13026,7 @@ var MultiInput = ({
|
|
|
12883
13026
|
const styles = MultiInput_styles_default(theme, colorScheme, !!disabled, !!error, canAddMore, canRemove);
|
|
12884
13027
|
const PlusIcon = ({ iconClassName }) => /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 24 24", className: (0, import_css51.cx)(styles["icon"], iconClassName), children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("path", { d: "M12 5v14M5 12h14" }) });
|
|
12885
13028
|
const BinIcon = ({ iconClassName }) => /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("svg", { width: "16", height: "16", viewBox: "0 0 24 24", className: (0, import_css51.cx)(styles["icon"], iconClassName), children: /* @__PURE__ */ (0, import_jsx_runtime91.jsx)("path", { d: "M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2m3 0v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6h14ZM10 11v6M14 11v6" }) });
|
|
12886
|
-
const handleAddValue = (0,
|
|
13029
|
+
const handleAddValue = (0, import_react81.useCallback)(
|
|
12887
13030
|
(newValue) => {
|
|
12888
13031
|
if (newValue.trim() !== "" && (!maxFields || values.length < maxFields)) {
|
|
12889
13032
|
onChange([...values, newValue.trim()]);
|
|
@@ -12891,7 +13034,7 @@ var MultiInput = ({
|
|
|
12891
13034
|
},
|
|
12892
13035
|
[values, onChange, maxFields]
|
|
12893
13036
|
);
|
|
12894
|
-
const handleRemoveValue = (0,
|
|
13037
|
+
const handleRemoveValue = (0, import_react81.useCallback)(
|
|
12895
13038
|
(index) => {
|
|
12896
13039
|
if (values.length > minFields) {
|
|
12897
13040
|
const updatedValues = values.filter((_, i) => i !== index);
|
|
@@ -12900,7 +13043,7 @@ var MultiInput = ({
|
|
|
12900
13043
|
},
|
|
12901
13044
|
[values, onChange, minFields]
|
|
12902
13045
|
);
|
|
12903
|
-
const renderInputField = (0,
|
|
13046
|
+
const renderInputField = (0, import_react81.useCallback)(
|
|
12904
13047
|
(value, onValueChange, attachedEndIcon, onEndIconClick) => {
|
|
12905
13048
|
const handleInputChange = (e) => {
|
|
12906
13049
|
const newValue = e.target ? e.target.value : e;
|
|
@@ -12942,8 +13085,8 @@ var MultiInput = ({
|
|
|
12942
13085
|
},
|
|
12943
13086
|
[placeholder, disabled, startIcon, endIcon, error, fieldType, type]
|
|
12944
13087
|
);
|
|
12945
|
-
const [currentInputValue, setCurrentInputValue] = (0,
|
|
12946
|
-
const handleInputSubmit = (0,
|
|
13088
|
+
const [currentInputValue, setCurrentInputValue] = (0, import_react81.useState)("");
|
|
13089
|
+
const handleInputSubmit = (0, import_react81.useCallback)(() => {
|
|
12947
13090
|
if (currentInputValue.trim() !== "") {
|
|
12948
13091
|
handleAddValue(currentInputValue);
|
|
12949
13092
|
setCurrentInputValue("");
|
|
@@ -13041,15 +13184,16 @@ var BaseUserProfile = ({
|
|
|
13041
13184
|
open = false,
|
|
13042
13185
|
error = null,
|
|
13043
13186
|
isLoading = false,
|
|
13187
|
+
preferences,
|
|
13044
13188
|
showFields = [],
|
|
13045
13189
|
hideFields = [],
|
|
13046
13190
|
displayNameAttributes = []
|
|
13047
13191
|
}) => {
|
|
13048
13192
|
const { theme, colorScheme } = useTheme_default();
|
|
13049
|
-
const [editedUser, setEditedUser] = (0,
|
|
13050
|
-
const [editingFields, setEditingFields] = (0,
|
|
13051
|
-
const { t } = useTranslation_default();
|
|
13052
|
-
const shouldShowField = (0,
|
|
13193
|
+
const [editedUser, setEditedUser] = (0, import_react82.useState)(flattenedProfile || profile);
|
|
13194
|
+
const [editingFields, setEditingFields] = (0, import_react82.useState)({});
|
|
13195
|
+
const { t } = useTranslation_default(preferences?.i18n);
|
|
13196
|
+
const shouldShowField = (0, import_react82.useCallback)(
|
|
13053
13197
|
(fieldName) => {
|
|
13054
13198
|
if (fieldsToSkip.includes(fieldName)) {
|
|
13055
13199
|
return false;
|
|
@@ -13078,13 +13222,13 @@ var BaseUserProfile = ({
|
|
|
13078
13222
|
children: /* @__PURE__ */ (0, import_jsx_runtime92.jsx)("path", { d: "M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z" })
|
|
13079
13223
|
}
|
|
13080
13224
|
);
|
|
13081
|
-
const toggleFieldEdit = (0,
|
|
13225
|
+
const toggleFieldEdit = (0, import_react82.useCallback)((fieldName) => {
|
|
13082
13226
|
setEditingFields((prev) => ({
|
|
13083
13227
|
...prev,
|
|
13084
13228
|
[fieldName]: !prev[fieldName]
|
|
13085
13229
|
}));
|
|
13086
13230
|
}, []);
|
|
13087
|
-
const getFieldPlaceholder = (0,
|
|
13231
|
+
const getFieldPlaceholder = (0, import_react82.useCallback)((schema) => {
|
|
13088
13232
|
const { type, displayName, description, name } = schema;
|
|
13089
13233
|
const fieldLabel = displayName || description || name || "value";
|
|
13090
13234
|
switch (type) {
|
|
@@ -13098,7 +13242,7 @@ var BaseUserProfile = ({
|
|
|
13098
13242
|
return `Enter your ${fieldLabel.toLowerCase()}`;
|
|
13099
13243
|
}
|
|
13100
13244
|
}, []);
|
|
13101
|
-
const formatLabel = (0,
|
|
13245
|
+
const formatLabel = (0, import_react82.useCallback)(
|
|
13102
13246
|
(key) => key.split(/(?=[A-Z])|_/).map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join(" "),
|
|
13103
13247
|
[]
|
|
13104
13248
|
);
|
|
@@ -13128,7 +13272,7 @@ var BaseUserProfile = ({
|
|
|
13128
13272
|
}
|
|
13129
13273
|
}
|
|
13130
13274
|
}
|
|
13131
|
-
const handleFieldSave = (0,
|
|
13275
|
+
const handleFieldSave = (0, import_react82.useCallback)(
|
|
13132
13276
|
(schema) => {
|
|
13133
13277
|
if (!onUpdate || !schema.name) return;
|
|
13134
13278
|
const fieldName = schema.name;
|
|
@@ -13158,7 +13302,7 @@ var BaseUserProfile = ({
|
|
|
13158
13302
|
},
|
|
13159
13303
|
[editedUser, flattenedProfile, onUpdate, toggleFieldEdit]
|
|
13160
13304
|
);
|
|
13161
|
-
const handleFieldCancel = (0,
|
|
13305
|
+
const handleFieldCancel = (0, import_react82.useCallback)(
|
|
13162
13306
|
(fieldName) => {
|
|
13163
13307
|
const currentUser2 = flattenedProfile || profile;
|
|
13164
13308
|
setEditedUser((prev) => ({
|
|
@@ -13500,7 +13644,7 @@ var BaseUserProfile_default = BaseUserProfile;
|
|
|
13500
13644
|
|
|
13501
13645
|
// src/components/presentation/UserProfile/UserProfile.tsx
|
|
13502
13646
|
var import_browser81 = require("@asgardeo/browser");
|
|
13503
|
-
var
|
|
13647
|
+
var import_react83 = require("react");
|
|
13504
13648
|
|
|
13505
13649
|
// src/api/updateMeProfile.ts
|
|
13506
13650
|
var import_browser80 = require("@asgardeo/browser");
|
|
@@ -13531,11 +13675,11 @@ var updateMeProfile_default = updateMeProfile;
|
|
|
13531
13675
|
|
|
13532
13676
|
// src/components/presentation/UserProfile/UserProfile.tsx
|
|
13533
13677
|
var import_jsx_runtime93 = require("react/jsx-runtime");
|
|
13534
|
-
var UserProfile3 = ({ ...rest }) => {
|
|
13678
|
+
var UserProfile3 = ({ preferences, ...rest }) => {
|
|
13535
13679
|
const { baseUrl, instanceId } = useAsgardeo_default();
|
|
13536
13680
|
const { profile, flattenedProfile, schemas, onUpdateProfile } = useUser_default();
|
|
13537
|
-
const { t } = useTranslation_default();
|
|
13538
|
-
const [error, setError] = (0,
|
|
13681
|
+
const { t } = useTranslation_default(preferences?.i18n);
|
|
13682
|
+
const [error, setError] = (0, import_react83.useState)(null);
|
|
13539
13683
|
const handleProfileUpdate = async (payload) => {
|
|
13540
13684
|
setError(null);
|
|
13541
13685
|
try {
|
|
@@ -13557,6 +13701,7 @@ var UserProfile3 = ({ ...rest }) => {
|
|
|
13557
13701
|
schemas,
|
|
13558
13702
|
onUpdate: handleProfileUpdate,
|
|
13559
13703
|
error,
|
|
13704
|
+
preferences,
|
|
13560
13705
|
...rest
|
|
13561
13706
|
}
|
|
13562
13707
|
);
|
|
@@ -13566,13 +13711,13 @@ var UserProfile_default = UserProfile3;
|
|
|
13566
13711
|
// src/components/presentation/UserDropdown/BaseUserDropdown.tsx
|
|
13567
13712
|
var import_browser82 = require("@asgardeo/browser");
|
|
13568
13713
|
var import_css54 = require("@emotion/css");
|
|
13569
|
-
var
|
|
13570
|
-
var
|
|
13714
|
+
var import_react85 = require("@floating-ui/react");
|
|
13715
|
+
var import_react86 = require("react");
|
|
13571
13716
|
|
|
13572
13717
|
// src/components/presentation/UserDropdown/BaseUserDropdown.styles.ts
|
|
13573
13718
|
var import_css53 = require("@emotion/css");
|
|
13574
|
-
var
|
|
13575
|
-
var useStyles24 = (theme, colorScheme) => (0,
|
|
13719
|
+
var import_react84 = require("react");
|
|
13720
|
+
var useStyles24 = (theme, colorScheme) => (0, import_react84.useMemo)(() => {
|
|
13576
13721
|
const trigger = import_css53.css`
|
|
13577
13722
|
display: inline-flex;
|
|
13578
13723
|
align-items: center;
|
|
@@ -13775,19 +13920,19 @@ var BaseUserDropdown = ({
|
|
|
13775
13920
|
}) => {
|
|
13776
13921
|
const { theme, colorScheme } = useTheme_default();
|
|
13777
13922
|
const styles = BaseUserDropdown_styles_default(theme, colorScheme);
|
|
13778
|
-
const [isOpen, setIsOpen] = (0,
|
|
13779
|
-
const [hoveredItemIndex, setHoveredItemIndex] = (0,
|
|
13780
|
-
const { refs, floatingStyles, context } = (0,
|
|
13781
|
-
middleware: [(0,
|
|
13923
|
+
const [isOpen, setIsOpen] = (0, import_react86.useState)(false);
|
|
13924
|
+
const [hoveredItemIndex, setHoveredItemIndex] = (0, import_react86.useState)(null);
|
|
13925
|
+
const { refs, floatingStyles, context } = (0, import_react85.useFloating)({
|
|
13926
|
+
middleware: [(0, import_react85.offset)(5), (0, import_react85.flip)({ fallbackAxisSideDirection: "end" }), (0, import_react85.shift)({ padding: 5 })],
|
|
13782
13927
|
onOpenChange: setIsOpen,
|
|
13783
13928
|
open: isOpen,
|
|
13784
13929
|
placement: "bottom-end",
|
|
13785
|
-
whileElementsMounted:
|
|
13930
|
+
whileElementsMounted: import_react85.autoUpdate
|
|
13786
13931
|
});
|
|
13787
|
-
const click = (0,
|
|
13788
|
-
const dismiss = (0,
|
|
13789
|
-
const role = (0,
|
|
13790
|
-
const { getReferenceProps, getFloatingProps } = (0,
|
|
13932
|
+
const click = (0, import_react85.useClick)(context);
|
|
13933
|
+
const dismiss = (0, import_react85.useDismiss)(context);
|
|
13934
|
+
const role = (0, import_react85.useRole)(context);
|
|
13935
|
+
const { getReferenceProps, getFloatingProps } = (0, import_react85.useInteractions)([click, dismiss, role]);
|
|
13791
13936
|
const defaultAttributeMappings = {
|
|
13792
13937
|
email: ["emails"],
|
|
13793
13938
|
firstName: ["name.givenName", "given_name"],
|
|
@@ -13862,7 +14007,7 @@ var BaseUserDropdown = ({
|
|
|
13862
14007
|
]
|
|
13863
14008
|
}
|
|
13864
14009
|
),
|
|
13865
|
-
isOpen && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(
|
|
14010
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_react85.FloatingPortal, { id: portalId, children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_react85.FloatingFocusManager, { context, modal: false, initialFocus: -1, children: /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
|
|
13866
14011
|
"div",
|
|
13867
14012
|
{
|
|
13868
14013
|
ref: refs.setFloating,
|
|
@@ -13966,7 +14111,7 @@ var BaseUserDropdown = ({
|
|
|
13966
14111
|
var BaseUserDropdown_default = BaseUserDropdown;
|
|
13967
14112
|
|
|
13968
14113
|
// src/components/presentation/UserDropdown/UserDropdown.tsx
|
|
13969
|
-
var
|
|
14114
|
+
var import_react87 = require("react");
|
|
13970
14115
|
var import_jsx_runtime95 = require("react/jsx-runtime");
|
|
13971
14116
|
var UserDropdown = ({
|
|
13972
14117
|
children,
|
|
@@ -13976,7 +14121,7 @@ var UserDropdown = ({
|
|
|
13976
14121
|
...rest
|
|
13977
14122
|
}) => {
|
|
13978
14123
|
const { user, isLoading, signOut, meta } = useAsgardeo_default();
|
|
13979
|
-
const [isProfileOpen, setIsProfileOpen] = (0,
|
|
14124
|
+
const [isProfileOpen, setIsProfileOpen] = (0, import_react87.useState)(false);
|
|
13980
14125
|
const handleManageProfile = () => {
|
|
13981
14126
|
setIsProfileOpen(true);
|
|
13982
14127
|
};
|
|
@@ -14037,13 +14182,13 @@ var UserDropdown_default = UserDropdown;
|
|
|
14037
14182
|
|
|
14038
14183
|
// src/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.tsx
|
|
14039
14184
|
var import_css56 = require("@emotion/css");
|
|
14040
|
-
var
|
|
14041
|
-
var
|
|
14185
|
+
var import_react89 = require("@floating-ui/react");
|
|
14186
|
+
var import_react90 = require("react");
|
|
14042
14187
|
|
|
14043
14188
|
// src/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.styles.ts
|
|
14044
14189
|
var import_css55 = require("@emotion/css");
|
|
14045
|
-
var
|
|
14046
|
-
var useStyles25 = (theme, colorScheme) => (0,
|
|
14190
|
+
var import_react88 = require("react");
|
|
14191
|
+
var useStyles25 = (theme, colorScheme) => (0, import_react88.useMemo)(() => {
|
|
14047
14192
|
const root = import_css55.css`
|
|
14048
14193
|
display: inline-block;
|
|
14049
14194
|
position: relative;
|
|
@@ -14320,25 +14465,26 @@ var BaseOrganizationSwitcher = ({
|
|
|
14320
14465
|
portalId = "asgardeo-organization-switcher",
|
|
14321
14466
|
showTriggerLabel = true,
|
|
14322
14467
|
avatarSize = 24,
|
|
14323
|
-
fallback = null
|
|
14468
|
+
fallback = null,
|
|
14469
|
+
preferences
|
|
14324
14470
|
}) => {
|
|
14325
14471
|
const { theme, colorScheme, direction } = useTheme_default();
|
|
14326
14472
|
const styles = BaseOrganizationSwitcher_styles_default(theme, colorScheme);
|
|
14327
|
-
const [isOpen, setIsOpen] = (0,
|
|
14328
|
-
const [hoveredItemIndex, setHoveredItemIndex] = (0,
|
|
14329
|
-
const { t } = useTranslation_default();
|
|
14473
|
+
const [isOpen, setIsOpen] = (0, import_react90.useState)(false);
|
|
14474
|
+
const [hoveredItemIndex, setHoveredItemIndex] = (0, import_react90.useState)(null);
|
|
14475
|
+
const { t } = useTranslation_default(preferences?.i18n);
|
|
14330
14476
|
const isRTL = direction === "rtl";
|
|
14331
|
-
const { refs, floatingStyles, context } = (0,
|
|
14332
|
-
middleware: [(0,
|
|
14477
|
+
const { refs, floatingStyles, context } = (0, import_react89.useFloating)({
|
|
14478
|
+
middleware: [(0, import_react89.offset)(5), (0, import_react89.flip)({ fallbackAxisSideDirection: "end" }), (0, import_react89.shift)({ padding: 5 })],
|
|
14333
14479
|
onOpenChange: setIsOpen,
|
|
14334
14480
|
open: isOpen,
|
|
14335
14481
|
placement: "bottom-end",
|
|
14336
|
-
whileElementsMounted:
|
|
14482
|
+
whileElementsMounted: import_react89.autoUpdate
|
|
14337
14483
|
});
|
|
14338
|
-
const click = (0,
|
|
14339
|
-
const dismiss = (0,
|
|
14340
|
-
const role = (0,
|
|
14341
|
-
const { getReferenceProps, getFloatingProps } = (0,
|
|
14484
|
+
const click = (0, import_react89.useClick)(context);
|
|
14485
|
+
const dismiss = (0, import_react89.useDismiss)(context);
|
|
14486
|
+
const role = (0, import_react89.useRole)(context);
|
|
14487
|
+
const { getReferenceProps, getFloatingProps } = (0, import_react89.useInteractions)([click, dismiss, role]);
|
|
14342
14488
|
if (fallback && !currentOrganization && !loading && organizations.length === 0) {
|
|
14343
14489
|
return fallback;
|
|
14344
14490
|
}
|
|
@@ -14413,7 +14559,7 @@ var BaseOrganizationSwitcher = ({
|
|
|
14413
14559
|
]
|
|
14414
14560
|
}
|
|
14415
14561
|
),
|
|
14416
|
-
isOpen && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(
|
|
14562
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_react89.FloatingPortal, { id: portalId, children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_react89.FloatingFocusManager, { context, modal: false, initialFocus: -1, children: /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
|
|
14417
14563
|
"div",
|
|
14418
14564
|
{
|
|
14419
14565
|
ref: refs.setFloating,
|
|
@@ -14572,7 +14718,7 @@ var BaseOrganizationSwitcher = ({
|
|
|
14572
14718
|
var BaseOrganizationSwitcher_default = BaseOrganizationSwitcher;
|
|
14573
14719
|
|
|
14574
14720
|
// src/components/presentation/OrganizationSwitcher/OrganizationSwitcher.tsx
|
|
14575
|
-
var
|
|
14721
|
+
var import_react103 = require("react");
|
|
14576
14722
|
|
|
14577
14723
|
// src/components/primitives/Icons/BuildingAlt.tsx
|
|
14578
14724
|
var import_jsx_runtime100 = require("react/jsx-runtime");
|
|
@@ -14603,17 +14749,17 @@ BuildingAlt.displayName = "BuildingAlt";
|
|
|
14603
14749
|
var BuildingAlt_default = BuildingAlt;
|
|
14604
14750
|
|
|
14605
14751
|
// src/components/presentation/CreateOrganization/CreateOrganization.tsx
|
|
14606
|
-
var
|
|
14752
|
+
var import_react93 = require("react");
|
|
14607
14753
|
|
|
14608
14754
|
// src/components/presentation/CreateOrganization/BaseCreateOrganization.tsx
|
|
14609
14755
|
var import_browser83 = require("@asgardeo/browser");
|
|
14610
14756
|
var import_css58 = require("@emotion/css");
|
|
14611
|
-
var
|
|
14757
|
+
var import_react92 = require("react");
|
|
14612
14758
|
|
|
14613
14759
|
// src/components/presentation/CreateOrganization/BaseCreateOrganization.styles.ts
|
|
14614
14760
|
var import_css57 = require("@emotion/css");
|
|
14615
|
-
var
|
|
14616
|
-
var useStyles26 = (theme, colorScheme) => (0,
|
|
14761
|
+
var import_react91 = require("react");
|
|
14762
|
+
var useStyles26 = (theme, colorScheme) => (0, import_react91.useMemo)(() => {
|
|
14617
14763
|
const root = import_css57.css`
|
|
14618
14764
|
padding: calc(${theme.vars.spacing.unit} * 4);
|
|
14619
14765
|
min-width: 600px;
|
|
@@ -14768,20 +14914,21 @@ var BaseCreateOrganization = ({
|
|
|
14768
14914
|
onSubmit,
|
|
14769
14915
|
onSuccess,
|
|
14770
14916
|
open = false,
|
|
14917
|
+
preferences,
|
|
14771
14918
|
renderAdditionalFields,
|
|
14772
14919
|
style,
|
|
14773
14920
|
title = "Create Organization"
|
|
14774
14921
|
}) => {
|
|
14775
14922
|
const { theme, colorScheme } = useTheme_default();
|
|
14776
14923
|
const styles = BaseCreateOrganization_styles_default(theme, colorScheme);
|
|
14777
|
-
const { t } = useTranslation_default();
|
|
14778
|
-
const [formData, setFormData] = (0,
|
|
14924
|
+
const { t } = useTranslation_default(preferences?.i18n);
|
|
14925
|
+
const [formData, setFormData] = (0, import_react92.useState)({
|
|
14779
14926
|
description: "",
|
|
14780
14927
|
handle: "",
|
|
14781
14928
|
name: "",
|
|
14782
14929
|
...initialValues
|
|
14783
14930
|
});
|
|
14784
|
-
const [formErrors, setFormErrors] = (0,
|
|
14931
|
+
const [formErrors, setFormErrors] = (0, import_react92.useState)({});
|
|
14785
14932
|
const validateForm = () => {
|
|
14786
14933
|
const errors = {};
|
|
14787
14934
|
if (!formData.name.trim()) {
|
|
@@ -14943,8 +15090,8 @@ var CreateOrganization = ({
|
|
|
14943
15090
|
}) => {
|
|
14944
15091
|
const { isSignedIn, baseUrl, instanceId } = useAsgardeo_default();
|
|
14945
15092
|
const { currentOrganization, revalidateMyOrganizations } = useOrganization_default();
|
|
14946
|
-
const [loading, setLoading] = (0,
|
|
14947
|
-
const [error, setError] = (0,
|
|
15093
|
+
const [loading, setLoading] = (0, import_react93.useState)(false);
|
|
15094
|
+
const [error, setError] = (0, import_react93.useState)(null);
|
|
14948
15095
|
if (!isSignedIn && fallback) {
|
|
14949
15096
|
return fallback;
|
|
14950
15097
|
}
|
|
@@ -14999,16 +15146,16 @@ var CreateOrganization = ({
|
|
|
14999
15146
|
|
|
15000
15147
|
// src/components/presentation/OrganizationList/OrganizationList.tsx
|
|
15001
15148
|
var import_css62 = require("@emotion/css");
|
|
15002
|
-
var
|
|
15149
|
+
var import_react97 = require("react");
|
|
15003
15150
|
|
|
15004
15151
|
// src/components/presentation/OrganizationList/BaseOrganizationList.tsx
|
|
15005
15152
|
var import_css60 = require("@emotion/css");
|
|
15006
|
-
var
|
|
15153
|
+
var import_react95 = require("react");
|
|
15007
15154
|
|
|
15008
15155
|
// src/components/presentation/OrganizationList/BaseOrganizationList.styles.ts
|
|
15009
15156
|
var import_css59 = require("@emotion/css");
|
|
15010
|
-
var
|
|
15011
|
-
var useStyles27 = (theme, colorScheme) => (0,
|
|
15157
|
+
var import_react94 = require("react");
|
|
15158
|
+
var useStyles27 = (theme, colorScheme) => (0, import_react94.useMemo)(() => {
|
|
15012
15159
|
const root = import_css59.css`
|
|
15013
15160
|
padding: calc(${theme.vars.spacing.unit} * 4);
|
|
15014
15161
|
min-width: 600px;
|
|
@@ -15303,12 +15450,13 @@ var BaseOrganizationList = ({
|
|
|
15303
15450
|
renderOrganization,
|
|
15304
15451
|
style,
|
|
15305
15452
|
title = "Organizations",
|
|
15306
|
-
showStatus
|
|
15453
|
+
showStatus,
|
|
15454
|
+
preferences
|
|
15307
15455
|
}) => {
|
|
15308
15456
|
const { theme, colorScheme } = useTheme_default();
|
|
15309
15457
|
const styles = BaseOrganizationList_styles_default(theme, colorScheme);
|
|
15310
|
-
const { t } = useTranslation_default();
|
|
15311
|
-
const organizationsWithSwitchAccess = (0,
|
|
15458
|
+
const { t } = useTranslation_default(preferences?.i18n);
|
|
15459
|
+
const organizationsWithSwitchAccess = (0, import_react95.useMemo)(() => {
|
|
15312
15460
|
if (!allOrganizations?.organizations) {
|
|
15313
15461
|
return [];
|
|
15314
15462
|
}
|
|
@@ -15389,8 +15537,8 @@ var BaseOrganizationList_default = BaseOrganizationList;
|
|
|
15389
15537
|
|
|
15390
15538
|
// src/components/presentation/OrganizationList/OrganizationList.styles.ts
|
|
15391
15539
|
var import_css61 = require("@emotion/css");
|
|
15392
|
-
var
|
|
15393
|
-
var useStyles28 = (theme, colorScheme) => (0,
|
|
15540
|
+
var import_react96 = require("react");
|
|
15541
|
+
var useStyles28 = (theme, colorScheme) => (0, import_react96.useMemo)(() => {
|
|
15394
15542
|
const cssOrganizationListWrapper = import_css61.css`
|
|
15395
15543
|
/* Container wrapper styles for OrganizationList component */
|
|
15396
15544
|
width: 100%;
|
|
@@ -15457,10 +15605,10 @@ var OrganizationList = (props) => {
|
|
|
15457
15605
|
const { theme, colorScheme } = useTheme_default();
|
|
15458
15606
|
const styles = OrganizationList_styles_default(theme, colorScheme);
|
|
15459
15607
|
const { getAllOrganizations: getAllOrganizations2, error, isLoading, myOrganizations } = useOrganization_default();
|
|
15460
|
-
const [allOrganizations, setAllOrganizations] = (0,
|
|
15608
|
+
const [allOrganizations, setAllOrganizations] = (0, import_react97.useState)({
|
|
15461
15609
|
organizations: []
|
|
15462
15610
|
});
|
|
15463
|
-
(0,
|
|
15611
|
+
(0, import_react97.useEffect)(() => {
|
|
15464
15612
|
(async () => {
|
|
15465
15613
|
setAllOrganizations(await getAllOrganizations2());
|
|
15466
15614
|
})();
|
|
@@ -15481,17 +15629,17 @@ var OrganizationList_default = OrganizationList;
|
|
|
15481
15629
|
|
|
15482
15630
|
// src/components/presentation/OrganizationProfile/OrganizationProfile.tsx
|
|
15483
15631
|
var import_browser89 = require("@asgardeo/browser");
|
|
15484
|
-
var
|
|
15632
|
+
var import_react102 = require("react");
|
|
15485
15633
|
|
|
15486
15634
|
// src/components/presentation/OrganizationProfile/BaseOrganizationProfile.tsx
|
|
15487
15635
|
var import_browser86 = require("@asgardeo/browser");
|
|
15488
15636
|
var import_css66 = require("@emotion/css");
|
|
15489
|
-
var
|
|
15637
|
+
var import_react101 = require("react");
|
|
15490
15638
|
|
|
15491
15639
|
// src/components/presentation/OrganizationProfile/BaseOrganizationProfile.styles.ts
|
|
15492
15640
|
var import_css63 = require("@emotion/css");
|
|
15493
|
-
var
|
|
15494
|
-
var useStyles29 = (theme, colorScheme) => (0,
|
|
15641
|
+
var import_react98 = require("react");
|
|
15642
|
+
var useStyles29 = (theme, colorScheme) => (0, import_react98.useMemo)(
|
|
15495
15643
|
() => ({
|
|
15496
15644
|
attributeItem: import_css63.css`
|
|
15497
15645
|
display: flex;
|
|
@@ -15647,12 +15795,12 @@ var BaseOrganizationProfile_styles_default = useStyles29;
|
|
|
15647
15795
|
// src/components/primitives/KeyValueInput/KeyValueInput.tsx
|
|
15648
15796
|
var import_browser85 = require("@asgardeo/browser");
|
|
15649
15797
|
var import_css65 = require("@emotion/css");
|
|
15650
|
-
var
|
|
15798
|
+
var import_react100 = require("react");
|
|
15651
15799
|
|
|
15652
15800
|
// src/components/primitives/KeyValueInput/KeyValueInput.styles.ts
|
|
15653
15801
|
var import_css64 = require("@emotion/css");
|
|
15654
|
-
var
|
|
15655
|
-
var useStyles30 = (theme, colorScheme, disabled, readOnly, hasError) => (0,
|
|
15802
|
+
var import_react99 = require("react");
|
|
15803
|
+
var useStyles30 = (theme, colorScheme, disabled, readOnly, hasError) => (0, import_react99.useMemo)(() => {
|
|
15656
15804
|
const container = import_css64.css`
|
|
15657
15805
|
display: flex;
|
|
15658
15806
|
flex-direction: column;
|
|
@@ -15827,10 +15975,10 @@ var KeyValueInput = ({
|
|
|
15827
15975
|
const { theme, colorScheme } = useTheme_default();
|
|
15828
15976
|
const styles = KeyValueInput_styles_default(theme, colorScheme, disabled, readOnly, !!error);
|
|
15829
15977
|
const initialPairs = Array.isArray(value) ? value : Object.entries(value).map(([key, val]) => ({ key, value: String(val) }));
|
|
15830
|
-
const [pairs, setPairs] = (0,
|
|
15831
|
-
const [newKey, setNewKey] = (0,
|
|
15832
|
-
const [newValue, setNewValue] = (0,
|
|
15833
|
-
const handleAddPair = (0,
|
|
15978
|
+
const [pairs, setPairs] = (0, import_react100.useState)(initialPairs);
|
|
15979
|
+
const [newKey, setNewKey] = (0, import_react100.useState)("");
|
|
15980
|
+
const [newValue, setNewValue] = (0, import_react100.useState)("");
|
|
15981
|
+
const handleAddPair = (0, import_react100.useCallback)(() => {
|
|
15834
15982
|
if (!newKey.trim() || !newValue.trim()) return;
|
|
15835
15983
|
if (maxPairs && pairs.length >= maxPairs) return;
|
|
15836
15984
|
const newPair = {
|
|
@@ -15848,7 +15996,7 @@ var KeyValueInput = ({
|
|
|
15848
15996
|
onAdd(newPair);
|
|
15849
15997
|
}
|
|
15850
15998
|
}, [newKey, newValue, pairs, maxPairs, onChange, onAdd]);
|
|
15851
|
-
const handleRemovePair = (0,
|
|
15999
|
+
const handleRemovePair = (0, import_react100.useCallback)(
|
|
15852
16000
|
(index) => {
|
|
15853
16001
|
const pairToRemove = pairs[index];
|
|
15854
16002
|
const updatedPairs = pairs.filter((_, i) => i !== index);
|
|
@@ -15862,7 +16010,7 @@ var KeyValueInput = ({
|
|
|
15862
16010
|
},
|
|
15863
16011
|
[pairs, onChange, onRemove]
|
|
15864
16012
|
);
|
|
15865
|
-
const handleUpdatePair = (0,
|
|
16013
|
+
const handleUpdatePair = (0, import_react100.useCallback)(
|
|
15866
16014
|
(index, field, newVal) => {
|
|
15867
16015
|
const updatedPairs = pairs.map((pair, i) => {
|
|
15868
16016
|
if (i === index) {
|
|
@@ -16061,8 +16209,8 @@ var BaseOrganizationProfile = ({
|
|
|
16061
16209
|
}) => {
|
|
16062
16210
|
const { theme, colorScheme } = useTheme_default();
|
|
16063
16211
|
const styles = BaseOrganizationProfile_styles_default(theme, colorScheme);
|
|
16064
|
-
const [editedOrganization, setEditedOrganization] = (0,
|
|
16065
|
-
const [editingFields, setEditingFields] = (0,
|
|
16212
|
+
const [editedOrganization, setEditedOrganization] = (0, import_react101.useState)(organization);
|
|
16213
|
+
const [editingFields, setEditingFields] = (0, import_react101.useState)({});
|
|
16066
16214
|
const PencilIcon = () => /* @__PURE__ */ (0, import_jsx_runtime106.jsx)(
|
|
16067
16215
|
"svg",
|
|
16068
16216
|
{
|
|
@@ -16077,13 +16225,13 @@ var BaseOrganizationProfile = ({
|
|
|
16077
16225
|
children: /* @__PURE__ */ (0, import_jsx_runtime106.jsx)("path", { d: "M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z" })
|
|
16078
16226
|
}
|
|
16079
16227
|
);
|
|
16080
|
-
const toggleFieldEdit = (0,
|
|
16228
|
+
const toggleFieldEdit = (0, import_react101.useCallback)((fieldName) => {
|
|
16081
16229
|
setEditingFields((prev) => ({
|
|
16082
16230
|
...prev,
|
|
16083
16231
|
[fieldName]: !prev[fieldName]
|
|
16084
16232
|
}));
|
|
16085
16233
|
}, []);
|
|
16086
|
-
const getFieldPlaceholder = (0,
|
|
16234
|
+
const getFieldPlaceholder = (0, import_react101.useCallback)((fieldKey) => {
|
|
16087
16235
|
const fieldLabels = {
|
|
16088
16236
|
description: "organization description",
|
|
16089
16237
|
name: "organization name",
|
|
@@ -16094,7 +16242,7 @@ var BaseOrganizationProfile = ({
|
|
|
16094
16242
|
const fieldLabel = fieldLabels[fieldKey] || fieldKey.toLowerCase();
|
|
16095
16243
|
return `Enter ${fieldLabel}`;
|
|
16096
16244
|
}, []);
|
|
16097
|
-
const handleFieldSave = (0,
|
|
16245
|
+
const handleFieldSave = (0, import_react101.useCallback)(
|
|
16098
16246
|
(fieldKey) => {
|
|
16099
16247
|
if (!onUpdate || !fieldKey) return;
|
|
16100
16248
|
let fieldValue;
|
|
@@ -16113,7 +16261,7 @@ var BaseOrganizationProfile = ({
|
|
|
16113
16261
|
},
|
|
16114
16262
|
[editedOrganization, organization, onUpdate, toggleFieldEdit]
|
|
16115
16263
|
);
|
|
16116
|
-
const handleFieldCancel = (0,
|
|
16264
|
+
const handleFieldCancel = (0, import_react101.useCallback)(
|
|
16117
16265
|
(fieldKey) => {
|
|
16118
16266
|
setEditedOrganization((prev) => ({
|
|
16119
16267
|
...prev,
|
|
@@ -16374,11 +16522,12 @@ var OrganizationProfile = ({
|
|
|
16374
16522
|
popupTitle,
|
|
16375
16523
|
loadingFallback,
|
|
16376
16524
|
errorFallback,
|
|
16525
|
+
preferences,
|
|
16377
16526
|
...rest
|
|
16378
16527
|
}) => {
|
|
16379
16528
|
const { baseUrl, instanceId } = useAsgardeo_default();
|
|
16380
|
-
const { t } = useTranslation_default();
|
|
16381
|
-
const [organization, setOrganization] = (0,
|
|
16529
|
+
const { t } = useTranslation_default(preferences?.i18n);
|
|
16530
|
+
const [organization, setOrganization] = (0, import_react102.useState)(null);
|
|
16382
16531
|
const fetchOrganization = async () => {
|
|
16383
16532
|
if (!baseUrl || !organizationId) {
|
|
16384
16533
|
return;
|
|
@@ -16395,7 +16544,7 @@ var OrganizationProfile = ({
|
|
|
16395
16544
|
setOrganization(null);
|
|
16396
16545
|
}
|
|
16397
16546
|
};
|
|
16398
|
-
(0,
|
|
16547
|
+
(0, import_react102.useEffect)(() => {
|
|
16399
16548
|
fetchOrganization();
|
|
16400
16549
|
}, [baseUrl, organizationId]);
|
|
16401
16550
|
const handleOrganizationUpdate = async (payload) => {
|
|
@@ -16426,6 +16575,7 @@ var OrganizationProfile = ({
|
|
|
16426
16575
|
open,
|
|
16427
16576
|
onOpenChange,
|
|
16428
16577
|
title: popupTitle || t("organization.profile.heading"),
|
|
16578
|
+
preferences,
|
|
16429
16579
|
...rest
|
|
16430
16580
|
}
|
|
16431
16581
|
);
|
|
@@ -16439,6 +16589,7 @@ var OrganizationSwitcher = ({
|
|
|
16439
16589
|
fallback = null,
|
|
16440
16590
|
onOrganizationSwitch: propOnOrganizationSwitch,
|
|
16441
16591
|
organizations: propOrganizations,
|
|
16592
|
+
preferences,
|
|
16442
16593
|
...props
|
|
16443
16594
|
}) => {
|
|
16444
16595
|
const { isSignedIn } = useAsgardeo_default();
|
|
@@ -16449,10 +16600,10 @@ var OrganizationSwitcher = ({
|
|
|
16449
16600
|
isLoading,
|
|
16450
16601
|
error
|
|
16451
16602
|
} = useOrganization_default();
|
|
16452
|
-
const [isCreateOrgOpen, setIsCreateOrgOpen] = (0,
|
|
16453
|
-
const [isProfileOpen, setIsProfileOpen] = (0,
|
|
16454
|
-
const [isOrganizationListOpen, setIsOrganizationListOpen] = (0,
|
|
16455
|
-
const { t } = useTranslation_default();
|
|
16603
|
+
const [isCreateOrgOpen, setIsCreateOrgOpen] = (0, import_react103.useState)(false);
|
|
16604
|
+
const [isProfileOpen, setIsProfileOpen] = (0, import_react103.useState)(false);
|
|
16605
|
+
const [isOrganizationListOpen, setIsOrganizationListOpen] = (0, import_react103.useState)(false);
|
|
16606
|
+
const { t } = useTranslation_default(preferences?.i18n);
|
|
16456
16607
|
if (!isSignedIn && fallback) {
|
|
16457
16608
|
return fallback;
|
|
16458
16609
|
}
|
|
@@ -16493,6 +16644,7 @@ var OrganizationSwitcher = ({
|
|
|
16493
16644
|
error,
|
|
16494
16645
|
menuItems,
|
|
16495
16646
|
onManageProfile: handleManageOrganization,
|
|
16647
|
+
preferences,
|
|
16496
16648
|
...props
|
|
16497
16649
|
}
|
|
16498
16650
|
),
|
|
@@ -16541,6 +16693,254 @@ var OrganizationSwitcher = ({
|
|
|
16541
16693
|
};
|
|
16542
16694
|
var OrganizationSwitcher_default = OrganizationSwitcher;
|
|
16543
16695
|
|
|
16544
|
-
// src/
|
|
16696
|
+
// src/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.tsx
|
|
16697
|
+
var import_css68 = require("@emotion/css");
|
|
16698
|
+
var import_react105 = require("@floating-ui/react");
|
|
16699
|
+
var import_react106 = require("react");
|
|
16700
|
+
|
|
16701
|
+
// src/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.ts
|
|
16702
|
+
var import_css67 = require("@emotion/css");
|
|
16703
|
+
var import_react104 = require("react");
|
|
16704
|
+
var useStyles31 = (theme, colorScheme) => (0, import_react104.useMemo)(() => {
|
|
16705
|
+
const root = import_css67.css`
|
|
16706
|
+
display: inline-block;
|
|
16707
|
+
position: relative;
|
|
16708
|
+
font-family: ${theme.vars.typography.fontFamily};
|
|
16709
|
+
`;
|
|
16710
|
+
const trigger = import_css67.css`
|
|
16711
|
+
display: inline-flex;
|
|
16712
|
+
align-items: center;
|
|
16713
|
+
gap: calc(${theme.vars.spacing.unit} * 0.5);
|
|
16714
|
+
padding: calc(${theme.vars.spacing.unit} * 0.75) ${theme.vars.spacing.unit};
|
|
16715
|
+
border: 1px solid ${theme.vars.colors.border};
|
|
16716
|
+
background: ${theme.vars.colors.background.surface};
|
|
16717
|
+
cursor: pointer;
|
|
16718
|
+
border-radius: ${theme.vars.borderRadius.medium};
|
|
16719
|
+
min-width: 120px;
|
|
16720
|
+
font-size: 0.875rem;
|
|
16721
|
+
color: ${theme.vars.colors.text.primary};
|
|
16722
|
+
|
|
16723
|
+
&:hover {
|
|
16724
|
+
background-color: ${theme.vars.colors.action?.hover || "rgba(0, 0, 0, 0.04)"};
|
|
16725
|
+
}
|
|
16726
|
+
`;
|
|
16727
|
+
const triggerEmoji = import_css67.css`
|
|
16728
|
+
font-size: 1rem;
|
|
16729
|
+
line-height: 1;
|
|
16730
|
+
`;
|
|
16731
|
+
const triggerLabel = import_css67.css`
|
|
16732
|
+
flex: 1;
|
|
16733
|
+
overflow: hidden;
|
|
16734
|
+
text-overflow: ellipsis;
|
|
16735
|
+
white-space: nowrap;
|
|
16736
|
+
font-weight: 500;
|
|
16737
|
+
`;
|
|
16738
|
+
const content = import_css67.css`
|
|
16739
|
+
min-width: 200px;
|
|
16740
|
+
max-width: 320px;
|
|
16741
|
+
background-color: ${theme.vars.colors.background.surface};
|
|
16742
|
+
border-radius: ${theme.vars.borderRadius.medium};
|
|
16743
|
+
box-shadow: ${theme.vars.shadows.medium};
|
|
16744
|
+
border: 1px solid ${theme.vars.colors.border};
|
|
16745
|
+
outline: none;
|
|
16746
|
+
z-index: 1000;
|
|
16747
|
+
padding: calc(${theme.vars.spacing.unit} * 0.5) 0;
|
|
16748
|
+
`;
|
|
16749
|
+
const option = import_css67.css`
|
|
16750
|
+
display: flex;
|
|
16751
|
+
align-items: center;
|
|
16752
|
+
gap: ${theme.vars.spacing.unit};
|
|
16753
|
+
padding: calc(${theme.vars.spacing.unit} * 1) calc(${theme.vars.spacing.unit} * 1.5);
|
|
16754
|
+
width: 100%;
|
|
16755
|
+
border: none;
|
|
16756
|
+
background-color: transparent;
|
|
16757
|
+
cursor: pointer;
|
|
16758
|
+
font-size: 0.875rem;
|
|
16759
|
+
text-align: start;
|
|
16760
|
+
color: ${theme.vars.colors.text.primary};
|
|
16761
|
+
transition: background-color 0.15s ease-in-out;
|
|
16762
|
+
|
|
16763
|
+
&:hover {
|
|
16764
|
+
background-color: ${theme.vars.colors.action?.hover || "rgba(0, 0, 0, 0.04)"};
|
|
16765
|
+
}
|
|
16766
|
+
`;
|
|
16767
|
+
const optionActive = import_css67.css`
|
|
16768
|
+
font-weight: 600;
|
|
16769
|
+
color: ${theme.vars.colors.primary?.main || theme.vars.colors.text.primary};
|
|
16770
|
+
`;
|
|
16771
|
+
const optionEmoji = import_css67.css`
|
|
16772
|
+
font-size: 1rem;
|
|
16773
|
+
line-height: 1;
|
|
16774
|
+
flex-shrink: 0;
|
|
16775
|
+
`;
|
|
16776
|
+
const optionLabel = import_css67.css`
|
|
16777
|
+
flex: 1;
|
|
16778
|
+
overflow: hidden;
|
|
16779
|
+
text-overflow: ellipsis;
|
|
16780
|
+
white-space: nowrap;
|
|
16781
|
+
`;
|
|
16782
|
+
const checkIcon = import_css67.css`
|
|
16783
|
+
color: ${theme.vars.colors.primary?.main || theme.vars.colors.text.primary};
|
|
16784
|
+
flex-shrink: 0;
|
|
16785
|
+
margin-inline-start: auto;
|
|
16786
|
+
`;
|
|
16787
|
+
return {
|
|
16788
|
+
checkIcon,
|
|
16789
|
+
content,
|
|
16790
|
+
option,
|
|
16791
|
+
optionActive,
|
|
16792
|
+
optionEmoji,
|
|
16793
|
+
optionLabel,
|
|
16794
|
+
root,
|
|
16795
|
+
trigger,
|
|
16796
|
+
triggerEmoji,
|
|
16797
|
+
triggerLabel
|
|
16798
|
+
};
|
|
16799
|
+
}, [
|
|
16800
|
+
theme.vars.colors.background.surface,
|
|
16801
|
+
theme.vars.colors.text.primary,
|
|
16802
|
+
theme.vars.colors.border,
|
|
16803
|
+
theme.vars.borderRadius.medium,
|
|
16804
|
+
theme.vars.shadows.medium,
|
|
16805
|
+
theme.vars.spacing.unit,
|
|
16806
|
+
theme.vars.colors.action?.hover,
|
|
16807
|
+
theme.vars.typography.fontFamily,
|
|
16808
|
+
theme.vars.colors.primary?.main,
|
|
16809
|
+
colorScheme
|
|
16810
|
+
]);
|
|
16811
|
+
var BaseLanguageSwitcher_styles_default = useStyles31;
|
|
16812
|
+
|
|
16813
|
+
// src/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.tsx
|
|
16814
|
+
var import_jsx_runtime109 = require("react/jsx-runtime");
|
|
16815
|
+
var BaseLanguageSwitcher = ({
|
|
16816
|
+
children,
|
|
16817
|
+
className,
|
|
16818
|
+
currentLanguage,
|
|
16819
|
+
isLoading = false,
|
|
16820
|
+
languages,
|
|
16821
|
+
onLanguageChange
|
|
16822
|
+
}) => {
|
|
16823
|
+
const { theme, colorScheme } = useTheme_default();
|
|
16824
|
+
const styles = BaseLanguageSwitcher_styles_default(theme, colorScheme);
|
|
16825
|
+
const [isOpen, setIsOpen] = (0, import_react106.useState)(false);
|
|
16826
|
+
const { refs, floatingStyles, context } = (0, import_react105.useFloating)({
|
|
16827
|
+
middleware: [(0, import_react105.offset)(4), (0, import_react105.flip)(), (0, import_react105.shift)()],
|
|
16828
|
+
onOpenChange: setIsOpen,
|
|
16829
|
+
open: isOpen,
|
|
16830
|
+
whileElementsMounted: import_react105.autoUpdate
|
|
16831
|
+
});
|
|
16832
|
+
const click = (0, import_react105.useClick)(context);
|
|
16833
|
+
const dismiss = (0, import_react105.useDismiss)(context);
|
|
16834
|
+
const role = (0, import_react105.useRole)(context, { role: "listbox" });
|
|
16835
|
+
const { getReferenceProps, getFloatingProps } = (0, import_react105.useInteractions)([click, dismiss, role]);
|
|
16836
|
+
const currentOption = languages.find((l) => l.code === currentLanguage);
|
|
16837
|
+
if (children) {
|
|
16838
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_jsx_runtime109.Fragment, { children: children({
|
|
16839
|
+
currentLanguage,
|
|
16840
|
+
isLoading,
|
|
16841
|
+
languages,
|
|
16842
|
+
onLanguageChange
|
|
16843
|
+
}) });
|
|
16844
|
+
}
|
|
16845
|
+
return /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)("div", { className: (0, import_css68.cx)(styles["root"], className), children: [
|
|
16846
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
16847
|
+
"button",
|
|
16848
|
+
{
|
|
16849
|
+
ref: refs.setReference,
|
|
16850
|
+
type: "button",
|
|
16851
|
+
disabled: isLoading,
|
|
16852
|
+
"aria-label": "Switch language",
|
|
16853
|
+
...getReferenceProps(),
|
|
16854
|
+
className: styles["trigger"],
|
|
16855
|
+
children: [
|
|
16856
|
+
currentOption && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("span", { className: styles["triggerEmoji"], children: currentOption.emoji }),
|
|
16857
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)("span", { className: styles["triggerLabel"], children: currentOption?.displayName ?? currentLanguage }),
|
|
16858
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)(ChevronDown_default, {})
|
|
16859
|
+
]
|
|
16860
|
+
}
|
|
16861
|
+
),
|
|
16862
|
+
isOpen && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_react105.FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(import_react105.FloatingFocusManager, { context, modal: false, children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(
|
|
16863
|
+
"div",
|
|
16864
|
+
{
|
|
16865
|
+
ref: refs.setFloating,
|
|
16866
|
+
style: floatingStyles,
|
|
16867
|
+
...getFloatingProps(),
|
|
16868
|
+
className: styles["content"],
|
|
16869
|
+
role: "listbox",
|
|
16870
|
+
"aria-label": "Select language",
|
|
16871
|
+
children: languages.map((lang) => /* @__PURE__ */ (0, import_jsx_runtime109.jsxs)(
|
|
16872
|
+
"button",
|
|
16873
|
+
{
|
|
16874
|
+
type: "button",
|
|
16875
|
+
role: "option",
|
|
16876
|
+
"aria-selected": lang.code === currentLanguage,
|
|
16877
|
+
className: (0, import_css68.cx)(styles["option"], lang.code === currentLanguage && styles["optionActive"]),
|
|
16878
|
+
onClick: () => {
|
|
16879
|
+
onLanguageChange(lang.code);
|
|
16880
|
+
setIsOpen(false);
|
|
16881
|
+
},
|
|
16882
|
+
children: [
|
|
16883
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)("span", { className: styles["optionEmoji"], children: lang.emoji }),
|
|
16884
|
+
/* @__PURE__ */ (0, import_jsx_runtime109.jsx)("span", { className: styles["optionLabel"], children: lang.displayName }),
|
|
16885
|
+
lang.code === currentLanguage && /* @__PURE__ */ (0, import_jsx_runtime109.jsx)("span", { className: styles["checkIcon"], children: /* @__PURE__ */ (0, import_jsx_runtime109.jsx)(Check_default, {}) })
|
|
16886
|
+
]
|
|
16887
|
+
},
|
|
16888
|
+
lang.code
|
|
16889
|
+
))
|
|
16890
|
+
}
|
|
16891
|
+
) }) })
|
|
16892
|
+
] });
|
|
16893
|
+
};
|
|
16894
|
+
var BaseLanguageSwitcher_default = BaseLanguageSwitcher;
|
|
16895
|
+
|
|
16896
|
+
// src/components/presentation/LanguageSwitcher/LanguageSwitcher.tsx
|
|
16545
16897
|
var import_browser90 = require("@asgardeo/browser");
|
|
16898
|
+
var import_react108 = require("react");
|
|
16899
|
+
|
|
16900
|
+
// src/contexts/FlowMeta/useFlowMeta.ts
|
|
16901
|
+
var import_react107 = require("react");
|
|
16902
|
+
var useFlowMeta = () => {
|
|
16903
|
+
const context = (0, import_react107.useContext)(FlowMetaContext_default);
|
|
16904
|
+
if (!context) {
|
|
16905
|
+
throw new Error("useFlowMeta must be used within a FlowMetaProvider");
|
|
16906
|
+
}
|
|
16907
|
+
return context;
|
|
16908
|
+
};
|
|
16909
|
+
var useFlowMeta_default = useFlowMeta;
|
|
16910
|
+
|
|
16911
|
+
// src/components/presentation/LanguageSwitcher/LanguageSwitcher.tsx
|
|
16912
|
+
var import_jsx_runtime110 = require("react/jsx-runtime");
|
|
16913
|
+
var LanguageSwitcher = ({ children, className }) => {
|
|
16914
|
+
const { meta, switchLanguage, isLoading } = useFlowMeta_default();
|
|
16915
|
+
const { currentLanguage } = useTranslation_default();
|
|
16916
|
+
const availableLanguageCodes = meta?.i18n?.languages ?? [];
|
|
16917
|
+
const languages = (0, import_react108.useMemo)(
|
|
16918
|
+
() => availableLanguageCodes.map((code) => ({
|
|
16919
|
+
code,
|
|
16920
|
+
displayName: (0, import_browser90.resolveLocaleDisplayName)(code, currentLanguage),
|
|
16921
|
+
emoji: (0, import_browser90.resolveLocaleEmoji)(code)
|
|
16922
|
+
})),
|
|
16923
|
+
[availableLanguageCodes, currentLanguage]
|
|
16924
|
+
);
|
|
16925
|
+
const handleLanguageChange = (language) => {
|
|
16926
|
+
if (language !== currentLanguage) {
|
|
16927
|
+
switchLanguage(language);
|
|
16928
|
+
}
|
|
16929
|
+
};
|
|
16930
|
+
return /* @__PURE__ */ (0, import_jsx_runtime110.jsx)(
|
|
16931
|
+
BaseLanguageSwitcher_default,
|
|
16932
|
+
{
|
|
16933
|
+
currentLanguage,
|
|
16934
|
+
isLoading,
|
|
16935
|
+
languages,
|
|
16936
|
+
onLanguageChange: handleLanguageChange,
|
|
16937
|
+
className,
|
|
16938
|
+
children
|
|
16939
|
+
}
|
|
16940
|
+
);
|
|
16941
|
+
};
|
|
16942
|
+
var LanguageSwitcher_default = LanguageSwitcher;
|
|
16943
|
+
|
|
16944
|
+
// src/index.ts
|
|
16945
|
+
var import_browser91 = require("@asgardeo/browser");
|
|
16546
16946
|
//# sourceMappingURL=index.js.map
|