gt-react 11.4.2 β†’ 11.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.rsc.mjs","names":["getI18nConfig"],"sources":["../src/functions/parseLocale.ts","../../core/dist/unwrapApiResult-BzGfPw75.mjs","../src/index.rsc.ts"],"sourcesContent":["import { getI18nConfig } from '@generaltranslation/react-core/pure';\nimport { getCookieValue, parseAcceptLanguage } from 'gt-i18n/internal';\n\ntype RequestWithHeaders = Pick<Request, 'headers'>;\n\n/**\n * Resolve the user's locale from a Web Request.\n *\n * The configured locale cookie takes precedence over the Accept-Language\n * header. If neither contains a supported locale, the configured default\n * locale is returned.\n *\n * This is intended for incoming server requests. A Request created in the\n * browser does not automatically include document cookies or Accept-Language.\n */\nexport function parseLocale(request: RequestWithHeaders): string {\n const i18nConfig = getI18nConfig();\n const candidates: string[] = [];\n const cookieLocale = getCookieValue(\n request.headers.get('cookie'),\n i18nConfig.getLocaleCookieName()\n );\n\n if (cookieLocale) {\n candidates.push(cookieLocale);\n }\n\n candidates.push(\n ...parseAcceptLanguage(request.headers.get('accept-language'))\n );\n\n return i18nConfig.resolveSupportedLocale(candidates);\n}\n","import { t as ApiError } from \"./ApiError-CUKcz3YS.mjs\";\n//#region src/settings/settings.ts\nconst libraryDefaultLocale = \"en\";\nconst defaultTimeout = 6e4;\n//#endregion\n//#region src/logging/diagnostics.ts\nfunction ensureSentence(text) {\n\tconst trimmed = text.trim();\n\tif (!trimmed) return \"\";\n\treturn /[.!?)]$/.test(trimmed) ? trimmed : `${trimmed}.`;\n}\nfunction stripSentence(text) {\n\tconst trimmed = text.trim();\n\tlet end = trimmed.length;\n\twhile (end > 0) {\n\t\tconst char = trimmed[end - 1];\n\t\tif (char !== \".\" && char !== \"!\" && char !== \"?\") break;\n\t\tend -= 1;\n\t}\n\treturn trimmed.slice(0, end);\n}\nfunction formatDetails(details) {\n\tif (!details) return \"\";\n\tconst detailText = Array.isArray(details) ? details.join(\", \") : details;\n\tif (!detailText.trim()) return \"\";\n\treturn ensureSentence(`Details: ${detailText}`);\n}\nfunction formatDiagnosticErrorDetails(error) {\n\tif (error == null) return void 0;\n\treturn String(error);\n}\nfunction createDiagnosticMessage({ source, severity, whatHappened, reassurance, why, fix, wayOut, details, docsUrl }) {\n\tconst prefix = source ? severity ? `${source} ${severity}:` : `${source}:` : severity ? `${severity}:` : \"\";\n\tconst whatAndWhy = why ? `${stripSentence(whatHappened)} because ${stripSentence(why)}` : whatHappened;\n\tconst shouldCombineWayOut = !!fix && !!wayOut && /^[a-z]/.test(stripSentence(wayOut));\n\tconst messageParts = [\n\t\twhatAndWhy,\n\t\treassurance,\n\t\tshouldCombineWayOut ? `${stripSentence(fix)}, or ${stripSentence(wayOut)}` : fix,\n\t\tshouldCombineWayOut ? void 0 : wayOut,\n\t\tformatDetails(details)\n\t].filter((part) => !!part).map(ensureSentence);\n\tif (docsUrl) messageParts.push(`Learn more: ${docsUrl}`);\n\tconst message = messageParts.join(\" \");\n\treturn prefix ? `${prefix} ${message}` : message;\n}\n//#endregion\n//#region src/settings/settingsUrls.ts\nconst defaultCacheUrl = \"https://cdn.gtx.dev\";\nconst defaultBaseUrl = \"https://api.gtx.dev\";\nconst defaultRuntimeApiUrl = \"https://api.gtx.dev\";\n//#endregion\n//#region src/translate/utils/unwrapApiResult.ts\nfunction isErrorResult(error) {\n\treturn typeof error === \"object\" && error !== null && \"error\" in error && typeof error.error === \"string\";\n}\nfunction hasDecodedError(result) {\n\treturn isErrorResult(result.error) || typeof result.error === \"string\";\n}\n/**\n* Unwraps a `@generaltranslation/api` SDK result, returning its data or\n* throwing an `ApiError` built from the failed response.\n*/\nfunction unwrapApiResult(result) {\n\tif (result.data !== void 0) return result.data;\n\tif (result.response) {\n\t\tconst details = isErrorResult(result.error) ? result.error.error : typeof result.error === \"string\" ? result.error : result.response.statusText;\n\t\tthrow new ApiError(details, result.response.status, details);\n\t}\n\tthrow result.error;\n}\n//#endregion\nexport { defaultCacheUrl as a, formatDiagnosticErrorDetails as c, defaultBaseUrl as i, defaultTimeout as l, isErrorResult as n, defaultRuntimeApiUrl as o, unwrapApiResult as r, createDiagnosticMessage as s, hasDecodedError as t, libraryDefaultLocale as u };\n\n//# sourceMappingURL=unwrapApiResult-BzGfPw75.mjs.map","// React Server Component context surface.\n\nexport { parseLocale } from './functions/parseLocale';\n\nimport { createDiagnosticMessage } from 'generaltranslation/internal';\nimport { CustomMapping } from 'generaltranslation/types';\nimport {\n getGT,\n getI18nConfig,\n getMessages,\n getTranslations,\n} from 'gt-i18n/internal';\nimport { getLocale, getRegion } from 'gt-i18n';\nimport { use } from 'react';\n\n// ===== Error for client components ===== //\nfunction failClientComponent(componentName: string) {\n throw new Error(\n createDiagnosticMessage({\n source: 'gt-react',\n severity: 'Error',\n whatHappened: `${componentName} cannot be consumed via the RSC entry point`,\n fix: 'Import this component from a client or server runtime entry point instead.',\n })\n );\n}\n\nexport function GTProvider() {\n return failClientComponent('GTProvider');\n}\nexport function LocaleSelector() {\n return failClientComponent('LocaleSelector');\n}\nexport function RegionSelector() {\n return failClientComponent('RegionSelector');\n}\n\n// ===== Components ===== //\nexport {\n Branch,\n Currency,\n DateTime,\n Derive,\n Num,\n Plural,\n RelativeTime,\n T,\n Var,\n Tx,\n} from '@generaltranslation/react-core/components-rsc';\n\n// ===== Hooks (cannot reference context) ===== //\n\nexport function useGT() {\n return use(getGT());\n}\nexport function useTranslations(rootId?: string) {\n return use(getTranslations(rootId));\n}\nexport function useMessages() {\n return use(getMessages());\n}\nexport function useLocale() {\n return getLocale();\n}\nexport function useRegion() {\n return getRegion();\n}\nexport function useLocales() {\n return getI18nConfig().getLocales();\n}\nexport function useLocaleDirection(locale: string) {\n return getI18nConfig().getGTClass().getLocaleDirection(locale);\n}\nexport function useLocaleProperties(locale: string) {\n return getI18nConfig().getGTClass().getLocaleProperties(locale);\n}\nexport function useDefaultLocale(): string {\n return getI18nConfig().getDefaultLocale();\n}\nexport function useCustomMapping(): CustomMapping {\n return getI18nConfig().getCustomMapping();\n}\n// ===== Internal Components ===== //\nexport {\n T as GtInternalTranslateJsx,\n GtInternalVar,\n} from '@generaltranslation/react-core/components-rsc';\n\n// ===== Render Helpers ===== //\nexport { createRenderPipeline } from '@generaltranslation/react-core/components-rsc';\n\n// ===== Translation Helpers ===== //\nexport {\n getFormatLocales,\n getTranslationsSnapshot,\n t,\n} from '@generaltranslation/react-core/components-rsc';\n\n// ===== Internal ===== //\nexport {\n getReactI18nCache,\n setReactI18nCache,\n} from '@generaltranslation/react-core/components-rsc';\n\n// ===== Functions ===== //\nexport {\n decodeMsg,\n decodeOptions,\n decodeVars,\n declareVar,\n derive,\n gtFallback,\n mFallback,\n msg,\n getDefaultLocale,\n getLocaleProperties,\n getLocales,\n resolveCanonicalLocale,\n getVersionId,\n} from '@generaltranslation/react-core/pure';\n\n// ===== Setup ===== //\nexport { internalInitializeGTSRA as initializeGT } from '@generaltranslation/react-core/pure';\n\n// ===== Types ===== //\nexport type {\n CurrencyProps,\n DateTimeProps,\n JsxTranslationOptions,\n NumProps,\n PluralProps,\n PreparedT,\n RelativeTimeFormatOptions,\n RelativeTimeProps,\n RenderVariable,\n ResolvedCurrencyProps,\n ResolvedDateTimeProps,\n ResolvedNumProps,\n ResolvedPluralProps,\n ResolvedRelativeTimeProps,\n} from '@generaltranslation/react-core/components-rsc';\n\nexport type {\n RenderPipeline,\n RenderPreparedT,\n} from '@generaltranslation/react-core/pure';\n\nexport type { SharedGTProviderProps } from './provider/GTProviderProps';\nexport {\n GtInternalRuntimeTranslateJsx,\n GtInternalRuntimeTranslateString,\n} from 'gt-i18n/internal';\nexport type {\n GTTranslationOptions,\n RuntimeTranslationOptions,\n} from 'gt-i18n/types';\nexport type {\n SyncResolutionFunction,\n SyncResolutionFunctionWithFallback,\n} from 'gt-i18n/types';\n\n// ===== Singletons ===== //\nexport {\n ReactI18nCache,\n type ReactI18nCacheParams,\n} from '@generaltranslation/react-core/pure';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.rsc.mjs","names":["getI18nConfig"],"sources":["../src/functions/parseLocale.ts","../../core/dist/diagnostics-DKA2SkZB.mjs","../src/index.rsc.ts"],"sourcesContent":["import { getI18nConfig } from '@generaltranslation/react-core/pure';\nimport { getCookieValue, parseAcceptLanguage } from 'gt-i18n/internal';\n\ntype RequestWithHeaders = Pick<Request, 'headers'>;\n\n/**\n * Resolve the user's locale from a Web Request.\n *\n * The configured locale cookie takes precedence over the Accept-Language\n * header. If neither contains a supported locale, the configured default\n * locale is returned.\n *\n * This is intended for incoming server requests. A Request created in the\n * browser does not automatically include document cookies or Accept-Language.\n */\nexport function parseLocale(request: RequestWithHeaders): string {\n const i18nConfig = getI18nConfig();\n const candidates: string[] = [];\n const cookieLocale = getCookieValue(\n request.headers.get('cookie'),\n i18nConfig.getLocaleCookieName()\n );\n\n if (cookieLocale) {\n candidates.push(cookieLocale);\n }\n\n candidates.push(\n ...parseAcceptLanguage(request.headers.get('accept-language'))\n );\n\n return i18nConfig.resolveSupportedLocale(candidates);\n}\n","//#region src/logging/diagnostics.ts\nfunction ensureSentence(text) {\n\tconst trimmed = text.trim();\n\tif (!trimmed) return \"\";\n\treturn /[.!?)]$/.test(trimmed) ? trimmed : `${trimmed}.`;\n}\nfunction stripSentence(text) {\n\tconst trimmed = text.trim();\n\tlet end = trimmed.length;\n\twhile (end > 0) {\n\t\tconst char = trimmed[end - 1];\n\t\tif (char !== \".\" && char !== \"!\" && char !== \"?\") break;\n\t\tend -= 1;\n\t}\n\treturn trimmed.slice(0, end);\n}\nfunction formatDetails(details) {\n\tif (!details) return \"\";\n\tconst detailText = Array.isArray(details) ? details.join(\", \") : details;\n\tif (!detailText.trim()) return \"\";\n\treturn ensureSentence(`Details: ${detailText}`);\n}\nfunction formatDiagnosticErrorDetails(error) {\n\tif (error == null) return void 0;\n\treturn String(error);\n}\nfunction createDiagnosticMessage({ source, severity, whatHappened, reassurance, why, fix, wayOut, details, docsUrl }) {\n\tconst prefix = source ? severity ? `${source} ${severity}:` : `${source}:` : severity ? `${severity}:` : \"\";\n\tconst whatAndWhy = why ? `${stripSentence(whatHappened)} because ${stripSentence(why)}` : whatHappened;\n\tconst shouldCombineWayOut = !!fix && !!wayOut && /^[a-z]/.test(stripSentence(wayOut));\n\tconst messageParts = [\n\t\twhatAndWhy,\n\t\treassurance,\n\t\tshouldCombineWayOut ? `${stripSentence(fix)}, or ${stripSentence(wayOut)}` : fix,\n\t\tshouldCombineWayOut ? void 0 : wayOut,\n\t\tformatDetails(details)\n\t].filter((part) => !!part).map(ensureSentence);\n\tif (docsUrl) messageParts.push(`Learn more: ${docsUrl}`);\n\tconst message = messageParts.join(\" \");\n\treturn prefix ? `${prefix} ${message}` : message;\n}\n//#endregion\nexport { formatDiagnosticErrorDetails as n, createDiagnosticMessage as t };\n\n//# sourceMappingURL=diagnostics-DKA2SkZB.mjs.map","// React Server Component context surface.\n\nexport { parseLocale } from './functions/parseLocale';\n\nimport { createDiagnosticMessage } from 'generaltranslation/internal';\nimport { CustomMapping } from 'generaltranslation/types';\nimport {\n getGT,\n getI18nConfig,\n getMessages,\n getTranslations,\n} from 'gt-i18n/internal';\nimport { getLocale, getRegion } from 'gt-i18n';\nimport { use } from 'react';\n\n// ===== Error for client components ===== //\nfunction failClientComponent(componentName: string) {\n throw new Error(\n createDiagnosticMessage({\n source: 'gt-react',\n severity: 'Error',\n whatHappened: `${componentName} cannot be consumed via the RSC entry point`,\n fix: 'Import this component from a client or server runtime entry point instead.',\n })\n );\n}\n\nexport function GTProvider() {\n return failClientComponent('GTProvider');\n}\nexport function LocaleSelector() {\n return failClientComponent('LocaleSelector');\n}\nexport function RegionSelector() {\n return failClientComponent('RegionSelector');\n}\n\n// ===== Components ===== //\nexport {\n Branch,\n Currency,\n DateTime,\n Derive,\n Num,\n Plural,\n RelativeTime,\n T,\n Var,\n Tx,\n} from '@generaltranslation/react-core/components-rsc';\n\n// ===== Hooks (cannot reference context) ===== //\n\nexport function useGT() {\n return use(getGT());\n}\nexport function useTranslations(rootId?: string) {\n return use(getTranslations(rootId));\n}\nexport function useMessages() {\n return use(getMessages());\n}\nexport function useLocale() {\n return getLocale();\n}\nexport function useRegion() {\n return getRegion();\n}\nexport function useLocales() {\n return getI18nConfig().getLocales();\n}\nexport function useLocaleDirection(locale: string) {\n return getI18nConfig().getGTClass().getLocaleDirection(locale);\n}\nexport function useLocaleProperties(locale: string) {\n return getI18nConfig().getGTClass().getLocaleProperties(locale);\n}\nexport function useDefaultLocale(): string {\n return getI18nConfig().getDefaultLocale();\n}\nexport function useCustomMapping(): CustomMapping {\n return getI18nConfig().getCustomMapping();\n}\n// ===== Internal Components ===== //\nexport {\n T as GtInternalTranslateJsx,\n GtInternalVar,\n} from '@generaltranslation/react-core/components-rsc';\n\n// ===== Render Helpers ===== //\nexport { createRenderPipeline } from '@generaltranslation/react-core/components-rsc';\n\n// ===== Translation Helpers ===== //\nexport {\n getFormatLocales,\n getTranslationsSnapshot,\n t,\n} from '@generaltranslation/react-core/components-rsc';\n\n// ===== Internal ===== //\nexport {\n getReactI18nCache,\n setReactI18nCache,\n} from '@generaltranslation/react-core/components-rsc';\n\n// ===== Functions ===== //\nexport {\n decodeMsg,\n decodeOptions,\n decodeVars,\n declareVar,\n derive,\n gtFallback,\n mFallback,\n msg,\n getDefaultLocale,\n getLocaleProperties,\n getLocales,\n resolveCanonicalLocale,\n getVersionId,\n} from '@generaltranslation/react-core/pure';\n\n// ===== Setup ===== //\nexport { internalInitializeGTSRA as initializeGT } from '@generaltranslation/react-core/pure';\n\n// ===== Types ===== //\nexport type {\n CurrencyProps,\n DateTimeProps,\n JsxTranslationOptions,\n NumProps,\n PluralProps,\n PreparedT,\n RelativeTimeFormatOptions,\n RelativeTimeProps,\n RenderVariable,\n ResolvedCurrencyProps,\n ResolvedDateTimeProps,\n ResolvedNumProps,\n ResolvedPluralProps,\n ResolvedRelativeTimeProps,\n} from '@generaltranslation/react-core/components-rsc';\n\nexport type {\n RenderPipeline,\n RenderPreparedT,\n} from '@generaltranslation/react-core/pure';\n\nexport type { SharedGTProviderProps } from './provider/GTProviderProps';\nexport {\n GtInternalRuntimeTranslateJsx,\n GtInternalRuntimeTranslateString,\n} from 'gt-i18n/internal';\nexport type {\n GTTranslationOptions,\n RuntimeTranslationOptions,\n} from 'gt-i18n/types';\nexport type {\n SyncResolutionFunction,\n SyncResolutionFunctionWithFallback,\n} from 'gt-i18n/types';\n\n// ===== Singletons ===== //\nexport {\n ReactI18nCache,\n type ReactI18nCacheParams,\n} from '@generaltranslation/react-core/pure';\n"],"mappings":"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"}
@@ -6,7 +6,7 @@ let _generaltranslation_react_core_hooks = require("@generaltranslation/react-co
6
6
  let _generaltranslation_react_core_components = require("@generaltranslation/react-core/components");
7
7
  let react = require("react");
8
8
  let react_jsx_runtime = require("react/jsx-runtime");
9
- //#region ../core/dist/unwrapApiResult-BzGfPw75.mjs
9
+ //#region ../core/dist/diagnostics-DKA2SkZB.mjs
10
10
  function ensureSentence(text) {
11
11
  const trimmed = text.trim();
12
12
  if (!trimmed) return "";
@@ -180,29 +180,26 @@ function useHandleMissingTranslations(i18nStore) {
180
180
  * Implementation for server-side only
181
181
  */
182
182
  function ServerGTProvider({ locale, region, enableI18n, ...props }) {
183
- const conditionStore = (0, react.useMemo)(() => {
184
- return new _generaltranslation_react_core_pure.ReadonlyConditionStore({
185
- locale,
186
- region,
187
- enableI18n
188
- });
189
- }, [
190
- locale,
191
- region,
192
- enableI18n
193
- ]);
194
183
  const i18nStoreRef = (0, react.useRef)(null);
195
184
  if (i18nStoreRef.current == null) i18nStoreRef.current = new _generaltranslation_react_core_components.I18nStore();
196
185
  const { onMissingTranslation, onMissingDictionaryEntry, onMissingDictionaryObj } = useHandleMissingTranslations(i18nStoreRef.current);
197
186
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_generaltranslation_react_core_components.InternalGTProvider, {
198
187
  ...props,
199
- conditionStore,
188
+ locale,
189
+ region,
190
+ enableI18n: enableI18n ?? true,
191
+ setLocale: noopSetLocale,
192
+ setRegion: noopSetRegion,
193
+ setEnableI18n: noopSetEnableI18n,
200
194
  i18nStore: i18nStoreRef.current,
201
195
  onMissingTranslation,
202
196
  onMissingDictionaryEntry,
203
197
  onMissingDictionaryObj
204
198
  });
205
199
  }
200
+ const noopSetLocale = (_locale) => void 0;
201
+ const noopSetRegion = (_region) => void 0;
202
+ const noopSetEnableI18n = (_enabled) => void 0;
206
203
  //#endregion
207
204
  //#region src/components/LocaleSelector.tsx
208
205
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.server.cjs","names":["ReadonlyConditionStore","I18nStore","InternalGTProvider","InternalLocaleSelector","InternalRegionSelector"],"sources":["../../core/dist/unwrapApiResult-BzGfPw75.mjs","../src/setup/runtimeCredentials.ts","../src/setup/initializeGTSRA.ts","../src/functions/parseLocale.ts","../src/components/useLocaleSelector.ts","../src/components/useRegionSelector.ts","../src/hooks/useHandleMissingTranslations.ts","../src/provider/ServerGTProvider.tsx","../src/components/LocaleSelector.tsx","../src/components/RegionSelector.tsx","../src/index.server.ts"],"sourcesContent":["import { t as ApiError } from \"./ApiError-CUKcz3YS.mjs\";\n//#region src/settings/settings.ts\nconst libraryDefaultLocale = \"en\";\nconst defaultTimeout = 6e4;\n//#endregion\n//#region src/logging/diagnostics.ts\nfunction ensureSentence(text) {\n\tconst trimmed = text.trim();\n\tif (!trimmed) return \"\";\n\treturn /[.!?)]$/.test(trimmed) ? trimmed : `${trimmed}.`;\n}\nfunction stripSentence(text) {\n\tconst trimmed = text.trim();\n\tlet end = trimmed.length;\n\twhile (end > 0) {\n\t\tconst char = trimmed[end - 1];\n\t\tif (char !== \".\" && char !== \"!\" && char !== \"?\") break;\n\t\tend -= 1;\n\t}\n\treturn trimmed.slice(0, end);\n}\nfunction formatDetails(details) {\n\tif (!details) return \"\";\n\tconst detailText = Array.isArray(details) ? details.join(\", \") : details;\n\tif (!detailText.trim()) return \"\";\n\treturn ensureSentence(`Details: ${detailText}`);\n}\nfunction formatDiagnosticErrorDetails(error) {\n\tif (error == null) return void 0;\n\treturn String(error);\n}\nfunction createDiagnosticMessage({ source, severity, whatHappened, reassurance, why, fix, wayOut, details, docsUrl }) {\n\tconst prefix = source ? severity ? `${source} ${severity}:` : `${source}:` : severity ? `${severity}:` : \"\";\n\tconst whatAndWhy = why ? `${stripSentence(whatHappened)} because ${stripSentence(why)}` : whatHappened;\n\tconst shouldCombineWayOut = !!fix && !!wayOut && /^[a-z]/.test(stripSentence(wayOut));\n\tconst messageParts = [\n\t\twhatAndWhy,\n\t\treassurance,\n\t\tshouldCombineWayOut ? `${stripSentence(fix)}, or ${stripSentence(wayOut)}` : fix,\n\t\tshouldCombineWayOut ? void 0 : wayOut,\n\t\tformatDetails(details)\n\t].filter((part) => !!part).map(ensureSentence);\n\tif (docsUrl) messageParts.push(`Learn more: ${docsUrl}`);\n\tconst message = messageParts.join(\" \");\n\treturn prefix ? `${prefix} ${message}` : message;\n}\n//#endregion\n//#region src/settings/settingsUrls.ts\nconst defaultCacheUrl = \"https://cdn.gtx.dev\";\nconst defaultBaseUrl = \"https://api.gtx.dev\";\nconst defaultRuntimeApiUrl = \"https://api.gtx.dev\";\n//#endregion\n//#region src/translate/utils/unwrapApiResult.ts\nfunction isErrorResult(error) {\n\treturn typeof error === \"object\" && error !== null && \"error\" in error && typeof error.error === \"string\";\n}\nfunction hasDecodedError(result) {\n\treturn isErrorResult(result.error) || typeof result.error === \"string\";\n}\n/**\n* Unwraps a `@generaltranslation/api` SDK result, returning its data or\n* throwing an `ApiError` built from the failed response.\n*/\nfunction unwrapApiResult(result) {\n\tif (result.data !== void 0) return result.data;\n\tif (result.response) {\n\t\tconst details = isErrorResult(result.error) ? result.error.error : typeof result.error === \"string\" ? result.error : result.response.statusText;\n\t\tthrow new ApiError(details, result.response.status, details);\n\t}\n\tthrow result.error;\n}\n//#endregion\nexport { defaultCacheUrl as a, formatDiagnosticErrorDetails as c, defaultBaseUrl as i, defaultTimeout as l, isErrorResult as n, defaultRuntimeApiUrl as o, unwrapApiResult as r, createDiagnosticMessage as s, hasDecodedError as t, libraryDefaultLocale as u };\n\n//# sourceMappingURL=unwrapApiResult-BzGfPw75.mjs.map","import { getRuntimeEnvironment } from 'gt-i18n/internal';\nimport type { I18nConfigParams } from 'gt-i18n/internal/types';\n\ntype RuntimeCredentials = Pick<I18nConfigParams, 'projectId' | 'devApiKey'>;\ntype RuntimeEnv = {\n DEV?: boolean;\n VITE_GT_PROJECT_ID?: string;\n VITE_GT_DEV_API_KEY?: string;\n};\n\nexport function addRuntimeCredentials<T extends RuntimeCredentials>(\n config: T\n): T {\n const credentials = getRuntimeCredentials();\n return {\n ...config,\n projectId: config.projectId || credentials.projectId,\n devApiKey: config.devApiKey || credentials.devApiKey,\n };\n}\n\nfunction getRuntimeCredentials(): RuntimeCredentials {\n return {\n projectId:\n readImportMetaVite(\n () =>\n (\n import.meta as ImportMeta & {\n env?: RuntimeEnv;\n }\n ).env?.VITE_GT_PROJECT_ID\n ) || readProcessEnvViteProjectId(),\n devApiKey:\n getRuntimeEnvironment() === 'development'\n ? readImportMetaVite(() =>\n (import.meta as ImportMeta & { env?: RuntimeEnv }).env?.DEV\n ? (import.meta as ImportMeta & { env?: RuntimeEnv }).env\n ?.VITE_GT_DEV_API_KEY\n : undefined\n ) || readProcessEnvViteDevApiKey()\n : undefined,\n };\n}\n\nfunction readImportMetaVite(\n readValue: () => string | undefined\n): string | undefined {\n try {\n return normalizeEnvValue(readValue());\n } catch {\n return undefined;\n }\n}\n\nfunction readProcessEnvViteProjectId(): string | undefined {\n try {\n return normalizeEnvValue(process.env.VITE_GT_PROJECT_ID);\n } catch {\n return undefined;\n }\n}\n\nfunction readProcessEnvViteDevApiKey(): string | undefined {\n try {\n return normalizeEnvValue(process.env.VITE_GT_DEV_API_KEY);\n } catch {\n return undefined;\n }\n}\n\nfunction normalizeEnvValue(value: string | undefined): string | undefined {\n return value || undefined;\n}\n","import {\n internalInitializeGTSRA,\n type ReactInitializeGTParams,\n} from '@generaltranslation/react-core/pure';\nimport { addRuntimeCredentials } from './runtimeCredentials';\n\nexport type InitializeGTParams = ReactInitializeGTParams;\n\n/**\n * Initialize GT for server-rendered React runtimes.\n */\nexport function initializeGTSRA(config: InitializeGTParams): void {\n internalInitializeGTSRA(addRuntimeCredentials(config));\n}\n","import { getI18nConfig } from '@generaltranslation/react-core/pure';\nimport { getCookieValue, parseAcceptLanguage } from 'gt-i18n/internal';\n\ntype RequestWithHeaders = Pick<Request, 'headers'>;\n\n/**\n * Resolve the user's locale from a Web Request.\n *\n * The configured locale cookie takes precedence over the Accept-Language\n * header. If neither contains a supported locale, the configured default\n * locale is returned.\n *\n * This is intended for incoming server requests. A Request created in the\n * browser does not automatically include document cookies or Accept-Language.\n */\nexport function parseLocale(request: RequestWithHeaders): string {\n const i18nConfig = getI18nConfig();\n const candidates: string[] = [];\n const cookieLocale = getCookieValue(\n request.headers.get('cookie'),\n i18nConfig.getLocaleCookieName()\n );\n\n if (cookieLocale) {\n candidates.push(cookieLocale);\n }\n\n candidates.push(\n ...parseAcceptLanguage(request.headers.get('accept-language'))\n );\n\n return i18nConfig.resolveSupportedLocale(candidates);\n}\n","import {\n useInternalLocaleSelector,\n useSetLocale,\n} from '@generaltranslation/react-core/hooks';\n\n/**\n * Gets the list of properties for using a locale selector.\n * Provides locale management utilities for the application.\n *\n * @param locales an optional list of locales to use for the drop down. These locales must be a subset of the locales provided by the `<GTProvider>` context. When not provided, the list of locales from the `<GTProvider>` context is used.\n *\n * @returns {Object} An object containing locale-related utilities:\n * @returns {string} return.locale - The currently selected locale.\n * @returns {string[]} return.locales - The list of all available locales.\n * @returns {function} return.setLocale - Function to update the current locale.\n * @returns {(locale: string) => LocaleProperties} return.getLocaleProperties - Function to retrieve properties for a given locale.\n */\nexport function useLocaleSelector(locales?: string[]) {\n const setLocale = useSetLocale();\n return { setLocale, ...useInternalLocaleSelector(locales) };\n}\n","import {\n useInternalRegionSelector,\n useSetLocale,\n useSetRegion,\n} from '@generaltranslation/react-core/hooks';\nimport type { InternalRegionSelectorOptions } from '@generaltranslation/react-core/hooks';\n\n/**\n * Gets the list of properties for using a region selector.\n * Provides region management utilities for the application.\n *\n * @param {Object} [options] - Optional configuration object.\n * @param {string[]} [options.regions] - An optional array of ISO 3166 region codes to display. If not provided, regions are inferred from supported locales.\n * @param {Object} [options.customMapping] - Optional mapping to override region display names, emojis, or associated locales.\n * @param {boolean} [options.prioritizeCurrentLocaleRegion=true] - If true, the region corresponding to the current locale is prioritized in the list.\n * @param {boolean} [options.sortRegionsAlphabetically=true] - If true, regions are sorted alphabetically by display name.\n *\n * @returns {Object} An object containing region-related utilities:\n * @returns {string | undefined} return.region - The currently selected region code.\n * @returns {function} return.setRegion - Function to update the current region.\n * @returns {string[]} return.regions - The ordered list of available region codes.\n * @returns {Map<string, RegionData>} return.regionData - Map of region codes to their display data (name, emoji, locale).\n * @returns {string} return.locale - The current locale.\n * @returns {function} return.setLocale - Function to update the current locale.\n */\nexport function useRegionSelector(options?: InternalRegionSelectorOptions) {\n const setRegion = useSetRegion();\n const setLocale = useSetLocale();\n return { setRegion, setLocale, ...useInternalRegionSelector(options) };\n}\n","'server-only';\n\nimport {\n OnMissingDictionaryEntry,\n OnMissingDictionaryObj,\n OnMissingTranslation,\n} from '@generaltranslation/react-core/pure';\nimport { I18nStore } from '@generaltranslation/react-core/components';\nimport { useMemo } from 'react';\n\n/**\n * Returns handle missing translation callback for server runtime\n * These DO get invoked during server render which is not pure, but this\n * is acceptable for dev hot reload because we MUST trigger a translate\n * call on the server to persist translations\n */\nexport function useHandleMissingTranslations(i18nStore: I18nStore): {\n onMissingTranslation: OnMissingTranslation;\n onMissingDictionaryEntry: OnMissingDictionaryEntry;\n onMissingDictionaryObj: OnMissingDictionaryObj;\n} {\n return useMemo(\n () => ({\n onMissingTranslation: (lookup) => i18nStore.translate(lookup),\n onMissingDictionaryEntry: (lookup) =>\n i18nStore.translateDictionaryEntry(lookup),\n onMissingDictionaryObj: (lookup) =>\n i18nStore.translateDictionaryObject(lookup),\n }),\n [i18nStore]\n );\n}\n","import {\n I18nStore,\n InternalGTProvider,\n} from '@generaltranslation/react-core/components';\nimport { ReadonlyConditionStore } from '@generaltranslation/react-core/pure';\nimport { useMemo, useRef } from 'react';\nimport type { SharedGTProviderProps } from './GTProviderProps';\nimport { useHandleMissingTranslations } from '../hooks/useHandleMissingTranslations';\n\n/**\n * Consumes snapshot from server\n * Implementation for server-side only\n */\nexport function ServerGTProvider({\n locale,\n region,\n enableI18n,\n ...props\n}: SharedGTProviderProps) {\n const conditionStore = useMemo(() => {\n return new ReadonlyConditionStore({ locale, region, enableI18n });\n }, [locale, region, enableI18n]);\n\n const i18nStoreRef = useRef<I18nStore | null>(null);\n if (i18nStoreRef.current == null) {\n i18nStoreRef.current = new I18nStore();\n }\n\n const {\n onMissingTranslation,\n onMissingDictionaryEntry,\n onMissingDictionaryObj,\n } = useHandleMissingTranslations(i18nStoreRef.current);\n\n return (\n <InternalGTProvider\n {...props}\n conditionStore={conditionStore}\n i18nStore={i18nStoreRef.current}\n onMissingTranslation={onMissingTranslation}\n onMissingDictionaryEntry={onMissingDictionaryEntry}\n onMissingDictionaryObj={onMissingDictionaryObj}\n />\n );\n}\n","import type React from 'react';\nimport { InternalLocaleSelector } from '@generaltranslation/react-core/components';\nimport { CustomMapping } from 'generaltranslation/types';\nimport { useLocaleSelector } from './useLocaleSelector';\n\n/**\n * A dropdown component that allows users to select a locale.\n * @param {string[]} [locales] - An optional list of locales to use for the dropdown. If not provided, the list of locales from the `<GTProvider>` context is used.\n * @param {object} [customNames] - (deprecated) An optional object to map locales to custom names. Use `customMapping` instead.\n * @param {CustomMapping} [customMapping] - An optional object to map locales to custom display names, emojis, or other properties.\n * @returns {React.ReactElement | null} The rendered locale dropdown component or null to prevent rendering.\n */\nexport function LocaleSelector({\n locales: _locales,\n ...props\n}: LocaleSelectorProps): React.JSX.Element | null {\n // Get locale selector properties\n const { locale, locales, getLocaleProperties, setLocale } =\n useLocaleSelector(_locales);\n\n return (\n <InternalLocaleSelector\n locale={locale}\n locales={locales}\n setLocale={setLocale}\n getLocaleProperties={getLocaleProperties}\n {...props}\n />\n );\n}\n\nexport type LocaleSelectorProps = {\n locales?: string[];\n customNames?: { [key: string]: string };\n customMapping?: CustomMapping;\n [key: string]: any;\n};\n","import type React from 'react';\nimport type { ReactNode } from 'react';\nimport { InternalRegionSelector } from '@generaltranslation/react-core/components';\nimport { useRegionSelector } from './useRegionSelector';\n\n/**\n * A dropdown component that allows users to select a region.\n * @param {string[]} [regions] - An optional array of ISO 3166 region codes to display. If not provided, regions are inferred from the supported locales in the `<GTProvider>` context.\n * @param {React.ReactNode} [placeholder] - Optional placeholder node to display as the first option when no region is selected.\n * @param {object} [customMapping] - An optional object to map region codes to custom display names, emojis, or associated locales.\n * @param {boolean} [prioritizeCurrentLocaleRegion] - If true, the region corresponding to the current locale is prioritized in the list.\n * @param {boolean} [sortRegionsAlphabetically] - If true, regions are sorted alphabetically by display name.\n * @param {boolean} [asLocaleSelector=false] - If true, selecting a region will also update the locale to the region's associated locale.\n * @returns {React.ReactElement | null} The rendered region dropdown component or null to prevent rendering.\n *\n * @example\n * ```tsx\n * <RegionSelector\n * regions={['US', 'CA']}\n * customMapping={{ US: { name: \"United States\", emoji: \"πŸ‡ΊπŸ‡Έ\" } }}\n * placeholder=\"Select a region\"\n * />\n * ```\n */\nexport function RegionSelector({\n regions: _regions,\n customMapping,\n prioritizeCurrentLocaleRegion,\n sortRegionsAlphabetically,\n asLocaleSelector = false,\n ...props\n}: RegionSelectorProps): React.JSX.Element | null {\n // Get region selector properties\n const { region, regions, regionData, locale, setRegion, setLocale } =\n useRegionSelector({\n regions: _regions,\n customMapping,\n prioritizeCurrentLocaleRegion,\n sortRegionsAlphabetically,\n });\n\n const changeRegion = (region: string) => {\n if (asLocaleSelector) {\n const regionLocale = regionData.get(region)?.locale;\n // setRegion reloads the page; update the locale cookie first\n if (regionLocale && locale !== regionLocale) setLocale(regionLocale);\n }\n setRegion(region);\n };\n\n return (\n <InternalRegionSelector\n region={region}\n regions={regions}\n regionData={regionData}\n setRegion={changeRegion}\n {...props}\n />\n );\n}\n\nexport type RegionSelectorProps = {\n regions?: string[];\n placeholder?: ReactNode;\n customMapping?: {\n [region: string]:\n | string\n | { name?: string; emoji?: string; locale?: string };\n };\n prioritizeCurrentLocaleRegion?: boolean;\n sortRegionsAlphabetically?: boolean;\n asLocaleSelector?: boolean;\n [key: string]: any;\n};\n","'use client';\n\nimport { createDiagnosticMessage } from 'generaltranslation/internal';\nimport type { ReactNode } from 'react';\nimport type { TxProps } from './utils/TxProps';\n\n// SSR/context-capable React runtime surface. This entrypoint may import hooks,\n// providers, and context modules, so it must be consumed as a client boundary by\n// React Server Component frameworks.\n\nexport { initializeGTSRA as initializeGT } from './setup/initializeGTSRA';\nexport { parseLocale } from './functions/parseLocale';\nexport { useLocaleSelector } from './components/useLocaleSelector';\nexport { useRegionSelector } from './components/useRegionSelector';\n\ntype InitializeGTSPA = typeof import('./setup/initializeGTSPA').initializeGTSPA;\ntype CreateOrUpdateBrowserConditionStore =\n typeof import('./condition-store/createBrowserConditionStore').createOrUpdateBrowserConditionStore;\n\nconst createBrowserConditionStoreServerError = createDiagnosticMessage({\n source: 'gt-react',\n severity: 'Error',\n whatHappened:\n 'createOrUpdateBrowserConditionStore() cannot be called from the server runtime entry point',\n why: 'createOrUpdateBrowserConditionStore() initializes browser-only condition state.',\n fix: 'Call createOrUpdateBrowserConditionStore() from the browser runtime entry point.',\n});\n\nexport const initializeGTSPA: InitializeGTSPA = async () => {\n throw new Error(\n createDiagnosticMessage({\n source: 'gt-react',\n severity: 'Error',\n whatHappened:\n 'initializeGTSPA() cannot be called from the server runtime entry point',\n why: 'initializeGTSPA() initializes browser-only SPA state and translation cache behavior.',\n fix: 'Use initializeGT() for server-rendered React runtimes or import initializeGTSPA from the browser entry point.',\n })\n );\n};\n\nexport const createOrUpdateBrowserConditionStore: CreateOrUpdateBrowserConditionStore =\n () => {\n throw new Error(createBrowserConditionStoreServerError);\n };\n\n// ===== Components ===== //\nexport { ServerGTProvider as GTProvider } from './provider/ServerGTProvider';\nexport { LocaleSelector } from './components/LocaleSelector';\nexport { RegionSelector } from './components/RegionSelector';\n\n// ===== Components ===== //\nexport {\n Branch,\n Plural,\n Derive,\n GtInternalTranslateJsx,\n GtInternalVar,\n T,\n Currency,\n DateTime,\n RelativeTime,\n Var,\n Num,\n} from '@generaltranslation/react-core/components';\n\nexport async function Tx(_props: TxProps): Promise<ReactNode> {\n throw new Error('Tx is only supported via RSC');\n}\n\n// ===== Hooks ===== //\nexport {\n useLocale,\n useRegion,\n useCustomMapping,\n useDefaultLocale,\n useEnableI18n,\n useLocales,\n useFormatLocales,\n useGT,\n useMessages,\n useTranslations,\n useLocaleDirection,\n useLocaleProperties,\n useSetLocale,\n useSetRegion,\n useSetEnableI18n,\n} from '@generaltranslation/react-core/hooks';\n\n// ===== Functions ===== //\nexport {\n msg,\n decodeMsg,\n decodeOptions,\n derive,\n declareVar,\n decodeVars,\n mFallback,\n gtFallback,\n getFormatLocales,\n getDefaultLocale,\n getLocaleProperties,\n getLocales,\n resolveCanonicalLocale,\n getReactI18nCache,\n getTranslationsSnapshot,\n getVersionId,\n createRenderPipeline,\n setReactI18nCache,\n t,\n} from '@generaltranslation/react-core/pure';\n\nexport type {\n RenderPipeline,\n RenderPreparedT,\n} from '@generaltranslation/react-core/pure';\n\nexport type { SharedGTProviderProps } from './provider/GTProviderProps';\nexport {\n GtInternalRuntimeTranslateJsx,\n GtInternalRuntimeTranslateString,\n} from 'gt-i18n/internal';\nexport type {\n GTTranslationOptions,\n RuntimeTranslationOptions,\n} from 'gt-i18n/types';\nexport type {\n SyncResolutionFunction,\n SyncResolutionFunctionWithFallback,\n} from 'gt-i18n/types';\n\n// ===== Singletons ===== //\nexport {\n ReactI18nCache,\n type ReactI18nCacheParams,\n} from '@generaltranslation/react-core/pure';\n"],"mappings":";;;;;;;;;AAMA,SAAS,eAAe,MAAM;CAC7B,MAAM,UAAU,KAAK,MAAM;AAC3B,KAAI,CAAC,QAAS,QAAO;AACrB,QAAO,UAAU,KAAK,QAAQ,GAAG,UAAU,GAAG,QAAQ;;AAEvD,SAAS,cAAc,MAAM;CAC5B,MAAM,UAAU,KAAK,MAAM;CAC3B,IAAI,MAAM,QAAQ;AAClB,QAAO,MAAM,GAAG;EACf,MAAM,OAAO,QAAQ,MAAM;AAC3B,MAAI,SAAS,OAAO,SAAS,OAAO,SAAS,IAAK;AAClD,SAAO;;AAER,QAAO,QAAQ,MAAM,GAAG,IAAI;;AAE7B,SAAS,cAAc,SAAS;AAC/B,KAAI,CAAC,QAAS,QAAO;CACrB,MAAM,aAAa,MAAM,QAAQ,QAAQ,GAAG,QAAQ,KAAK,KAAK,GAAG;AACjE,KAAI,CAAC,WAAW,MAAM,CAAE,QAAO;AAC/B,QAAO,eAAe,YAAY,aAAa;;AAMhD,SAAS,wBAAwB,EAAE,QAAQ,UAAU,cAAc,aAAa,KAAK,KAAK,QAAQ,SAAS,WAAW;CACrH,MAAM,SAAS,SAAS,WAAW,GAAG,OAAO,GAAG,SAAS,KAAK,GAAG,OAAO,KAAK,WAAW,GAAG,SAAS,KAAK;CACzG,MAAM,aAAa,MAAM,GAAG,cAAc,aAAa,CAAC,WAAW,cAAc,IAAI,KAAK;CAC1F,MAAM,sBAAsB,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,SAAS,KAAK,cAAc,OAAO,CAAC;CACrF,MAAM,eAAe;EACpB;EACA;EACA,sBAAsB,GAAG,cAAc,IAAI,CAAC,OAAO,cAAc,OAAO,KAAK;EAC7E,sBAAsB,KAAK,IAAI;EAC/B,cAAc,QAAQ;EACtB,CAAC,QAAQ,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,eAAe;AAC9C,KAAI,QAAS,cAAa,KAAK,eAAe,UAAU;CACxD,MAAM,UAAU,aAAa,KAAK,IAAI;AACtC,QAAO,SAAS,GAAG,OAAO,GAAG,YAAY;;;;AClC1C,SAAgB,sBACd,QACG;CACH,MAAM,cAAc,uBAAuB;AAC3C,QAAO;EACL,GAAG;EACH,WAAW,OAAO,aAAa,YAAY;EAC3C,WAAW,OAAO,aAAa,YAAY;EAC5C;;AAGH,SAAS,wBAA4C;AACnD,QAAO;EACL,WACE,0BAAA,EAAA,EAMM,KAAK,mBACV,IAAI,6BAA6B;EACpC,YAAA,GAAA,iBAAA,wBACyB,KAAK,gBACxB,0BAAA,EAAA,EACqD,KAAK,MAAA,EAAA,CACD,KAC/C,sBACJ,KAAA,EACL,IAAI,6BAA6B,GAClC,KAAA;EACP;;AAGH,SAAS,mBACP,WACoB;AACpB,KAAI;AACF,SAAO,kBAAkB,WAAW,CAAC;SAC/B;AACN;;;AAIJ,SAAS,8BAAkD;AACzD,KAAI;AACF,SAAO,kBAAkB,QAAQ,IAAI,mBAAmB;SAClD;AACN;;;AAIJ,SAAS,8BAAkD;AACzD,KAAI;AACF,SAAO,kBAAkB,QAAQ,IAAI,oBAAoB;SACnD;AACN;;;AAIJ,SAAS,kBAAkB,OAA+C;AACxE,QAAO,SAAS,KAAA;;;;;;;AC5DlB,SAAgB,gBAAgB,QAAkC;AAChE,EAAA,GAAA,oCAAA,yBAAwB,sBAAsB,OAAO,CAAC;;;;;;;;;;;;;;ACGxD,SAAgB,YAAY,SAAqC;CAC/D,MAAM,cAAA,GAAA,oCAAA,gBAA4B;CAClC,MAAM,aAAuB,EAAE;CAC/B,MAAM,gBAAA,GAAA,iBAAA,gBACJ,QAAQ,QAAQ,IAAI,SAAS,EAC7B,WAAW,qBAAqB,CACjC;AAED,KAAI,aACF,YAAW,KAAK,aAAa;AAG/B,YAAW,KACT,IAAA,GAAA,iBAAA,qBAAuB,QAAQ,QAAQ,IAAI,kBAAkB,CAAC,CAC/D;AAED,QAAO,WAAW,uBAAuB,WAAW;;;;;;;;;;;;;;;;ACdtD,SAAgB,kBAAkB,SAAoB;AAEpD,QAAO;EAAE,YAAA,GAAA,qCAAA,eAAS;EAAE,IAAA,GAAA,qCAAA,2BAA6B,QAAQ;EAAE;;;;;;;;;;;;;;;;;;;;;;ACM7D,SAAgB,kBAAkB,SAAyC;AAGzE,QAAO;EAAE,YAAA,GAAA,qCAAA,eAAS;EAAE,YAAA,GAAA,qCAAA,eAAS;EAAE,IAAA,GAAA,qCAAA,2BAA6B,QAAQ;EAAE;;;;;;;;;;ACZxE,SAAgB,6BAA6B,WAI3C;AACA,SAAA,GAAA,MAAA,gBACS;EACL,uBAAuB,WAAW,UAAU,UAAU,OAAO;EAC7D,2BAA2B,WACzB,UAAU,yBAAyB,OAAO;EAC5C,yBAAyB,WACvB,UAAU,0BAA0B,OAAO;EAC9C,GACD,CAAC,UAAU,CACZ;;;;;;;;ACjBH,SAAgB,iBAAiB,EAC/B,QACA,QACA,YACA,GAAG,SACqB;CACxB,MAAM,kBAAA,GAAA,MAAA,eAA+B;AACnC,SAAO,IAAIA,oCAAAA,uBAAuB;GAAE;GAAQ;GAAQ;GAAY,CAAC;IAChE;EAAC;EAAQ;EAAQ;EAAW,CAAC;CAEhC,MAAM,gBAAA,GAAA,MAAA,QAAwC,KAAK;AACnD,KAAI,aAAa,WAAW,KAC1B,cAAa,UAAU,IAAIC,0CAAAA,WAAW;CAGxC,MAAM,EACJ,sBACA,0BACA,2BACE,6BAA6B,aAAa,QAAQ;AAEtD,QACE,iBAAA,GAAA,kBAAA,KAACC,0CAAAA,oBAAD;EACE,GAAI;EACY;EAChB,WAAW,aAAa;EACF;EACI;EACF;EACxB,CAAA;;;;;;;;;;;AC9BN,SAAgB,eAAe,EAC7B,SAAS,UACT,GAAG,SAC6C;CAEhD,MAAM,EAAE,QAAQ,SAAS,qBAAqB,cAC5C,kBAAkB,SAAS;AAE7B,QACE,iBAAA,GAAA,kBAAA,KAACC,0CAAAA,wBAAD;EACU;EACC;EACE;EACU;EACrB,GAAI;EACJ,CAAA;;;;;;;;;;;;;;;;;;;;;;;ACHN,SAAgB,eAAe,EAC7B,SAAS,UACT,eACA,+BACA,2BACA,mBAAmB,OACnB,GAAG,SAC6C;CAEhD,MAAM,EAAE,QAAQ,SAAS,YAAY,QAAQ,WAAW,cACtD,kBAAkB;EAChB,SAAS;EACT;EACA;EACA;EACD,CAAC;CAEJ,MAAM,gBAAgB,WAAmB;AACvC,MAAI,kBAAkB;GACpB,MAAM,eAAe,WAAW,IAAI,OAAO,EAAE;AAE7C,OAAI,gBAAgB,WAAW,aAAc,WAAU,aAAa;;AAEtE,YAAU,OAAO;;AAGnB,QACE,iBAAA,GAAA,kBAAA,KAACC,0CAAAA,wBAAD;EACU;EACC;EACG;EACZ,WAAW;EACX,GAAI;EACJ,CAAA;;;;ACtCN,MAAM,yCAAyC,wBAAwB;CACrE,QAAQ;CACR,UAAU;CACV,cACE;CACF,KAAK;CACL,KAAK;CACN,CAAC;AAEF,MAAa,kBAAmC,YAAY;AAC1D,OAAM,IAAI,MACR,wBAAwB;EACtB,QAAQ;EACR,UAAU;EACV,cACE;EACF,KAAK;EACL,KAAK;EACN,CAAC,CACH;;AAGH,MAAa,4CACL;AACJ,OAAM,IAAI,MAAM,uCAAuC;;AAuB3D,eAAsB,GAAG,QAAqC;AAC5D,OAAM,IAAI,MAAM,+BAA+B"}
1
+ {"version":3,"file":"index.server.cjs","names":["I18nStore","InternalGTProvider","InternalLocaleSelector","InternalRegionSelector"],"sources":["../../core/dist/diagnostics-DKA2SkZB.mjs","../src/setup/runtimeCredentials.ts","../src/setup/initializeGTSRA.ts","../src/functions/parseLocale.ts","../src/components/useLocaleSelector.ts","../src/components/useRegionSelector.ts","../src/hooks/useHandleMissingTranslations.ts","../src/provider/ServerGTProvider.tsx","../src/components/LocaleSelector.tsx","../src/components/RegionSelector.tsx","../src/index.server.ts"],"sourcesContent":["//#region src/logging/diagnostics.ts\nfunction ensureSentence(text) {\n\tconst trimmed = text.trim();\n\tif (!trimmed) return \"\";\n\treturn /[.!?)]$/.test(trimmed) ? trimmed : `${trimmed}.`;\n}\nfunction stripSentence(text) {\n\tconst trimmed = text.trim();\n\tlet end = trimmed.length;\n\twhile (end > 0) {\n\t\tconst char = trimmed[end - 1];\n\t\tif (char !== \".\" && char !== \"!\" && char !== \"?\") break;\n\t\tend -= 1;\n\t}\n\treturn trimmed.slice(0, end);\n}\nfunction formatDetails(details) {\n\tif (!details) return \"\";\n\tconst detailText = Array.isArray(details) ? details.join(\", \") : details;\n\tif (!detailText.trim()) return \"\";\n\treturn ensureSentence(`Details: ${detailText}`);\n}\nfunction formatDiagnosticErrorDetails(error) {\n\tif (error == null) return void 0;\n\treturn String(error);\n}\nfunction createDiagnosticMessage({ source, severity, whatHappened, reassurance, why, fix, wayOut, details, docsUrl }) {\n\tconst prefix = source ? severity ? `${source} ${severity}:` : `${source}:` : severity ? `${severity}:` : \"\";\n\tconst whatAndWhy = why ? `${stripSentence(whatHappened)} because ${stripSentence(why)}` : whatHappened;\n\tconst shouldCombineWayOut = !!fix && !!wayOut && /^[a-z]/.test(stripSentence(wayOut));\n\tconst messageParts = [\n\t\twhatAndWhy,\n\t\treassurance,\n\t\tshouldCombineWayOut ? `${stripSentence(fix)}, or ${stripSentence(wayOut)}` : fix,\n\t\tshouldCombineWayOut ? void 0 : wayOut,\n\t\tformatDetails(details)\n\t].filter((part) => !!part).map(ensureSentence);\n\tif (docsUrl) messageParts.push(`Learn more: ${docsUrl}`);\n\tconst message = messageParts.join(\" \");\n\treturn prefix ? `${prefix} ${message}` : message;\n}\n//#endregion\nexport { formatDiagnosticErrorDetails as n, createDiagnosticMessage as t };\n\n//# sourceMappingURL=diagnostics-DKA2SkZB.mjs.map","import { getRuntimeEnvironment } from 'gt-i18n/internal';\nimport type { I18nConfigParams } from 'gt-i18n/internal/types';\n\ntype RuntimeCredentials = Pick<I18nConfigParams, 'projectId' | 'devApiKey'>;\ntype RuntimeEnv = {\n DEV?: boolean;\n VITE_GT_PROJECT_ID?: string;\n VITE_GT_DEV_API_KEY?: string;\n};\n\nexport function addRuntimeCredentials<T extends RuntimeCredentials>(\n config: T\n): T {\n const credentials = getRuntimeCredentials();\n return {\n ...config,\n projectId: config.projectId || credentials.projectId,\n devApiKey: config.devApiKey || credentials.devApiKey,\n };\n}\n\nfunction getRuntimeCredentials(): RuntimeCredentials {\n return {\n projectId:\n readImportMetaVite(\n () =>\n (\n import.meta as ImportMeta & {\n env?: RuntimeEnv;\n }\n ).env?.VITE_GT_PROJECT_ID\n ) || readProcessEnvViteProjectId(),\n devApiKey:\n getRuntimeEnvironment() === 'development'\n ? readImportMetaVite(() =>\n (import.meta as ImportMeta & { env?: RuntimeEnv }).env?.DEV\n ? (import.meta as ImportMeta & { env?: RuntimeEnv }).env\n ?.VITE_GT_DEV_API_KEY\n : undefined\n ) || readProcessEnvViteDevApiKey()\n : undefined,\n };\n}\n\nfunction readImportMetaVite(\n readValue: () => string | undefined\n): string | undefined {\n try {\n return normalizeEnvValue(readValue());\n } catch {\n return undefined;\n }\n}\n\nfunction readProcessEnvViteProjectId(): string | undefined {\n try {\n return normalizeEnvValue(process.env.VITE_GT_PROJECT_ID);\n } catch {\n return undefined;\n }\n}\n\nfunction readProcessEnvViteDevApiKey(): string | undefined {\n try {\n return normalizeEnvValue(process.env.VITE_GT_DEV_API_KEY);\n } catch {\n return undefined;\n }\n}\n\nfunction normalizeEnvValue(value: string | undefined): string | undefined {\n return value || undefined;\n}\n","import {\n internalInitializeGTSRA,\n type ReactInitializeGTParams,\n} from '@generaltranslation/react-core/pure';\nimport { addRuntimeCredentials } from './runtimeCredentials';\n\nexport type InitializeGTParams = ReactInitializeGTParams;\n\n/**\n * Initialize GT for server-rendered React runtimes.\n */\nexport function initializeGTSRA(config: InitializeGTParams): void {\n internalInitializeGTSRA(addRuntimeCredentials(config));\n}\n","import { getI18nConfig } from '@generaltranslation/react-core/pure';\nimport { getCookieValue, parseAcceptLanguage } from 'gt-i18n/internal';\n\ntype RequestWithHeaders = Pick<Request, 'headers'>;\n\n/**\n * Resolve the user's locale from a Web Request.\n *\n * The configured locale cookie takes precedence over the Accept-Language\n * header. If neither contains a supported locale, the configured default\n * locale is returned.\n *\n * This is intended for incoming server requests. A Request created in the\n * browser does not automatically include document cookies or Accept-Language.\n */\nexport function parseLocale(request: RequestWithHeaders): string {\n const i18nConfig = getI18nConfig();\n const candidates: string[] = [];\n const cookieLocale = getCookieValue(\n request.headers.get('cookie'),\n i18nConfig.getLocaleCookieName()\n );\n\n if (cookieLocale) {\n candidates.push(cookieLocale);\n }\n\n candidates.push(\n ...parseAcceptLanguage(request.headers.get('accept-language'))\n );\n\n return i18nConfig.resolveSupportedLocale(candidates);\n}\n","import {\n useInternalLocaleSelector,\n useSetLocale,\n} from '@generaltranslation/react-core/hooks';\n\n/**\n * Gets the list of properties for using a locale selector.\n * Provides locale management utilities for the application.\n *\n * @param locales an optional list of locales to use for the drop down. These locales must be a subset of the locales provided by the `<GTProvider>` context. When not provided, the list of locales from the `<GTProvider>` context is used.\n *\n * @returns {Object} An object containing locale-related utilities:\n * @returns {string} return.locale - The currently selected locale.\n * @returns {string[]} return.locales - The list of all available locales.\n * @returns {function} return.setLocale - Function to update the current locale.\n * @returns {(locale: string) => LocaleProperties} return.getLocaleProperties - Function to retrieve properties for a given locale.\n */\nexport function useLocaleSelector(locales?: string[]) {\n const setLocale = useSetLocale();\n return { setLocale, ...useInternalLocaleSelector(locales) };\n}\n","import {\n useInternalRegionSelector,\n useSetLocale,\n useSetRegion,\n} from '@generaltranslation/react-core/hooks';\nimport type { InternalRegionSelectorOptions } from '@generaltranslation/react-core/hooks';\n\n/**\n * Gets the list of properties for using a region selector.\n * Provides region management utilities for the application.\n *\n * @param {Object} [options] - Optional configuration object.\n * @param {string[]} [options.regions] - An optional array of ISO 3166 region codes to display. If not provided, regions are inferred from supported locales.\n * @param {Object} [options.customMapping] - Optional mapping to override region display names, emojis, or associated locales.\n * @param {boolean} [options.prioritizeCurrentLocaleRegion=true] - If true, the region corresponding to the current locale is prioritized in the list.\n * @param {boolean} [options.sortRegionsAlphabetically=true] - If true, regions are sorted alphabetically by display name.\n *\n * @returns {Object} An object containing region-related utilities:\n * @returns {string | undefined} return.region - The currently selected region code.\n * @returns {function} return.setRegion - Function to update the current region.\n * @returns {string[]} return.regions - The ordered list of available region codes.\n * @returns {Map<string, RegionData>} return.regionData - Map of region codes to their display data (name, emoji, locale).\n * @returns {string} return.locale - The current locale.\n * @returns {function} return.setLocale - Function to update the current locale.\n */\nexport function useRegionSelector(options?: InternalRegionSelectorOptions) {\n const setRegion = useSetRegion();\n const setLocale = useSetLocale();\n return { setRegion, setLocale, ...useInternalRegionSelector(options) };\n}\n","'server-only';\n\nimport {\n OnMissingDictionaryEntry,\n OnMissingDictionaryObj,\n OnMissingTranslation,\n} from '@generaltranslation/react-core/pure';\nimport { I18nStore } from '@generaltranslation/react-core/components';\nimport { useMemo } from 'react';\n\n/**\n * Returns handle missing translation callback for server runtime\n * These DO get invoked during server render which is not pure, but this\n * is acceptable for dev hot reload because we MUST trigger a translate\n * call on the server to persist translations\n */\nexport function useHandleMissingTranslations(i18nStore: I18nStore): {\n onMissingTranslation: OnMissingTranslation;\n onMissingDictionaryEntry: OnMissingDictionaryEntry;\n onMissingDictionaryObj: OnMissingDictionaryObj;\n} {\n return useMemo(\n () => ({\n onMissingTranslation: (lookup) => i18nStore.translate(lookup),\n onMissingDictionaryEntry: (lookup) =>\n i18nStore.translateDictionaryEntry(lookup),\n onMissingDictionaryObj: (lookup) =>\n i18nStore.translateDictionaryObject(lookup),\n }),\n [i18nStore]\n );\n}\n","import {\n I18nStore,\n InternalGTProvider,\n} from '@generaltranslation/react-core/components';\nimport { useRef } from 'react';\nimport type { SharedGTProviderProps } from './GTProviderProps';\nimport { useHandleMissingTranslations } from '../hooks/useHandleMissingTranslations';\n\n/**\n * Consumes snapshot from server\n * Implementation for server-side only\n */\nexport function ServerGTProvider({\n locale,\n region,\n enableI18n,\n ...props\n}: SharedGTProviderProps) {\n const i18nStoreRef = useRef<I18nStore | null>(null);\n if (i18nStoreRef.current == null) {\n i18nStoreRef.current = new I18nStore();\n }\n\n const {\n onMissingTranslation,\n onMissingDictionaryEntry,\n onMissingDictionaryObj,\n } = useHandleMissingTranslations(i18nStoreRef.current);\n\n return (\n <InternalGTProvider\n {...props}\n locale={locale}\n region={region}\n enableI18n={enableI18n ?? true}\n setLocale={noopSetLocale}\n setRegion={noopSetRegion}\n setEnableI18n={noopSetEnableI18n}\n i18nStore={i18nStoreRef.current}\n onMissingTranslation={onMissingTranslation}\n onMissingDictionaryEntry={onMissingDictionaryEntry}\n onMissingDictionaryObj={onMissingDictionaryObj}\n />\n );\n}\n\nconst noopSetLocale = (_locale: string) => undefined;\nconst noopSetRegion = (_region: string | undefined) => undefined;\nconst noopSetEnableI18n = (_enabled: boolean) => undefined;\n","import type React from 'react';\nimport { InternalLocaleSelector } from '@generaltranslation/react-core/components';\nimport { CustomMapping } from 'generaltranslation/types';\nimport { useLocaleSelector } from './useLocaleSelector';\n\n/**\n * A dropdown component that allows users to select a locale.\n * @param {string[]} [locales] - An optional list of locales to use for the dropdown. If not provided, the list of locales from the `<GTProvider>` context is used.\n * @param {object} [customNames] - (deprecated) An optional object to map locales to custom names. Use `customMapping` instead.\n * @param {CustomMapping} [customMapping] - An optional object to map locales to custom display names, emojis, or other properties.\n * @returns {React.ReactElement | null} The rendered locale dropdown component or null to prevent rendering.\n */\nexport function LocaleSelector({\n locales: _locales,\n ...props\n}: LocaleSelectorProps): React.JSX.Element | null {\n // Get locale selector properties\n const { locale, locales, getLocaleProperties, setLocale } =\n useLocaleSelector(_locales);\n\n return (\n <InternalLocaleSelector\n locale={locale}\n locales={locales}\n setLocale={setLocale}\n getLocaleProperties={getLocaleProperties}\n {...props}\n />\n );\n}\n\nexport type LocaleSelectorProps = {\n locales?: string[];\n customNames?: { [key: string]: string };\n customMapping?: CustomMapping;\n [key: string]: any;\n};\n","import type React from 'react';\nimport type { ReactNode } from 'react';\nimport { InternalRegionSelector } from '@generaltranslation/react-core/components';\nimport { useRegionSelector } from './useRegionSelector';\n\n/**\n * A dropdown component that allows users to select a region.\n * @param {string[]} [regions] - An optional array of ISO 3166 region codes to display. If not provided, regions are inferred from the supported locales in the `<GTProvider>` context.\n * @param {React.ReactNode} [placeholder] - Optional placeholder node to display as the first option when no region is selected.\n * @param {object} [customMapping] - An optional object to map region codes to custom display names, emojis, or associated locales.\n * @param {boolean} [prioritizeCurrentLocaleRegion] - If true, the region corresponding to the current locale is prioritized in the list.\n * @param {boolean} [sortRegionsAlphabetically] - If true, regions are sorted alphabetically by display name.\n * @param {boolean} [asLocaleSelector=false] - If true, selecting a region will also update the locale to the region's associated locale.\n * @returns {React.ReactElement | null} The rendered region dropdown component or null to prevent rendering.\n *\n * @example\n * ```tsx\n * <RegionSelector\n * regions={['US', 'CA']}\n * customMapping={{ US: { name: \"United States\", emoji: \"πŸ‡ΊπŸ‡Έ\" } }}\n * placeholder=\"Select a region\"\n * />\n * ```\n */\nexport function RegionSelector({\n regions: _regions,\n customMapping,\n prioritizeCurrentLocaleRegion,\n sortRegionsAlphabetically,\n asLocaleSelector = false,\n ...props\n}: RegionSelectorProps): React.JSX.Element | null {\n // Get region selector properties\n const { region, regions, regionData, locale, setRegion, setLocale } =\n useRegionSelector({\n regions: _regions,\n customMapping,\n prioritizeCurrentLocaleRegion,\n sortRegionsAlphabetically,\n });\n\n const changeRegion = (region: string) => {\n if (asLocaleSelector) {\n const regionLocale = regionData.get(region)?.locale;\n // setRegion reloads the page; update the locale cookie first\n if (regionLocale && locale !== regionLocale) setLocale(regionLocale);\n }\n setRegion(region);\n };\n\n return (\n <InternalRegionSelector\n region={region}\n regions={regions}\n regionData={regionData}\n setRegion={changeRegion}\n {...props}\n />\n );\n}\n\nexport type RegionSelectorProps = {\n regions?: string[];\n placeholder?: ReactNode;\n customMapping?: {\n [region: string]:\n | string\n | { name?: string; emoji?: string; locale?: string };\n };\n prioritizeCurrentLocaleRegion?: boolean;\n sortRegionsAlphabetically?: boolean;\n asLocaleSelector?: boolean;\n [key: string]: any;\n};\n","'use client';\n\nimport { createDiagnosticMessage } from 'generaltranslation/internal';\nimport type { ReactNode } from 'react';\nimport type { TxProps } from './utils/TxProps';\n\n// SSR/context-capable React runtime surface. This entrypoint may import hooks,\n// providers, and context modules, so it must be consumed as a client boundary by\n// React Server Component frameworks.\n\nexport { initializeGTSRA as initializeGT } from './setup/initializeGTSRA';\nexport { parseLocale } from './functions/parseLocale';\nexport { useLocaleSelector } from './components/useLocaleSelector';\nexport { useRegionSelector } from './components/useRegionSelector';\n\ntype InitializeGTSPA = typeof import('./setup/initializeGTSPA').initializeGTSPA;\ntype CreateOrUpdateBrowserConditionStore =\n typeof import('./condition-store/createBrowserConditionStore').createOrUpdateBrowserConditionStore;\n\nconst createBrowserConditionStoreServerError = createDiagnosticMessage({\n source: 'gt-react',\n severity: 'Error',\n whatHappened:\n 'createOrUpdateBrowserConditionStore() cannot be called from the server runtime entry point',\n why: 'createOrUpdateBrowserConditionStore() initializes browser-only condition state.',\n fix: 'Call createOrUpdateBrowserConditionStore() from the browser runtime entry point.',\n});\n\nexport const initializeGTSPA: InitializeGTSPA = async () => {\n throw new Error(\n createDiagnosticMessage({\n source: 'gt-react',\n severity: 'Error',\n whatHappened:\n 'initializeGTSPA() cannot be called from the server runtime entry point',\n why: 'initializeGTSPA() initializes browser-only SPA state and translation cache behavior.',\n fix: 'Use initializeGT() for server-rendered React runtimes or import initializeGTSPA from the browser entry point.',\n })\n );\n};\n\nexport const createOrUpdateBrowserConditionStore: CreateOrUpdateBrowserConditionStore =\n () => {\n throw new Error(createBrowserConditionStoreServerError);\n };\n\n// ===== Components ===== //\nexport { ServerGTProvider as GTProvider } from './provider/ServerGTProvider';\nexport { LocaleSelector } from './components/LocaleSelector';\nexport { RegionSelector } from './components/RegionSelector';\n\n// ===== Components ===== //\nexport {\n Branch,\n Plural,\n Derive,\n GtInternalTranslateJsx,\n GtInternalVar,\n T,\n Currency,\n DateTime,\n RelativeTime,\n Var,\n Num,\n} from '@generaltranslation/react-core/components';\n\nexport async function Tx(_props: TxProps): Promise<ReactNode> {\n throw new Error('Tx is only supported via RSC');\n}\n\n// ===== Hooks ===== //\nexport {\n useLocale,\n useRegion,\n useCustomMapping,\n useDefaultLocale,\n useEnableI18n,\n useLocales,\n useFormatLocales,\n useGT,\n useMessages,\n useTranslations,\n useLocaleDirection,\n useLocaleProperties,\n useSetLocale,\n useSetRegion,\n useSetEnableI18n,\n} from '@generaltranslation/react-core/hooks';\n\n// ===== Functions ===== //\nexport {\n msg,\n decodeMsg,\n decodeOptions,\n derive,\n declareVar,\n decodeVars,\n mFallback,\n gtFallback,\n getFormatLocales,\n getDefaultLocale,\n getLocaleProperties,\n getLocales,\n resolveCanonicalLocale,\n getReactI18nCache,\n getTranslationsSnapshot,\n getVersionId,\n createRenderPipeline,\n setReactI18nCache,\n t,\n} from '@generaltranslation/react-core/pure';\n\nexport type {\n RenderPipeline,\n RenderPreparedT,\n} from '@generaltranslation/react-core/pure';\n\nexport type { SharedGTProviderProps } from './provider/GTProviderProps';\nexport {\n GtInternalRuntimeTranslateJsx,\n GtInternalRuntimeTranslateString,\n} from 'gt-i18n/internal';\nexport type {\n GTTranslationOptions,\n RuntimeTranslationOptions,\n} from 'gt-i18n/types';\nexport type {\n SyncResolutionFunction,\n SyncResolutionFunctionWithFallback,\n} from 'gt-i18n/types';\n\n// ===== Singletons ===== //\nexport {\n ReactI18nCache,\n type ReactI18nCacheParams,\n} from '@generaltranslation/react-core/pure';\n"],"mappings":"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"}
@@ -48,12 +48,7 @@ type BrowserConditionStoreParams = WritableConditionStoreParams & {
48
48
  _getLocale?: GetLocale;
49
49
  _getRegion?: GetRegion;
50
50
  _getEnableI18n?: GetEnableI18n;
51
- _reload?: ReloadType; /** App Router only: authoritative conditions supplied by this server render. */
52
- _serverConditions?: {
53
- locale: string;
54
- region?: string;
55
- enableI18n?: boolean;
56
- };
51
+ _reload?: ReloadType;
57
52
  };
