{"version":3,"file":"templates.mjs","names":[],"sources":["../../../../../src/init/frameworkSetup/tanstackStart/templates.ts"],"sourcesContent":["/**\n * File templates for a fresh TanStack Start integration. These are only written\n * when the target file does not exist — they never overwrite user code.\n */\n\n/**\n * Builds the locale segment route (`routes/<localeSegment>/route.tsx`) for the\n * given segment. The optional `{-$locale}` param makes the default locale\n * prefix-free, while the required `$locale` param (`prefix-all`) prefixes every\n * locale; in both cases `validatePrefix` redirects unknown prefixes to a valid\n * one. Identical for TypeScript and JavaScript projects.\n */\nexport const buildLocaleRouteTemplate = (\n  localeSegment: string\n): string => `import { createFileRoute, Outlet, redirect } from \"@tanstack/react-router\";\nimport { validatePrefix } from \"intlayer\";\n\nexport const Route = createFileRoute(\"/${localeSegment}\")({\n  beforeLoad: ({ params }) => {\n    // beforeLoad runs on both client and server, so resolve the locale from the\n    // route params rather than from request headers.\n    const { isValid, localePrefix } = validatePrefix(params.locale);\n\n    // A valid (or absent, i.e. default) locale prefix is fine as-is.\n    if (isValid) return;\n\n    // Otherwise redirect to the same route with a valid locale prefix.\n    throw redirect({\n      params: { locale: localePrefix },\n      to: \"/${localeSegment}\",\n    });\n  },\n  component: Outlet,\n});\n`;\n\n/**\n * Root route document (`routes/__root.tsx`) providing `<html>` + the Intlayer\n * provider, with the locale read from the locale segment route params.\n *\n * The route is reached through `getRouteApi(<route id>)` rather than by\n * importing `<segment>/route`, so the root never imports a child route module —\n * the recommended way to consume another route's typed hooks.\n */\nexport const buildRootTemplateTs = (localeSegment: string): string => `import {\n  createRootRoute,\n  getRouteApi,\n  HeadContent,\n  Scripts,\n} from \"@tanstack/react-router\";\nimport { defaultLocale, getHTMLTextDir } from \"intlayer\";\nimport type { ReactNode } from \"react\";\nimport { IntlayerProvider } from \"react-intlayer\";\n\nconst localeRoute = getRouteApi(\"/${localeSegment}\");\n\nexport const Route = createRootRoute({\n  shellComponent: RootDocument,\n});\n\nfunction RootDocument({ children }: { children: ReactNode }) {\n  const { locale = defaultLocale } = localeRoute.useParams();\n\n  return (\n    <html dir={getHTMLTextDir(locale)} lang={locale}>\n      <head>\n        <HeadContent />\n      </head>\n      <body>\n        <IntlayerProvider locale={locale}>{children}</IntlayerProvider>\n        <Scripts />\n      </body>\n    </html>\n  );\n}\n`;\n\n/** JavaScript counterpart of {@link buildRootTemplateTs}. */\nexport const buildRootTemplateJs = (localeSegment: string): string => `import {\n  createRootRoute,\n  getRouteApi,\n  HeadContent,\n  Scripts,\n} from \"@tanstack/react-router\";\nimport { defaultLocale, getHTMLTextDir } from \"intlayer\";\nimport { IntlayerProvider } from \"react-intlayer\";\n\nconst localeRoute = getRouteApi(\"/${localeSegment}\");\n\nexport const Route = createRootRoute({\n  shellComponent: RootDocument,\n});\n\nfunction RootDocument({ children }) {\n  const { locale = defaultLocale } = localeRoute.useParams();\n\n  return (\n    <html dir={getHTMLTextDir(locale)} lang={locale}>\n      <head>\n        <HeadContent />\n      </head>\n      <body>\n        <IntlayerProvider locale={locale}>{children}</IntlayerProvider>\n        <Scripts />\n      </body>\n    </html>\n  );\n}\n`;\n"],"mappings":";;;;;;;;;;;;AAYA,MAAa,4BACX,kBACW;;;yCAG4B,cAAc;;;;;;;;;;;;cAYzC,cAAc;;;;;;;;;;;;;;AAe5B,MAAa,uBAAuB,kBAAkC;;;;;;;;;;oCAUlC,cAAc;;;;;;;;;;;;;;;;;;;;;;;AAwBlD,MAAa,uBAAuB,kBAAkC;;;;;;;;;oCASlC,cAAc"}