@digitaldefiance/express-suite-react-components 2.9.9 → 2.9.12

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 (55) hide show
  1. package/package.json +3 -3
  2. package/src/components/ApiAccess.d.ts.map +1 -1
  3. package/src/components/ApiAccess.js +16 -9
  4. package/src/components/BackupCodeLoginForm.d.ts +2 -2
  5. package/src/components/BackupCodeLoginForm.d.ts.map +1 -1
  6. package/src/components/BackupCodeLoginForm.js +62 -29
  7. package/src/components/BackupCodesForm.d.ts.map +1 -1
  8. package/src/components/BackupCodesForm.js +29 -17
  9. package/src/components/ChangePasswordForm.d.ts.map +1 -1
  10. package/src/components/ChangePasswordForm.js +29 -17
  11. package/src/components/ExpirationSecondsSelector.d.ts +3 -3
  12. package/src/components/ExpirationSecondsSelector.d.ts.map +1 -1
  13. package/src/components/ExpirationSecondsSelector.js +1 -1
  14. package/src/components/Flag.d.ts.map +1 -1
  15. package/src/components/ForgotPasswordForm.d.ts.map +1 -1
  16. package/src/components/ForgotPasswordForm.js +16 -9
  17. package/src/components/LoginForm.d.ts +2 -2
  18. package/src/components/LoginForm.d.ts.map +1 -1
  19. package/src/components/LoginForm.js +52 -29
  20. package/src/components/RegisterForm.d.ts +5 -3
  21. package/src/components/RegisterForm.d.ts.map +1 -1
  22. package/src/components/RegisterForm.js +62 -27
  23. package/src/components/ResetPasswordForm.d.ts.map +1 -1
  24. package/src/components/ResetPasswordForm.js +25 -15
  25. package/src/components/TopMenu.d.ts.map +1 -1
  26. package/src/components/TopMenu.js +2 -3
  27. package/src/components/TranslatedTitle.d.ts +1 -1
  28. package/src/components/TranslatedTitle.d.ts.map +1 -1
  29. package/src/components/TranslatedTitle.js +1 -1
  30. package/src/components/UserSettingsForm.d.ts +4 -3
  31. package/src/components/UserSettingsForm.d.ts.map +1 -1
  32. package/src/components/UserSettingsForm.js +58 -25
  33. package/src/components/VerifyEmailPage.d.ts.map +1 -1
  34. package/src/components/VerifyEmailPage.js +20 -11
  35. package/src/contexts/AuthProvider.d.ts +4 -4
  36. package/src/contexts/AuthProvider.d.ts.map +1 -1
  37. package/src/contexts/AuthProvider.js +82 -27
  38. package/src/contexts/I18nProvider.d.ts.map +1 -1
  39. package/src/contexts/MenuContext.d.ts +2 -2
  40. package/src/contexts/MenuContext.d.ts.map +1 -1
  41. package/src/contexts/MenuContext.js +72 -43
  42. package/src/hooks/useBackupCodes.d.ts.map +1 -1
  43. package/src/hooks/useBackupCodes.js +8 -4
  44. package/src/hooks/useEmailVerification.d.ts.map +1 -1
  45. package/src/hooks/useEmailVerification.js +8 -4
  46. package/src/hooks/useUserSettings.d.ts +4 -2
  47. package/src/hooks/useUserSettings.d.ts.map +1 -1
  48. package/src/hooks/useUserSettings.js +30 -13
  49. package/src/services/authService.d.ts.map +1 -1
  50. package/src/services/authService.js +58 -70
  51. package/src/wrappers/BackupCodeLoginWrapper.d.ts.map +1 -1
  52. package/src/wrappers/BackupCodeLoginWrapper.js +0 -1
  53. package/src/wrappers/ChangePasswordFormWrapper.d.ts.map +1 -1
  54. package/src/wrappers/RegisterFormWrapper.d.ts.map +1 -1
  55. package/src/wrappers/RegisterFormWrapper.js +7 -2
@@ -34,14 +34,13 @@ class AuthService {
34
34
  ...(password ? { password } : {}),
35
35
  });
36
36
  if (response.status !== 201) {
37
+ const errorData = response.data;
37
38
  return {
38
- error: response.data.message
39
- ? response.data.message
39
+ error: errorData.message
40
+ ? errorData.message
40
41
  : (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Registration_Error),
41
- ...(response.data.errorType
42
- ? { errorType: response.data.errorType }
43
- : {}),
44
- ...(response.data.errors ? { errors: response.data.errors } : {}),
42
+ ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
43
+ ...(errorData.errors ? { errors: errorData.errors } : {}),
45
44
  };
46
45
  }
