@asgardeo/react 0.13.2 → 0.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (22) hide show
  1. package/dist/cjs/index.js +828 -428
  2. package/dist/cjs/index.js.map +4 -4
  3. package/dist/components/presentation/CreateOrganization/BaseCreateOrganization.d.ts +7 -1
  4. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.d.ts +79 -0
  5. package/dist/components/presentation/LanguageSwitcher/BaseLanguageSwitcher.styles.d.ts +20 -0
  6. package/dist/components/presentation/LanguageSwitcher/LanguageSwitcher.d.ts +77 -0
  7. package/dist/components/presentation/OrganizationList/BaseOrganizationList.d.ts +7 -1
  8. package/dist/components/presentation/OrganizationProfile/BaseOrganizationProfile.d.ts +7 -1
  9. package/dist/components/presentation/OrganizationSwitcher/BaseOrganizationSwitcher.d.ts +7 -0
  10. package/dist/components/presentation/UserProfile/BaseUserProfile.d.ts +7 -1
  11. package/dist/components/presentation/auth/AcceptInvite/v2/BaseAcceptInvite.d.ts +7 -1
  12. package/dist/components/presentation/auth/InviteUser/v2/BaseInviteUser.d.ts +7 -1
  13. package/dist/components/presentation/auth/SignIn/SignIn.d.ts +5 -0
  14. package/dist/components/presentation/auth/SignIn/v2/BaseSignIn.d.ts +7 -1
  15. package/dist/components/presentation/auth/SignIn/v2/SignIn.d.ts +7 -1
  16. package/dist/components/presentation/auth/SignUp/v2/BaseSignUp.d.ts +7 -1
  17. package/dist/contexts/FlowMeta/FlowMetaContext.d.ts +5 -0
  18. package/dist/contexts/I18n/ComponentPreferencesContext.d.ts +26 -0
  19. package/dist/index.d.ts +4 -0
  20. package/dist/index.js +485 -69
  21. package/dist/index.js.map +4 -4
  22. 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: () => import_browser90.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: () => import_browser90.EmbeddedFlowActionVariantV2,
68
- EmbeddedFlowComponentType: () => import_browser90.EmbeddedFlowComponentTypeV2,
69
- EmbeddedFlowEventType: () => import_browser90.EmbeddedFlowEventTypeV2,
70
- EmbeddedFlowTextVariant: () => import_browser90.EmbeddedFlowTextVariantV2,
71
- EmbeddedSignInFlowStatus: () => import_browser90.EmbeddedSignInFlowStatusV2,
72
- EmbeddedSignInFlowType: () => import_browser90.EmbeddedSignInFlowTypeV2,
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: () => import_browser90.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: () => import_browser90.http,
141
- navigate: () => import_browser90.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 || "en";
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 import_i18n = require("@asgardeo/i18n");
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 I18N_LANGUAGE_STORAGE_KEY = "asgardeo-i18n-language";
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 || "en-US";
1381
+ return window.navigator.language || import_i18n2.TranslationBundleConstants.FALLBACK_LOCALE;
1333
1382
  }
1334
- return "en-US";
1383
+ return import_i18n2.TranslationBundleConstants.FALLBACK_LOCALE;
1335
1384
  };