58
53
  /**
59
54
  * Condition store implementation for Browser.
@@ -63,8 +58,6 @@ declare class BrowserConditionStore implements WritableConditionStoreInterface {
63
58
  private customGetLocale?;
64
59
  private customGetRegion?;
65
60
  private customGetEnableI18n?;
66
- private serverConditions?;
67
- private pending;
68
61
  constructor(config: BrowserConditionStoreParams);
69
62
  getLocale: () => string;
70
63
  setLocale: (locale: LocaleCandidates) => void;
@@ -236,13 +229,8 @@ declare function useRegionSelector(options?: InternalRegionSelectorOptions): {
236
229
  * - {@link InternalGTProviderProps} - requires translations and dictionaries
237
230
  * - {@link BrowserConditionStoreParams} - requires locale
238
231
  */
239
- type SharedGTProviderProps = Omit<InternalGTProviderProps, 'conditionStore' | 'i18nStore'> & Omit<BrowserConditionStoreParams, 'locale'> & {
240
- locale: string; /** Internal App Router snapshot; a new object represents a new server result. */
241
- _serverConditions?: {
242
- locale: string;
243
- region?: string;
244
- enableI18n?: boolean;
245
- };
232
+ type SharedGTProviderProps = Omit<InternalGTProviderProps, 'i18nStore' | 'region' | 'enableI18n' | 'setLocale' | 'setRegion' | 'setEnableI18n'> & Omit<BrowserConditionStoreParams, 'locale'> & {
233
+ locale: string;
246
234
  };
247
235
  //#endregion
248
236
  //#region src/provider/ServerGTProvider.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.server.d.cts","names":["CustomMapping","LocaleProperties","Partial","Record","code","name","nativeName","languageCode","languageName","nativeLanguageName","nameWithRegionCode","nativeNameWithRegionCode","regionCode","regionName","nativeRegionName","scriptCode","scriptName","nativeScriptName","maximizedCode","maximizedName","nativeMaximizedName","minimizedCode","minimizedName","nativeMinimizedName","emoji","CustomRegionMapping","region","locale","getRegionProperties","defaultLocale","customMapping","CutoffFormatStyle","TerminatorOptions","terminator","separator","CutoffFormatOptions","maxChars","style","VariableType","Variable","k","i","v","HTML_CONTENT_PROPS","pl","ti","alt","arl","arb","ard","HtmlContentPropKeysRecord","HtmlContentPropValuesRecord","GTProp","JsxChildren","b","t","JsxElement","d","c","JsxChild","StringFormat","DataFormat","StringContent","IcuMessage","StringMessage","I18nextMessage","Content","FormatVariables","Date","S","_","a","f","g","h","l","m","n","o","p","r","s","u","x","y"],"sources":["../src/i18n-cache/types.ts","../src/i18n-cache/BrowserI18nCache.ts","../src/condition-store/BrowserConditionStore.ts","../src/condition-store/createBrowserConditionStore.ts","../src/setup/initializeGTSPA.ts","../src/utils/TxProps.ts","../src/setup/initializeGTSRA.ts","../src/functions/parseLocale.ts","../../format/dist/types-CbRDetV3.d.cts","../src/components/useLocaleSelector.ts","../src/components/useRegionSelector.ts","../src/provider/GTProviderProps.ts","../src/provider/ServerGTProvider.tsx","../src/components/LocaleSelector.tsx","../src/components/RegionSelector.tsx","../src/index.server.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.server.d.cts","names":["CustomMapping","LocaleProperties","Partial","Record","code","name","nativeName","languageCode","languageName","nativeLanguageName","nameWithRegionCode","nativeNameWithRegionCode","regionCode","regionName","nativeRegionName","scriptCode","scriptName","nativeScriptName","maximizedCode","maximizedName","nativeMaximizedName","minimizedCode","minimizedName","nativeMinimizedName","emoji","CustomRegionMapping","region","locale","getRegionProperties","defaultLocale","customMapping","CutoffFormatStyle","TerminatorOptions","terminator","separator","CutoffFormatOptions","maxChars","style","VariableType","Variable","k","i","v","HTML_CONTENT_PROPS","pl","ti","alt","arl","arb","ard","HtmlContentPropKeysRecord","HtmlContentPropValuesRecord","GTProp","JsxChildren","b","t","JsxElement","d","c","JsxChild","StringFormat","DataFormat","StringContent","IcuMessage","StringMessage","I18nextMessage","Content","FormatVariables","Date","S","_","a","f","g","h","l","m","n","o","p","r","s","u","x","y"],"sources":["../src/i18n-cache/types.ts","../src/i18n-cache/BrowserI18nCache.ts","../src/condition-store/BrowserConditionStore.ts","../src/condition-store/createBrowserConditionStore.ts","../src/setup/initializeGTSPA.ts","../src/utils/TxProps.ts","../src/setup/initializeGTSRA.ts","../src/functions/parseLocale.ts","../../format/dist/types-CbRDetV3.d.cts","../src/components/useLocaleSelector.ts","../src/components/useRegionSelector.ts","../src/provider/GTProviderProps.ts","../src/provider/ServerGTProvider.tsx","../src/components/LocaleSelector.tsx","../src/components/RegionSelector.tsx","../src/index.server.ts"],"mappings":"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"}
@@ -48,12 +48,7 @@ type BrowserConditionStoreParams = WritableConditionStoreParams & {
48
48
  _getLocale?: GetLocale;
49
49
  _getRegion?: GetRegion;
50
50
  _getEnableI18n?: GetEnableI18n;
51
- _reload?: ReloadType; /** App Router only: authoritative conditions supplied by this server render. */
52
- _serverConditions?: {
53
- locale: string;
54
- region?: string;
55
- enableI18n?: boolean;
56
- };
51
+ _reload?: ReloadType;
57
52
  };
58
53
  /**
59
54
  * Condition store implementation for Browser.
@@ -63,8 +58,6 @@ declare class BrowserConditionStore implements WritableConditionStoreInterface {
63
58
  private customGetLocale?;
64
59
  private customGetRegion?;
65
60
  private customGetEnableI18n?;
66
- private serverConditions?;
67
- private pending;
68
61
  constructor(config: BrowserConditionStoreParams);
69
62
  getLocale: () => string;
70
63
  setLocale: (locale: LocaleCandidates$1) => void;
@@ -236,13 +229,8 @@ declare function useRegionSelector(options?: InternalRegionSelectorOptions): {
236
229
  * - {@link InternalGTProviderProps} - requires translations and dictionaries
237
230
  * - {@link BrowserConditionStoreParams} - requires locale
238
231
  */
239
- type SharedGTProviderProps = Omit<InternalGTProviderProps, 'conditionStore' | 'i18nStore'> & Omit<BrowserConditionStoreParams, 'locale'> & {
240
- locale: string; /** Internal App Router snapshot; a new object represents a new server result. */
241
- _serverConditions?: {
242
- locale: string;
243
- region?: string;
244
- enableI18n?: boolean;
245
- };
232
+ type SharedGTProviderProps = Omit<InternalGTProviderProps, 'i18nStore' | 'region' | 'enableI18n' | 'setLocale' | 'setRegion' | 'setEnableI18n'> & Omit<BrowserConditionStoreParams, 'locale'> & {
233
+ locale: string;
246
234
  };
247
235
  //#endregion
248
236
  //#region src/provider/ServerGTProvider.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"index.server.d.mts","names":["CustomMapping","LocaleProperties","Partial","Record","code","name","nativeName","languageCode","languageName","nativeLanguageName","nameWithRegionCode","nativeNameWithRegionCode","regionCode","regionName","nativeRegionName","scriptCode","scriptName","nativeScriptName","maximizedCode","maximizedName","nativeMaximizedName","minimizedCode","minimizedName","nativeMinimizedName","emoji","CustomRegionMapping","region","locale","getRegionProperties","defaultLocale","customMapping","CutoffFormatStyle","TerminatorOptions","terminator","separator","CutoffFormatOptions","maxChars","style","VariableType","Variable","k","i","v","HTML_CONTENT_PROPS","pl","ti","alt","arl","arb","ard","HtmlContentPropKeysRecord","HtmlContentPropValuesRecord","GTProp","JsxChildren","b","t","JsxElement","d","c","JsxChild","StringFormat","DataFormat","StringContent","IcuMessage","StringMessage","I18nextMessage","Content","FormatVariables","Date","S","_","a","f","g","h","l","m","n","o","p","r","s","u","x","y"],"sources":["../src/i18n-cache/types.ts","../src/i18n-cache/BrowserI18nCache.ts","../src/condition-store/BrowserConditionStore.ts","../src/condition-store/createBrowserConditionStore.ts","../src/setup/initializeGTSPA.ts","../src/utils/TxProps.ts","../src/setup/initializeGTSRA.ts","../src/functions/parseLocale.ts","../../format/dist/types-CbRDetV3.d.cts","../src/components/useLocaleSelector.ts","../src/components/useRegionSelector.ts","../src/provider/GTProviderProps.ts","../src/provider/ServerGTProvider.tsx","../src/components/LocaleSelector.tsx","../src/components/RegionSelector.tsx","../src/index.server.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.server.d.mts","names":["CustomMapping","LocaleProperties","Partial","Record","code","name","nativeName","languageCode","languageName","nativeLanguageName","nameWithRegionCode","nativeNameWithRegionCode","regionCode","regionName","nativeRegionName","scriptCode","scriptName","nativeScriptName","maximizedCode","maximizedName","nativeMaximizedName","minimizedCode","minimizedName","nativeMinimizedName","emoji","CustomRegionMapping","region","locale","getRegionProperties","defaultLocale","customMapping","CutoffFormatStyle","TerminatorOptions","terminator","separator","CutoffFormatOptions","maxChars","style","VariableType","Variable","k","i","v","HTML_CONTENT_PROPS","pl","ti","alt","arl","arb","ard","HtmlContentPropKeysRecord","HtmlContentPropValuesRecord","GTProp","JsxChildren","b","t","JsxElement","d","c","JsxChild","StringFormat","DataFormat","StringContent","IcuMessage","StringMessage","I18nextMessage","Content","FormatVariables","Date","S","_","a","f","g","h","l","m","n","o","p","r","s","u","x","y"],"sources":["../src/i18n-cache/types.ts","../src/i18n-cache/BrowserI18nCache.ts","../src/condition-store/BrowserConditionStore.ts","../src/condition-store/createBrowserConditionStore.ts","../src/setup/initializeGTSPA.ts","../src/utils/TxProps.ts","../src/setup/initializeGTSRA.ts","../src/functions/parseLocale.ts","../../format/dist/types-CbRDetV3.d.cts","../src/components/useLocaleSelector.ts","../src/components/useRegionSelector.ts","../src/provider/GTProviderProps.ts","../src/provider/ServerGTProvider.tsx","../src/components/LocaleSelector.tsx","../src/components/RegionSelector.tsx","../src/index.server.ts"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  "use client";
2
- import { ReactI18nCache, ReadonlyConditionStore, createRenderPipeline, declareVar, decodeMsg, decodeOptions, decodeVars, derive, getDefaultLocale, getFormatLocales, getI18nConfig, getLocaleProperties, getLocales, getReactI18nCache, getTranslationsSnapshot, getVersionId, gtFallback, internalInitializeGTSRA, mFallback, msg, resolveCanonicalLocale, setReactI18nCache, t } from "@generaltranslation/react-core/pure";
2
+ import { ReactI18nCache, createRenderPipeline, declareVar, decodeMsg, decodeOptions, decodeVars, derive, getDefaultLocale, getFormatLocales, getI18nConfig, getLocaleProperties, getLocales, getReactI18nCache, getTranslationsSnapshot, getVersionId, gtFallback, internalInitializeGTSRA, mFallback, msg, resolveCanonicalLocale, setReactI18nCache, t } from "@generaltranslation/react-core/pure";
3
3
  import { GtInternalRuntimeTranslateJsx, GtInternalRuntimeTranslateString, getCookieValue, getRuntimeEnvironment, parseAcceptLanguage } from "gt-i18n/internal";
4
4
  import { useCustomMapping, useDefaultLocale, useEnableI18n, useFormatLocales, useGT, useInternalLocaleSelector, useInternalRegionSelector, useLocale, useLocaleDirection, useLocaleProperties, useLocales, useMessages, useRegion, useSetEnableI18n, useSetLocale, useSetLocale as useSetLocale$1, useSetRegion, useSetRegion as useSetRegion$1, useTranslations } from "@generaltranslation/react-core/hooks";
5
5
  import { Branch, Currency, DateTime, Derive, GtInternalTranslateJsx, GtInternalVar, I18nStore, InternalGTProvider, InternalLocaleSelector, InternalRegionSelector, Num, Plural, RelativeTime, T, Var } from "@generaltranslation/react-core/components";
6
6
  import { useMemo, useRef } from "react";
7
7
  import { jsx } from "react/jsx-runtime";
8
- //#region ../core/dist/unwrapApiResult-BzGfPw75.mjs
8
+ //#region ../core/dist/diagnostics-DKA2SkZB.mjs
9
9
  function ensureSentence(text) {
10
10
  const trimmed = text.trim();
11
11
  if (!trimmed) return "";
@@ -179,29 +179,26 @@ function useHandleMissingTranslations(i18nStore) {
179
179
  * Implementation for server-side only
180
180
  */
181
181
  function ServerGTProvider({ locale, region, enableI18n, ...props }) {
182
- const conditionStore = useMemo(() => {
183
- return new ReadonlyConditionStore({
184
- locale,
185
- region,
186
- enableI18n
187
- });
188
- }, [
189
- locale,
190
- region,
191
- enableI18n
192
- ]);
193
182
  const i18nStoreRef = useRef(null);
194
183
  if (i18nStoreRef.current == null) i18nStoreRef.current = new I18nStore();
195
184
  const { onMissingTranslation, onMissingDictionaryEntry, onMissingDictionaryObj } = useHandleMissingTranslations(i18nStoreRef.current);
196
185
  return /* @__PURE__ */ jsx(InternalGTProvider, {
197
186
  ...props,
198
- conditionStore,
187
+ locale,
188
+ region,
189
+ enableI18n: enableI18n ?? true,
190
+ setLocale: noopSetLocale,
191
+ setRegion: noopSetRegion,
192
+ setEnableI18n: noopSetEnableI18n,
199
193
  i18nStore: i18nStoreRef.current,
200
194
  onMissingTranslation,
201
195
  onMissingDictionaryEntry,
202
196
  onMissingDictionaryObj
203
197
  });
204
198
  }
199
+ const noopSetLocale = (_locale) => void 0;
200
+ const noopSetRegion = (_region) => void 0;
201
+ const noopSetEnableI18n = (_enabled) => void 0;
205
202
  //#endregion
206
203
  //#region src/components/LocaleSelector.tsx
207
204
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.server.mjs","names":["useSetLocale","useSetRegion","useSetLocale"],"sources":["../../core/dist/unwrapApiResult-BzGfPw75.mjs","../src/setup/runtimeCredentials.ts","../src/setup/initializeGTSRA.ts","../src/functions/parseLocale.ts","../src/components/useLocaleSelector.ts","../src/components/useRegionSelector.ts","../src/hooks/useHandleMissingTranslations.ts","../src/provider/ServerGTProvider.tsx","../src/components/LocaleSelector.tsx","../src/components/RegionSelector.tsx","../src/index.server.ts"],"sourcesContent":["import { t as ApiError } from \"./ApiError-CUKcz3YS.mjs\";\n//#region src/settings/settings.ts\nconst libraryDefaultLocale = \"en\";\nconst defaultTimeout = 6e4;\n//#endregion\n//#region src/logging/diagnostics.ts\nfunction ensureSentence(text) {\n\tconst trimmed = text.trim();\n\tif (!trimmed) return \"\";\n\treturn /[.!?)]$/.test(trimmed) ? trimmed : `${trimmed}.`;\n}\nfunction stripSentence(text) {\n\tconst trimmed = text.trim();\n\tlet end = trimmed.length;\n\twhile (end > 0) {\n\t\tconst char = trimmed[end - 1];\n\t\tif (char !== \".\" && char !== \"!\" && char !== \"?\") break;\n\t\tend -= 1;\n\t}\n\treturn trimmed.slice(0, end);\n}\nfunction formatDetails(details) {\n\tif (!details) return \"\";\n\tconst detailText = Array.isArray(details) ? details.join(\", \") : details;\n\tif (!detailText.trim()) return \"\";\n\treturn ensureSentence(`Details: ${detailText}`);\n}\nfunction formatDiagnosticErrorDetails(error) {\n\tif (error == null) return void 0;\n\treturn String(error);\n}\nfunction createDiagnosticMessage({ source, severity, whatHappened, reassurance, why, fix, wayOut, details, docsUrl }) {\n\tconst prefix = source ? severity ? `${source} ${severity}:` : `${source}:` : severity ? `${severity}:` : \"\";\n\tconst whatAndWhy = why ? `${stripSentence(whatHappened)} because ${stripSentence(why)}` : whatHappened;\n\tconst shouldCombineWayOut = !!fix && !!wayOut && /^[a-z]/.test(stripSentence(wayOut));\n\tconst messageParts = [\n\t\twhatAndWhy,\n\t\treassurance,\n\t\tshouldCombineWayOut ? `${stripSentence(fix)}, or ${stripSentence(wayOut)}` : fix,\n\t\tshouldCombineWayOut ? void 0 : wayOut,\n\t\tformatDetails(details)\n\t].filter((part) => !!part).map(ensureSentence);\n\tif (docsUrl) messageParts.push(`Learn more: ${docsUrl}`);\n\tconst message = messageParts.join(\" \");\n\treturn prefix ? `${prefix} ${message}` : message;\n}\n//#endregion\n//#region src/settings/settingsUrls.ts\nconst defaultCacheUrl = \"https://cdn.gtx.dev\";\nconst defaultBaseUrl = \"https://api.gtx.dev\";\nconst defaultRuntimeApiUrl = \"https://api.gtx.dev\";\n//#endregion\n//#region src/translate/utils/unwrapApiResult.ts\nfunction isErrorResult(error) {\n\treturn typeof error === \"object\" && error !== null && \"error\" in error && typeof error.error === \"string\";\n}\nfunction hasDecodedError(result) {\n\treturn isErrorResult(result.error) || typeof result.error === \"string\";\n}\n/**\n* Unwraps a `@generaltranslation/api` SDK result, returning its data or\n* throwing an `ApiError` built from the failed response.\n*/\nfunction unwrapApiResult(result) {\n\tif (result.data !== void 0) return result.data;\n\tif (result.response) {\n\t\tconst details = isErrorResult(result.error) ? result.error.error : typeof result.error === \"string\" ? result.error : result.response.statusText;\n\t\tthrow new ApiError(details, result.response.status, details);\n\t}\n\tthrow result.error;\n}\n//#endregion\nexport { defaultCacheUrl as a, formatDiagnosticErrorDetails as c, defaultBaseUrl as i, defaultTimeout as l, isErrorResult as n, defaultRuntimeApiUrl as o, unwrapApiResult as r, createDiagnosticMessage as s, hasDecodedError as t, libraryDefaultLocale as u };\n\n//# sourceMappingURL=unwrapApiResult-BzGfPw75.mjs.map","import { getRuntimeEnvironment } from 'gt-i18n/internal';\nimport type { I18nConfigParams } from 'gt-i18n/internal/types';\n\ntype RuntimeCredentials = Pick<I18nConfigParams, 'projectId' | 'devApiKey'>;\ntype RuntimeEnv = {\n DEV?: boolean;\n VITE_GT_PROJECT_ID?: string;\n VITE_GT_DEV_API_KEY?: string;\n};\n\nexport function addRuntimeCredentials<T extends RuntimeCredentials>(\n config: T\n): T {\n const credentials = getRuntimeCredentials();\n return {\n ...config,\n projectId: config.projectId || credentials.projectId,\n devApiKey: config.devApiKey || credentials.devApiKey,\n };\n}\n\nfunction getRuntimeCredentials(): RuntimeCredentials {\n return {\n projectId:\n readImportMetaVite(\n () =>\n (\n import.meta as ImportMeta & {\n env?: RuntimeEnv;\n }\n ).env?.VITE_GT_PROJECT_ID\n ) || readProcessEnvViteProjectId(),\n devApiKey:\n getRuntimeEnvironment() === 'development'\n ? readImportMetaVite(() =>\n (import.meta as ImportMeta & { env?: RuntimeEnv }).env?.DEV\n ? (import.meta as ImportMeta & { env?: RuntimeEnv }).env\n ?.VITE_GT_DEV_API_KEY\n : undefined\n ) || readProcessEnvViteDevApiKey()\n : undefined,\n };\n}\n\nfunction readImportMetaVite(\n readValue: () => string | undefined\n): string | undefined {\n try {\n return normalizeEnvValue(readValue());\n } catch {\n return undefined;\n }\n}\n\nfunction readProcessEnvViteProjectId(): string | undefined {\n try {\n return normalizeEnvValue(process.env.VITE_GT_PROJECT_ID);\n } catch {\n return undefined;\n }\n}\n\nfunction readProcessEnvViteDevApiKey(): string | undefined {\n try {\n return normalizeEnvValue(process.env.VITE_GT_DEV_API_KEY);\n } catch {\n return undefined;\n }\n}\n\nfunction normalizeEnvValue(value: string | undefined): string | undefined {\n return value || undefined;\n}\n","import {\n internalInitializeGTSRA,\n type ReactInitializeGTParams,\n} from '@generaltranslation/react-core/pure';\nimport { addRuntimeCredentials } from './runtimeCredentials';\n\nexport type InitializeGTParams = ReactInitializeGTParams;\n\n/**\n * Initialize GT for server-rendered React runtimes.\n */\nexport function initializeGTSRA(config: InitializeGTParams): void {\n internalInitializeGTSRA(addRuntimeCredentials(config));\n}\n","import { getI18nConfig } from '@generaltranslation/react-core/pure';\nimport { getCookieValue, parseAcceptLanguage } from 'gt-i18n/internal';\n\ntype RequestWithHeaders = Pick<Request, 'headers'>;\n\n/**\n * Resolve the user's locale from a Web Request.\n *\n * The configured locale cookie takes precedence over the Accept-Language\n * header. If neither contains a supported locale, the configured default\n * locale is returned.\n *\n * This is intended for incoming server requests. A Request created in the\n * browser does not automatically include document cookies or Accept-Language.\n */\nexport function parseLocale(request: RequestWithHeaders): string {\n const i18nConfig = getI18nConfig();\n const candidates: string[] = [];\n const cookieLocale = getCookieValue(\n request.headers.get('cookie'),\n i18nConfig.getLocaleCookieName()\n );\n\n if (cookieLocale) {\n candidates.push(cookieLocale);\n }\n\n candidates.push(\n ...parseAcceptLanguage(request.headers.get('accept-language'))\n );\n\n return i18nConfig.resolveSupportedLocale(candidates);\n}\n","import {\n useInternalLocaleSelector,\n useSetLocale,\n} from '@generaltranslation/react-core/hooks';\n\n/**\n * Gets the list of properties for using a locale selector.\n * Provides locale management utilities for the application.\n *\n * @param locales an optional list of locales to use for the drop down. These locales must be a subset of the locales provided by the `<GTProvider>` context. When not provided, the list of locales from the `<GTProvider>` context is used.\n *\n * @returns {Object} An object containing locale-related utilities:\n * @returns {string} return.locale - The currently selected locale.\n * @returns {string[]} return.locales - The list of all available locales.\n * @returns {function} return.setLocale - Function to update the current locale.\n * @returns {(locale: string) => LocaleProperties} return.getLocaleProperties - Function to retrieve properties for a given locale.\n */\nexport function useLocaleSelector(locales?: string[]) {\n const setLocale = useSetLocale();\n return { setLocale, ...useInternalLocaleSelector(locales) };\n}\n","import {\n useInternalRegionSelector,\n useSetLocale,\n useSetRegion,\n} from '@generaltranslation/react-core/hooks';\nimport type { InternalRegionSelectorOptions } from '@generaltranslation/react-core/hooks';\n\n/**\n * Gets the list of properties for using a region selector.\n * Provides region management utilities for the application.\n *\n * @param {Object} [options] - Optional configuration object.\n * @param {string[]} [options.regions] - An optional array of ISO 3166 region codes to display. If not provided, regions are inferred from supported locales.\n * @param {Object} [options.customMapping] - Optional mapping to override region display names, emojis, or associated locales.\n * @param {boolean} [options.prioritizeCurrentLocaleRegion=true] - If true, the region corresponding to the current locale is prioritized in the list.\n * @param {boolean} [options.sortRegionsAlphabetically=true] - If true, regions are sorted alphabetically by display name.\n *\n * @returns {Object} An object containing region-related utilities:\n * @returns {string | undefined} return.region - The currently selected region code.\n * @returns {function} return.setRegion - Function to update the current region.\n * @returns {string[]} return.regions - The ordered list of available region codes.\n * @returns {Map<string, RegionData>} return.regionData - Map of region codes to their display data (name, emoji, locale).\n * @returns {string} return.locale - The current locale.\n * @returns {function} return.setLocale - Function to update the current locale.\n */\nexport function useRegionSelector(options?: InternalRegionSelectorOptions) {\n const setRegion = useSetRegion();\n const setLocale = useSetLocale();\n return { setRegion, setLocale, ...useInternalRegionSelector(options) };\n}\n","'server-only';\n\nimport {\n OnMissingDictionaryEntry,\n OnMissingDictionaryObj,\n OnMissingTranslation,\n} from '@generaltranslation/react-core/pure';\nimport { I18nStore } from '@generaltranslation/react-core/components';\nimport { useMemo } from 'react';\n\n/**\n * Returns handle missing translation callback for server runtime\n * These DO get invoked during server render which is not pure, but this\n * is acceptable for dev hot reload because we MUST trigger a translate\n * call on the server to persist translations\n */\nexport function useHandleMissingTranslations(i18nStore: I18nStore): {\n onMissingTranslation: OnMissingTranslation;\n onMissingDictionaryEntry: OnMissingDictionaryEntry;\n onMissingDictionaryObj: OnMissingDictionaryObj;\n} {\n return useMemo(\n () => ({\n onMissingTranslation: (lookup) => i18nStore.translate(lookup),\n onMissingDictionaryEntry: (lookup) =>\n i18nStore.translateDictionaryEntry(lookup),\n onMissingDictionaryObj: (lookup) =>\n i18nStore.translateDictionaryObject(lookup),\n }),\n [i18nStore]\n );\n}\n","import {\n I18nStore,\n InternalGTProvider,\n} from '@generaltranslation/react-core/components';\nimport { ReadonlyConditionStore } from '@generaltranslation/react-core/pure';\nimport { useMemo, useRef } from 'react';\nimport type { SharedGTProviderProps } from './GTProviderProps';\nimport { useHandleMissingTranslations } from '../hooks/useHandleMissingTranslations';\n\n/**\n * Consumes snapshot from server\n * Implementation for server-side only\n */\nexport function ServerGTProvider({\n locale,\n region,\n enableI18n,\n ...props\n}: SharedGTProviderProps) {\n const conditionStore = useMemo(() => {\n return new ReadonlyConditionStore({ locale, region, enableI18n });\n }, [locale, region, enableI18n]);\n\n const i18nStoreRef = useRef<I18nStore | null>(null);\n if (i18nStoreRef.current == null) {\n i18nStoreRef.current = new I18nStore();\n }\n\n const {\n onMissingTranslation,\n onMissingDictionaryEntry,\n onMissingDictionaryObj,\n } = useHandleMissingTranslations(i18nStoreRef.current);\n\n return (\n <InternalGTProvider\n {...props}\n conditionStore={conditionStore}\n i18nStore={i18nStoreRef.current}\n onMissingTranslation={onMissingTranslation}\n onMissingDictionaryEntry={onMissingDictionaryEntry}\n onMissingDictionaryObj={onMissingDictionaryObj}\n />\n );\n}\n","import type React from 'react';\nimport { InternalLocaleSelector } from '@generaltranslation/react-core/components';\nimport { CustomMapping } from 'generaltranslation/types';\nimport { useLocaleSelector } from './useLocaleSelector';\n\n/**\n * A dropdown component that allows users to select a locale.\n * @param {string[]} [locales] - An optional list of locales to use for the dropdown. If not provided, the list of locales from the `<GTProvider>` context is used.\n * @param {object} [customNames] - (deprecated) An optional object to map locales to custom names. Use `customMapping` instead.\n * @param {CustomMapping} [customMapping] - An optional object to map locales to custom display names, emojis, or other properties.\n * @returns {React.ReactElement | null} The rendered locale dropdown component or null to prevent rendering.\n */\nexport function LocaleSelector({\n locales: _locales,\n ...props\n}: LocaleSelectorProps): React.JSX.Element | null {\n // Get locale selector properties\n const { locale, locales, getLocaleProperties, setLocale } =\n useLocaleSelector(_locales);\n\n return (\n <InternalLocaleSelector\n locale={locale}\n locales={locales}\n setLocale={setLocale}\n getLocaleProperties={getLocaleProperties}\n {...props}\n />\n );\n}\n\nexport type LocaleSelectorProps = {\n locales?: string[];\n customNames?: { [key: string]: string };\n customMapping?: CustomMapping;\n [key: string]: any;\n};\n","import type React from 'react';\nimport type { ReactNode } from 'react';\nimport { InternalRegionSelector } from '@generaltranslation/react-core/components';\nimport { useRegionSelector } from './useRegionSelector';\n\n/**\n * A dropdown component that allows users to select a region.\n * @param {string[]} [regions] - An optional array of ISO 3166 region codes to display. If not provided, regions are inferred from the supported locales in the `<GTProvider>` context.\n * @param {React.ReactNode} [placeholder] - Optional placeholder node to display as the first option when no region is selected.\n * @param {object} [customMapping] - An optional object to map region codes to custom display names, emojis, or associated locales.\n * @param {boolean} [prioritizeCurrentLocaleRegion] - If true, the region corresponding to the current locale is prioritized in the list.\n * @param {boolean} [sortRegionsAlphabetically] - If true, regions are sorted alphabetically by display name.\n * @param {boolean} [asLocaleSelector=false] - If true, selecting a region will also update the locale to the region's associated locale.\n * @returns {React.ReactElement | null} The rendered region dropdown component or null to prevent rendering.\n *\n * @example\n * ```tsx\n * <RegionSelector\n * regions={['US', 'CA']}\n * customMapping={{ US: { name: \"United States\", emoji: \"πŸ‡ΊπŸ‡Έ\" } }}\n * placeholder=\"Select a region\"\n * />\n * ```\n */\nexport function RegionSelector({\n regions: _regions,\n customMapping,\n prioritizeCurrentLocaleRegion,\n sortRegionsAlphabetically,\n asLocaleSelector = false,\n ...props\n}: RegionSelectorProps): React.JSX.Element | null {\n // Get region selector properties\n const { region, regions, regionData, locale, setRegion, setLocale } =\n useRegionSelector({\n regions: _regions,\n customMapping,\n prioritizeCurrentLocaleRegion,\n sortRegionsAlphabetically,\n });\n\n const changeRegion = (region: string) => {\n if (asLocaleSelector) {\n const regionLocale = regionData.get(region)?.locale;\n // setRegion reloads the page; update the locale cookie first\n if (regionLocale && locale !== regionLocale) setLocale(regionLocale);\n }\n setRegion(region);\n };\n\n return (\n <InternalRegionSelector\n region={region}\n regions={regions}\n regionData={regionData}\n setRegion={changeRegion}\n {...props}\n />\n );\n}\n\nexport type RegionSelectorProps = {\n regions?: string[];\n placeholder?: ReactNode;\n customMapping?: {\n [region: string]:\n | string\n | { name?: string; emoji?: string; locale?: string };\n };\n prioritizeCurrentLocaleRegion?: boolean;\n sortRegionsAlphabetically?: boolean;\n asLocaleSelector?: boolean;\n [key: string]: any;\n};\n","'use client';\n\nimport { createDiagnosticMessage } from 'generaltranslation/internal';\nimport type { ReactNode } from 'react';\nimport type { TxProps } from './utils/TxProps';\n\n// SSR/context-capable React runtime surface. This entrypoint may import hooks,\n// providers, and context modules, so it must be consumed as a client boundary by\n// React Server Component frameworks.\n\nexport { initializeGTSRA as initializeGT } from './setup/initializeGTSRA';\nexport { parseLocale } from './functions/parseLocale';\nexport { useLocaleSelector } from './components/useLocaleSelector';\nexport { useRegionSelector } from './components/useRegionSelector';\n\ntype InitializeGTSPA = typeof import('./setup/initializeGTSPA').initializeGTSPA;\ntype CreateOrUpdateBrowserConditionStore =\n typeof import('./condition-store/createBrowserConditionStore').createOrUpdateBrowserConditionStore;\n\nconst createBrowserConditionStoreServerError = createDiagnosticMessage({\n source: 'gt-react',\n severity: 'Error',\n whatHappened:\n 'createOrUpdateBrowserConditionStore() cannot be called from the server runtime entry point',\n why: 'createOrUpdateBrowserConditionStore() initializes browser-only condition state.',\n fix: 'Call createOrUpdateBrowserConditionStore() from the browser runtime entry point.',\n});\n\nexport const initializeGTSPA: InitializeGTSPA = async () => {\n throw new Error(\n createDiagnosticMessage({\n source: 'gt-react',\n severity: 'Error',\n whatHappened:\n 'initializeGTSPA() cannot be called from the server runtime entry point',\n why: 'initializeGTSPA() initializes browser-only SPA state and translation cache behavior.',\n fix: 'Use initializeGT() for server-rendered React runtimes or import initializeGTSPA from the browser entry point.',\n })\n );\n};\n\nexport const createOrUpdateBrowserConditionStore: CreateOrUpdateBrowserConditionStore =\n () => {\n throw new Error(createBrowserConditionStoreServerError);\n };\n\n// ===== Components ===== //\nexport { ServerGTProvider as GTProvider } from './provider/ServerGTProvider';\nexport { LocaleSelector } from './components/LocaleSelector';\nexport { RegionSelector } from './components/RegionSelector';\n\n// ===== Components ===== //\nexport {\n Branch,\n Plural,\n Derive,\n GtInternalTranslateJsx,\n GtInternalVar,\n T,\n Currency,\n DateTime,\n RelativeTime,\n Var,\n Num,\n} from '@generaltranslation/react-core/components';\n\nexport async function Tx(_props: TxProps): Promise<ReactNode> {\n throw new Error('Tx is only supported via RSC');\n}\n\n// ===== Hooks ===== //\nexport {\n useLocale,\n useRegion,\n useCustomMapping,\n useDefaultLocale,\n useEnableI18n,\n useLocales,\n useFormatLocales,\n useGT,\n useMessages,\n useTranslations,\n useLocaleDirection,\n useLocaleProperties,\n useSetLocale,\n useSetRegion,\n useSetEnableI18n,\n} from '@generaltranslation/react-core/hooks';\n\n// ===== Functions ===== //\nexport {\n msg,\n decodeMsg,\n decodeOptions,\n derive,\n declareVar,\n decodeVars,\n mFallback,\n gtFallback,\n getFormatLocales,\n getDefaultLocale,\n getLocaleProperties,\n getLocales,\n resolveCanonicalLocale,\n getReactI18nCache,\n getTranslationsSnapshot,\n getVersionId,\n createRenderPipeline,\n setReactI18nCache,\n t,\n} from '@generaltranslation/react-core/pure';\n\nexport type {\n RenderPipeline,\n RenderPreparedT,\n} from '@generaltranslation/react-core/pure';\n\nexport type { SharedGTProviderProps } from './provider/GTProviderProps';\nexport {\n GtInternalRuntimeTranslateJsx,\n GtInternalRuntimeTranslateString,\n} from 'gt-i18n/internal';\nexport type {\n GTTranslationOptions,\n RuntimeTranslationOptions,\n} from 'gt-i18n/types';\nexport type {\n SyncResolutionFunction,\n SyncResolutionFunctionWithFallback,\n} from 'gt-i18n/types';\n\n// ===== Singletons ===== //\nexport {\n ReactI18nCache,\n type ReactI18nCacheParams,\n} from '@generaltranslation/react-core/pure';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.server.mjs","names":["useSetLocale","useSetRegion","useSetLocale"],"sources":["../../core/dist/diagnostics-DKA2SkZB.mjs","../src/setup/runtimeCredentials.ts","../src/setup/initializeGTSRA.ts","../src/functions/parseLocale.ts","../src/components/useLocaleSelector.ts","../src/components/useRegionSelector.ts","../src/hooks/useHandleMissingTranslations.ts","../src/provider/ServerGTProvider.tsx","../src/components/LocaleSelector.tsx","../src/components/RegionSelector.tsx","../src/index.server.ts"],"sourcesContent":["//#region src/logging/diagnostics.ts\nfunction ensureSentence(text) {\n\tconst trimmed = text.trim();\n\tif (!trimmed) return \"\";\n\treturn /[.!?)]$/.test(trimmed) ? trimmed : `${trimmed}.`;\n}\nfunction stripSentence(text) {\n\tconst trimmed = text.trim();\n\tlet end = trimmed.length;\n\twhile (end > 0) {\n\t\tconst char = trimmed[end - 1];\n\t\tif (char !== \".\" && char !== \"!\" && char !== \"?\") break;\n\t\tend -= 1;\n\t}\n\treturn trimmed.slice(0, end);\n}\nfunction formatDetails(details) {\n\tif (!details) return \"\";\n\tconst detailText = Array.isArray(details) ? details.join(\", \") : details;\n\tif (!detailText.trim()) return \"\";\n\treturn ensureSentence(`Details: ${detailText}`);\n}\nfunction formatDiagnosticErrorDetails(error) {\n\tif (error == null) return void 0;\n\treturn String(error);\n}\nfunction createDiagnosticMessage({ source, severity, whatHappened, reassurance, why, fix, wayOut, details, docsUrl }) {\n\tconst prefix = source ? severity ? `${source} ${severity}:` : `${source}:` : severity ? `${severity}:` : \"\";\n\tconst whatAndWhy = why ? `${stripSentence(whatHappened)} because ${stripSentence(why)}` : whatHappened;\n\tconst shouldCombineWayOut = !!fix && !!wayOut && /^[a-z]/.test(stripSentence(wayOut));\n\tconst messageParts = [\n\t\twhatAndWhy,\n\t\treassurance,\n\t\tshouldCombineWayOut ? `${stripSentence(fix)}, or ${stripSentence(wayOut)}` : fix,\n\t\tshouldCombineWayOut ? void 0 : wayOut,\n\t\tformatDetails(details)\n\t].filter((part) => !!part).map(ensureSentence);\n\tif (docsUrl) messageParts.push(`Learn more: ${docsUrl}`);\n\tconst message = messageParts.join(\" \");\n\treturn prefix ? `${prefix} ${message}` : message;\n}\n//#endregion\nexport { formatDiagnosticErrorDetails as n, createDiagnosticMessage as t };\n\n//# sourceMappingURL=diagnostics-DKA2SkZB.mjs.map","import { getRuntimeEnvironment } from 'gt-i18n/internal';\nimport type { I18nConfigParams } from 'gt-i18n/internal/types';\n\ntype RuntimeCredentials = Pick<I18nConfigParams, 'projectId' | 'devApiKey'>;\ntype RuntimeEnv = {\n DEV?: boolean;\n VITE_GT_PROJECT_ID?: string;\n VITE_GT_DEV_API_KEY?: string;\n};\n\nexport function addRuntimeCredentials<T extends RuntimeCredentials>(\n config: T\n): T {\n const credentials = getRuntimeCredentials();\n return {\n ...config,\n projectId: config.projectId || credentials.projectId,\n devApiKey: config.devApiKey || credentials.devApiKey,\n };\n}\n\nfunction getRuntimeCredentials(): RuntimeCredentials {\n return {\n projectId:\n readImportMetaVite(\n () =>\n (\n import.meta as ImportMeta & {\n env?: RuntimeEnv;\n }\n ).env?.VITE_GT_PROJECT_ID\n ) || readProcessEnvViteProjectId(),\n devApiKey:\n getRuntimeEnvironment() === 'development'\n ? readImportMetaVite(() =>\n (import.meta as ImportMeta & { env?: RuntimeEnv }).env?.DEV\n ? (import.meta as ImportMeta & { env?: RuntimeEnv }).env\n ?.VITE_GT_DEV_API_KEY\n : undefined\n ) || readProcessEnvViteDevApiKey()\n : undefined,\n };\n}\n\nfunction readImportMetaVite(\n readValue: () => string | undefined\n): string | undefined {\n try {\n return normalizeEnvValue(readValue());\n } catch {\n return undefined;\n }\n}\n\nfunction readProcessEnvViteProjectId(): string | undefined {\n try {\n return normalizeEnvValue(process.env.VITE_GT_PROJECT_ID);\n } catch {\n return undefined;\n }\n}\n\nfunction readProcessEnvViteDevApiKey(): string | undefined {\n try {\n return normalizeEnvValue(process.env.VITE_GT_DEV_API_KEY);\n } catch {\n return undefined;\n }\n}\n\nfunction normalizeEnvValue(value: string | undefined): string | undefined {\n return value || undefined;\n}\n","import {\n internalInitializeGTSRA,\n type ReactInitializeGTParams,\n} from '@generaltranslation/react-core/pure';\nimport { addRuntimeCredentials } from './runtimeCredentials';\n\nexport type InitializeGTParams = ReactInitializeGTParams;\n\n/**\n * Initialize GT for server-rendered React runtimes.\n */\nexport function initializeGTSRA(config: InitializeGTParams): void {\n internalInitializeGTSRA(addRuntimeCredentials(config));\n}\n","import { getI18nConfig } from '@generaltranslation/react-core/pure';\nimport { getCookieValue, parseAcceptLanguage } from 'gt-i18n/internal';\n\ntype RequestWithHeaders = Pick<Request, 'headers'>;\n\n/**\n * Resolve the user's locale from a Web Request.\n *\n * The configured locale cookie takes precedence over the Accept-Language\n * header. If neither contains a supported locale, the configured default\n * locale is returned.\n *\n * This is intended for incoming server requests. A Request created in the\n * browser does not automatically include document cookies or Accept-Language.\n */\nexport function parseLocale(request: RequestWithHeaders): string {\n const i18nConfig = getI18nConfig();\n const candidates: string[] = [];\n const cookieLocale = getCookieValue(\n request.headers.get('cookie'),\n i18nConfig.getLocaleCookieName()\n );\n\n if (cookieLocale) {\n candidates.push(cookieLocale);\n }\n\n candidates.push(\n ...parseAcceptLanguage(request.headers.get('accept-language'))\n );\n\n return i18nConfig.resolveSupportedLocale(candidates);\n}\n","import {\n useInternalLocaleSelector,\n useSetLocale,\n} from '@generaltranslation/react-core/hooks';\n\n/**\n * Gets the list of properties for using a locale selector.\n * Provides locale management utilities for the application.\n *\n * @param locales an optional list of locales to use for the drop down. These locales must be a subset of the locales provided by the `<GTProvider>` context. When not provided, the list of locales from the `<GTProvider>` context is used.\n *\n * @returns {Object} An object containing locale-related utilities:\n * @returns {string} return.locale - The currently selected locale.\n * @returns {string[]} return.locales - The list of all available locales.\n * @returns {function} return.setLocale - Function to update the current locale.\n * @returns {(locale: string) => LocaleProperties} return.getLocaleProperties - Function to retrieve properties for a given locale.\n */\nexport function useLocaleSelector(locales?: string[]) {\n const setLocale = useSetLocale();\n return { setLocale, ...useInternalLocaleSelector(locales) };\n}\n","import {\n useInternalRegionSelector,\n useSetLocale,\n useSetRegion,\n} from '@generaltranslation/react-core/hooks';\nimport type { InternalRegionSelectorOptions } from '@generaltranslation/react-core/hooks';\n\n/**\n * Gets the list of properties for using a region selector.\n * Provides region management utilities for the application.\n *\n * @param {Object} [options] - Optional configuration object.\n * @param {string[]} [options.regions] - An optional array of ISO 3166 region codes to display. If not provided, regions are inferred from supported locales.\n * @param {Object} [options.customMapping] - Optional mapping to override region display names, emojis, or associated locales.\n * @param {boolean} [options.prioritizeCurrentLocaleRegion=true] - If true, the region corresponding to the current locale is prioritized in the list.\n * @param {boolean} [options.sortRegionsAlphabetically=true] - If true, regions are sorted alphabetically by display name.\n *\n * @returns {Object} An object containing region-related utilities:\n * @returns {string | undefined} return.region - The currently selected region code.\n * @returns {function} return.setRegion - Function to update the current region.\n * @returns {string[]} return.regions - The ordered list of available region codes.\n * @returns {Map<string, RegionData>} return.regionData - Map of region codes to their display data (name, emoji, locale).\n * @returns {string} return.locale - The current locale.\n * @returns {function} return.setLocale - Function to update the current locale.\n */\nexport function useRegionSelector(options?: InternalRegionSelectorOptions) {\n const setRegion = useSetRegion();\n const setLocale = useSetLocale();\n return { setRegion, setLocale, ...useInternalRegionSelector(options) };\n}\n","'server-only';\n\nimport {\n OnMissingDictionaryEntry,\n OnMissingDictionaryObj,\n OnMissingTranslation,\n} from '@generaltranslation/react-core/pure';\nimport { I18nStore } from '@generaltranslation/react-core/components';\nimport { useMemo } from 'react';\n\n/**\n * Returns handle missing translation callback for server runtime\n * These DO get invoked during server render which is not pure, but this\n * is acceptable for dev hot reload because we MUST trigger a translate\n * call on the server to persist translations\n */\nexport function useHandleMissingTranslations(i18nStore: I18nStore): {\n onMissingTranslation: OnMissingTranslation;\n onMissingDictionaryEntry: OnMissingDictionaryEntry;\n onMissingDictionaryObj: OnMissingDictionaryObj;\n} {\n return useMemo(\n () => ({\n onMissingTranslation: (lookup) => i18nStore.translate(lookup),\n onMissingDictionaryEntry: (lookup) =>\n i18nStore.translateDictionaryEntry(lookup),\n onMissingDictionaryObj: (lookup) =>\n i18nStore.translateDictionaryObject(lookup),\n }),\n [i18nStore]\n );\n}\n","import {\n I18nStore,\n InternalGTProvider,\n} from '@generaltranslation/react-core/components';\nimport { useRef } from 'react';\nimport type { SharedGTProviderProps } from './GTProviderProps';\nimport { useHandleMissingTranslations } from '../hooks/useHandleMissingTranslations';\n\n/**\n * Consumes snapshot from server\n * Implementation for server-side only\n */\nexport function ServerGTProvider({\n locale,\n region,\n enableI18n,\n ...props\n}: SharedGTProviderProps) {\n const i18nStoreRef = useRef<I18nStore | null>(null);\n if (i18nStoreRef.current == null) {\n i18nStoreRef.current = new I18nStore();\n }\n\n const {\n onMissingTranslation,\n onMissingDictionaryEntry,\n onMissingDictionaryObj,\n } = useHandleMissingTranslations(i18nStoreRef.current);\n\n return (\n <InternalGTProvider\n {...props}\n locale={locale}\n region={region}\n enableI18n={enableI18n ?? true}\n setLocale={noopSetLocale}\n setRegion={noopSetRegion}\n setEnableI18n={noopSetEnableI18n}\n i18nStore={i18nStoreRef.current}\n onMissingTranslation={onMissingTranslation}\n onMissingDictionaryEntry={onMissingDictionaryEntry}\n onMissingDictionaryObj={onMissingDictionaryObj}\n />\n );\n}\n\nconst noopSetLocale = (_locale: string) => undefined;\nconst noopSetRegion = (_region: string | undefined) => undefined;\nconst noopSetEnableI18n = (_enabled: boolean) => undefined;\n","import type React from 'react';\nimport { InternalLocaleSelector } from '@generaltranslation/react-core/components';\nimport { CustomMapping } from 'generaltranslation/types';\nimport { useLocaleSelector } from './useLocaleSelector';\n\n/**\n * A dropdown component that allows users to select a locale.\n * @param {string[]} [locales] - An optional list of locales to use for the dropdown. If not provided, the list of locales from the `<GTProvider>` context is used.\n * @param {object} [customNames] - (deprecated) An optional object to map locales to custom names. Use `customMapping` instead.\n * @param {CustomMapping} [customMapping] - An optional object to map locales to custom display names, emojis, or other properties.\n * @returns {React.ReactElement | null} The rendered locale dropdown component or null to prevent rendering.\n */\nexport function LocaleSelector({\n locales: _locales,\n ...props\n}: LocaleSelectorProps): React.JSX.Element | null {\n // Get locale selector properties\n const { locale, locales, getLocaleProperties, setLocale } =\n useLocaleSelector(_locales);\n\n return (\n <InternalLocaleSelector\n locale={locale}\n locales={locales}\n setLocale={setLocale}\n getLocaleProperties={getLocaleProperties}\n {...props}\n />\n );\n}\n\nexport type LocaleSelectorProps = {\n locales?: string[];\n customNames?: { [key: string]: string };\n customMapping?: CustomMapping;\n [key: string]: any;\n};\n","import type React from 'react';\nimport type { ReactNode } from 'react';\nimport { InternalRegionSelector } from '@generaltranslation/react-core/components';\nimport { useRegionSelector } from './useRegionSelector';\n\n/**\n * A dropdown component that allows users to select a region.\n * @param {string[]} [regions] - An optional array of ISO 3166 region codes to display. If not provided, regions are inferred from the supported locales in the `<GTProvider>` context.\n * @param {React.ReactNode} [placeholder] - Optional placeholder node to display as the first option when no region is selected.\n * @param {object} [customMapping] - An optional object to map region codes to custom display names, emojis, or associated locales.\n * @param {boolean} [prioritizeCurrentLocaleRegion] - If true, the region corresponding to the current locale is prioritized in the list.\n * @param {boolean} [sortRegionsAlphabetically] - If true, regions are sorted alphabetically by display name.\n * @param {boolean} [asLocaleSelector=false] - If true, selecting a region will also update the locale to the region's associated locale.\n * @returns {React.ReactElement | null} The rendered region dropdown component or null to prevent rendering.\n *\n * @example\n * ```tsx\n * <RegionSelector\n * regions={['US', 'CA']}\n * customMapping={{ US: { name: \"United States\", emoji: \"πŸ‡ΊπŸ‡Έ\" } }}\n * placeholder=\"Select a region\"\n * />\n * ```\n */\nexport function RegionSelector({\n regions: _regions,\n customMapping,\n prioritizeCurrentLocaleRegion,\n sortRegionsAlphabetically,\n asLocaleSelector = false,\n ...props\n}: RegionSelectorProps): React.JSX.Element | null {\n // Get region selector properties\n const { region, regions, regionData, locale, setRegion, setLocale } =\n useRegionSelector({\n regions: _regions,\n customMapping,\n prioritizeCurrentLocaleRegion,\n sortRegionsAlphabetically,\n });\n\n const changeRegion = (region: string) => {\n if (asLocaleSelector) {\n const regionLocale = regionData.get(region)?.locale;\n // setRegion reloads the page; update the locale cookie first\n if (regionLocale && locale !== regionLocale) setLocale(regionLocale);\n }\n setRegion(region);\n };\n\n return (\n <InternalRegionSelector\n region={region}\n regions={regions}\n regionData={regionData}\n setRegion={changeRegion}\n {...props}\n />\n );\n}\n\nexport type RegionSelectorProps = {\n regions?: string[];\n placeholder?: ReactNode;\n customMapping?: {\n [region: string]:\n | string\n | { name?: string; emoji?: string; locale?: string };\n };\n prioritizeCurrentLocaleRegion?: boolean;\n sortRegionsAlphabetically?: boolean;\n asLocaleSelector?: boolean;\n [key: string]: any;\n};\n","'use client';\n\nimport { createDiagnosticMessage } from 'generaltranslation/internal';\nimport type { ReactNode } from 'react';\nimport type { TxProps } from './utils/TxProps';\n\n// SSR/context-capable React runtime surface. This entrypoint may import hooks,\n// providers, and context modules, so it must be consumed as a client boundary by\n// React Server Component frameworks.\n\nexport { initializeGTSRA as initializeGT } from './setup/initializeGTSRA';\nexport { parseLocale } from './functions/parseLocale';\nexport { useLocaleSelector } from './components/useLocaleSelector';\nexport { useRegionSelector } from './components/useRegionSelector';\n\ntype InitializeGTSPA = typeof import('./setup/initializeGTSPA').initializeGTSPA;\ntype CreateOrUpdateBrowserConditionStore =\n typeof import('./condition-store/createBrowserConditionStore').createOrUpdateBrowserConditionStore;\n\nconst createBrowserConditionStoreServerError = createDiagnosticMessage({\n source: 'gt-react',\n severity: 'Error',\n whatHappened:\n 'createOrUpdateBrowserConditionStore() cannot be called from the server runtime entry point',\n why: 'createOrUpdateBrowserConditionStore() initializes browser-only condition state.',\n fix: 'Call createOrUpdateBrowserConditionStore() from the browser runtime entry point.',\n});\n\nexport const initializeGTSPA: InitializeGTSPA = async () => {\n throw new Error(\n createDiagnosticMessage({\n source: 'gt-react',\n severity: 'Error',\n whatHappened:\n 'initializeGTSPA() cannot be called from the server runtime entry point',\n why: 'initializeGTSPA() initializes browser-only SPA state and translation cache behavior.',\n fix: 'Use initializeGT() for server-rendered React runtimes or import initializeGTSPA from the browser entry point.',\n })\n );\n};\n\nexport const createOrUpdateBrowserConditionStore: CreateOrUpdateBrowserConditionStore =\n () => {\n throw new Error(createBrowserConditionStoreServerError);\n };\n\n// ===== Components ===== //\nexport { ServerGTProvider as GTProvider } from './provider/ServerGTProvider';\nexport { LocaleSelector } from './components/LocaleSelector';\nexport { RegionSelector } from './components/RegionSelector';\n\n// ===== Components ===== //\nexport {\n Branch,\n Plural,\n Derive,\n GtInternalTranslateJsx,\n GtInternalVar,\n T,\n Currency,\n DateTime,\n RelativeTime,\n Var,\n Num,\n} from '@generaltranslation/react-core/components';\n\nexport async function Tx(_props: TxProps): Promise<ReactNode> {\n throw new Error('Tx is only supported via RSC');\n}\n\n// ===== Hooks ===== //\nexport {\n useLocale,\n useRegion,\n useCustomMapping,\n useDefaultLocale,\n useEnableI18n,\n useLocales,\n useFormatLocales,\n useGT,\n useMessages,\n useTranslations,\n useLocaleDirection,\n useLocaleProperties,\n useSetLocale,\n useSetRegion,\n useSetEnableI18n,\n} from '@generaltranslation/react-core/hooks';\n\n// ===== Functions ===== //\nexport {\n msg,\n decodeMsg,\n decodeOptions,\n derive,\n declareVar,\n decodeVars,\n mFallback,\n gtFallback,\n getFormatLocales,\n getDefaultLocale,\n getLocaleProperties,\n getLocales,\n resolveCanonicalLocale,\n getReactI18nCache,\n getTranslationsSnapshot,\n getVersionId,\n createRenderPipeline,\n setReactI18nCache,\n t,\n} from '@generaltranslation/react-core/pure';\n\nexport type {\n RenderPipeline,\n RenderPreparedT,\n} from '@generaltranslation/react-core/pure';\n\nexport type { SharedGTProviderProps } from './provider/GTProviderProps';\nexport {\n GtInternalRuntimeTranslateJsx,\n GtInternalRuntimeTranslateString,\n} from 'gt-i18n/internal';\nexport type {\n GTTranslationOptions,\n RuntimeTranslationOptions,\n} from 'gt-i18n/types';\nexport type {\n SyncResolutionFunction,\n SyncResolutionFunctionWithFallback,\n} from 'gt-i18n/types';\n\n// ===== Singletons ===== //\nexport {\n ReactI18nCache,\n type ReactI18nCacheParams,\n} from '@generaltranslation/react-core/pure';\n"],"mappings":"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"}
@@ -57,12 +57,7 @@ type BrowserConditionStoreParams = WritableConditionStoreParams & {
57
57
  _getLocale?: GetLocale;
58
58
  _getRegion?: GetRegion;
59
59
  _getEnableI18n?: GetEnableI18n;
60
- _reload?: ReloadType; /** App Router only: authoritative conditions supplied by this server render. */
61
- _serverConditions?: {
62
- locale: string;
63
- region?: string;
64
- enableI18n?: boolean;
65
- };
60
+ _reload?: ReloadType;
66
61
  };
67
62
  /**
68
63
  * Condition store implementation for Browser.
@@ -72,8 +67,6 @@ declare class BrowserConditionStore implements WritableConditionStoreInterface {
72
67
  private customGetLocale?;
73
68
  private customGetRegion?;
74
69
  private customGetEnableI18n?;
75
- private serverConditions?;
76
- private pending;
77
70
  constructor(config: BrowserConditionStoreParams);
78
71
  getLocale: () => string;
79
72
  setLocale: (locale: LocaleCandidates) => void;
@@ -302,20 +295,12 @@ type RegionSelectorProps = {
302
295
  * - {@link InternalGTProviderProps} - requires translations and dictionaries
303
296
  * - {@link BrowserConditionStoreParams} - requires locale
304
297
  */
305
- type SharedGTProviderProps = Omit<InternalGTProviderProps, 'conditionStore' | 'i18nStore'> & Omit<BrowserConditionStoreParams, 'locale'> & {
306
- locale: string; /** Internal App Router snapshot; a new object represents a new server result. */
307
- _serverConditions?: {
308
- locale: string;
309
- region?: string;
310
- enableI18n?: boolean;
311
- };
298
+ type SharedGTProviderProps = Omit<InternalGTProviderProps, 'i18nStore' | 'region' | 'enableI18n' | 'setLocale' | 'setRegion' | 'setEnableI18n'> & Omit<BrowserConditionStoreParams, 'locale'> & {
299
+ locale: string;
312
300
  };
313
301
  //#endregion
314
302
  //#region src/provider/BrowserGTProvider.d.ts
315
- /**
316
- * Consumes snapshot from server
317
- * Implementation for client-side only
318
- */
303
+ /** Client-side provider for server-rendered applications. */
319
304
  declare function BrowserGTProvider(props: SharedGTProviderProps): _$react_jsx_runtime0.JSX.Element;
320
305
  //#endregion
321
306
  //#region src/index.types.d.ts