{"version":3,"file":"vite.js","names":[],"sources":["esm/vite.js"],"sourcesContent":["import {\n  createTamaguiPlugins\n} from \"@tamagui/vite-plugin/internal\";\nimport path from \"node:path\";\nimport {\n  createTailwindScannerState,\n  isTamaguiCoreResetCSS,\n  TAILWIND_RESOLVED_ID,\n  TAILWIND_VIRTUAL_ID,\n  updateTailwindForWatchChange,\n  wrapWithTamaguiLayer\n} from \"./vite/state\";\nimport { TAILWIND_RESOLVED_ID as TAILWIND_RESOLVED_ID2, TAILWIND_VERSION, TAILWIND_VIRTUAL_ID as TAILWIND_VIRTUAL_ID2 } from \"./vite/state\";\nfunction isNative(environment) {\n  return environment?.name === \"ios\" || environment?.name === \"android\";\n}\nfunction isNotClient(environment) {\n  return !!environment?.name && environment.name !== \"client\";\n}\nfunction createTailwindPlugin(loader) {\n  const state = createTailwindScannerState();\n  let config;\n  let server;\n  const configure = async (addWatchFile) => state.configure(\n    config.root,\n    loader.getGeneration(),\n    await loader.getTamaguiConfig(),\n    addWatchFile,\n    (glob) => server?.watcher.add(glob)\n  );\n  const isAppJSXSource = (filePath) => {\n    if (!/\\.[jt]sx$/.test(filePath)) return false;\n    const relative = path.relative(config.root, filePath);\n    return relative !== \"\" && relative !== \"..\" && !relative.startsWith(`..${path.sep}`) && !relative.split(path.sep).includes(\"node_modules\");\n  };\n  const clientTailwindModule = () => server?.environments.client?.moduleGraph.getModuleById(TAILWIND_RESOLVED_ID);\n  return {\n    name: \"tamagui-tailwind\",\n    enforce: \"pre\",\n    config() {\n      return {\n        optimizeDeps: {\n          // Tailwind components reach the shared renderer through\n          // `@tamagui/core/internal-runtime`, while regular components reach it through\n          // `@tamagui/core`. Optimizing both entries together puts them in one chunk\n          // graph, so there is a single `@tamagui/web` instance and both frontends see\n          // the same config singleton and contexts.\n          include: [\"@tamagui/tailwind\", \"@tamagui/core/internal-runtime\"]\n        },\n        resolve: {\n          dedupe: [\"@tamagui/tailwind\"]\n        },\n        define: {\n          // Runtime-generated and SSR fallback rules must participate in the same\n          // cascade order as compiler-extracted Tamagui CSS. Without this, the\n          // unlayered runtime duplicate beats official Tailwind utilities.\n          \"process.env.TAMAGUI_CSS_LAYER\": JSON.stringify(\"tamagui\")\n        }\n      };\n    },\n    configResolved(resolvedConfig) {\n      config = resolvedConfig;\n    },\n    configureServer(_server) {\n      server = _server;\n    },\n    hotUpdate: {\n      order: \"post\",\n      async handler(options) {\n        if (this.environment.name !== \"client\") return;\n        if (loader.isEvaluationDependency(options.file)) {\n          state.clear();\n          return;\n        }\n        if (!await configure(() => {\n        })) return;\n        const changed = options.type === \"delete\" ? await state.removeSource(options.file) : await state.scanSource(options.file, await options.read());\n        if (!changed) return;\n        const virtualModule = clientTailwindModule();\n        if (!virtualModule) return;\n        this.environment.moduleGraph.invalidateModule(virtualModule);\n        return [...options.modules, virtualModule];\n      }\n    },\n    async watchChange(id, change) {\n      if (config.command !== \"build\") return;\n      if (loader.isEvaluationDependency(id)) {\n        state.clear();\n        return;\n      }\n      await updateTailwindForWatchChange(\n        state,\n        id,\n        change.event,\n        () => configure((file) => this.addWatchFile(file))\n      );\n    },\n    resolveId(source) {\n      if (isNative(this.environment) || isNotClient(this.environment)) return;\n      if (source === TAILWIND_VIRTUAL_ID) return TAILWIND_RESOLVED_ID;\n    },\n    async load(id) {\n      if (id !== TAILWIND_RESOLVED_ID) return;\n      if (isNative(this.environment) || isNotClient(this.environment)) return;\n      if (!await configure((file) => this.addWatchFile(file))) return \"\";\n      return state.css;\n    },\n    transform: {\n      order: \"pre\",\n      async handler(code, id) {\n        if (isNative(this.environment)) return;\n        const [validId] = id.split(\"?\");\n        if (isTamaguiCoreResetCSS(validId)) {\n          return { code: wrapWithTamaguiLayer(code), map: null };\n        }\n        if (!loader.getEnvironment()) return;\n        if (!isAppJSXSource(validId)) return;\n        if (!await configure((file) => this.addWatchFile(file))) return;\n        if (await state.scanSource(validId, code)) {\n          const virtualModule = clientTailwindModule();\n          if (virtualModule) {\n            server?.environments.client?.moduleGraph.invalidateModule(virtualModule);\n          }\n        }\n        for (const dependency of loader.getEvaluationDependencies()) {\n          this.addWatchFile(dependency);\n        }\n        if (isNotClient(this.environment)) return;\n        return { code: `${code}\nimport \"${TAILWIND_VIRTUAL_ID}\";`, map: null };\n      }\n    }\n  };\n}\nfunction tamaguiPlugin(options = {}) {\n  const { plugins, loader } = createTamaguiPlugins({\n    ...options,\n    components: [\n      .../* @__PURE__ */ new Set([...options.components ?? [\"tamagui\"], \"@tamagui/tailwind\"])\n    ],\n    wrapExtractedCSS: wrapWithTamaguiLayer\n  });\n  return [...plugins, createTailwindPlugin(loader)];\n}\nexport {\n  TAILWIND_RESOLVED_ID2 as TAILWIND_RESOLVED_ID,\n  TAILWIND_VERSION,\n  TAILWIND_VIRTUAL_ID2 as TAILWIND_VIRTUAL_ID,\n  tamaguiPlugin\n};\n//# sourceMappingURL=vite.js.map\n"],"mappings":"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"}