1336
- var getStoredLanguage = () => {
1337
- if (typeof window !== "undefined" && window.localStorage) {
1338
- try {
1339
- return window.localStorage.getItem(I18N_LANGUAGE_STORAGE_KEY);
1340
- } catch (error) {
1341
- return null;
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 storeLanguage = (language) => {
1347
- if (typeof window !== "undefined" && window.localStorage) {
1348
- try {
1349
- window.localStorage.setItem(I18N_LANGUAGE_STORAGE_KEY, language);
1350
- } catch (error) {
1351
- logger.warn("Failed to store language preference:");
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, import_i18n.getDefaultI18nBundles)();
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
- const configLanguage = preferences?.language;
1362
- const storedLanguage = getStoredLanguage();
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
- const fallbackLanguage2 = preferences?.fallbackLanguage || "en-US";
1365
- return configLanguage || storedLanguage || browserLanguage || fallbackLanguage2;
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, bundle.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, bundle.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, userBundle.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 || "en-US";
1538
+ const fallbackLanguage = preferences?.fallbackLanguage || import_i18n2.TranslationBundleConstants.FALLBACK_LOCALE;
1420
1539
  (0, import_react10.useEffect)(() => {
1421
- storeLanguage(currentLanguage);
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, import_react25.useContext)(I18nContext_default);
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, import_react25.useMemo)(() => {
2498
- if (!componentPreferences?.bundles) {
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(componentPreferences.bundles).forEach(([key, componentBundle]) => {
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, componentBundle.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, componentPreferences?.bundles]);
2518
- const enhancedT = (0, import_react25.useMemo)(() => {
2519
- if (!componentPreferences?.bundles) {
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, componentPreferences?.bundles]);
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 import_react26 = require("react");
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, import_react26.useState)({ ...initialValues });
2567
- const [touched, setFormTouched] = (0, import_react26.useState)({});
2568
- const [errors, setFormErrors] = (0, import_react26.useState)({});
2569
- const [isSubmitted, setIsSubmitted] = (0, import_react26.useState)(false);
2570
- const getFieldConfig = (0, import_react26.useCallback)(
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, import_react26.useCallback)(
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, import_react26.useCallback)(() => {
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, import_react26.useCallback)(
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, import_react26.useCallback)((newValues) => {
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, import_react26.useCallback)(
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, import_react26.useCallback)(
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, import_react26.useCallback)(() => {
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, import_react26.useCallback)((name, error) => {
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, import_react26.useCallback)(
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, import_react26.useCallback)(() => {
2825
+ const clearErrors = (0, import_react27.useCallback)(() => {
2693
2826
  setFormErrors({});
2694
2827
  }, []);
2695
- const reset = (0, import_react26.useCallback)(() => {
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, import_react26.useCallback)(
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, import_react26.useCallback)(
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 import_react30 = require("react");
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 import_react29 = require("react");
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 import_react27 = require("react");
2794
- var useStyles = (theme, colorScheme, color, variant, size, fullWidth, disabled, loading, shape = "square") => (0, import_react27.useMemo)(() => {
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 import_react28 = require("react");
3118
- var useStyles2 = (theme, colorScheme, size, color) => (0, import_react28.useMemo)(() => {
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, import_react29.forwardRef)(
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, import_react30.forwardRef)(
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 import_react31 = require("react");
3430
+ var import_react32 = require("react");
3298
3431
  var import_jsx_runtime14 = require("react/jsx-runtime");
3299
- var SignInButton = (0, import_react31.forwardRef)(
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, import_react31.useState)(false);
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 import_react32 = require("react");
3480
+ var import_react33 = require("react");
3348
3481
  var import_jsx_runtime15 = require("react/jsx-runtime");
3349
- var BaseSignOutButton = (0, import_react32.forwardRef)(
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 import_react33 = require("react");
3507
+ var import_react34 = require("react");
3375
3508
  var import_jsx_runtime16 = require("react/jsx-runtime");
3376
- var SignOutButton = (0, import_react33.forwardRef)(({ children, onClick, preferences, ...rest }, ref) => {
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, import_react33.useState)(false);
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 import_react34 = require("react");
3551
+ var import_react35 = require("react");
3419
3552
  var import_jsx_runtime17 = require("react/jsx-runtime");
3420
- var BaseSignUpButton = (0, import_react34.forwardRef)(
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 import_react35 = require("react");
3580
+ var import_react36 = require("react");
3448
3581
  var import_jsx_runtime18 = require("react/jsx-runtime");
3449
- var SignUpButton = (0, import_react35.forwardRef)(({ children, onClick, preferences, ...rest }, ref) => {
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, import_react35.useState)(false);
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 import_react59 = require("react");
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 import_react47 = require("react");
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 import_react36 = require("react");
3559
- var useStyles3 = (theme, colorScheme, hasError, required) => (0, import_react36.useMemo)(() => {
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 import_react37 = require("react");
3622
- var useStyles4 = (theme, colorScheme, helperTextAlign, helperTextMarginLeft, hasError) => (0, import_react37.useMemo)(() => {
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 import_react38 = require("react");
3651
- var useStyles5 = (theme, colorScheme, variant, align, color, noWrap, inline, gutterBottom, fontWeight, fontSize, lineHeight) => (0, import_react38.useMemo)(() => {
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 import_react39 = require("react");
4043
- var useStyles6 = (theme, colorScheme, variant, error, marginBottom) => (0, import_react39.useMemo)(() => {
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 import_react40 = require("react");
4176
- var useStyles7 = (theme, colorScheme, hasError, disabled) => (0, import_react40.useMemo)(() => {
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 import_react42 = require("react");
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 import_react41 = require("react");
4307
- var useStyles8 = (theme, colorScheme, disabled, hasError, length) => (0, import_react41.useMemo)(() => {
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, import_react42.useState)(Array(length).fill(""));
4388
- const inputRefs = (0, import_react42.useRef)([]);
4389
- (0, import_react42.useEffect)(() => {
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, import_react42.useEffect)(() => {
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, import_react42.useEffect)(() => {
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 import_react45 = require("react");
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 import_react43 = require("react");
4524
- var useStyles9 = (theme, colorScheme, showPassword, disabled, hasError) => (0, import_react43.useMemo)(() => {
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 import_react44 = require("react");
4604
- var useStyles10 = (theme, colorScheme, disabled, hasError, hasStartIcon, hasEndIcon) => (0, import_react44.useMemo)(() => {
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, import_react45.useState)(false);
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 import_react46 = require("react");
4843
- var useStyles11 = (theme, colorScheme, disabled, hasError) => (0, import_react46.useMemo)(() => {
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, import_react47.useEffect)(() => {
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 import_react48 = require("react");
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, import_react48.useEffect)(() => {
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 import_react49 = require("react");
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, import_react49.useEffect)(() => {
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 import_react50 = require("react");
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, import_react50.useEffect)(() => {
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 import_react51 = require("react");
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, import_react51.useEffect)(() => {
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 import_react53 = require("react");
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 import_react52 = require("react");
5886
- var useStyles12 = (theme, colorScheme, variant) => (0, import_react52.useMemo)(() => {
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, import_react53.createContext)("info");
6067
- var useAlertVariant = () => (0, import_react53.useContext)(AlertVariantContext);
6068
- var Alert = (0, import_react53.forwardRef)(({ variant = "info", showIcon = true, children, className, style, ...rest }, ref) => {
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 import_react55 = require("react");
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 import_react54 = require("react");
6143
- var useStyles13 = (theme, colorScheme, variant, clickable) => (0, import_react54.useMemo)(() => {
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, import_react55.forwardRef)(
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, import_react55.forwardRef)(({ children, className, style, ...rest }, ref) => {
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, import_react55.forwardRef)(({ children, className, style, ...rest }, ref) => {
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, import_react55.forwardRef)(({ children, className, style, ...rest }, ref) => {
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, import_react55.forwardRef)(({ children, className, style, ...rest }, ref) => {
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 import_react56 = require("react");
6396
- var useStyles14 = (theme, colorScheme, orientation, variant, color, hasChildren) => (0, import_react56.useMemo)(() => {
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 import_react57 = require("react");
6538
- var useStyles15 = (theme, colorScheme, size) => (0, import_react57.useMemo)(() => {
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 import_react58 = require("react");
6604
- var useStyles16 = (theme, colorScheme) => (0, import_react58.useMemo)(() => {
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, import_react59.useState)(false);
6774
- const [isInitialized, setIsInitialized] = (0, import_react59.useState)(false);
6775
- const [currentFlow, setCurrentFlow] = (0, import_react59.useState)(null);
6776
- const [currentAuthenticator, setCurrentAuthenticator] = (0, import_react59.useState)(null);
6777
- const [error, setError] = (0, import_react59.useState)(null);
6778
- const [messages, setMessages] = (0, import_react59.useState)([]);
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, import_react59.useRef)(false);
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, import_react59.useCallback)(
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, import_react59.useCallback)(
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, import_react59.useCallback)(() => {
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, import_react59.useEffect)(() => {
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, import_react59.useEffect)(() => {
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 import_react61 = require("react");
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 import_react60 = require("react");
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, import_react60.cloneElement)(field, { key });
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, import_react61.useState)(false);
8141
- const [apiError, setApiError] = (0, import_react61.useState)(null);
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, import_react61.useCallback)(
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, import_react61.useCallback)(
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, import_react61.useCallback)(
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
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { children: [
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 import_react63 = require("react");
8522
+ var import_react64 = require("react");
8388
8523
 
8389
8524
  // src/hooks/v2/useOAuthCallback.ts
8390
- var import_react62 = require("react");
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, import_react62.useRef)(false);
8550
+ const internalRef = (0, import_react63.useRef)(false);
8416
8551
  const oauthCodeProcessedRef = processedRef ?? internalRef;
8417
- (0, import_react62.useEffect)(() => {
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, import_react63.useState)([]);
8675
- const [currentFlowId, setCurrentFlowId] = (0, import_react63.useState)(null);
8676
- const [isFlowInitialized, setIsFlowInitialized] = (0, import_react63.useState)(false);
8677
- const [flowError, setFlowError] = (0, import_react63.useState)(null);
8678
- const [isSubmitting, setIsSubmitting] = (0, import_react63.useState)(false);
8679
- const [passkeyState, setPasskeyState] = (0, import_react63.useState)({
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, import_react63.useRef)(false);
8688
- const oauthCodeProcessedRef = (0, import_react63.useRef)(false);
8689
- const passkeyProcessedRef = (0, import_react63.useRef)(false);
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, import_react63.useEffect)(() => {
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, import_react63.useEffect)(() => {
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 import_react65 = require("react");
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 import_react64 = require("react");
9589
- var useStyles17 = (theme, colorScheme) => (0, import_react64.useMemo)(() => {
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, import_react65.useCallback)(
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, import_react65.useState)(false);
9788
- const [isFlowInitialized, setIsFlowInitialized] = (0, import_react65.useState)(false);
9789
- const [currentFlow, setCurrentFlow] = (0, import_react65.useState)(null);
9790
- const initializationAttemptedRef = (0, import_react65.useRef)(false);
9791
- const extractFormFields = (0, import_react65.useCallback)(
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, import_react65.useCallback)(
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, import_react65.useCallback)(
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, import_react65.useEffect)(() => {
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 import_react66 = require("react");
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, import_react66.useState)(false);
10203
- const [isFlowInitialized, setIsFlowInitialized] = (0, import_react66.useState)(false);
10204
- const [currentFlow, setCurrentFlow] = (0, import_react66.useState)(null);
10205
- const [apiError, setApiError] = (0, import_react66.useState)(null);
10206
- const [passkeyState, setPasskeyState] = (0, import_react66.useState)({
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, import_react66.useRef)(false);
10214
- const passkeyProcessedRef = (0, import_react66.useRef)(false);
10215
- const handleError = (0, import_react66.useCallback)(
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, import_react66.useCallback)(
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, import_react66.useCallback)(
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, import_react66.useCallback)(
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, import_react66.useEffect)(() => {
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, import_react66.useCallback)(
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, import_react66.useEffect)(() => {
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
- return /* @__PURE__ */ (0, import_jsx_runtime72.jsxs)("div", { children: [
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 import_react68 = require("react");
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 import_react67 = require("react");
10874
- var useStyles18 = (theme, colorScheme) => (0, import_react67.useMemo)(() => {
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, import_react68.useState)(false);
10932
- const [isFlowInitialized, setIsFlowInitialized] = (0, import_react68.useState)(false);
10933
- const [currentFlow, setCurrentFlow] = (0, import_react68.useState)(null);
10934
- const [apiError, setApiError] = (0, import_react68.useState)(null);
10935
- const [formValues, setFormValues] = (0, import_react68.useState)({});
10936
- const [formErrors, setFormErrors] = (0, import_react68.useState)({});
10937
- const [touchedFields, setTouchedFields] = (0, import_react68.useState)({});
10938
- const [inviteLink, setInviteLink] = (0, import_react68.useState)();
10939
- const [inviteLinkCopied, setInviteLinkCopied] = (0, import_react68.useState)(false);
10940
- const [isFormValid, setIsFormValid] = (0, import_react68.useState)(true);
10941
- const initializationAttemptedRef = (0, import_react68.useRef)(false);
10942
- const handleError = (0, import_react68.useCallback)(
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, import_react68.useCallback)(
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, import_react68.useCallback)((name, value) => {
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, import_react68.useCallback)((name) => {
11128
+ const handleInputBlur = (0, import_react69.useCallback)((name) => {
10987
11129
  setTouchedFields((prev) => ({ ...prev, [name]: true }));
10988
11130
  }, []);
10989
- const validateForm = (0, import_react68.useCallback)(
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, import_react68.useCallback)(
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, import_react68.useCallback)(async () => {
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, import_react68.useCallback)(() => {
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, import_react68.useEffect)(() => {
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, import_react68.useEffect)(() => {
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, import_react68.useCallback)((components2) => {
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, import_react68.useCallback)(
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, import_react68.useCallback)(
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 import_react71 = require("react");
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 import_react70 = require("react");
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 import_react69 = require("react");
11350
- var useStyles19 = (theme, colorScheme) => (0, import_react69.useMemo)(() => {
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, import_react70.useState)(false);
11409
- const [isValidatingToken, setIsValidatingToken] = (0, import_react70.useState)(true);
11410
- const [isTokenInvalid, setIsTokenInvalid] = (0, import_react70.useState)(false);
11411
- const [isComplete, setIsComplete] = (0, import_react70.useState)(false);
11412
- const [currentFlow, setCurrentFlow] = (0, import_react70.useState)(null);
11413
- const [apiError, setApiError] = (0, import_react70.useState)(null);
11414
- const [formValues, setFormValues] = (0, import_react70.useState)({});
11415
- const [formErrors, setFormErrors] = (0, import_react70.useState)({});
11416
- const [touchedFields, setTouchedFields] = (0, import_react70.useState)({});
11417
- const [isFormValid, setIsFormValid] = (0, import_react70.useState)(true);
11418
- const [completionTitle, setCompletionTitle] = (0, import_react70.useState)(void 0);
11419
- const tokenValidationAttemptedRef = (0, import_react70.useRef)(false);
11420
- const handleError = (0, import_react70.useCallback)(
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, import_react70.useCallback)(
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, import_react70.useCallback)((name, value) => {
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, import_react70.useCallback)((name) => {
11639
+ const handleInputBlur = (0, import_react71.useCallback)((name) => {
11497
11640
  setTouchedFields((prev) => ({ ...prev, [name]: true }));
11498
11641
  }, []);
11499
- const validateForm = (0, import_react70.useCallback)(
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, import_react70.useCallback)(
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, import_react70.useEffect)(() => {
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, import_react70.useCallback)((components2) => {
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, import_react70.useCallback)(
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, import_react70.useCallback)(
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, import_react71.useMemo)(() => getUrlParams(), []);
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, import_react71.useMemo)(() => {
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 import_react72 = require("react");
11989
+ var import_react73 = require("react");
11847
11990
  var Callback = ({ onNavigate, onError }) => {
11848
- const processingRef = (0, import_react72.useRef)(false);
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, import_react72.useEffect)(() => {
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 import_react81 = require("react");
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 import_react73 = require("react");
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, import_react73.useMemo)(() => {
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 import_react75 = require("react");
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 import_react74 = require("react");
12247
- var useStyles21 = (theme, colorScheme, size, variant, backgroundColor) => (0, import_react74.useMemo)(() => {
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 = (offset3) => {
12330
- const hue1 = (seed + offset3) % 360;
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 + offset3) % 15;
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, import_react75.useMemo)(() => {
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 import_react77 = require("@floating-ui/react");
12403
- var import_react78 = require("react");
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 import_react76 = require("react");
12408
- var useStyles22 = (theme, colorScheme) => (0, import_react76.useMemo)(() => {
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, import_react78.useState)(initialOpen);
12570
- const [labelId, setLabelId] = (0, import_react78.useState)();
12571
- const [descriptionId, setDescriptionId] = (0, import_react78.useState)();
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, import_react77.useFloating)({
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, import_react77.useClick)(context, {
12722
+ const click = (0, import_react78.useClick)(context, {
12580
12723
  enabled: controlledOpen == null
12581
12724
  });
12582
- const dismiss = (0, import_react77.useDismiss)(context, { outsidePressEvent: "mousedown" });
12583
- const role = (0, import_react77.useRole)(context);
12584
- const interactions = (0, import_react77.useInteractions)([click, dismiss, role]);
12585
- return (0, import_react78.useMemo)(
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, import_react78.createContext)(null);
12742
+ var DialogContext = (0, import_react79.createContext)(null);
12600
12743
  var useDialogContext = () => {
12601
- const context = (0, import_react78.useContext)(DialogContext);
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, import_react78.forwardRef)(
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, import_react77.useMergeRefs)([context.refs.setReference, propRef, childrenRef]);
12616
- if (asChild && (0, import_react78.isValidElement)(children)) {
12617
- return (0, import_react78.cloneElement)(
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, import_react78.forwardRef)(
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, import_react77.useMergeRefs)([context.refs.setFloating, propRef]);
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)(import_react77.FloatingPortal, { children: /* @__PURE__ */ (0, import_jsx_runtime90.jsx)(
12638
- import_react77.FloatingOverlay,
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)(import_react77.FloatingFocusManager, { context: floatingContext, initialFocus: -1, 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, import_react78.forwardRef)(
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, import_react77.useId)();
12663
- (0, import_react78.useLayoutEffect)(() => {
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, import_react78.forwardRef)(
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, import_react77.useId)();
12703
- (0, import_react78.useLayoutEffect)(() => {
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, import_react78.forwardRef)(
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, import_react77.useMergeRefs)([propRef, childrenRef]);
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, import_react78.isValidElement)(children)) {
12731
- return (0, import_react78.cloneElement)(children, {
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 import_react80 = require("react");
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 import_react79 = require("react");
12771
- var useStyles23 = (theme, colorScheme, disabled, hasError, canAddMore, canRemove) => (0, import_react79.useMemo)(() => {
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, import_react80.useCallback)(
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, import_react80.useCallback)(
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, import_react80.useCallback)(
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, import_react80.useState)("");
12946
- const handleInputSubmit = (0, import_react80.useCallback)(() => {
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, import_react81.useState)(flattenedProfile || profile);
13050
- const [editingFields, setEditingFields] = (0, import_react81.useState)({});
13051
- const { t } = useTranslation_default();
13052
- const shouldShowField = (0, import_react81.useCallback)(
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, import_react81.useCallback)((fieldName) => {
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, import_react81.useCallback)((schema) => {
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, import_react81.useCallback)(
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, import_react81.useCallback)(
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, import_react81.useCallback)(
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 import_react82 = require("react");
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, import_react82.useState)(null);
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 import_react84 = require("@floating-ui/react");
13570
- var import_react85 = require("react");
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 import_react83 = require("react");
13575
- var useStyles24 = (theme, colorScheme) => (0, import_react83.useMemo)(() => {
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, import_react85.useState)(false);
13779
- const [hoveredItemIndex, setHoveredItemIndex] = (0, import_react85.useState)(null);
13780
- const { refs, floatingStyles, context } = (0, import_react84.useFloating)({
13781
- middleware: [(0, import_react84.offset)(5), (0, import_react84.flip)({ fallbackAxisSideDirection: "end" }), (0, import_react84.shift)({ padding: 5 })],
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: import_react84.autoUpdate
13930
+ whileElementsMounted: import_react85.autoUpdate
13786
13931
  });
13787
- const click = (0, import_react84.useClick)(context);
13788
- const dismiss = (0, import_react84.useDismiss)(context);
13789
- const role = (0, import_react84.useRole)(context);
13790
- const { getReferenceProps, getFloatingProps } = (0, import_react84.useInteractions)([click, dismiss, role]);
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)(import_react84.FloatingPortal, { id: portalId, children: /* @__PURE__ */ (0, import_jsx_runtime94.jsx)(import_react84.FloatingFocusManager, { context, modal: false, initialFocus: -1, children: /* @__PURE__ */ (0, import_jsx_runtime94.jsxs)(
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 import_react86 = require("react");
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, import_react86.useState)(false);
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 import_react88 = require("@floating-ui/react");
14041
- var import_react89 = require("react");
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 import_react87 = require("react");
14046
- var useStyles25 = (theme, colorScheme) => (0, import_react87.useMemo)(() => {
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, import_react89.useState)(false);
14328
- const [hoveredItemIndex, setHoveredItemIndex] = (0, import_react89.useState)(null);
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, import_react88.useFloating)({
14332
- middleware: [(0, import_react88.offset)(5), (0, import_react88.flip)({ fallbackAxisSideDirection: "end" }), (0, import_react88.shift)({ padding: 5 })],
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: import_react88.autoUpdate
14482
+ whileElementsMounted: import_react89.autoUpdate
14337
14483
  });
14338
- const click = (0, import_react88.useClick)(context);
14339
- const dismiss = (0, import_react88.useDismiss)(context);
14340
- const role = (0, import_react88.useRole)(context);
14341
- const { getReferenceProps, getFloatingProps } = (0, import_react88.useInteractions)([click, dismiss, role]);
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)(import_react88.FloatingPortal, { id: portalId, children: /* @__PURE__ */ (0, import_jsx_runtime99.jsx)(import_react88.FloatingFocusManager, { context, modal: false, initialFocus: -1, children: /* @__PURE__ */ (0, import_jsx_runtime99.jsxs)(
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 import_react102 = require("react");
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 import_react92 = require("react");
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 import_react91 = require("react");
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 import_react90 = require("react");
14616
- var useStyles26 = (theme, colorScheme) => (0, import_react90.useMemo)(() => {
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, import_react91.useState)({
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, import_react91.useState)({});
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, import_react92.useState)(false);
14947
- const [error, setError] = (0, import_react92.useState)(null);
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 import_react96 = require("react");
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 import_react94 = require("react");
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 import_react93 = require("react");
15011
- var useStyles27 = (theme, colorScheme) => (0, import_react93.useMemo)(() => {
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, import_react94.useMemo)(() => {
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 import_react95 = require("react");
15393
- var useStyles28 = (theme, colorScheme) => (0, import_react95.useMemo)(() => {
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, import_react96.useState)({
15608
+ const [allOrganizations, setAllOrganizations] = (0, import_react97.useState)({
15461
15609
  organizations: []
15462
15610
  });
15463
- (0, import_react96.useEffect)(() => {
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 import_react101 = require("react");
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 import_react100 = require("react");
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 import_react97 = require("react");
15494
- var useStyles29 = (theme, colorScheme) => (0, import_react97.useMemo)(
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 import_react99 = require("react");
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 import_react98 = require("react");
15655
- var useStyles30 = (theme, colorScheme, disabled, readOnly, hasError) => (0, import_react98.useMemo)(() => {
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, import_react99.useState)(initialPairs);
15831
- const [newKey, setNewKey] = (0, import_react99.useState)("");
15832
- const [newValue, setNewValue] = (0, import_react99.useState)("");
15833
- const handleAddPair = (0, import_react99.useCallback)(() => {
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, import_react99.useCallback)(
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, import_react99.useCallback)(
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, import_react100.useState)(organization);
16065
- const [editingFields, setEditingFields] = (0, import_react100.useState)({});
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, import_react100.useCallback)((fieldName) => {
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, import_react100.useCallback)((fieldKey) => {
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, import_react100.useCallback)(
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, import_react100.useCallback)(
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, import_react101.useState)(null);
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, import_react101.useEffect)(() => {
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, import_react102.useState)(false);
16453
- const [isProfileOpen, setIsProfileOpen] = (0, import_react102.useState)(false);
16454
- const [isOrganizationListOpen, setIsOrganizationListOpen] = (0, import_react102.useState)(false);
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/index.ts
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