@greatapps/common 1.1.666 → 1.1.668

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 (103) hide show
  1. package/dist/components/account/ConfigurationsMyAccountModal.mjs +8 -6
  2. package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +1 -1
  3. package/dist/components/account/ConfirmDeleteAccountModal.mjs +20 -19
  4. package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +1 -1
  5. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs +10 -11
  6. package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +1 -1
  7. package/dist/components/account/DeleteAccountModal.mjs +34 -28
  8. package/dist/components/account/DeleteAccountModal.mjs.map +1 -1
  9. package/dist/components/account/DisableTwoFactorAuthModal.mjs +7 -5
  10. package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +1 -1
  11. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs +8 -9
  12. package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +1 -1
  13. package/dist/components/account/TwoFactorAuthModal.mjs +22 -23
  14. package/dist/components/account/TwoFactorAuthModal.mjs.map +1 -1
  15. package/dist/components/account/hooks/useChangeEmailForm.mjs +5 -3
  16. package/dist/components/account/hooks/useChangeEmailForm.mjs.map +1 -1
  17. package/dist/components/account/hooks/useChangePasswordForm.mjs +26 -3
  18. package/dist/components/account/hooks/useChangePasswordForm.mjs.map +1 -1
  19. package/dist/components/account/hooks/useChangePhoneForm.mjs +18 -9
  20. package/dist/components/account/hooks/useChangePhoneForm.mjs.map +1 -1
  21. package/dist/components/account/hooks/useDisableTwoFactorAuthForm.mjs +26 -3
  22. package/dist/components/account/hooks/useDisableTwoFactorAuthForm.mjs.map +1 -1
  23. package/dist/components/account/hooks/useOtpVerification.mjs +19 -3
  24. package/dist/components/account/hooks/useOtpVerification.mjs.map +1 -1
  25. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs +27 -4
  26. package/dist/components/account/hooks/useTwoFactorAuthForm.mjs.map +1 -1
  27. package/dist/components/account/sections/ChangeEmailModal.mjs +25 -28
  28. package/dist/components/account/sections/ChangeEmailModal.mjs.map +1 -1
  29. package/dist/components/account/sections/ChangePasswordSection.mjs +8 -6
  30. package/dist/components/account/sections/ChangePasswordSection.mjs.map +1 -1
  31. package/dist/components/account/sections/ChangePhoneModal.mjs +24 -27
  32. package/dist/components/account/sections/ChangePhoneModal.mjs.map +1 -1
  33. package/dist/components/account/sections/MyProfileSection.mjs +37 -22
  34. package/dist/components/account/sections/MyProfileSection.mjs.map +1 -1
  35. package/dist/components/account/sections/PreferencesSection.mjs +48 -24
  36. package/dist/components/account/sections/PreferencesSection.mjs.map +1 -1
  37. package/dist/components/account/sections/SecuritySection.mjs +11 -9
  38. package/dist/components/account/sections/SecuritySection.mjs.map +1 -1
  39. package/dist/components/account/sections/TokenSection.mjs +24 -8
  40. package/dist/components/account/sections/TokenSection.mjs.map +1 -1
  41. package/dist/i18n/config.mjs +13 -0
  42. package/dist/i18n/config.mjs.map +1 -0
  43. package/dist/i18n/country-language.mjs +74 -0
  44. package/dist/i18n/country-language.mjs.map +1 -0
  45. package/dist/i18n/messages/en-us.mjs +219 -0
  46. package/dist/i18n/messages/en-us.mjs.map +1 -0
  47. package/dist/i18n/messages/es-es.mjs +219 -0
  48. package/dist/i18n/messages/es-es.mjs.map +1 -0
  49. package/dist/i18n/messages/index.mjs +16 -0
  50. package/dist/i18n/messages/index.mjs.map +1 -0
  51. package/dist/i18n/messages/pt-br.mjs +224 -0
  52. package/dist/i18n/messages/pt-br.mjs.map +1 -0
  53. package/dist/i18n/normalize.mjs +12 -0
  54. package/dist/i18n/normalize.mjs.map +1 -0
  55. package/dist/i18n/resolve-locale.mjs +42 -0
  56. package/dist/i18n/resolve-locale.mjs.map +1 -0
  57. package/dist/i18n.mjs +14 -0
  58. package/dist/i18n.mjs.map +1 -0
  59. package/dist/providers/auth.provider.mjs +9 -1
  60. package/dist/providers/auth.provider.mjs.map +1 -1
  61. package/dist/server.mjs +2 -0
  62. package/dist/server.mjs.map +1 -1
  63. package/dist/utils/intl/cookie-domain.mjs +17 -0
  64. package/dist/utils/intl/cookie-domain.mjs.map +1 -0
  65. package/dist/utils/intl/locale-cookie.mjs +13 -0
  66. package/dist/utils/intl/locale-cookie.mjs.map +1 -0
  67. package/dist/utils/intl/locales.mjs +3 -2
  68. package/dist/utils/intl/locales.mjs.map +1 -1
  69. package/package.json +7 -1
  70. package/src/components/account/ConfigurationsMyAccountModal.tsx +10 -6
  71. package/src/components/account/ConfirmDeleteAccountModal.tsx +22 -13
  72. package/src/components/account/ConfirmGlobalPreferencesModal.tsx +12 -10
  73. package/src/components/account/DeleteAccountModal.tsx +34 -24
  74. package/src/components/account/DisableTwoFactorAuthModal.tsx +11 -6
  75. package/src/components/account/IsntPossibleDeleteAccountModal.tsx +8 -6
  76. package/src/components/account/TwoFactorAuthModal.tsx +33 -29
  77. package/src/components/account/hooks/useChangeEmailForm.tsx +5 -3
  78. package/src/components/account/hooks/useChangePasswordForm.tsx +20 -6
  79. package/src/components/account/hooks/useChangePhoneForm.tsx +16 -10
  80. package/src/components/account/hooks/useDisableTwoFactorAuthForm.tsx +20 -6
  81. package/src/components/account/hooks/useOtpVerification.tsx +16 -4
  82. package/src/components/account/hooks/useTwoFactorAuthForm.tsx +21 -7
  83. package/src/components/account/sections/ChangeEmailModal.tsx +35 -21
  84. package/src/components/account/sections/ChangePasswordSection.tsx +10 -6
  85. package/src/components/account/sections/ChangePhoneModal.tsx +50 -22
  86. package/src/components/account/sections/MyProfileSection.tsx +37 -23
  87. package/src/components/account/sections/PreferencesSection.tsx +52 -25
  88. package/src/components/account/sections/SecuritySection.tsx +19 -10
  89. package/src/components/account/sections/TokenSection.tsx +22 -10
  90. package/src/i18n/config.ts +17 -0
  91. package/src/i18n/country-language.ts +60 -0
  92. package/src/i18n/messages/en-us.ts +234 -0
  93. package/src/i18n/messages/es-es.ts +235 -0
  94. package/src/i18n/messages/index.ts +24 -0
  95. package/src/i18n/messages/pt-br.ts +244 -0
  96. package/src/i18n/normalize.ts +15 -0
  97. package/src/i18n/resolve-locale.ts +77 -0
  98. package/src/i18n.ts +10 -0
  99. package/src/providers/auth.provider.tsx +13 -1
  100. package/src/server.ts +2 -0
  101. package/src/utils/intl/cookie-domain.ts +29 -0
  102. package/src/utils/intl/locale-cookie.ts +18 -0
  103. package/src/utils/intl/locales.ts +3 -2
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Deriva o domínio de cookie compartilhável entre subdomínios a partir do domínio do
3
+ * whitelabel (ex.: `https://app.greatpages.com.br` → `.app.greatpages.com.br`).
4
+ *
5
+ * Mesma normalização usada pelo cookie de auth `greatapps` (auth.service.normalizeCookieDomain),
6
+ * para que o cookie de locale acompanhe o mesmo escopo. Pura (sem APIs de servidor) → client+server.
7
+ * Retorna `undefined` para localhost/host inválido (cookie fica host-scoped).
8
+ */
9
+ export function cookieDomainFromDomain(domain?: string | null): string | undefined {
10
+ if (!domain) return undefined;
11
+
12
+ const normalized = domain.trim();
13
+ if (!normalized) return undefined;
14
+
15
+ let rawHost: string;
16
+ try {
17
+ rawHost = new URL(normalized).hostname;
18
+ } catch {
19
+ rawHost = normalized
20
+ .replace(/^https?:\/\//i, '')
21
+ .replace(/^www\./i, '')
22
+ .split('/')[0]
23
+ .split(':')[0];
24
+ }
25
+
26
+ if (!rawHost || rawHost === 'localhost') return undefined;
27
+
28
+ return rawHost.startsWith('.') ? rawHost : `.${rawHost}`;
29
+ }
@@ -0,0 +1,18 @@
1
+ import { LOCALE_COOKIE } from '../../i18n/config';
2
+ import { cookieDomainFromDomain } from './cookie-domain';
3
+
4
+ const ONE_YEAR = 60 * 60 * 24 * 365;
5
+
6
+ /**
7
+ * Persiste o locale escolhido no cookie `NEXT_LOCALE` (lido por `resolveLocale` no servidor).
8
+ *
9
+ * Passe `whitelabelDomain` (de `useWhitelabel().whitelabel?.domain`) para o cookie ser
10
+ * compartilhado entre subdomínios (accounts. → pages. → apps.), no mesmo escopo do cookie
11
+ * de auth. Sem ele, o cookie fica host-scoped.
12
+ */
13
+ export function setLocaleCookie(locale: string, whitelabelDomain?: string | null): void {
14
+ if (typeof document === 'undefined') return;
15
+ const domain = cookieDomainFromDomain(whitelabelDomain);
16
+ const domainAttr = domain ? `; domain=${domain}` : '';
17
+ document.cookie = `${LOCALE_COOKIE}=${locale}; path=/; max-age=${ONE_YEAR}; samesite=lax${domainAttr}`;
18
+ }
@@ -6,8 +6,9 @@ export type LocaleOption = {
6
6
  };
7
7
 
8
8
  export const LANGUAGE_OPTIONS: LocaleOption[] = [
9
- { value: 'pt-BR', label: 'Português (Brasil)', displayValue: 'Português (Brasil)', apiValue: 'pt-br' },
10
- { value: 'en-US', label: 'Inglês (EUA)', displayValue: 'Inglês (EUA)', apiValue: 'en' },
9
+ { value: 'pt-br', label: 'Português (Brasil)', displayValue: 'Português (Brasil)', apiValue: 'pt-br' },
10
+ { value: 'en-us', label: 'Inglês (EUA)', displayValue: 'Inglês (EUA)', apiValue: 'en' },
11
+ { value: 'es-es', label: 'Espanhol', displayValue: 'Espanhol', apiValue: 'es' },
11
12
  ];
12
13
 
13
14
  export function buildLocaleOptions(): LocaleOption[] {