{"version":3,"file":"translation-api-context-factory-mbsJk2UU.cjs","names":[],"sources":["../../../platform/i18n/src/translation-api-context-factory.ts"],"sourcesContent":["import { createContext, type Context, type Provider, use } from \"react\";\nimport type { TranslationApi } from \"./translation-api\";\n\nexport function createTranslationContext<D extends Record<string, string>>(\n  domainName: string,\n): {\n  Context: Context<TranslationApi<D> | null>;\n  Provider: Provider<TranslationApi<D> | null>;\n  useTranslation: () => TranslationApi<D>;\n} {\n  const Ctx = createContext<TranslationApi<D> | null>(null);\n\n  function useTranslation(): TranslationApi<D> {\n    const api = use(Ctx);\n    if (!api) {\n      throw new Error(\n        `use${domainName}Translation must be used within a ${domainName}TranslationProvider`,\n      );\n    }\n    return api;\n  }\n\n  return { Context: Ctx, Provider: Ctx.Provider, useTranslation };\n}\n"],"mappings":";;;AAGA,SAAgB,yBACd,YAKA;CACA,MAAM,OAAA,GAAA,MAAA,eAA8C,KAAK;CAEzD,SAAS,iBAAoC;EAC3C,MAAM,OAAA,GAAA,MAAA,KAAU,IAAI;AACpB,MAAI,CAAC,IACH,OAAM,IAAI,MACR,MAAM,WAAW,oCAAoC,WAAW,qBACjE;AAEH,SAAO;;AAGT,QAAO;EAAE,SAAS;EAAK,UAAU,IAAI;EAAU;EAAgB"}