47
46
  return {
@@ -50,25 +49,20 @@ class AuthService {
50
49
  (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Registration_Success, {
51
50
  MNEMONIC: response.data.mnemonic,
52
51
  }),
53
- mnemonic: response.data.mnemonic,
52
+ mnemonic: response.data.mnemonic ?? '',
54
53
  };
55
54
  }
56
55
  catch (error) {
57
56
  if ((0, axios_1.isAxiosError)(error) && error.response) {
57
+ const errorData = error.response.data;
58
58
  return {
59
- error: error.response.data.error?.message ??
60
- error.response.data.message ??
59
+ error: errorData.error ??
60
+ errorData.message ??
61
61
  error.message ??
62
62
  (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
63
- ...(error.response.data.errorType
64
- ? { errorType: error.response.data.errorType }
65
- : {}),
66
- ...(error.response.data.error?.field
67
- ? { field: error.response.data.error.field }
68
- : {}),
69
- ...(error.response.data.errors
70
- ? { errors: error.response.data.errors }
71
- : {}),
63
+ ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
64
+ ...(errorData.error ? { field: 'general' } : {}),
65
+ ...(errorData.errors ? { errors: errorData.errors } : {}),
72
66
  };
73
67
  }
74
68
  else {
@@ -88,11 +82,6 @@ class AuthService {
88
82
  const loginRequest = await this.apiClient.post('/user/request-direct-login');
89
83
  if (loginRequest.data.challenge) {
90
84
  const { wallet } = this.cryptoCore.walletAndSeedFromMnemonic(mnemonic);
91
- const publicKey = wallet.getPublicKey();
92
- // Add 0x04 prefix for uncompressed public key
93
- const publicKeyWithPrefix = new Uint8Array(publicKey.length + 1);
94
- publicKeyWithPrefix[0] = 0x04;
95
- publicKeyWithPrefix.set(publicKey, 1);
96
85
  const challengeBuffer = (0, ecies_lib_1.hexToUint8Array)(loginRequest.data.challenge);
97
86
  const privateKeyBuffer = wallet.getPrivateKey();
98
87
  const signature = this.eciesService.signMessage(privateKeyBuffer, challengeBuffer);
@@ -105,7 +94,7 @@ class AuthService {
105
94
  });
106
95
  if (loginResponse.data.token && loginResponse.data.user) {
107
96
  return {
108
- message: loginResponse.data.message,
97
+ message: loginResponse.data.message ?? '',
109
98
  token: loginResponse.data.token,
110
99
  user: loginResponse.data.user,
111
100
  wallet,
@@ -116,27 +105,28 @@ class AuthService {
116
105
  catch (error) {
117
106
  if ((0, axios_1.isAxiosError)(error) && error.response) {
118
107
  // Check for DirectChallengeNotEnabled error
119
- if (error.response.status === 403 && error.response.data.errorType === 'DirectChallengeNotEnabledError') {
108
+ if (error.response.status === 403 &&
109
+ error.response.data.errorType === 'DirectChallengeNotEnabledError') {
120
110
  return {
121
111
  error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Error_Login_DirectChallengeNotEnabled),
122
112
  errorType: 'DirectChallengeNotEnabled',
123
113
  };
124
114
  }
125
115
  // Check for PasswordLoginNotEnabled error
126
- if (error.response.status === 403 && error.response.data.errorType === 'PasswordLoginNotEnabledError') {
116
+ if (error.response.status === 403 &&
117
+ error.response.data.errorType === 'PasswordLoginNotEnabledError') {
127
118
  return {
128
119
  error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Error_Login_PasswordLoginNotEnabled),
129
120
  errorType: 'PasswordLoginNotEnabled',
130
121
  };
131
122
  }
123
+ const errorData = error.response.data;
132
124
  return {
133
- error: error.response.data.error?.message ??
134
- error.response.data.message ??
125
+ error: errorData.error ??
126
+ errorData.message ??
135
127
  error.message ??
136
128
  (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
137
- ...(error.response.data.errorType
138
- ? { errorType: error.response.data.errorType }
139
- : {}),
129
+ ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
140
130
  };
141
131
  }
142
132
  console.error('directLogin: non-axios error:', error);
@@ -162,14 +152,13 @@ class AuthService {
162
152
  }
163
153
  catch (error) {
164
154
  if ((0, axios_1.isAxiosError)(error) && error.response) {
155
+ const errorData = error.response.data;
165
156
  return {
166
- error: error.response.data.error?.message ??
167
- error.response.data.message ??
157
+ error: errorData.error ??
158
+ errorData.message ??
168
159
  error.message ??
169
160
  (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
170
- ...(error.response.data.errorType
171
- ? { errorType: error.response.data.errorType }
172
- : {}),
161
+ ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
173
162
  };
174
163
  }
175
164
  }
@@ -197,7 +186,7 @@ class AuthService {
197
186
  });
198
187
  if (response.data.token && response.data.user) {
199
188
  return {
200
- message: response.data.message,
189
+ message: response.data.message ?? '',
201
190
  token: response.data.token,
202
191
  user: response.data.user,
203
192
  wallet,
@@ -206,14 +195,13 @@ class AuthService {
206
195
  }
207
196
  catch (error) {
208
197
  if ((0, axios_1.isAxiosError)(error) && error.response) {
198
+ const errorData = error.response.data;
209
199
  return {
210
- error: error.response.data.error?.message ??
211
- error.response.data.message ??
200
+ error: errorData.error ??
201
+ errorData.message ??
212
202
  error.message ??
213
203
  (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
214
- ...(error.response.data.errorType
215
- ? { errorType: error.response.data.errorType }
216
- : {}),
204
+ ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
217
205
  };
218
206
  }
219
207
  }
@@ -230,15 +218,14 @@ class AuthService {
230
218
  }
231
219
  catch (error) {
232
220
  if ((0, axios_1.isAxiosError)(error) && error.response) {
221
+ const errorData = error.response.data;
233
222
  return {
234
- error: error.response.data.message
235
- ? error.response.data.message
223
+ error: errorData.message
224
+ ? errorData.message
236
225
  : error.message
237
226
  ? error.message
238
227
  : (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
239
- ...(error.response.data.errorType
240
- ? { errorType: error.response.data.errorType }
241
- : {}),
228
+ ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
242
229
  };
243
230
  }
244
231
  else {
@@ -255,7 +242,9 @@ class AuthService {
255
242
  const newToken = refreshResponse.headers['authorization'];
256
243
  let token = undefined;
257
244
  let user = undefined;
258
- if (newToken?.startsWith('Bearer ')) {
245
+ if (newToken &&
246
+ typeof newToken === 'string' &&
247
+ newToken.startsWith('Bearer ')) {
259
248
  token = newToken.slice(7);
260
249
  }
261
250
  if (refreshResponse.data.user) {
@@ -268,10 +257,6 @@ class AuthService {
268
257
  }
269
258
  catch (error) {
270
259
  console.error('Token refresh error:', error);
271
- if ((0, axios_1.isAxiosError)(error) && error.response) {
272
- console.error('Error response:', error.response.data);
273
- console.error('Error status:', error.response.status);
274
- }
275
260
  }
276
261
  throw new suite_core_lib_1.TranslatableSuiteError(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError);
277
262
  }
@@ -285,17 +270,18 @@ class AuthService {
285
270
  }
286
271
  catch (error) {
287
272
  if ((0, axios_1.isAxiosError)(error) && error.response) {
273
+ const errorData = error.response.data;
288
274
  return {
289
- error: error.response.data.error?.message ??
290
- error.response.data.message ??
275
+ error: errorData.error ??
276
+ errorData.message ??
291
277
  error.message ??
292
278
  (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
293
- ...(error.response.data.errorType
294
- ? { errorType: error.response.data.errorType }
295
- : {}),
279
+ ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
296
280
  };
297
281
  }
298
- return { error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError) };
282
+ return {
283
+ error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
284
+ };
299
285
  }
300
286
  }
301
287
  async backupCodeLogin(identifier, code, isEmail, recoverMnemonic, newPassword) {
@@ -311,34 +297,36 @@ class AuthService {
311
297
  token: response.data.token,
312
298
  user: response.data.user,
313
299
  codeCount: response.data.codeCount ?? 0,
314
- ...(response.data.mnemonic ? { mnemonic: response.data.mnemonic } : {}),
300
+ ...(response.data.mnemonic
301
+ ? { mnemonic: response.data.mnemonic }
302
+ : {}),
315
303
  ...(response.data.message ? { message: response.data.message } : {}),
316
304
  };
317
305
  }
306
+ const errorData = response.data;
318
307
  return {
319
- error: response.data.message
320
- ? response.data.message
308
+ error: errorData.message
309
+ ? errorData.message
321
310
  : (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Validation_InvalidToken),
322
- ...(response.data.errorType
323
- ? { errorType: response.data.errorType }
324
- : {}),
311
+ ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
325
312
  };
326
313
  }
327
314
  catch (error) {
328
315
  console.error('Backup code login error:', error);
329
316
  if ((0, axios_1.isAxiosError)(error) && error.response) {
317
+ const errorData = error.response.data;
330
318
  return {
331
- error: error.response.data.error.message ??
332
- error.response.data.message ??
319
+ error: errorData.error ??
320
+ errorData.message ??
333
321
  error.message ??
334
322
  (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
335
- ...(error.response.data.errorType
336
- ? { errorType: error.response.data.errorType }
337
- : {}),
323
+ ...(errorData.errorType ? { errorType: errorData.errorType } : {}),
338
324
  status: error.response.status,
339
325
  };
340
326
  }
341
- return { error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError) };
327
+ return {
328
+ error: (0, suite_core_lib_1.getSuiteCoreTranslation)(suite_core_lib_1.SuiteCoreStringKey.Common_UnexpectedError),
329
+ };
342
330
  }
343
331
  }
344
332
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BackupCodeLoginWrapper.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/wrappers/BackupCodeLoginWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC;CAC5E;AAED,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CAwBlE,CAAC"}
1
+ {"version":3,"file":"BackupCodeLoginWrapper.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/wrappers/BackupCodeLoginWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAGxE,MAAM,WAAW,2BAA2B;IAC1C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC;CAC5E;AAED,eAAO,MAAM,sBAAsB,EAAE,EAAE,CAAC,2BAA2B,CAuBlE,CAAC"}
@@ -8,7 +8,6 @@ const contexts_1 = require("../contexts");
8
8
  const BackupCodeLoginWrapper = ({ onSuccess, componentProps = {}, }) => {
9
9
  const { backupCodeLogin, isAuthenticated } = (0, contexts_1.useAuth)();
10
10
  const navigate = (0, react_router_dom_1.useNavigate)();
11
- const { routes } = (0, contexts_1.useSuiteConfig)();
12
11
  const handleSubmit = async (...args) => {
13
12
  const result = await backupCodeLogin(...args);
14
13
  if ('token' in result && onSuccess) {
@@ -1 +1 @@
1
- {"version":3,"file":"ChangePasswordFormWrapper.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/wrappers/ChangePasswordFormWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAGtE,MAAM,WAAW,8BAA8B;IAC7C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;CAC3E;AAED,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,8BAA8B,CAqBxE,CAAC"}
1
+ {"version":3,"file":"ChangePasswordFormWrapper.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/wrappers/ChangePasswordFormWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAGtE,MAAM,WAAW,8BAA8B;IAC7C,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,kBAAkB,CAAC,CAAC,CAAC;CAC3E;AAED,eAAO,MAAM,yBAAyB,EAAE,EAAE,CAAC,8BAA8B,CAwBxE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RegisterFormWrapper.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/wrappers/RegisterFormWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,OAAO,EAAoC,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAGjG,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,WAAW,GAAG,oBAAoB,CAAC,CAAC,CAAC;CACpG;AAED,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CAoC5D,CAAC"}
1
+ {"version":3,"file":"RegisterFormWrapper.d.ts","sourceRoot":"","sources":["../../../../../packages/digitaldefiance-express-suite-react-components/src/wrappers/RegisterFormWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAE3B,OAAO,EAEL,iBAAiB,EAElB,MAAM,4BAA4B,CAAC;AAGpC,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CACtB,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,WAAW,GAAG,oBAAoB,CAAC,CACzE,CAAC;CACH;AAED,eAAO,MAAM,mBAAmB,EAAE,EAAE,CAAC,wBAAwB,CA2C5D,CAAC"}
@@ -9,7 +9,7 @@ const RegisterFormWrapper = ({ onSuccess, redirectTo, componentProps = {}, }) =>
9
9
  const { register } = (0, contexts_1.useAuth)();
10
10
  const navigate = (0, react_router_dom_1.useNavigate)();
11
11
  const { routes, timezones } = (0, contexts_1.useSuiteConfig)();
12
- const handleSubmit = async (values, usePassword) => {
12
+ const handleSubmit = async (values) => {
13
13
  const result = await register(values.username, values.email, values.timezone || 'UTC', values.password);
14
14
  if ('error' in result) {
15
15
  throw new Error(result.error);
@@ -20,7 +20,12 @@ const RegisterFormWrapper = ({ onSuccess, redirectTo, componentProps = {}, }) =>
20
20
  navigate(redirectTo || routes.verifyEmail || '/verify-email');
21
21
  return result;
22
22
  };
23
- const defaultTimezones = timezones || ['UTC', 'America/New_York', 'America/Los_Angeles', 'Europe/London'];
23
+ const defaultTimezones = timezones || [
24
+ 'UTC',
25
+ 'America/New_York',
26
+ 'America/Los_Angeles',
27
+ 'Europe/London',
28
+ ];
24
29
  return ((0, jsx_runtime_1.jsx)(RegisterForm_1.RegisterForm, { onSubmit: handleSubmit, timezones: defaultTimezones, getInitialTimezone: () => Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC', ...componentProps }));
25
30
  };
26
31
  exports.RegisterFormWrapper = RegisterFormWrapper;