@tamagui/next-plugin 1.14.9 → 1.15.0

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.
@@ -41,6 +41,7 @@ var import_tamagui_loader = require("tamagui-loader");
41
41
  var import_webpack = __toESM(require("webpack"));
42
42
  const withTamagui = (tamaguiOptions) => {
43
43
  return (nextConfig = {}) => {
44
+ const isAppDir = nextConfig.experimental.appDir;
44
45
  return {
45
46
  ...nextConfig,
46
47
  webpack: (webpackConfig, options) => {
@@ -306,11 +307,13 @@ const withTamagui = (tamaguiOptions) => {
306
307
  () => (0, import_css.lazyPostCSS)(dir, getSupportedBrowsers(dir, dev)),
307
308
  []
308
309
  );
309
- cssRules.unshift({
310
- test: tamaguiOptions.includeCSSTest ?? /\.tamagui\.css$/,
311
- sideEffects: true,
312
- use: cssLoader
313
- });
310
+ if (!isAppDir) {
311
+ cssRules.unshift({
312
+ test: tamaguiOptions.includeCSSTest ?? /\.tamagui\.css$/,
313
+ sideEffects: true,
314
+ use: cssLoader
315
+ });
316
+ }
314
317
  }
315
318
  webpackConfig.plugins.push(
316
319
  new import_tamagui_loader.TamaguiPlugin({
@@ -319,6 +322,8 @@ const withTamagui = (tamaguiOptions) => {
319
322
  const res = shouldExclude(path2, options.dir);
320
323
  return res;
321
324
  },
325
+ disableEsbuildLoader: isAppDir,
326
+ disableModuleJSXEntry: isAppDir,
322
327
  ...tamaguiOptions
323
328
  })
324
329
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/withTamagui.ts"],
4
- "sourcesContent": ["import { existsSync } from 'fs'\nimport path, { dirname, join } from 'path'\n\nimport type { TamaguiOptions } from '@tamagui/static'\nimport browserslist from 'browserslist'\nimport buildResolver from 'esm-resolve'\nimport { lazyPostCSS } from 'next/dist/build/webpack/config/blocks/css'\nimport { getGlobalCssLoader } from 'next/dist/build/webpack/config/blocks/css/loaders'\nimport { TamaguiPlugin, shouldExclude as shouldExcludeDefault } from 'tamagui-loader'\nimport webpack from 'webpack'\n\nexport type WithTamaguiProps = TamaguiOptions & {\n useReactNativeWebLite: boolean\n disableFontSupport?: boolean\n aliasReactPackages?: boolean\n includeCSSTest?: RegExp | ((path: string) => boolean)\n shouldExtract?: (path: string, projectRoot: string) => boolean | undefined\n shouldExcludeFromServer?: (props: {\n context: string\n request: string\n fullPath: string\n }) => boolean | string | undefined\n}\n\nexport const withTamagui = (tamaguiOptions: WithTamaguiProps) => {\n return (nextConfig: any = {}) => {\n return {\n ...nextConfig,\n webpack: (webpackConfig: any, options: any) => {\n const { dir, config, dev, isServer } = options\n\n const resolver = buildResolver(join(dir, 'index.js'), {\n constraints: 'node',\n })\n\n // @ts-ignore\n if (typeof globalThis['__DEV__'] === 'undefined') {\n // @ts-ignore\n globalThis['__DEV__'] = dev\n }\n\n const isNext12 = typeof options.config?.swcMinify === 'boolean'\n if (!isNext12) {\n throw new Error(`Next.js 12 only supported`)\n }\n\n const prefix = `${isServer ? ' ssr ' : ' web '} |`\n\n const safeResolves = (resolves: [string, string][], multiple = false) => {\n const res: string[][] = []\n for (const [out, mod] of resolves) {\n if (out.endsWith('$')) {\n res.push([out, mod])\n continue\n }\n try {\n res.push([out, resolveEsm(mod)])\n if (multiple) {\n res.push([out, resolveEsm(mod, true)])\n }\n } catch (err) {\n if (out.includes(`@gorhom/bottom-sheet`)) {\n continue\n }\n if (process.env.DEBUG?.startsWith('tamagui')) {\n // eslint-disable-next-line no-console\n console.log(prefix, `withTamagui skipping resolving ${out}`, err)\n }\n }\n }\n return res\n }\n\n const resolveEsm = (relativePath: string, onlyRequire = false) => {\n if (isServer || onlyRequire) {\n return require.resolve(relativePath)\n }\n const esm = resolver(relativePath)\n return esm ? path.join(dir, esm) : require.resolve(relativePath)\n }\n\n const SEP = path.sep\n\n // automatically compile our given components\n const componentsFullPaths = safeResolves(\n tamaguiOptions.components.map(\n (moduleName) => [moduleName, moduleName] as [string, string]\n ),\n true\n )\n\n const componentsBaseDirs = componentsFullPaths.map(([_, fullPath]) => {\n let rootPath = dirname(fullPath as string)\n while (rootPath.length > 1) {\n const pkg = join(rootPath, 'package.json')\n const hasPkg = existsSync(pkg)\n if (hasPkg) {\n return rootPath\n } else {\n rootPath = join(rootPath, '..')\n }\n }\n throw new Error(`Couldn't find package.json in any path above: ${fullPath}`)\n })\n\n function isInComponentModule(fullPath: string) {\n return componentsBaseDirs.some((componentDir) =>\n fullPath.startsWith(componentDir)\n )\n }\n\n // allows configuration\n const shouldExclude = (path: string, projectRoot: string) => {\n const res = tamaguiOptions.shouldExtract?.(path, projectRoot)\n if (typeof res === 'boolean') {\n return !res\n }\n if (isInComponentModule(path)) {\n return false\n }\n return shouldExcludeDefault(path, projectRoot)\n }\n\n const rnw = tamaguiOptions.useReactNativeWebLite\n ? 'react-native-web-lite'\n : 'react-native-web'\n\n const tamaguiAliases = Object.fromEntries(\n safeResolves([\n ['@tamagui/core/reset.css', '@tamagui/core/reset.css'],\n ['@tamagui/core', '@tamagui/core'],\n ['@tamagui/web', '@tamagui/web'],\n // web specific light react-native-svg, optional, can use svgs but had issues with compat\n ['react-native-svg', '@tamagui/react-native-svg'],\n // fixes https://github.com/kentcdodds/mdx-bundler/issues/143\n ['react/jsx-runtime.js', 'react/jsx-runtime'],\n ['react/jsx-runtime', 'react/jsx-runtime'],\n ['react/jsx-dev-runtime.js', 'react/jsx-dev-runtime'],\n ['react/jsx-dev-runtime', 'react/jsx-dev-runtime'],\n ['react-native-reanimated', 'react-native-reanimated'],\n ['react-native$', rnw],\n ['react-native-web$', rnw],\n ['@testing-library/react-native', '@tamagui/proxy-worm'],\n ['@gorhom/bottom-sheet$', '@gorhom/bottom-sheet'],\n // fix reanimated 3\n ['react-native/Libraries/Renderer/shims/ReactFabric', '@tamagui/proxy-worm'],\n ...(tamaguiOptions.aliasReactPackages\n ? ([\n ['react', 'react'],\n ['react-dom', 'react-dom'],\n ] as any)\n : []),\n ])\n )\n\n const alias = {\n ...(webpackConfig.resolve.alias || {}),\n ...tamaguiAliases,\n }\n\n if (process.env.DEBUG) {\n // eslint-disable-next-line no-console\n console.log('Tamagui alias:', alias)\n }\n\n if (process.env.ANALYZE === 'true') {\n Object.assign(webpackConfig.optimization, {\n concatenateModules: false,\n })\n }\n\n webpackConfig.resolve.alias = alias\n\n webpackConfig.plugins.push(\n new webpack.DefinePlugin({\n 'process.env.IS_STATIC': '\"\"',\n 'process.env.TAMAGUI_TARGET': '\"web\"',\n __DEV__: JSON.stringify(dev),\n })\n )\n\n const excludeExports = tamaguiOptions.excludeReactNativeWebExports\n if (Array.isArray(excludeExports)) {\n try {\n const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join(\n '|'\n )}).*js`\n const regex = new RegExp(regexStr)\n // console.log(prefix, 'exclude', regexStr)\n webpackConfig.plugins.push(\n new webpack.NormalModuleReplacementPlugin(\n regex,\n resolveEsm('@tamagui/proxy-worm')\n )\n )\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn(\n `Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(\n ', '\n )}`\n )\n }\n }\n\n if (process.env.IGNORE_TS_CONFIG_PATHS) {\n if (process.env.DEBUG) {\n // eslint-disable-next-line no-console\n console.log(prefix, 'ignoring tsconfig paths')\n }\n if (webpackConfig.resolve.plugins[0]) {\n delete webpackConfig.resolve.plugins[0].paths['@tamagui/*']\n delete webpackConfig.resolve.plugins[0].paths['tamagui']\n }\n }\n\n // better shaking for icons:\n if (!isServer) {\n nextConfig.modularizeImports ??= {}\n nextConfig.modularizeImports['@tamagui/lucide-icons'] = {\n transform: `@tamagui/lucide-icons/dist/esm/icons/{{kebabCase member}}`,\n skipDefaultConversion: true,\n }\n }\n\n /**\n * Server react-native compat\n */\n if (isServer) {\n const externalize = (context: string, request: string) => {\n const fullPath = request[0] === '.' ? path.join(context, request) : request\n\n if (tamaguiOptions.shouldExcludeFromServer) {\n const userRes = tamaguiOptions.shouldExcludeFromServer({\n context,\n request,\n fullPath,\n })\n if (userRes !== undefined) {\n return userRes\n }\n }\n\n if (isInComponentModule(fullPath)) {\n return false\n }\n\n if (fullPath.includes('react-native-web')) {\n // always inline react-native-web due to errors where next.js resolved the path to esm\n return false\n }\n\n // must inline react-native so we can alias to react-native-web\n if (\n fullPath === 'react-native' ||\n fullPath.startsWith(`react-native${SEP}`)\n ) {\n return false\n }\n\n if (\n // feather icons uses react-native-svg which needs to be aliased\n // fullPath.includes('/lucide-icons/') ||\n fullPath.startsWith('react-native-web') ||\n fullPath.includes(`node_modules${SEP}react-native-web`) ||\n new RegExp(`^(react-dom|react)${SEP}$`).test(fullPath)\n ) {\n return `commonjs ${fullPath}`\n }\n if (\n fullPath.startsWith('moti') ||\n fullPath.startsWith('solito') ||\n fullPath === 'tamagui' ||\n fullPath.startsWith('@tamagui') ||\n fullPath === 'react-native-safe-area-context' ||\n fullPath === 'expo-linear-gradient' ||\n fullPath.startsWith('@react-navigation') ||\n fullPath.startsWith('@gorhom')\n ) {\n return\n }\n if (/^@?react-native-/.test(request)) {\n return false\n }\n return true\n }\n\n // externalize react native things from bundle\n webpackConfig.externals = [\n ...webpackConfig.externals.map((external) => {\n if (typeof external !== 'function') {\n return external\n }\n // only runs on server\n return (ctx, cb) => {\n const isCb = typeof cb === 'function'\n const res = externalize(ctx.context, ctx.request)\n if (isCb) {\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n return !res\n ? Promise.resolve(undefined)\n : typeof res === 'string'\n ? Promise.resolve(res)\n : external(ctx)\n }\n }),\n ]\n }\n\n /**\n * Non-server support\n */\n const cssRules = webpackConfig.module.rules.find(\n (rule) =>\n Array.isArray(rule.oneOf) &&\n rule.oneOf.some(\n ({ test }) =>\n typeof test === 'object' &&\n typeof test.test === 'function' &&\n test.test('filename.css')\n )\n ).oneOf\n\n /**\n * Font Support\n */\n if (cssRules) {\n if (!tamaguiOptions.disableFontSupport) {\n // fonts support\n cssRules.unshift({\n test: /\\.(woff(2)?|eot|ttf|otf)(\\?v=\\d+\\.\\d+\\.\\d+)?$/,\n use: [\n {\n loader: require.resolve('url-loader'),\n options: {\n limit: nextConfig.inlineFontLimit || 1024,\n fallback: require.resolve('file-loader'),\n publicPath: `${\n nextConfig.assetPrefix || ''\n }/_next/static/chunks/fonts/`,\n outputPath: `${isServer ? '../' : ''}static/chunks/fonts/`,\n name: '[name].[ext]',\n },\n },\n ],\n })\n }\n\n /**\n * CSS Support\n */\n const cssLoader = getGlobalCssLoader(\n // @ts-ignore\n {\n assetPrefix: options.config.assetPrefix || config.assetPrefix,\n future: nextConfig.future,\n experimental: nextConfig.experimental || {},\n isEdgeRuntime: true,\n isProduction: !dev,\n targetWeb: true,\n isClient: !isServer,\n isServer,\n isDevelopment: dev,\n },\n // @ts-ignore\n () => lazyPostCSS(dir, getSupportedBrowsers(dir, dev)),\n []\n )\n\n cssRules.unshift({\n test: tamaguiOptions.includeCSSTest ?? /\\.tamagui\\.css$/,\n sideEffects: true,\n use: cssLoader,\n })\n }\n\n webpackConfig.plugins.push(\n new TamaguiPlugin({\n commonjs: isServer,\n exclude: (path: string) => {\n const res = shouldExclude(path, options.dir)\n // console.log(`shouldExclude`, res, path)\n return res\n },\n ...tamaguiOptions,\n })\n )\n\n if (typeof nextConfig.webpack === 'function') {\n return nextConfig.webpack(webpackConfig, options)\n }\n\n return webpackConfig\n },\n }\n }\n}\n\nfunction getSupportedBrowsers(dir, isDevelopment) {\n let browsers\n try {\n browsers = browserslist.loadConfig({\n path: dir,\n env: isDevelopment ? 'development' : 'production',\n })\n } catch {\n //\n }\n return browsers\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAA2B;AAC3B,kBAAoC;AAGpC,0BAAyB;AACzB,yBAA0B;AAC1B,iBAA4B;AAC5B,qBAAmC;AACnC,4BAAqE;AACrE,qBAAoB;AAeb,MAAM,cAAc,CAAC,mBAAqC;AAC/D,SAAO,CAAC,aAAkB,CAAC,MAAM;AAC/B,WAAO;AAAA,MACL,GAAG;AAAA,MACH,SAAS,CAAC,eAAoB,YAAiB;AA5BrD;AA6BQ,cAAM,EAAE,KAAK,QAAQ,KAAK,SAAS,IAAI;AAEvC,cAAM,eAAW,mBAAAA,aAAc,kBAAK,KAAK,UAAU,GAAG;AAAA,UACpD,aAAa;AAAA,QACf,CAAC;AAGD,YAAI,OAAO,WAAW,SAAS,MAAM,aAAa;AAEhD,qBAAW,SAAS,IAAI;AAAA,QAC1B;AAEA,cAAM,WAAW,SAAO,aAAQ,WAAR,mBAAgB,eAAc;AACtD,YAAI,CAAC,UAAU;AACb,gBAAM,IAAI,MAAM,2BAA2B;AAAA,QAC7C;AAEA,cAAM,SAAS,GAAG,WAAW,UAAU;AAEvC,cAAM,eAAe,CAAC,UAA8B,WAAW,UAAU;AAhDjF,cAAAC;AAiDU,gBAAM,MAAkB,CAAC;AACzB,qBAAW,CAAC,KAAK,GAAG,KAAK,UAAU;AACjC,gBAAI,IAAI,SAAS,GAAG,GAAG;AACrB,kBAAI,KAAK,CAAC,KAAK,GAAG,CAAC;AACnB;AAAA,YACF;AACA,gBAAI;AACF,kBAAI,KAAK,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC;AAC/B,kBAAI,UAAU;AACZ,oBAAI,KAAK,CAAC,KAAK,WAAW,KAAK,IAAI,CAAC,CAAC;AAAA,cACvC;AAAA,YACF,SAAS,KAAP;AACA,kBAAI,IAAI,SAAS,sBAAsB,GAAG;AACxC;AAAA,cACF;AACA,mBAAIA,MAAA,QAAQ,IAAI,UAAZ,gBAAAA,IAAmB,WAAW,YAAY;AAE5C,wBAAQ,IAAI,QAAQ,kCAAkC,OAAO,GAAG;AAAA,cAClE;AAAA,YACF;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAEA,cAAM,aAAa,CAAC,cAAsB,cAAc,UAAU;AAChE,cAAI,YAAY,aAAa;AAC3B,mBAAO,QAAQ,QAAQ,YAAY;AAAA,UACrC;AACA,gBAAM,MAAM,SAAS,YAAY;AACjC,iBAAO,MAAM,YAAAC,QAAK,KAAK,KAAK,GAAG,IAAI,QAAQ,QAAQ,YAAY;AAAA,QACjE;AAEA,cAAM,MAAM,YAAAA,QAAK;AAGjB,cAAM,sBAAsB;AAAA,UAC1B,eAAe,WAAW;AAAA,YACxB,CAAC,eAAe,CAAC,YAAY,UAAU;AAAA,UACzC;AAAA,UACA;AAAA,QACF;AAEA,cAAM,qBAAqB,oBAAoB,IAAI,CAAC,CAAC,GAAG,QAAQ,MAAM;AACpE,cAAI,eAAW,qBAAQ,QAAkB;AACzC,iBAAO,SAAS,SAAS,GAAG;AAC1B,kBAAM,UAAM,kBAAK,UAAU,cAAc;AACzC,kBAAM,aAAS,sBAAW,GAAG;AAC7B,gBAAI,QAAQ;AACV,qBAAO;AAAA,YACT,OAAO;AACL,6BAAW,kBAAK,UAAU,IAAI;AAAA,YAChC;AAAA,UACF;AACA,gBAAM,IAAI,MAAM,iDAAiD,UAAU;AAAA,QAC7E,CAAC;AAED,iBAAS,oBAAoB,UAAkB;AAC7C,iBAAO,mBAAmB;AAAA,YAAK,CAAC,iBAC9B,SAAS,WAAW,YAAY;AAAA,UAClC;AAAA,QACF;AAGA,cAAM,gBAAgB,CAACA,OAAc,gBAAwB;AAhHrE,cAAAD;AAiHU,gBAAM,OAAMA,MAAA,eAAe,kBAAf,gBAAAA,IAAA,qBAA+BC,OAAM;AACjD,cAAI,OAAO,QAAQ,WAAW;AAC5B,mBAAO,CAAC;AAAA,UACV;AACA,cAAI,oBAAoBA,KAAI,GAAG;AAC7B,mBAAO;AAAA,UACT;AACA,qBAAO,sBAAAC,eAAqBD,OAAM,WAAW;AAAA,QAC/C;AAEA,cAAM,MAAM,eAAe,wBACvB,0BACA;AAEJ,cAAM,iBAAiB,OAAO;AAAA,UAC5B,aAAa;AAAA,YACX,CAAC,2BAA2B,yBAAyB;AAAA,YACrD,CAAC,iBAAiB,eAAe;AAAA,YACjC,CAAC,gBAAgB,cAAc;AAAA;AAAA,YAE/B,CAAC,oBAAoB,2BAA2B;AAAA;AAAA,YAEhD,CAAC,wBAAwB,mBAAmB;AAAA,YAC5C,CAAC,qBAAqB,mBAAmB;AAAA,YACzC,CAAC,4BAA4B,uBAAuB;AAAA,YACpD,CAAC,yBAAyB,uBAAuB;AAAA,YACjD,CAAC,2BAA2B,yBAAyB;AAAA,YACrD,CAAC,iBAAiB,GAAG;AAAA,YACrB,CAAC,qBAAqB,GAAG;AAAA,YACzB,CAAC,iCAAiC,qBAAqB;AAAA,YACvD,CAAC,yBAAyB,sBAAsB;AAAA;AAAA,YAEhD,CAAC,qDAAqD,qBAAqB;AAAA,YAC3E,GAAI,eAAe,qBACd;AAAA,cACC,CAAC,SAAS,OAAO;AAAA,cACjB,CAAC,aAAa,WAAW;AAAA,YAC3B,IACA,CAAC;AAAA,UACP,CAAC;AAAA,QACH;AAEA,cAAM,QAAQ;AAAA,UACZ,GAAI,cAAc,QAAQ,SAAS,CAAC;AAAA,UACpC,GAAG;AAAA,QACL;AAEA,YAAI,QAAQ,IAAI,OAAO;AAErB,kBAAQ,IAAI,kBAAkB,KAAK;AAAA,QACrC;AAEA,YAAI,QAAQ,IAAI,YAAY,QAAQ;AAClC,iBAAO,OAAO,cAAc,cAAc;AAAA,YACxC,oBAAoB;AAAA,UACtB,CAAC;AAAA,QACH;AAEA,sBAAc,QAAQ,QAAQ;AAE9B,sBAAc,QAAQ;AAAA,UACpB,IAAI,eAAAE,QAAQ,aAAa;AAAA,YACvB,yBAAyB;AAAA,YACzB,8BAA8B;AAAA,YAC9B,SAAS,KAAK,UAAU,GAAG;AAAA,UAC7B,CAAC;AAAA,QACH;AAEA,cAAM,iBAAiB,eAAe;AACtC,YAAI,MAAM,QAAQ,cAAc,GAAG;AACjC,cAAI;AACF,kBAAM,WAAW,+BAA+B,eAAe;AAAA,cAC7D;AAAA,YACF;AACA,kBAAM,QAAQ,IAAI,OAAO,QAAQ;AAEjC,0BAAc,QAAQ;AAAA,cACpB,IAAI,eAAAA,QAAQ;AAAA,gBACV;AAAA,gBACA,WAAW,qBAAqB;AAAA,cAClC;AAAA,YACF;AAAA,UACF,SAAS,KAAP;AAEA,oBAAQ;AAAA,cACN,2DAA2D,eAAe;AAAA,gBACxE;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA,YAAI,QAAQ,IAAI,wBAAwB;AACtC,cAAI,QAAQ,IAAI,OAAO;AAErB,oBAAQ,IAAI,QAAQ,yBAAyB;AAAA,UAC/C;AACA,cAAI,cAAc,QAAQ,QAAQ,CAAC,GAAG;AACpC,mBAAO,cAAc,QAAQ,QAAQ,CAAC,EAAE,MAAM,YAAY;AAC1D,mBAAO,cAAc,QAAQ,QAAQ,CAAC,EAAE,MAAM,SAAS;AAAA,UACzD;AAAA,QACF;AAGA,YAAI,CAAC,UAAU;AACb,qBAAW,sBAAX,WAAW,oBAAsB,CAAC;AAClC,qBAAW,kBAAkB,uBAAuB,IAAI;AAAA,YACtD,WAAW;AAAA,YACX,uBAAuB;AAAA,UACzB;AAAA,QACF;AAKA,YAAI,UAAU;AACZ,gBAAM,cAAc,CAAC,SAAiB,YAAoB;AACxD,kBAAM,WAAW,QAAQ,CAAC,MAAM,MAAM,YAAAF,QAAK,KAAK,SAAS,OAAO,IAAI;AAEpE,gBAAI,eAAe,yBAAyB;AAC1C,oBAAM,UAAU,eAAe,wBAAwB;AAAA,gBACrD;AAAA,gBACA;AAAA,gBACA;AAAA,cACF,CAAC;AACD,kBAAI,YAAY,QAAW;AACzB,uBAAO;AAAA,cACT;AAAA,YACF;AAEA,gBAAI,oBAAoB,QAAQ,GAAG;AACjC,qBAAO;AAAA,YACT;AAEA,gBAAI,SAAS,SAAS,kBAAkB,GAAG;AAEzC,qBAAO;AAAA,YACT;AAGA,gBACE,aAAa,kBACb,SAAS,WAAW,eAAe,KAAK,GACxC;AACA,qBAAO;AAAA,YACT;AAEA;AAAA;AAAA;AAAA,cAGE,SAAS,WAAW,kBAAkB,KACtC,SAAS,SAAS,eAAe,qBAAqB,KACtD,IAAI,OAAO,qBAAqB,MAAM,EAAE,KAAK,QAAQ;AAAA,cACrD;AACA,qBAAO,YAAY;AAAA,YACrB;AACA,gBACE,SAAS,WAAW,MAAM,KAC1B,SAAS,WAAW,QAAQ,KAC5B,aAAa,aACb,SAAS,WAAW,UAAU,KAC9B,aAAa,oCACb,aAAa,0BACb,SAAS,WAAW,mBAAmB,KACvC,SAAS,WAAW,SAAS,GAC7B;AACA;AAAA,YACF;AACA,gBAAI,mBAAmB,KAAK,OAAO,GAAG;AACpC,qBAAO;AAAA,YACT;AACA,mBAAO;AAAA,UACT;AAGA,wBAAc,YAAY;AAAA,YACxB,GAAG,cAAc,UAAU,IAAI,CAAC,aAAa;AAC3C,kBAAI,OAAO,aAAa,YAAY;AAClC,uBAAO;AAAA,cACT;AAEA,qBAAO,CAAC,KAAK,OAAO;AAClB,sBAAM,OAAO,OAAO,OAAO;AAC3B,sBAAM,MAAM,YAAY,IAAI,SAAS,IAAI,OAAO;AAChD,oBAAI,MAAM;AACR,sBAAI,OAAO,QAAQ,UAAU;AAC3B,2BAAO,GAAG,MAAM,GAAG;AAAA,kBACrB;AACA,sBAAI,KAAK;AACP,2BAAO,SAAS,KAAK,EAAE;AAAA,kBACzB;AACA,yBAAO,GAAG;AAAA,gBACZ;AACA,uBAAO,CAAC,MACJ,QAAQ,QAAQ,MAAS,IACzB,OAAO,QAAQ,WACf,QAAQ,QAAQ,GAAG,IACnB,SAAS,GAAG;AAAA,cAClB;AAAA,YACF,CAAC;AAAA,UACH;AAAA,QACF;AAKA,cAAM,WAAW,cAAc,OAAO,MAAM;AAAA,UAC1C,CAAC,SACC,MAAM,QAAQ,KAAK,KAAK,KACxB,KAAK,MAAM;AAAA,YACT,CAAC,EAAE,KAAK,MACN,OAAO,SAAS,YAChB,OAAO,KAAK,SAAS,cACrB,KAAK,KAAK,cAAc;AAAA,UAC5B;AAAA,QACJ,EAAE;AAKF,YAAI,UAAU;AACZ,cAAI,CAAC,eAAe,oBAAoB;AAEtC,qBAAS,QAAQ;AAAA,cACf,MAAM;AAAA,cACN,KAAK;AAAA,gBACH;AAAA,kBACE,QAAQ,gBAAgB,YAAY;AAAA,kBACpC,SAAS;AAAA,oBACP,OAAO,WAAW,mBAAmB;AAAA,oBACrC,UAAU,gBAAgB,aAAa;AAAA,oBACvC,YAAY,GACV,WAAW,eAAe;AAAA,oBAE5B,YAAY,GAAG,WAAW,QAAQ;AAAA,oBAClC,MAAM;AAAA,kBACR;AAAA,gBACF;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACH;AAKA,gBAAM,gBAAY;AAAA;AAAA,YAEhB;AAAA,cACE,aAAa,QAAQ,OAAO,eAAe,OAAO;AAAA,cAClD,QAAQ,WAAW;AAAA,cACnB,cAAc,WAAW,gBAAgB,CAAC;AAAA,cAC1C,eAAe;AAAA,cACf,cAAc,CAAC;AAAA,cACf,WAAW;AAAA,cACX,UAAU,CAAC;AAAA,cACX;AAAA,cACA,eAAe;AAAA,YACjB;AAAA;AAAA,YAEA,UAAM,wBAAY,KAAK,qBAAqB,KAAK,GAAG,CAAC;AAAA,YACrD,CAAC;AAAA,UACH;AAEA,mBAAS,QAAQ;AAAA,YACf,MAAM,eAAe,kBAAkB;AAAA,YACvC,aAAa;AAAA,YACb,KAAK;AAAA,UACP,CAAC;AAAA,QACH;AAEA,sBAAc,QAAQ;AAAA,UACpB,IAAI,oCAAc;AAAA,YAChB,UAAU;AAAA,YACV,SAAS,CAACA,UAAiB;AACzB,oBAAM,MAAM,cAAcA,OAAM,QAAQ,GAAG;AAE3C,qBAAO;AAAA,YACT;AAAA,YACA,GAAG;AAAA,UACL,CAAC;AAAA,QACH;AAEA,YAAI,OAAO,WAAW,YAAY,YAAY;AAC5C,iBAAO,WAAW,QAAQ,eAAe,OAAO;AAAA,QAClD;AAEA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,qBAAqB,KAAK,eAAe;AAChD,MAAI;AACJ,MAAI;AACF,eAAW,oBAAAG,QAAa,WAAW;AAAA,MACjC,MAAM;AAAA,MACN,KAAK,gBAAgB,gBAAgB;AAAA,IACvC,CAAC;AAAA,EACH,QAAE;AAAA,EAEF;AACA,SAAO;AACT;",
4
+ "sourcesContent": ["import { existsSync } from 'fs'\nimport path, { dirname, join } from 'path'\n\nimport type { TamaguiOptions } from '@tamagui/static'\nimport browserslist from 'browserslist'\nimport buildResolver from 'esm-resolve'\nimport { lazyPostCSS } from 'next/dist/build/webpack/config/blocks/css'\nimport { getGlobalCssLoader } from 'next/dist/build/webpack/config/blocks/css/loaders'\nimport { TamaguiPlugin, shouldExclude as shouldExcludeDefault } from 'tamagui-loader'\nimport webpack from 'webpack'\n\nexport type WithTamaguiProps = TamaguiOptions & {\n useReactNativeWebLite: boolean\n disableFontSupport?: boolean\n aliasReactPackages?: boolean\n includeCSSTest?: RegExp | ((path: string) => boolean)\n shouldExtract?: (path: string, projectRoot: string) => boolean | undefined\n shouldExcludeFromServer?: (props: {\n context: string\n request: string\n fullPath: string\n }) => boolean | string | undefined\n}\n\nexport const withTamagui = (tamaguiOptions: WithTamaguiProps) => {\n return (nextConfig: any = {}) => {\n const isAppDir = nextConfig.experimental.appDir\n return {\n ...nextConfig,\n webpack: (webpackConfig: any, options: any) => {\n const { dir, config, dev, isServer } = options\n\n const resolver = buildResolver(join(dir, 'index.js'), {\n constraints: 'node',\n })\n\n // @ts-ignore\n if (typeof globalThis['__DEV__'] === 'undefined') {\n // @ts-ignore\n globalThis['__DEV__'] = dev\n }\n\n const isNext12 = typeof options.config?.swcMinify === 'boolean'\n if (!isNext12) {\n throw new Error(`Next.js 12 only supported`)\n }\n\n const prefix = `${isServer ? ' ssr ' : ' web '} |`\n\n const safeResolves = (resolves: [string, string][], multiple = false) => {\n const res: string[][] = []\n for (const [out, mod] of resolves) {\n if (out.endsWith('$')) {\n res.push([out, mod])\n continue\n }\n try {\n res.push([out, resolveEsm(mod)])\n if (multiple) {\n res.push([out, resolveEsm(mod, true)])\n }\n } catch (err) {\n if (out.includes(`@gorhom/bottom-sheet`)) {\n continue\n }\n if (process.env.DEBUG?.startsWith('tamagui')) {\n // eslint-disable-next-line no-console\n console.log(prefix, `withTamagui skipping resolving ${out}`, err)\n }\n }\n }\n return res\n }\n\n const resolveEsm = (relativePath: string, onlyRequire = false) => {\n if (isServer || onlyRequire) {\n return require.resolve(relativePath)\n }\n const esm = resolver(relativePath)\n return esm ? path.join(dir, esm) : require.resolve(relativePath)\n }\n\n const SEP = path.sep\n\n // automatically compile our given components\n const componentsFullPaths = safeResolves(\n tamaguiOptions.components.map(\n (moduleName) => [moduleName, moduleName] as [string, string]\n ),\n true\n )\n\n const componentsBaseDirs = componentsFullPaths.map(([_, fullPath]) => {\n let rootPath = dirname(fullPath as string)\n while (rootPath.length > 1) {\n const pkg = join(rootPath, 'package.json')\n const hasPkg = existsSync(pkg)\n if (hasPkg) {\n return rootPath\n } else {\n rootPath = join(rootPath, '..')\n }\n }\n throw new Error(`Couldn't find package.json in any path above: ${fullPath}`)\n })\n\n function isInComponentModule(fullPath: string) {\n return componentsBaseDirs.some((componentDir) =>\n fullPath.startsWith(componentDir)\n )\n }\n\n // allows configuration\n const shouldExclude = (path: string, projectRoot: string) => {\n const res = tamaguiOptions.shouldExtract?.(path, projectRoot)\n if (typeof res === 'boolean') {\n return !res\n }\n if (isInComponentModule(path)) {\n return false\n }\n return shouldExcludeDefault(path, projectRoot)\n }\n\n const rnw = tamaguiOptions.useReactNativeWebLite\n ? 'react-native-web-lite'\n : 'react-native-web'\n\n const tamaguiAliases = Object.fromEntries(\n safeResolves([\n ['@tamagui/core/reset.css', '@tamagui/core/reset.css'],\n ['@tamagui/core', '@tamagui/core'],\n ['@tamagui/web', '@tamagui/web'],\n // web specific light react-native-svg, optional, can use svgs but had issues with compat\n ['react-native-svg', '@tamagui/react-native-svg'],\n // fixes https://github.com/kentcdodds/mdx-bundler/issues/143\n ['react/jsx-runtime.js', 'react/jsx-runtime'],\n ['react/jsx-runtime', 'react/jsx-runtime'],\n ['react/jsx-dev-runtime.js', 'react/jsx-dev-runtime'],\n ['react/jsx-dev-runtime', 'react/jsx-dev-runtime'],\n ['react-native-reanimated', 'react-native-reanimated'],\n ['react-native$', rnw],\n ['react-native-web$', rnw],\n ['@testing-library/react-native', '@tamagui/proxy-worm'],\n ['@gorhom/bottom-sheet$', '@gorhom/bottom-sheet'],\n // fix reanimated 3\n ['react-native/Libraries/Renderer/shims/ReactFabric', '@tamagui/proxy-worm'],\n ...(tamaguiOptions.aliasReactPackages\n ? ([\n ['react', 'react'],\n ['react-dom', 'react-dom'],\n ] as any)\n : []),\n ])\n )\n\n const alias = {\n ...(webpackConfig.resolve.alias || {}),\n ...tamaguiAliases,\n }\n\n if (process.env.DEBUG) {\n // eslint-disable-next-line no-console\n console.log('Tamagui alias:', alias)\n }\n\n if (process.env.ANALYZE === 'true') {\n Object.assign(webpackConfig.optimization, {\n concatenateModules: false,\n })\n }\n\n webpackConfig.resolve.alias = alias\n\n webpackConfig.plugins.push(\n new webpack.DefinePlugin({\n 'process.env.IS_STATIC': '\"\"',\n 'process.env.TAMAGUI_TARGET': '\"web\"',\n __DEV__: JSON.stringify(dev),\n })\n )\n\n const excludeExports = tamaguiOptions.excludeReactNativeWebExports\n if (Array.isArray(excludeExports)) {\n try {\n const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join(\n '|'\n )}).*js`\n const regex = new RegExp(regexStr)\n // console.log(prefix, 'exclude', regexStr)\n webpackConfig.plugins.push(\n new webpack.NormalModuleReplacementPlugin(\n regex,\n resolveEsm('@tamagui/proxy-worm')\n )\n )\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn(\n `Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(\n ', '\n )}`\n )\n }\n }\n\n if (process.env.IGNORE_TS_CONFIG_PATHS) {\n if (process.env.DEBUG) {\n // eslint-disable-next-line no-console\n console.log(prefix, 'ignoring tsconfig paths')\n }\n if (webpackConfig.resolve.plugins[0]) {\n delete webpackConfig.resolve.plugins[0].paths['@tamagui/*']\n delete webpackConfig.resolve.plugins[0].paths['tamagui']\n }\n }\n\n // better shaking for icons:\n if (!isServer) {\n nextConfig.modularizeImports ??= {}\n nextConfig.modularizeImports['@tamagui/lucide-icons'] = {\n transform: `@tamagui/lucide-icons/dist/esm/icons/{{kebabCase member}}`,\n skipDefaultConversion: true,\n }\n }\n\n /**\n * Server react-native compat\n */\n if (isServer) {\n const externalize = (context: string, request: string) => {\n const fullPath = request[0] === '.' ? path.join(context, request) : request\n\n if (tamaguiOptions.shouldExcludeFromServer) {\n const userRes = tamaguiOptions.shouldExcludeFromServer({\n context,\n request,\n fullPath,\n })\n if (userRes !== undefined) {\n return userRes\n }\n }\n\n if (isInComponentModule(fullPath)) {\n return false\n }\n\n if (fullPath.includes('react-native-web')) {\n // always inline react-native-web due to errors where next.js resolved the path to esm\n return false\n }\n\n // must inline react-native so we can alias to react-native-web\n if (\n fullPath === 'react-native' ||\n fullPath.startsWith(`react-native${SEP}`)\n ) {\n return false\n }\n\n if (\n // feather icons uses react-native-svg which needs to be aliased\n // fullPath.includes('/lucide-icons/') ||\n fullPath.startsWith('react-native-web') ||\n fullPath.includes(`node_modules${SEP}react-native-web`) ||\n new RegExp(`^(react-dom|react)${SEP}$`).test(fullPath)\n ) {\n return `commonjs ${fullPath}`\n }\n if (\n fullPath.startsWith('moti') ||\n fullPath.startsWith('solito') ||\n fullPath === 'tamagui' ||\n fullPath.startsWith('@tamagui') ||\n fullPath === 'react-native-safe-area-context' ||\n fullPath === 'expo-linear-gradient' ||\n fullPath.startsWith('@react-navigation') ||\n fullPath.startsWith('@gorhom')\n ) {\n return\n }\n if (/^@?react-native-/.test(request)) {\n return false\n }\n return true\n }\n\n // externalize react native things from bundle\n webpackConfig.externals = [\n ...webpackConfig.externals.map((external) => {\n if (typeof external !== 'function') {\n return external\n }\n // only runs on server\n return (ctx, cb) => {\n const isCb = typeof cb === 'function'\n const res = externalize(ctx.context, ctx.request)\n if (isCb) {\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n return !res\n ? Promise.resolve(undefined)\n : typeof res === 'string'\n ? Promise.resolve(res)\n : external(ctx)\n }\n }),\n ]\n }\n\n /**\n * Non-server support\n */\n const cssRules = webpackConfig.module.rules.find(\n (rule) =>\n Array.isArray(rule.oneOf) &&\n rule.oneOf.some(\n ({ test }) =>\n typeof test === 'object' &&\n typeof test.test === 'function' &&\n test.test('filename.css')\n )\n ).oneOf\n\n /**\n * Font Support\n */\n if (cssRules) {\n if (!tamaguiOptions.disableFontSupport) {\n // fonts support\n cssRules.unshift({\n test: /\\.(woff(2)?|eot|ttf|otf)(\\?v=\\d+\\.\\d+\\.\\d+)?$/,\n use: [\n {\n loader: require.resolve('url-loader'),\n options: {\n limit: nextConfig.inlineFontLimit || 1024,\n fallback: require.resolve('file-loader'),\n publicPath: `${\n nextConfig.assetPrefix || ''\n }/_next/static/chunks/fonts/`,\n outputPath: `${isServer ? '../' : ''}static/chunks/fonts/`,\n name: '[name].[ext]',\n },\n },\n ],\n })\n }\n\n /**\n * CSS Support\n */\n const cssLoader = getGlobalCssLoader(\n // @ts-ignore\n {\n assetPrefix: options.config.assetPrefix || config.assetPrefix,\n future: nextConfig.future,\n experimental: nextConfig.experimental || {},\n isEdgeRuntime: true,\n isProduction: !dev,\n targetWeb: true,\n isClient: !isServer,\n isServer,\n isDevelopment: dev,\n },\n // @ts-ignore\n () => lazyPostCSS(dir, getSupportedBrowsers(dir, dev)),\n []\n )\n\n if (!isAppDir) {\n cssRules.unshift({\n test: tamaguiOptions.includeCSSTest ?? /\\.tamagui\\.css$/,\n sideEffects: true,\n use: cssLoader,\n })\n }\n }\n\n webpackConfig.plugins.push(\n new TamaguiPlugin({\n commonjs: isServer,\n exclude: (path: string) => {\n const res = shouldExclude(path, options.dir)\n // console.log(`shouldExclude`, res, path)\n return res\n },\n disableEsbuildLoader: isAppDir,\n disableModuleJSXEntry: isAppDir,\n ...tamaguiOptions,\n })\n )\n\n if (typeof nextConfig.webpack === 'function') {\n return nextConfig.webpack(webpackConfig, options)\n }\n\n return webpackConfig\n },\n }\n }\n}\n\nfunction getSupportedBrowsers(dir, isDevelopment) {\n let browsers\n try {\n browsers = browserslist.loadConfig({\n path: dir,\n env: isDevelopment ? 'development' : 'production',\n })\n } catch {\n //\n }\n return browsers\n}"],
5
+ "mappings": "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",
6
6
  "names": ["buildResolver", "_a", "path", "shouldExcludeDefault", "webpack", "browserslist"]
7
7
  }
@@ -8,6 +8,7 @@ import { TamaguiPlugin, shouldExclude as shouldExcludeDefault } from "tamagui-lo
8
8
  import webpack from "webpack";
9
9
  const withTamagui = (tamaguiOptions) => {
10
10
  return (nextConfig = {}) => {
11
+ const isAppDir = nextConfig.experimental.appDir;
11
12
  return {
12
13
  ...nextConfig,
13
14
  webpack: (webpackConfig, options) => {
@@ -273,11 +274,13 @@ const withTamagui = (tamaguiOptions) => {
273
274
  () => lazyPostCSS(dir, getSupportedBrowsers(dir, dev)),
274
275
  []
275
276
  );
276
- cssRules.unshift({
277
- test: tamaguiOptions.includeCSSTest ?? /\.tamagui\.css$/,
278
- sideEffects: true,
279
- use: cssLoader
280
- });
277
+ if (!isAppDir) {
278
+ cssRules.unshift({
279
+ test: tamaguiOptions.includeCSSTest ?? /\.tamagui\.css$/,
280
+ sideEffects: true,
281
+ use: cssLoader
282
+ });
283
+ }
281
284
  }
282
285
  webpackConfig.plugins.push(
283
286
  new TamaguiPlugin({
@@ -286,6 +289,8 @@ const withTamagui = (tamaguiOptions) => {
286
289
  const res = shouldExclude(path2, options.dir);
287
290
  return res;
288
291
  },
292
+ disableEsbuildLoader: isAppDir,
293
+ disableModuleJSXEntry: isAppDir,
289
294
  ...tamaguiOptions
290
295
  })
291
296
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/withTamagui.ts"],
4
- "sourcesContent": ["import { existsSync } from 'fs'\nimport path, { dirname, join } from 'path'\n\nimport type { TamaguiOptions } from '@tamagui/static'\nimport browserslist from 'browserslist'\nimport buildResolver from 'esm-resolve'\nimport { lazyPostCSS } from 'next/dist/build/webpack/config/blocks/css'\nimport { getGlobalCssLoader } from 'next/dist/build/webpack/config/blocks/css/loaders'\nimport { TamaguiPlugin, shouldExclude as shouldExcludeDefault } from 'tamagui-loader'\nimport webpack from 'webpack'\n\nexport type WithTamaguiProps = TamaguiOptions & {\n useReactNativeWebLite: boolean\n disableFontSupport?: boolean\n aliasReactPackages?: boolean\n includeCSSTest?: RegExp | ((path: string) => boolean)\n shouldExtract?: (path: string, projectRoot: string) => boolean | undefined\n shouldExcludeFromServer?: (props: {\n context: string\n request: string\n fullPath: string\n }) => boolean | string | undefined\n}\n\nexport const withTamagui = (tamaguiOptions: WithTamaguiProps) => {\n return (nextConfig: any = {}) => {\n return {\n ...nextConfig,\n webpack: (webpackConfig: any, options: any) => {\n const { dir, config, dev, isServer } = options\n\n const resolver = buildResolver(join(dir, 'index.js'), {\n constraints: 'node',\n })\n\n // @ts-ignore\n if (typeof globalThis['__DEV__'] === 'undefined') {\n // @ts-ignore\n globalThis['__DEV__'] = dev\n }\n\n const isNext12 = typeof options.config?.swcMinify === 'boolean'\n if (!isNext12) {\n throw new Error(`Next.js 12 only supported`)\n }\n\n const prefix = `${isServer ? ' ssr ' : ' web '} |`\n\n const safeResolves = (resolves: [string, string][], multiple = false) => {\n const res: string[][] = []\n for (const [out, mod] of resolves) {\n if (out.endsWith('$')) {\n res.push([out, mod])\n continue\n }\n try {\n res.push([out, resolveEsm(mod)])\n if (multiple) {\n res.push([out, resolveEsm(mod, true)])\n }\n } catch (err) {\n if (out.includes(`@gorhom/bottom-sheet`)) {\n continue\n }\n if (process.env.DEBUG?.startsWith('tamagui')) {\n // eslint-disable-next-line no-console\n console.log(prefix, `withTamagui skipping resolving ${out}`, err)\n }\n }\n }\n return res\n }\n\n const resolveEsm = (relativePath: string, onlyRequire = false) => {\n if (isServer || onlyRequire) {\n return require.resolve(relativePath)\n }\n const esm = resolver(relativePath)\n return esm ? path.join(dir, esm) : require.resolve(relativePath)\n }\n\n const SEP = path.sep\n\n // automatically compile our given components\n const componentsFullPaths = safeResolves(\n tamaguiOptions.components.map(\n (moduleName) => [moduleName, moduleName] as [string, string]\n ),\n true\n )\n\n const componentsBaseDirs = componentsFullPaths.map(([_, fullPath]) => {\n let rootPath = dirname(fullPath as string)\n while (rootPath.length > 1) {\n const pkg = join(rootPath, 'package.json')\n const hasPkg = existsSync(pkg)\n if (hasPkg) {\n return rootPath\n } else {\n rootPath = join(rootPath, '..')\n }\n }\n throw new Error(`Couldn't find package.json in any path above: ${fullPath}`)\n })\n\n function isInComponentModule(fullPath: string) {\n return componentsBaseDirs.some((componentDir) =>\n fullPath.startsWith(componentDir)\n )\n }\n\n // allows configuration\n const shouldExclude = (path: string, projectRoot: string) => {\n const res = tamaguiOptions.shouldExtract?.(path, projectRoot)\n if (typeof res === 'boolean') {\n return !res\n }\n if (isInComponentModule(path)) {\n return false\n }\n return shouldExcludeDefault(path, projectRoot)\n }\n\n const rnw = tamaguiOptions.useReactNativeWebLite\n ? 'react-native-web-lite'\n : 'react-native-web'\n\n const tamaguiAliases = Object.fromEntries(\n safeResolves([\n ['@tamagui/core/reset.css', '@tamagui/core/reset.css'],\n ['@tamagui/core', '@tamagui/core'],\n ['@tamagui/web', '@tamagui/web'],\n // web specific light react-native-svg, optional, can use svgs but had issues with compat\n ['react-native-svg', '@tamagui/react-native-svg'],\n // fixes https://github.com/kentcdodds/mdx-bundler/issues/143\n ['react/jsx-runtime.js', 'react/jsx-runtime'],\n ['react/jsx-runtime', 'react/jsx-runtime'],\n ['react/jsx-dev-runtime.js', 'react/jsx-dev-runtime'],\n ['react/jsx-dev-runtime', 'react/jsx-dev-runtime'],\n ['react-native-reanimated', 'react-native-reanimated'],\n ['react-native$', rnw],\n ['react-native-web$', rnw],\n ['@testing-library/react-native', '@tamagui/proxy-worm'],\n ['@gorhom/bottom-sheet$', '@gorhom/bottom-sheet'],\n // fix reanimated 3\n ['react-native/Libraries/Renderer/shims/ReactFabric', '@tamagui/proxy-worm'],\n ...(tamaguiOptions.aliasReactPackages\n ? ([\n ['react', 'react'],\n ['react-dom', 'react-dom'],\n ] as any)\n : []),\n ])\n )\n\n const alias = {\n ...(webpackConfig.resolve.alias || {}),\n ...tamaguiAliases,\n }\n\n if (process.env.DEBUG) {\n // eslint-disable-next-line no-console\n console.log('Tamagui alias:', alias)\n }\n\n if (process.env.ANALYZE === 'true') {\n Object.assign(webpackConfig.optimization, {\n concatenateModules: false,\n })\n }\n\n webpackConfig.resolve.alias = alias\n\n webpackConfig.plugins.push(\n new webpack.DefinePlugin({\n 'process.env.IS_STATIC': '\"\"',\n 'process.env.TAMAGUI_TARGET': '\"web\"',\n __DEV__: JSON.stringify(dev),\n })\n )\n\n const excludeExports = tamaguiOptions.excludeReactNativeWebExports\n if (Array.isArray(excludeExports)) {\n try {\n const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join(\n '|'\n )}).*js`\n const regex = new RegExp(regexStr)\n // console.log(prefix, 'exclude', regexStr)\n webpackConfig.plugins.push(\n new webpack.NormalModuleReplacementPlugin(\n regex,\n resolveEsm('@tamagui/proxy-worm')\n )\n )\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn(\n `Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(\n ', '\n )}`\n )\n }\n }\n\n if (process.env.IGNORE_TS_CONFIG_PATHS) {\n if (process.env.DEBUG) {\n // eslint-disable-next-line no-console\n console.log(prefix, 'ignoring tsconfig paths')\n }\n if (webpackConfig.resolve.plugins[0]) {\n delete webpackConfig.resolve.plugins[0].paths['@tamagui/*']\n delete webpackConfig.resolve.plugins[0].paths['tamagui']\n }\n }\n\n // better shaking for icons:\n if (!isServer) {\n nextConfig.modularizeImports ??= {}\n nextConfig.modularizeImports['@tamagui/lucide-icons'] = {\n transform: `@tamagui/lucide-icons/dist/esm/icons/{{kebabCase member}}`,\n skipDefaultConversion: true,\n }\n }\n\n /**\n * Server react-native compat\n */\n if (isServer) {\n const externalize = (context: string, request: string) => {\n const fullPath = request[0] === '.' ? path.join(context, request) : request\n\n if (tamaguiOptions.shouldExcludeFromServer) {\n const userRes = tamaguiOptions.shouldExcludeFromServer({\n context,\n request,\n fullPath,\n })\n if (userRes !== undefined) {\n return userRes\n }\n }\n\n if (isInComponentModule(fullPath)) {\n return false\n }\n\n if (fullPath.includes('react-native-web')) {\n // always inline react-native-web due to errors where next.js resolved the path to esm\n return false\n }\n\n // must inline react-native so we can alias to react-native-web\n if (\n fullPath === 'react-native' ||\n fullPath.startsWith(`react-native${SEP}`)\n ) {\n return false\n }\n\n if (\n // feather icons uses react-native-svg which needs to be aliased\n // fullPath.includes('/lucide-icons/') ||\n fullPath.startsWith('react-native-web') ||\n fullPath.includes(`node_modules${SEP}react-native-web`) ||\n new RegExp(`^(react-dom|react)${SEP}$`).test(fullPath)\n ) {\n return `commonjs ${fullPath}`\n }\n if (\n fullPath.startsWith('moti') ||\n fullPath.startsWith('solito') ||\n fullPath === 'tamagui' ||\n fullPath.startsWith('@tamagui') ||\n fullPath === 'react-native-safe-area-context' ||\n fullPath === 'expo-linear-gradient' ||\n fullPath.startsWith('@react-navigation') ||\n fullPath.startsWith('@gorhom')\n ) {\n return\n }\n if (/^@?react-native-/.test(request)) {\n return false\n }\n return true\n }\n\n // externalize react native things from bundle\n webpackConfig.externals = [\n ...webpackConfig.externals.map((external) => {\n if (typeof external !== 'function') {\n return external\n }\n // only runs on server\n return (ctx, cb) => {\n const isCb = typeof cb === 'function'\n const res = externalize(ctx.context, ctx.request)\n if (isCb) {\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n return !res\n ? Promise.resolve(undefined)\n : typeof res === 'string'\n ? Promise.resolve(res)\n : external(ctx)\n }\n }),\n ]\n }\n\n /**\n * Non-server support\n */\n const cssRules = webpackConfig.module.rules.find(\n (rule) =>\n Array.isArray(rule.oneOf) &&\n rule.oneOf.some(\n ({ test }) =>\n typeof test === 'object' &&\n typeof test.test === 'function' &&\n test.test('filename.css')\n )\n ).oneOf\n\n /**\n * Font Support\n */\n if (cssRules) {\n if (!tamaguiOptions.disableFontSupport) {\n // fonts support\n cssRules.unshift({\n test: /\\.(woff(2)?|eot|ttf|otf)(\\?v=\\d+\\.\\d+\\.\\d+)?$/,\n use: [\n {\n loader: require.resolve('url-loader'),\n options: {\n limit: nextConfig.inlineFontLimit || 1024,\n fallback: require.resolve('file-loader'),\n publicPath: `${\n nextConfig.assetPrefix || ''\n }/_next/static/chunks/fonts/`,\n outputPath: `${isServer ? '../' : ''}static/chunks/fonts/`,\n name: '[name].[ext]',\n },\n },\n ],\n })\n }\n\n /**\n * CSS Support\n */\n const cssLoader = getGlobalCssLoader(\n // @ts-ignore\n {\n assetPrefix: options.config.assetPrefix || config.assetPrefix,\n future: nextConfig.future,\n experimental: nextConfig.experimental || {},\n isEdgeRuntime: true,\n isProduction: !dev,\n targetWeb: true,\n isClient: !isServer,\n isServer,\n isDevelopment: dev,\n },\n // @ts-ignore\n () => lazyPostCSS(dir, getSupportedBrowsers(dir, dev)),\n []\n )\n\n cssRules.unshift({\n test: tamaguiOptions.includeCSSTest ?? /\\.tamagui\\.css$/,\n sideEffects: true,\n use: cssLoader,\n })\n }\n\n webpackConfig.plugins.push(\n new TamaguiPlugin({\n commonjs: isServer,\n exclude: (path: string) => {\n const res = shouldExclude(path, options.dir)\n // console.log(`shouldExclude`, res, path)\n return res\n },\n ...tamaguiOptions,\n })\n )\n\n if (typeof nextConfig.webpack === 'function') {\n return nextConfig.webpack(webpackConfig, options)\n }\n\n return webpackConfig\n },\n }\n }\n}\n\nfunction getSupportedBrowsers(dir, isDevelopment) {\n let browsers\n try {\n browsers = browserslist.loadConfig({\n path: dir,\n env: isDevelopment ? 'development' : 'production',\n })\n } catch {\n //\n }\n return browsers\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { existsSync } from 'fs'\nimport path, { dirname, join } from 'path'\n\nimport type { TamaguiOptions } from '@tamagui/static'\nimport browserslist from 'browserslist'\nimport buildResolver from 'esm-resolve'\nimport { lazyPostCSS } from 'next/dist/build/webpack/config/blocks/css'\nimport { getGlobalCssLoader } from 'next/dist/build/webpack/config/blocks/css/loaders'\nimport { TamaguiPlugin, shouldExclude as shouldExcludeDefault } from 'tamagui-loader'\nimport webpack from 'webpack'\n\nexport type WithTamaguiProps = TamaguiOptions & {\n useReactNativeWebLite: boolean\n disableFontSupport?: boolean\n aliasReactPackages?: boolean\n includeCSSTest?: RegExp | ((path: string) => boolean)\n shouldExtract?: (path: string, projectRoot: string) => boolean | undefined\n shouldExcludeFromServer?: (props: {\n context: string\n request: string\n fullPath: string\n }) => boolean | string | undefined\n}\n\nexport const withTamagui = (tamaguiOptions: WithTamaguiProps) => {\n return (nextConfig: any = {}) => {\n const isAppDir = nextConfig.experimental.appDir\n return {\n ...nextConfig,\n webpack: (webpackConfig: any, options: any) => {\n const { dir, config, dev, isServer } = options\n\n const resolver = buildResolver(join(dir, 'index.js'), {\n constraints: 'node',\n })\n\n // @ts-ignore\n if (typeof globalThis['__DEV__'] === 'undefined') {\n // @ts-ignore\n globalThis['__DEV__'] = dev\n }\n\n const isNext12 = typeof options.config?.swcMinify === 'boolean'\n if (!isNext12) {\n throw new Error(`Next.js 12 only supported`)\n }\n\n const prefix = `${isServer ? ' ssr ' : ' web '} |`\n\n const safeResolves = (resolves: [string, string][], multiple = false) => {\n const res: string[][] = []\n for (const [out, mod] of resolves) {\n if (out.endsWith('$')) {\n res.push([out, mod])\n continue\n }\n try {\n res.push([out, resolveEsm(mod)])\n if (multiple) {\n res.push([out, resolveEsm(mod, true)])\n }\n } catch (err) {\n if (out.includes(`@gorhom/bottom-sheet`)) {\n continue\n }\n if (process.env.DEBUG?.startsWith('tamagui')) {\n // eslint-disable-next-line no-console\n console.log(prefix, `withTamagui skipping resolving ${out}`, err)\n }\n }\n }\n return res\n }\n\n const resolveEsm = (relativePath: string, onlyRequire = false) => {\n if (isServer || onlyRequire) {\n return require.resolve(relativePath)\n }\n const esm = resolver(relativePath)\n return esm ? path.join(dir, esm) : require.resolve(relativePath)\n }\n\n const SEP = path.sep\n\n // automatically compile our given components\n const componentsFullPaths = safeResolves(\n tamaguiOptions.components.map(\n (moduleName) => [moduleName, moduleName] as [string, string]\n ),\n true\n )\n\n const componentsBaseDirs = componentsFullPaths.map(([_, fullPath]) => {\n let rootPath = dirname(fullPath as string)\n while (rootPath.length > 1) {\n const pkg = join(rootPath, 'package.json')\n const hasPkg = existsSync(pkg)\n if (hasPkg) {\n return rootPath\n } else {\n rootPath = join(rootPath, '..')\n }\n }\n throw new Error(`Couldn't find package.json in any path above: ${fullPath}`)\n })\n\n function isInComponentModule(fullPath: string) {\n return componentsBaseDirs.some((componentDir) =>\n fullPath.startsWith(componentDir)\n )\n }\n\n // allows configuration\n const shouldExclude = (path: string, projectRoot: string) => {\n const res = tamaguiOptions.shouldExtract?.(path, projectRoot)\n if (typeof res === 'boolean') {\n return !res\n }\n if (isInComponentModule(path)) {\n return false\n }\n return shouldExcludeDefault(path, projectRoot)\n }\n\n const rnw = tamaguiOptions.useReactNativeWebLite\n ? 'react-native-web-lite'\n : 'react-native-web'\n\n const tamaguiAliases = Object.fromEntries(\n safeResolves([\n ['@tamagui/core/reset.css', '@tamagui/core/reset.css'],\n ['@tamagui/core', '@tamagui/core'],\n ['@tamagui/web', '@tamagui/web'],\n // web specific light react-native-svg, optional, can use svgs but had issues with compat\n ['react-native-svg', '@tamagui/react-native-svg'],\n // fixes https://github.com/kentcdodds/mdx-bundler/issues/143\n ['react/jsx-runtime.js', 'react/jsx-runtime'],\n ['react/jsx-runtime', 'react/jsx-runtime'],\n ['react/jsx-dev-runtime.js', 'react/jsx-dev-runtime'],\n ['react/jsx-dev-runtime', 'react/jsx-dev-runtime'],\n ['react-native-reanimated', 'react-native-reanimated'],\n ['react-native$', rnw],\n ['react-native-web$', rnw],\n ['@testing-library/react-native', '@tamagui/proxy-worm'],\n ['@gorhom/bottom-sheet$', '@gorhom/bottom-sheet'],\n // fix reanimated 3\n ['react-native/Libraries/Renderer/shims/ReactFabric', '@tamagui/proxy-worm'],\n ...(tamaguiOptions.aliasReactPackages\n ? ([\n ['react', 'react'],\n ['react-dom', 'react-dom'],\n ] as any)\n : []),\n ])\n )\n\n const alias = {\n ...(webpackConfig.resolve.alias || {}),\n ...tamaguiAliases,\n }\n\n if (process.env.DEBUG) {\n // eslint-disable-next-line no-console\n console.log('Tamagui alias:', alias)\n }\n\n if (process.env.ANALYZE === 'true') {\n Object.assign(webpackConfig.optimization, {\n concatenateModules: false,\n })\n }\n\n webpackConfig.resolve.alias = alias\n\n webpackConfig.plugins.push(\n new webpack.DefinePlugin({\n 'process.env.IS_STATIC': '\"\"',\n 'process.env.TAMAGUI_TARGET': '\"web\"',\n __DEV__: JSON.stringify(dev),\n })\n )\n\n const excludeExports = tamaguiOptions.excludeReactNativeWebExports\n if (Array.isArray(excludeExports)) {\n try {\n const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join(\n '|'\n )}).*js`\n const regex = new RegExp(regexStr)\n // console.log(prefix, 'exclude', regexStr)\n webpackConfig.plugins.push(\n new webpack.NormalModuleReplacementPlugin(\n regex,\n resolveEsm('@tamagui/proxy-worm')\n )\n )\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn(\n `Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(\n ', '\n )}`\n )\n }\n }\n\n if (process.env.IGNORE_TS_CONFIG_PATHS) {\n if (process.env.DEBUG) {\n // eslint-disable-next-line no-console\n console.log(prefix, 'ignoring tsconfig paths')\n }\n if (webpackConfig.resolve.plugins[0]) {\n delete webpackConfig.resolve.plugins[0].paths['@tamagui/*']\n delete webpackConfig.resolve.plugins[0].paths['tamagui']\n }\n }\n\n // better shaking for icons:\n if (!isServer) {\n nextConfig.modularizeImports ??= {}\n nextConfig.modularizeImports['@tamagui/lucide-icons'] = {\n transform: `@tamagui/lucide-icons/dist/esm/icons/{{kebabCase member}}`,\n skipDefaultConversion: true,\n }\n }\n\n /**\n * Server react-native compat\n */\n if (isServer) {\n const externalize = (context: string, request: string) => {\n const fullPath = request[0] === '.' ? path.join(context, request) : request\n\n if (tamaguiOptions.shouldExcludeFromServer) {\n const userRes = tamaguiOptions.shouldExcludeFromServer({\n context,\n request,\n fullPath,\n })\n if (userRes !== undefined) {\n return userRes\n }\n }\n\n if (isInComponentModule(fullPath)) {\n return false\n }\n\n if (fullPath.includes('react-native-web')) {\n // always inline react-native-web due to errors where next.js resolved the path to esm\n return false\n }\n\n // must inline react-native so we can alias to react-native-web\n if (\n fullPath === 'react-native' ||\n fullPath.startsWith(`react-native${SEP}`)\n ) {\n return false\n }\n\n if (\n // feather icons uses react-native-svg which needs to be aliased\n // fullPath.includes('/lucide-icons/') ||\n fullPath.startsWith('react-native-web') ||\n fullPath.includes(`node_modules${SEP}react-native-web`) ||\n new RegExp(`^(react-dom|react)${SEP}$`).test(fullPath)\n ) {\n return `commonjs ${fullPath}`\n }\n if (\n fullPath.startsWith('moti') ||\n fullPath.startsWith('solito') ||\n fullPath === 'tamagui' ||\n fullPath.startsWith('@tamagui') ||\n fullPath === 'react-native-safe-area-context' ||\n fullPath === 'expo-linear-gradient' ||\n fullPath.startsWith('@react-navigation') ||\n fullPath.startsWith('@gorhom')\n ) {\n return\n }\n if (/^@?react-native-/.test(request)) {\n return false\n }\n return true\n }\n\n // externalize react native things from bundle\n webpackConfig.externals = [\n ...webpackConfig.externals.map((external) => {\n if (typeof external !== 'function') {\n return external\n }\n // only runs on server\n return (ctx, cb) => {\n const isCb = typeof cb === 'function'\n const res = externalize(ctx.context, ctx.request)\n if (isCb) {\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n return !res\n ? Promise.resolve(undefined)\n : typeof res === 'string'\n ? Promise.resolve(res)\n : external(ctx)\n }\n }),\n ]\n }\n\n /**\n * Non-server support\n */\n const cssRules = webpackConfig.module.rules.find(\n (rule) =>\n Array.isArray(rule.oneOf) &&\n rule.oneOf.some(\n ({ test }) =>\n typeof test === 'object' &&\n typeof test.test === 'function' &&\n test.test('filename.css')\n )\n ).oneOf\n\n /**\n * Font Support\n */\n if (cssRules) {\n if (!tamaguiOptions.disableFontSupport) {\n // fonts support\n cssRules.unshift({\n test: /\\.(woff(2)?|eot|ttf|otf)(\\?v=\\d+\\.\\d+\\.\\d+)?$/,\n use: [\n {\n loader: require.resolve('url-loader'),\n options: {\n limit: nextConfig.inlineFontLimit || 1024,\n fallback: require.resolve('file-loader'),\n publicPath: `${\n nextConfig.assetPrefix || ''\n }/_next/static/chunks/fonts/`,\n outputPath: `${isServer ? '../' : ''}static/chunks/fonts/`,\n name: '[name].[ext]',\n },\n },\n ],\n })\n }\n\n /**\n * CSS Support\n */\n const cssLoader = getGlobalCssLoader(\n // @ts-ignore\n {\n assetPrefix: options.config.assetPrefix || config.assetPrefix,\n future: nextConfig.future,\n experimental: nextConfig.experimental || {},\n isEdgeRuntime: true,\n isProduction: !dev,\n targetWeb: true,\n isClient: !isServer,\n isServer,\n isDevelopment: dev,\n },\n // @ts-ignore\n () => lazyPostCSS(dir, getSupportedBrowsers(dir, dev)),\n []\n )\n\n if (!isAppDir) {\n cssRules.unshift({\n test: tamaguiOptions.includeCSSTest ?? /\\.tamagui\\.css$/,\n sideEffects: true,\n use: cssLoader,\n })\n }\n }\n\n webpackConfig.plugins.push(\n new TamaguiPlugin({\n commonjs: isServer,\n exclude: (path: string) => {\n const res = shouldExclude(path, options.dir)\n // console.log(`shouldExclude`, res, path)\n return res\n },\n disableEsbuildLoader: isAppDir,\n disableModuleJSXEntry: isAppDir,\n ...tamaguiOptions,\n })\n )\n\n if (typeof nextConfig.webpack === 'function') {\n return nextConfig.webpack(webpackConfig, options)\n }\n\n return webpackConfig\n },\n }\n }\n}\n\nfunction getSupportedBrowsers(dir, isDevelopment) {\n let browsers\n try {\n browsers = browserslist.loadConfig({\n path: dir,\n env: isDevelopment ? 'development' : 'production',\n })\n } catch {\n //\n }\n return browsers\n}"],
5
+ "mappings": "AAAA,SAAS,kBAAkB;AAC3B,OAAO,QAAQ,SAAS,YAAY;AAGpC,OAAO,kBAAkB;AACzB,OAAO,mBAAmB;AAC1B,SAAS,mBAAmB;AAC5B,SAAS,0BAA0B;AACnC,SAAS,eAAe,iBAAiB,4BAA4B;AACrE,OAAO,aAAa;AAeb,MAAM,cAAc,CAAC,mBAAqC;AAC/D,SAAO,CAAC,aAAkB,CAAC,MAAM;AAC/B,UAAM,WAAW,WAAW,aAAa;AACzC,WAAO;AAAA,MACL,GAAG;AAAA,MACH,SAAS,CAAC,eAAoB,YAAiB;AA7BrD;AA8BQ,cAAM,EAAE,KAAK,QAAQ,KAAK,SAAS,IAAI;AAEvC,cAAM,WAAW,cAAc,KAAK,KAAK,UAAU,GAAG;AAAA,UACpD,aAAa;AAAA,QACf,CAAC;AAGD,YAAI,OAAO,WAAW,SAAS,MAAM,aAAa;AAEhD,qBAAW,SAAS,IAAI;AAAA,QAC1B;AAEA,cAAM,WAAW,SAAO,aAAQ,WAAR,mBAAgB,eAAc;AACtD,YAAI,CAAC,UAAU;AACb,gBAAM,IAAI,MAAM,2BAA2B;AAAA,QAC7C;AAEA,cAAM,SAAS,GAAG,WAAW,UAAU;AAEvC,cAAM,eAAe,CAAC,UAA8B,WAAW,UAAU;AAjDjF,cAAAA;AAkDU,gBAAM,MAAkB,CAAC;AACzB,qBAAW,CAAC,KAAK,GAAG,KAAK,UAAU;AACjC,gBAAI,IAAI,SAAS,GAAG,GAAG;AACrB,kBAAI,KAAK,CAAC,KAAK,GAAG,CAAC;AACnB;AAAA,YACF;AACA,gBAAI;AACF,kBAAI,KAAK,CAAC,KAAK,WAAW,GAAG,CAAC,CAAC;AAC/B,kBAAI,UAAU;AACZ,oBAAI,KAAK,CAAC,KAAK,WAAW,KAAK,IAAI,CAAC,CAAC;AAAA,cACvC;AAAA,YACF,SAAS,KAAP;AACA,kBAAI,IAAI,SAAS,sBAAsB,GAAG;AACxC;AAAA,cACF;AACA,mBAAIA,MAAA,QAAQ,IAAI,UAAZ,gBAAAA,IAAmB,WAAW,YAAY;AAE5C,wBAAQ,IAAI,QAAQ,kCAAkC,OAAO,GAAG;AAAA,cAClE;AAAA,YACF;AAAA,UACF;AACA,iBAAO;AAAA,QACT;AAEA,cAAM,aAAa,CAAC,cAAsB,cAAc,UAAU;AAChE,cAAI,YAAY,aAAa;AAC3B,mBAAO,QAAQ,QAAQ,YAAY;AAAA,UACrC;AACA,gBAAM,MAAM,SAAS,YAAY;AACjC,iBAAO,MAAM,KAAK,KAAK,KAAK,GAAG,IAAI,QAAQ,QAAQ,YAAY;AAAA,QACjE;AAEA,cAAM,MAAM,KAAK;AAGjB,cAAM,sBAAsB;AAAA,UAC1B,eAAe,WAAW;AAAA,YACxB,CAAC,eAAe,CAAC,YAAY,UAAU;AAAA,UACzC;AAAA,UACA;AAAA,QACF;AAEA,cAAM,qBAAqB,oBAAoB,IAAI,CAAC,CAAC,GAAG,QAAQ,MAAM;AACpE,cAAI,WAAW,QAAQ,QAAkB;AACzC,iBAAO,SAAS,SAAS,GAAG;AAC1B,kBAAM,MAAM,KAAK,UAAU,cAAc;AACzC,kBAAM,SAAS,WAAW,GAAG;AAC7B,gBAAI,QAAQ;AACV,qBAAO;AAAA,YACT,OAAO;AACL,yBAAW,KAAK,UAAU,IAAI;AAAA,YAChC;AAAA,UACF;AACA,gBAAM,IAAI,MAAM,iDAAiD,UAAU;AAAA,QAC7E,CAAC;AAED,iBAAS,oBAAoB,UAAkB;AAC7C,iBAAO,mBAAmB;AAAA,YAAK,CAAC,iBAC9B,SAAS,WAAW,YAAY;AAAA,UAClC;AAAA,QACF;AAGA,cAAM,gBAAgB,CAACC,OAAc,gBAAwB;AAjHrE,cAAAD;AAkHU,gBAAM,OAAMA,MAAA,eAAe,kBAAf,gBAAAA,IAAA,qBAA+BC,OAAM;AACjD,cAAI,OAAO,QAAQ,WAAW;AAC5B,mBAAO,CAAC;AAAA,UACV;AACA,cAAI,oBAAoBA,KAAI,GAAG;AAC7B,mBAAO;AAAA,UACT;AACA,iBAAO,qBAAqBA,OAAM,WAAW;AAAA,QAC/C;AAEA,cAAM,MAAM,eAAe,wBACvB,0BACA;AAEJ,cAAM,iBAAiB,OAAO;AAAA,UAC5B,aAAa;AAAA,YACX,CAAC,2BAA2B,yBAAyB;AAAA,YACrD,CAAC,iBAAiB,eAAe;AAAA,YACjC,CAAC,gBAAgB,cAAc;AAAA;AAAA,YAE/B,CAAC,oBAAoB,2BAA2B;AAAA;AAAA,YAEhD,CAAC,wBAAwB,mBAAmB;AAAA,YAC5C,CAAC,qBAAqB,mBAAmB;AAAA,YACzC,CAAC,4BAA4B,uBAAuB;AAAA,YACpD,CAAC,yBAAyB,uBAAuB;AAAA,YACjD,CAAC,2BAA2B,yBAAyB;AAAA,YACrD,CAAC,iBAAiB,GAAG;AAAA,YACrB,CAAC,qBAAqB,GAAG;AAAA,YACzB,CAAC,iCAAiC,qBAAqB;AAAA,YACvD,CAAC,yBAAyB,sBAAsB;AAAA;AAAA,YAEhD,CAAC,qDAAqD,qBAAqB;AAAA,YAC3E,GAAI,eAAe,qBACd;AAAA,cACC,CAAC,SAAS,OAAO;AAAA,cACjB,CAAC,aAAa,WAAW;AAAA,YAC3B,IACA,CAAC;AAAA,UACP,CAAC;AAAA,QACH;AAEA,cAAM,QAAQ;AAAA,UACZ,GAAI,cAAc,QAAQ,SAAS,CAAC;AAAA,UACpC,GAAG;AAAA,QACL;AAEA,YAAI,QAAQ,IAAI,OAAO;AAErB,kBAAQ,IAAI,kBAAkB,KAAK;AAAA,QACrC;AAEA,YAAI,QAAQ,IAAI,YAAY,QAAQ;AAClC,iBAAO,OAAO,cAAc,cAAc;AAAA,YACxC,oBAAoB;AAAA,UACtB,CAAC;AAAA,QACH;AAEA,sBAAc,QAAQ,QAAQ;AAE9B,sBAAc,QAAQ;AAAA,UACpB,IAAI,QAAQ,aAAa;AAAA,YACvB,yBAAyB;AAAA,YACzB,8BAA8B;AAAA,YAC9B,SAAS,KAAK,UAAU,GAAG;AAAA,UAC7B,CAAC;AAAA,QACH;AAEA,cAAM,iBAAiB,eAAe;AACtC,YAAI,MAAM,QAAQ,cAAc,GAAG;AACjC,cAAI;AACF,kBAAM,WAAW,+BAA+B,eAAe;AAAA,cAC7D;AAAA,YACF;AACA,kBAAM,QAAQ,IAAI,OAAO,QAAQ;AAEjC,0BAAc,QAAQ;AAAA,cACpB,IAAI,QAAQ;AAAA,gBACV;AAAA,gBACA,WAAW,qBAAqB;AAAA,cAClC;AAAA,YACF;AAAA,UACF,SAAS,KAAP;AAEA,oBAAQ;AAAA,cACN,2DAA2D,eAAe;AAAA,gBACxE;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAEA,YAAI,QAAQ,IAAI,wBAAwB;AACtC,cAAI,QAAQ,IAAI,OAAO;AAErB,oBAAQ,IAAI,QAAQ,yBAAyB;AAAA,UAC/C;AACA,cAAI,cAAc,QAAQ,QAAQ,CAAC,GAAG;AACpC,mBAAO,cAAc,QAAQ,QAAQ,CAAC,EAAE,MAAM,YAAY;AAC1D,mBAAO,cAAc,QAAQ,QAAQ,CAAC,EAAE,MAAM,SAAS;AAAA,UACzD;AAAA,QACF;AAGA,YAAI,CAAC,UAAU;AACb,qBAAW,sBAAsB,CAAC;AAClC,qBAAW,kBAAkB,uBAAuB,IAAI;AAAA,YACtD,WAAW;AAAA,YACX,uBAAuB;AAAA,UACzB;AAAA,QACF;AAKA,YAAI,UAAU;AACZ,gBAAM,cAAc,CAAC,SAAiB,YAAoB;AACxD,kBAAM,WAAW,QAAQ,CAAC,MAAM,MAAM,KAAK,KAAK,SAAS,OAAO,IAAI;AAEpE,gBAAI,eAAe,yBAAyB;AAC1C,oBAAM,UAAU,eAAe,wBAAwB;AAAA,gBACrD;AAAA,gBACA;AAAA,gBACA;AAAA,cACF,CAAC;AACD,kBAAI,YAAY,QAAW;AACzB,uBAAO;AAAA,cACT;AAAA,YACF;AAEA,gBAAI,oBAAoB,QAAQ,GAAG;AACjC,qBAAO;AAAA,YACT;AAEA,gBAAI,SAAS,SAAS,kBAAkB,GAAG;AAEzC,qBAAO;AAAA,YACT;AAGA,gBACE,aAAa,kBACb,SAAS,WAAW,eAAe,KAAK,GACxC;AACA,qBAAO;AAAA,YACT;AAEA;AAAA;AAAA;AAAA,cAGE,SAAS,WAAW,kBAAkB,KACtC,SAAS,SAAS,eAAe,qBAAqB,KACtD,IAAI,OAAO,qBAAqB,MAAM,EAAE,KAAK,QAAQ;AAAA,cACrD;AACA,qBAAO,YAAY;AAAA,YACrB;AACA,gBACE,SAAS,WAAW,MAAM,KAC1B,SAAS,WAAW,QAAQ,KAC5B,aAAa,aACb,SAAS,WAAW,UAAU,KAC9B,aAAa,oCACb,aAAa,0BACb,SAAS,WAAW,mBAAmB,KACvC,SAAS,WAAW,SAAS,GAC7B;AACA;AAAA,YACF;AACA,gBAAI,mBAAmB,KAAK,OAAO,GAAG;AACpC,qBAAO;AAAA,YACT;AACA,mBAAO;AAAA,UACT;AAGA,wBAAc,YAAY;AAAA,YACxB,GAAG,cAAc,UAAU,IAAI,CAAC,aAAa;AAC3C,kBAAI,OAAO,aAAa,YAAY;AAClC,uBAAO;AAAA,cACT;AAEA,qBAAO,CAAC,KAAK,OAAO;AAClB,sBAAM,OAAO,OAAO,OAAO;AAC3B,sBAAM,MAAM,YAAY,IAAI,SAAS,IAAI,OAAO;AAChD,oBAAI,MAAM;AACR,sBAAI,OAAO,QAAQ,UAAU;AAC3B,2BAAO,GAAG,MAAM,GAAG;AAAA,kBACrB;AACA,sBAAI,KAAK;AACP,2BAAO,SAAS,KAAK,EAAE;AAAA,kBACzB;AACA,yBAAO,GAAG;AAAA,gBACZ;AACA,uBAAO,CAAC,MACJ,QAAQ,QAAQ,MAAS,IACzB,OAAO,QAAQ,WACf,QAAQ,QAAQ,GAAG,IACnB,SAAS,GAAG;AAAA,cAClB;AAAA,YACF,CAAC;AAAA,UACH;AAAA,QACF;AAKA,cAAM,WAAW,cAAc,OAAO,MAAM;AAAA,UAC1C,CAAC,SACC,MAAM,QAAQ,KAAK,KAAK,KACxB,KAAK,MAAM;AAAA,YACT,CAAC,EAAE,KAAK,MACN,OAAO,SAAS,YAChB,OAAO,KAAK,SAAS,cACrB,KAAK,KAAK,cAAc;AAAA,UAC5B;AAAA,QACJ,EAAE;AAKF,YAAI,UAAU;AACZ,cAAI,CAAC,eAAe,oBAAoB;AAEtC,qBAAS,QAAQ;AAAA,cACf,MAAM;AAAA,cACN,KAAK;AAAA,gBACH;AAAA,kBACE,QAAQ,gBAAgB,YAAY;AAAA,kBACpC,SAAS;AAAA,oBACP,OAAO,WAAW,mBAAmB;AAAA,oBACrC,UAAU,gBAAgB,aAAa;AAAA,oBACvC,YAAY,GACV,WAAW,eAAe;AAAA,oBAE5B,YAAY,GAAG,WAAW,QAAQ;AAAA,oBAClC,MAAM;AAAA,kBACR;AAAA,gBACF;AAAA,cACF;AAAA,YACF,CAAC;AAAA,UACH;AAKA,gBAAM,YAAY;AAAA;AAAA,YAEhB;AAAA,cACE,aAAa,QAAQ,OAAO,eAAe,OAAO;AAAA,cAClD,QAAQ,WAAW;AAAA,cACnB,cAAc,WAAW,gBAAgB,CAAC;AAAA,cAC1C,eAAe;AAAA,cACf,cAAc,CAAC;AAAA,cACf,WAAW;AAAA,cACX,UAAU,CAAC;AAAA,cACX;AAAA,cACA,eAAe;AAAA,YACjB;AAAA;AAAA,YAEA,MAAM,YAAY,KAAK,qBAAqB,KAAK,GAAG,CAAC;AAAA,YACrD,CAAC;AAAA,UACH;AAEA,cAAI,CAAC,UAAU;AACb,qBAAS,QAAQ;AAAA,cACf,MAAM,eAAe,kBAAkB;AAAA,cACvC,aAAa;AAAA,cACb,KAAK;AAAA,YACP,CAAC;AAAA,UACH;AAAA,QACF;AAEA,sBAAc,QAAQ;AAAA,UACpB,IAAI,cAAc;AAAA,YAChB,UAAU;AAAA,YACV,SAAS,CAACA,UAAiB;AACzB,oBAAM,MAAM,cAAcA,OAAM,QAAQ,GAAG;AAE3C,qBAAO;AAAA,YACT;AAAA,YACA,sBAAsB;AAAA,YACtB,uBAAuB;AAAA,YACvB,GAAG;AAAA,UACL,CAAC;AAAA,QACH;AAEA,YAAI,OAAO,WAAW,YAAY,YAAY;AAC5C,iBAAO,WAAW,QAAQ,eAAe,OAAO;AAAA,QAClD;AAEA,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;AAEA,SAAS,qBAAqB,KAAK,eAAe;AAChD,MAAI;AACJ,MAAI;AACF,eAAW,aAAa,WAAW;AAAA,MACjC,MAAM;AAAA,MACN,KAAK,gBAAgB,gBAAgB;AAAA,IACvC,CAAC;AAAA,EACH,QAAE;AAAA,EAEF;AACA,SAAO;AACT;",
6
6
  "names": ["_a", "path"]
7
7
  }
@@ -8,6 +8,7 @@ import { TamaguiPlugin, shouldExclude as shouldExcludeDefault } from "tamagui-lo
8
8
  import webpack from "webpack";
9
9
  const withTamagui = (tamaguiOptions) => {
10
10
  return (nextConfig = {}) => {
11
+ const isAppDir = nextConfig.experimental.appDir;
11
12
  return {
12
13
  ...nextConfig,
13
14
  webpack: (webpackConfig, options) => {
@@ -273,11 +274,13 @@ const withTamagui = (tamaguiOptions) => {
273
274
  () => lazyPostCSS(dir, getSupportedBrowsers(dir, dev)),
274
275
  []
275
276
  );
276
- cssRules.unshift({
277
- test: tamaguiOptions.includeCSSTest ?? /\.tamagui\.css$/,
278
- sideEffects: true,
279
- use: cssLoader
280
- });
277
+ if (!isAppDir) {
278
+ cssRules.unshift({
279
+ test: tamaguiOptions.includeCSSTest ?? /\.tamagui\.css$/,
280
+ sideEffects: true,
281
+ use: cssLoader
282
+ });
283
+ }
281
284
  }
282
285
  webpackConfig.plugins.push(
283
286
  new TamaguiPlugin({
@@ -286,6 +289,8 @@ const withTamagui = (tamaguiOptions) => {
286
289
  const res = shouldExclude(path2, options.dir);
287
290
  return res;
288
291
  },
292
+ disableEsbuildLoader: isAppDir,
293
+ disableModuleJSXEntry: isAppDir,
289
294
  ...tamaguiOptions
290
295
  })
291
296
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/withTamagui.ts"],
4
- "sourcesContent": ["import { existsSync } from 'fs'\nimport path, { dirname, join } from 'path'\n\nimport type { TamaguiOptions } from '@tamagui/static'\nimport browserslist from 'browserslist'\nimport buildResolver from 'esm-resolve'\nimport { lazyPostCSS } from 'next/dist/build/webpack/config/blocks/css'\nimport { getGlobalCssLoader } from 'next/dist/build/webpack/config/blocks/css/loaders'\nimport { TamaguiPlugin, shouldExclude as shouldExcludeDefault } from 'tamagui-loader'\nimport webpack from 'webpack'\n\nexport type WithTamaguiProps = TamaguiOptions & {\n useReactNativeWebLite: boolean\n disableFontSupport?: boolean\n aliasReactPackages?: boolean\n includeCSSTest?: RegExp | ((path: string) => boolean)\n shouldExtract?: (path: string, projectRoot: string) => boolean | undefined\n shouldExcludeFromServer?: (props: {\n context: string\n request: string\n fullPath: string\n }) => boolean | string | undefined\n}\n\nexport const withTamagui = (tamaguiOptions: WithTamaguiProps) => {\n return (nextConfig: any = {}) => {\n return {\n ...nextConfig,\n webpack: (webpackConfig: any, options: any) => {\n const { dir, config, dev, isServer } = options\n\n const resolver = buildResolver(join(dir, 'index.js'), {\n constraints: 'node',\n })\n\n // @ts-ignore\n if (typeof globalThis['__DEV__'] === 'undefined') {\n // @ts-ignore\n globalThis['__DEV__'] = dev\n }\n\n const isNext12 = typeof options.config?.swcMinify === 'boolean'\n if (!isNext12) {\n throw new Error(`Next.js 12 only supported`)\n }\n\n const prefix = `${isServer ? ' ssr ' : ' web '} |`\n\n const safeResolves = (resolves: [string, string][], multiple = false) => {\n const res: string[][] = []\n for (const [out, mod] of resolves) {\n if (out.endsWith('$')) {\n res.push([out, mod])\n continue\n }\n try {\n res.push([out, resolveEsm(mod)])\n if (multiple) {\n res.push([out, resolveEsm(mod, true)])\n }\n } catch (err) {\n if (out.includes(`@gorhom/bottom-sheet`)) {\n continue\n }\n if (process.env.DEBUG?.startsWith('tamagui')) {\n // eslint-disable-next-line no-console\n console.log(prefix, `withTamagui skipping resolving ${out}`, err)\n }\n }\n }\n return res\n }\n\n const resolveEsm = (relativePath: string, onlyRequire = false) => {\n if (isServer || onlyRequire) {\n return require.resolve(relativePath)\n }\n const esm = resolver(relativePath)\n return esm ? path.join(dir, esm) : require.resolve(relativePath)\n }\n\n const SEP = path.sep\n\n // automatically compile our given components\n const componentsFullPaths = safeResolves(\n tamaguiOptions.components.map(\n (moduleName) => [moduleName, moduleName] as [string, string]\n ),\n true\n )\n\n const componentsBaseDirs = componentsFullPaths.map(([_, fullPath]) => {\n let rootPath = dirname(fullPath as string)\n while (rootPath.length > 1) {\n const pkg = join(rootPath, 'package.json')\n const hasPkg = existsSync(pkg)\n if (hasPkg) {\n return rootPath\n } else {\n rootPath = join(rootPath, '..')\n }\n }\n throw new Error(`Couldn't find package.json in any path above: ${fullPath}`)\n })\n\n function isInComponentModule(fullPath: string) {\n return componentsBaseDirs.some((componentDir) =>\n fullPath.startsWith(componentDir)\n )\n }\n\n // allows configuration\n const shouldExclude = (path: string, projectRoot: string) => {\n const res = tamaguiOptions.shouldExtract?.(path, projectRoot)\n if (typeof res === 'boolean') {\n return !res\n }\n if (isInComponentModule(path)) {\n return false\n }\n return shouldExcludeDefault(path, projectRoot)\n }\n\n const rnw = tamaguiOptions.useReactNativeWebLite\n ? 'react-native-web-lite'\n : 'react-native-web'\n\n const tamaguiAliases = Object.fromEntries(\n safeResolves([\n ['@tamagui/core/reset.css', '@tamagui/core/reset.css'],\n ['@tamagui/core', '@tamagui/core'],\n ['@tamagui/web', '@tamagui/web'],\n // web specific light react-native-svg, optional, can use svgs but had issues with compat\n ['react-native-svg', '@tamagui/react-native-svg'],\n // fixes https://github.com/kentcdodds/mdx-bundler/issues/143\n ['react/jsx-runtime.js', 'react/jsx-runtime'],\n ['react/jsx-runtime', 'react/jsx-runtime'],\n ['react/jsx-dev-runtime.js', 'react/jsx-dev-runtime'],\n ['react/jsx-dev-runtime', 'react/jsx-dev-runtime'],\n ['react-native-reanimated', 'react-native-reanimated'],\n ['react-native$', rnw],\n ['react-native-web$', rnw],\n ['@testing-library/react-native', '@tamagui/proxy-worm'],\n ['@gorhom/bottom-sheet$', '@gorhom/bottom-sheet'],\n // fix reanimated 3\n ['react-native/Libraries/Renderer/shims/ReactFabric', '@tamagui/proxy-worm'],\n ...(tamaguiOptions.aliasReactPackages\n ? ([\n ['react', 'react'],\n ['react-dom', 'react-dom'],\n ] as any)\n : []),\n ])\n )\n\n const alias = {\n ...(webpackConfig.resolve.alias || {}),\n ...tamaguiAliases,\n }\n\n if (process.env.DEBUG) {\n // eslint-disable-next-line no-console\n console.log('Tamagui alias:', alias)\n }\n\n if (process.env.ANALYZE === 'true') {\n Object.assign(webpackConfig.optimization, {\n concatenateModules: false,\n })\n }\n\n webpackConfig.resolve.alias = alias\n\n webpackConfig.plugins.push(\n new webpack.DefinePlugin({\n 'process.env.IS_STATIC': '\"\"',\n 'process.env.TAMAGUI_TARGET': '\"web\"',\n __DEV__: JSON.stringify(dev),\n })\n )\n\n const excludeExports = tamaguiOptions.excludeReactNativeWebExports\n if (Array.isArray(excludeExports)) {\n try {\n const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join(\n '|'\n )}).*js`\n const regex = new RegExp(regexStr)\n // console.log(prefix, 'exclude', regexStr)\n webpackConfig.plugins.push(\n new webpack.NormalModuleReplacementPlugin(\n regex,\n resolveEsm('@tamagui/proxy-worm')\n )\n )\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn(\n `Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(\n ', '\n )}`\n )\n }\n }\n\n if (process.env.IGNORE_TS_CONFIG_PATHS) {\n if (process.env.DEBUG) {\n // eslint-disable-next-line no-console\n console.log(prefix, 'ignoring tsconfig paths')\n }\n if (webpackConfig.resolve.plugins[0]) {\n delete webpackConfig.resolve.plugins[0].paths['@tamagui/*']\n delete webpackConfig.resolve.plugins[0].paths['tamagui']\n }\n }\n\n // better shaking for icons:\n if (!isServer) {\n nextConfig.modularizeImports ??= {}\n nextConfig.modularizeImports['@tamagui/lucide-icons'] = {\n transform: `@tamagui/lucide-icons/dist/esm/icons/{{kebabCase member}}`,\n skipDefaultConversion: true,\n }\n }\n\n /**\n * Server react-native compat\n */\n if (isServer) {\n const externalize = (context: string, request: string) => {\n const fullPath = request[0] === '.' ? path.join(context, request) : request\n\n if (tamaguiOptions.shouldExcludeFromServer) {\n const userRes = tamaguiOptions.shouldExcludeFromServer({\n context,\n request,\n fullPath,\n })\n if (userRes !== undefined) {\n return userRes\n }\n }\n\n if (isInComponentModule(fullPath)) {\n return false\n }\n\n if (fullPath.includes('react-native-web')) {\n // always inline react-native-web due to errors where next.js resolved the path to esm\n return false\n }\n\n // must inline react-native so we can alias to react-native-web\n if (\n fullPath === 'react-native' ||\n fullPath.startsWith(`react-native${SEP}`)\n ) {\n return false\n }\n\n if (\n // feather icons uses react-native-svg which needs to be aliased\n // fullPath.includes('/lucide-icons/') ||\n fullPath.startsWith('react-native-web') ||\n fullPath.includes(`node_modules${SEP}react-native-web`) ||\n new RegExp(`^(react-dom|react)${SEP}$`).test(fullPath)\n ) {\n return `commonjs ${fullPath}`\n }\n if (\n fullPath.startsWith('moti') ||\n fullPath.startsWith('solito') ||\n fullPath === 'tamagui' ||\n fullPath.startsWith('@tamagui') ||\n fullPath === 'react-native-safe-area-context' ||\n fullPath === 'expo-linear-gradient' ||\n fullPath.startsWith('@react-navigation') ||\n fullPath.startsWith('@gorhom')\n ) {\n return\n }\n if (/^@?react-native-/.test(request)) {\n return false\n }\n return true\n }\n\n // externalize react native things from bundle\n webpackConfig.externals = [\n ...webpackConfig.externals.map((external) => {\n if (typeof external !== 'function') {\n return external\n }\n // only runs on server\n return (ctx, cb) => {\n const isCb = typeof cb === 'function'\n const res = externalize(ctx.context, ctx.request)\n if (isCb) {\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n return !res\n ? Promise.resolve(undefined)\n : typeof res === 'string'\n ? Promise.resolve(res)\n : external(ctx)\n }\n }),\n ]\n }\n\n /**\n * Non-server support\n */\n const cssRules = webpackConfig.module.rules.find(\n (rule) =>\n Array.isArray(rule.oneOf) &&\n rule.oneOf.some(\n ({ test }) =>\n typeof test === 'object' &&\n typeof test.test === 'function' &&\n test.test('filename.css')\n )\n ).oneOf\n\n /**\n * Font Support\n */\n if (cssRules) {\n if (!tamaguiOptions.disableFontSupport) {\n // fonts support\n cssRules.unshift({\n test: /\\.(woff(2)?|eot|ttf|otf)(\\?v=\\d+\\.\\d+\\.\\d+)?$/,\n use: [\n {\n loader: require.resolve('url-loader'),\n options: {\n limit: nextConfig.inlineFontLimit || 1024,\n fallback: require.resolve('file-loader'),\n publicPath: `${\n nextConfig.assetPrefix || ''\n }/_next/static/chunks/fonts/`,\n outputPath: `${isServer ? '../' : ''}static/chunks/fonts/`,\n name: '[name].[ext]',\n },\n },\n ],\n })\n }\n\n /**\n * CSS Support\n */\n const cssLoader = getGlobalCssLoader(\n // @ts-ignore\n {\n assetPrefix: options.config.assetPrefix || config.assetPrefix,\n future: nextConfig.future,\n experimental: nextConfig.experimental || {},\n isEdgeRuntime: true,\n isProduction: !dev,\n targetWeb: true,\n isClient: !isServer,\n isServer,\n isDevelopment: dev,\n },\n // @ts-ignore\n () => lazyPostCSS(dir, getSupportedBrowsers(dir, dev)),\n []\n )\n\n cssRules.unshift({\n test: tamaguiOptions.includeCSSTest ?? /\\.tamagui\\.css$/,\n sideEffects: true,\n use: cssLoader,\n })\n }\n\n webpackConfig.plugins.push(\n new TamaguiPlugin({\n commonjs: isServer,\n exclude: (path: string) => {\n const res = shouldExclude(path, options.dir)\n // console.log(`shouldExclude`, res, path)\n return res\n },\n ...tamaguiOptions,\n })\n )\n\n if (typeof nextConfig.webpack === 'function') {\n return nextConfig.webpack(webpackConfig, options)\n }\n\n return webpackConfig\n },\n }\n }\n}\n\nfunction getSupportedBrowsers(dir, isDevelopment) {\n let browsers\n try {\n browsers = browserslist.loadConfig({\n path: dir,\n env: isDevelopment ? 'development' : 'production',\n })\n } catch {\n //\n }\n return browsers\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { existsSync } from 'fs'\nimport path, { dirname, join } from 'path'\n\nimport type { TamaguiOptions } from '@tamagui/static'\nimport browserslist from 'browserslist'\nimport buildResolver from 'esm-resolve'\nimport { lazyPostCSS } from 'next/dist/build/webpack/config/blocks/css'\nimport { getGlobalCssLoader } from 'next/dist/build/webpack/config/blocks/css/loaders'\nimport { TamaguiPlugin, shouldExclude as shouldExcludeDefault } from 'tamagui-loader'\nimport webpack from 'webpack'\n\nexport type WithTamaguiProps = TamaguiOptions & {\n useReactNativeWebLite: boolean\n disableFontSupport?: boolean\n aliasReactPackages?: boolean\n includeCSSTest?: RegExp | ((path: string) => boolean)\n shouldExtract?: (path: string, projectRoot: string) => boolean | undefined\n shouldExcludeFromServer?: (props: {\n context: string\n request: string\n fullPath: string\n }) => boolean | string | undefined\n}\n\nexport const withTamagui = (tamaguiOptions: WithTamaguiProps) => {\n return (nextConfig: any = {}) => {\n const isAppDir = nextConfig.experimental.appDir\n return {\n ...nextConfig,\n webpack: (webpackConfig: any, options: any) => {\n const { dir, config, dev, isServer } = options\n\n const resolver = buildResolver(join(dir, 'index.js'), {\n constraints: 'node',\n })\n\n // @ts-ignore\n if (typeof globalThis['__DEV__'] === 'undefined') {\n // @ts-ignore\n globalThis['__DEV__'] = dev\n }\n\n const isNext12 = typeof options.config?.swcMinify === 'boolean'\n if (!isNext12) {\n throw new Error(`Next.js 12 only supported`)\n }\n\n const prefix = `${isServer ? ' ssr ' : ' web '} |`\n\n const safeResolves = (resolves: [string, string][], multiple = false) => {\n const res: string[][] = []\n for (const [out, mod] of resolves) {\n if (out.endsWith('$')) {\n res.push([out, mod])\n continue\n }\n try {\n res.push([out, resolveEsm(mod)])\n if (multiple) {\n res.push([out, resolveEsm(mod, true)])\n }\n } catch (err) {\n if (out.includes(`@gorhom/bottom-sheet`)) {\n continue\n }\n if (process.env.DEBUG?.startsWith('tamagui')) {\n // eslint-disable-next-line no-console\n console.log(prefix, `withTamagui skipping resolving ${out}`, err)\n }\n }\n }\n return res\n }\n\n const resolveEsm = (relativePath: string, onlyRequire = false) => {\n if (isServer || onlyRequire) {\n return require.resolve(relativePath)\n }\n const esm = resolver(relativePath)\n return esm ? path.join(dir, esm) : require.resolve(relativePath)\n }\n\n const SEP = path.sep\n\n // automatically compile our given components\n const componentsFullPaths = safeResolves(\n tamaguiOptions.components.map(\n (moduleName) => [moduleName, moduleName] as [string, string]\n ),\n true\n )\n\n const componentsBaseDirs = componentsFullPaths.map(([_, fullPath]) => {\n let rootPath = dirname(fullPath as string)\n while (rootPath.length > 1) {\n const pkg = join(rootPath, 'package.json')\n const hasPkg = existsSync(pkg)\n if (hasPkg) {\n return rootPath\n } else {\n rootPath = join(rootPath, '..')\n }\n }\n throw new Error(`Couldn't find package.json in any path above: ${fullPath}`)\n })\n\n function isInComponentModule(fullPath: string) {\n return componentsBaseDirs.some((componentDir) =>\n fullPath.startsWith(componentDir)\n )\n }\n\n // allows configuration\n const shouldExclude = (path: string, projectRoot: string) => {\n const res = tamaguiOptions.shouldExtract?.(path, projectRoot)\n if (typeof res === 'boolean') {\n return !res\n }\n if (isInComponentModule(path)) {\n return false\n }\n return shouldExcludeDefault(path, projectRoot)\n }\n\n const rnw = tamaguiOptions.useReactNativeWebLite\n ? 'react-native-web-lite'\n : 'react-native-web'\n\n const tamaguiAliases = Object.fromEntries(\n safeResolves([\n ['@tamagui/core/reset.css', '@tamagui/core/reset.css'],\n ['@tamagui/core', '@tamagui/core'],\n ['@tamagui/web', '@tamagui/web'],\n // web specific light react-native-svg, optional, can use svgs but had issues with compat\n ['react-native-svg', '@tamagui/react-native-svg'],\n // fixes https://github.com/kentcdodds/mdx-bundler/issues/143\n ['react/jsx-runtime.js', 'react/jsx-runtime'],\n ['react/jsx-runtime', 'react/jsx-runtime'],\n ['react/jsx-dev-runtime.js', 'react/jsx-dev-runtime'],\n ['react/jsx-dev-runtime', 'react/jsx-dev-runtime'],\n ['react-native-reanimated', 'react-native-reanimated'],\n ['react-native$', rnw],\n ['react-native-web$', rnw],\n ['@testing-library/react-native', '@tamagui/proxy-worm'],\n ['@gorhom/bottom-sheet$', '@gorhom/bottom-sheet'],\n // fix reanimated 3\n ['react-native/Libraries/Renderer/shims/ReactFabric', '@tamagui/proxy-worm'],\n ...(tamaguiOptions.aliasReactPackages\n ? ([\n ['react', 'react'],\n ['react-dom', 'react-dom'],\n ] as any)\n : []),\n ])\n )\n\n const alias = {\n ...(webpackConfig.resolve.alias || {}),\n ...tamaguiAliases,\n }\n\n if (process.env.DEBUG) {\n // eslint-disable-next-line no-console\n console.log('Tamagui alias:', alias)\n }\n\n if (process.env.ANALYZE === 'true') {\n Object.assign(webpackConfig.optimization, {\n concatenateModules: false,\n })\n }\n\n webpackConfig.resolve.alias = alias\n\n webpackConfig.plugins.push(\n new webpack.DefinePlugin({\n 'process.env.IS_STATIC': '\"\"',\n 'process.env.TAMAGUI_TARGET': '\"web\"',\n __DEV__: JSON.stringify(dev),\n })\n )\n\n const excludeExports = tamaguiOptions.excludeReactNativeWebExports\n if (Array.isArray(excludeExports)) {\n try {\n const regexStr = `react-native-web(-lite)?/.*(${excludeExports.join(\n '|'\n )}).*js`\n const regex = new RegExp(regexStr)\n // console.log(prefix, 'exclude', regexStr)\n webpackConfig.plugins.push(\n new webpack.NormalModuleReplacementPlugin(\n regex,\n resolveEsm('@tamagui/proxy-worm')\n )\n )\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn(\n `Invalid names provided to excludeReactNativeWebExports: ${excludeExports.join(\n ', '\n )}`\n )\n }\n }\n\n if (process.env.IGNORE_TS_CONFIG_PATHS) {\n if (process.env.DEBUG) {\n // eslint-disable-next-line no-console\n console.log(prefix, 'ignoring tsconfig paths')\n }\n if (webpackConfig.resolve.plugins[0]) {\n delete webpackConfig.resolve.plugins[0].paths['@tamagui/*']\n delete webpackConfig.resolve.plugins[0].paths['tamagui']\n }\n }\n\n // better shaking for icons:\n if (!isServer) {\n nextConfig.modularizeImports ??= {}\n nextConfig.modularizeImports['@tamagui/lucide-icons'] = {\n transform: `@tamagui/lucide-icons/dist/esm/icons/{{kebabCase member}}`,\n skipDefaultConversion: true,\n }\n }\n\n /**\n * Server react-native compat\n */\n if (isServer) {\n const externalize = (context: string, request: string) => {\n const fullPath = request[0] === '.' ? path.join(context, request) : request\n\n if (tamaguiOptions.shouldExcludeFromServer) {\n const userRes = tamaguiOptions.shouldExcludeFromServer({\n context,\n request,\n fullPath,\n })\n if (userRes !== undefined) {\n return userRes\n }\n }\n\n if (isInComponentModule(fullPath)) {\n return false\n }\n\n if (fullPath.includes('react-native-web')) {\n // always inline react-native-web due to errors where next.js resolved the path to esm\n return false\n }\n\n // must inline react-native so we can alias to react-native-web\n if (\n fullPath === 'react-native' ||\n fullPath.startsWith(`react-native${SEP}`)\n ) {\n return false\n }\n\n if (\n // feather icons uses react-native-svg which needs to be aliased\n // fullPath.includes('/lucide-icons/') ||\n fullPath.startsWith('react-native-web') ||\n fullPath.includes(`node_modules${SEP}react-native-web`) ||\n new RegExp(`^(react-dom|react)${SEP}$`).test(fullPath)\n ) {\n return `commonjs ${fullPath}`\n }\n if (\n fullPath.startsWith('moti') ||\n fullPath.startsWith('solito') ||\n fullPath === 'tamagui' ||\n fullPath.startsWith('@tamagui') ||\n fullPath === 'react-native-safe-area-context' ||\n fullPath === 'expo-linear-gradient' ||\n fullPath.startsWith('@react-navigation') ||\n fullPath.startsWith('@gorhom')\n ) {\n return\n }\n if (/^@?react-native-/.test(request)) {\n return false\n }\n return true\n }\n\n // externalize react native things from bundle\n webpackConfig.externals = [\n ...webpackConfig.externals.map((external) => {\n if (typeof external !== 'function') {\n return external\n }\n // only runs on server\n return (ctx, cb) => {\n const isCb = typeof cb === 'function'\n const res = externalize(ctx.context, ctx.request)\n if (isCb) {\n if (typeof res === 'string') {\n return cb(null, res)\n }\n if (res) {\n return external(ctx, cb)\n }\n return cb()\n }\n return !res\n ? Promise.resolve(undefined)\n : typeof res === 'string'\n ? Promise.resolve(res)\n : external(ctx)\n }\n }),\n ]\n }\n\n /**\n * Non-server support\n */\n const cssRules = webpackConfig.module.rules.find(\n (rule) =>\n Array.isArray(rule.oneOf) &&\n rule.oneOf.some(\n ({ test }) =>\n typeof test === 'object' &&\n typeof test.test === 'function' &&\n test.test('filename.css')\n )\n ).oneOf\n\n /**\n * Font Support\n */\n if (cssRules) {\n if (!tamaguiOptions.disableFontSupport) {\n // fonts support\n cssRules.unshift({\n test: /\\.(woff(2)?|eot|ttf|otf)(\\?v=\\d+\\.\\d+\\.\\d+)?$/,\n use: [\n {\n loader: require.resolve('url-loader'),\n options: {\n limit: nextConfig.inlineFontLimit || 1024,\n fallback: require.resolve('file-loader'),\n publicPath: `${\n nextConfig.assetPrefix || ''\n }/_next/static/chunks/fonts/`,\n outputPath: `${isServer ? '../' : ''}static/chunks/fonts/`,\n name: '[name].[ext]',\n },\n },\n ],\n })\n }\n\n /**\n * CSS Support\n */\n const cssLoader = getGlobalCssLoader(\n // @ts-ignore\n {\n assetPrefix: options.config.assetPrefix || config.assetPrefix,\n future: nextConfig.future,\n experimental: nextConfig.experimental || {},\n isEdgeRuntime: true,\n isProduction: !dev,\n targetWeb: true,\n isClient: !isServer,\n isServer,\n isDevelopment: dev,\n },\n // @ts-ignore\n () => lazyPostCSS(dir, getSupportedBrowsers(dir, dev)),\n []\n )\n\n if (!isAppDir) {\n cssRules.unshift({\n test: tamaguiOptions.includeCSSTest ?? /\\.tamagui\\.css$/,\n sideEffects: true,\n use: cssLoader,\n })\n }\n }\n\n webpackConfig.plugins.push(\n new TamaguiPlugin({\n commonjs: isServer,\n exclude: (path: string) => {\n const res = shouldExclude(path, options.dir)\n // console.log(`shouldExclude`, res, path)\n return res\n },\n disableEsbuildLoader: isAppDir,\n disableModuleJSXEntry: isAppDir,\n ...tamaguiOptions,\n })\n )\n\n if (typeof nextConfig.webpack === 'function') {\n return nextConfig.webpack(webpackConfig, options)\n }\n\n return webpackConfig\n },\n }\n }\n}\n\nfunction getSupportedBrowsers(dir, isDevelopment) {\n let browsers\n try {\n browsers = browserslist.loadConfig({\n path: dir,\n env: isDevelopment ? 'development' : 'production',\n })\n } catch {\n //\n }\n return browsers\n}"],
5
+ "mappings": "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",
6
6
  "names": ["_a", "path"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/next-plugin",
3
- "version": "1.14.9",
3
+ "version": "1.15.0",
4
4
  "source": "src/index.ts",
5
5
  "license": "MIT",
6
6
  "types": "./types/index.d.ts",
@@ -15,15 +15,15 @@
15
15
  "build": "tamagui-build",
16
16
  "watch": "tamagui-build --watch",
17
17
  "lint": "../../node_modules/.bin/rome check src",
18
- "lint:fix": "../../node_modules/.bin/rome check --apply-suggested src",
18
+ "lint:fix": "../../node_modules/.bin/rome check --apply src",
19
19
  "clean": "tamagui-build clean",
20
20
  "clean:build": "tamagui-build clean:build"
21
21
  },
22
22
  "dependencies": {
23
23
  "@babel/preset-react": "^7.18.6",
24
- "@tamagui/proxy-worm": "1.14.9",
25
- "@tamagui/react-native-svg": "1.14.9",
26
- "@tamagui/static": "1.14.9",
24
+ "@tamagui/proxy-worm": "1.15.0",
25
+ "@tamagui/react-native-svg": "1.15.0",
26
+ "@tamagui/static": "1.15.0",
27
27
  "babel-loader": "^8.2.5",
28
28
  "browserslist": "^4.21.1",
29
29
  "css-loader": "^5.2.4",
@@ -31,12 +31,12 @@
31
31
  "esm-resolve": "^1.0.8",
32
32
  "file-loader": "^6.2.0",
33
33
  "html-webpack-plugin": "^5.5.0",
34
- "tamagui-loader": "1.14.9",
34
+ "tamagui-loader": "1.15.0",
35
35
  "thread-loader": "^3.0.4",
36
36
  "url-loader": "^4.1.1"
37
37
  },
38
38
  "devDependencies": {
39
- "@tamagui/build": "1.14.9",
39
+ "@tamagui/build": "1.15.0",
40
40
  "next": "^13.1.4"
41
41
  },
42
42
  "peerDependencies": {
@@ -24,6 +24,7 @@ export type WithTamaguiProps = TamaguiOptions & {
24
24
 
25
25
  export const withTamagui = (tamaguiOptions: WithTamaguiProps) => {
26
26
  return (nextConfig: any = {}) => {
27
+ const isAppDir = nextConfig.experimental.appDir
27
28
  return {
28
29
  ...nextConfig,
29
30
  webpack: (webpackConfig: any, options: any) => {
@@ -374,11 +375,13 @@ export const withTamagui = (tamaguiOptions: WithTamaguiProps) => {
374
375
  []
375
376
  )
376
377
 
377
- cssRules.unshift({
378
- test: tamaguiOptions.includeCSSTest ?? /\.tamagui\.css$/,
379
- sideEffects: true,
380
- use: cssLoader,
381
- })
378
+ if (!isAppDir) {
379
+ cssRules.unshift({
380
+ test: tamaguiOptions.includeCSSTest ?? /\.tamagui\.css$/,
381
+ sideEffects: true,
382
+ use: cssLoader,
383
+ })
384
+ }
382
385
  }
383
386
 
384
387
  webpackConfig.plugins.push(
@@ -389,6 +392,8 @@ export const withTamagui = (tamaguiOptions: WithTamaguiProps) => {
389
392
  // console.log(`shouldExclude`, res, path)
390
393
  return res
391
394
  },
395
+ disableEsbuildLoader: isAppDir,
396
+ disableModuleJSXEntry: isAppDir,
392
397
  ...tamaguiOptions,
393
398
  })
394
399
  )
@@ -414,4 +419,4 @@ function getSupportedBrowsers(dir, isDevelopment) {
414
419
  //
415
420
  }
416
421
  return browsers
417
- }
422
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"withTamagui.d.ts","sourceRoot":"","sources":["../src/withTamagui.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAQrD,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,qBAAqB,EAAE,OAAO,CAAA;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAA;IACrD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAA;IAC1E,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE;QAChC,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;KACjB,KAAK,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,WAAW,mBAAoB,gBAAgB,mBACtC,GAAG,QA0XxB,CAAA"}
1
+ {"version":3,"file":"withTamagui.d.ts","sourceRoot":"","sources":["../src/withTamagui.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAQrD,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,qBAAqB,EAAE,OAAO,CAAA;IAC9B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAA;IACrD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,KAAK,OAAO,GAAG,SAAS,CAAA;IAC1E,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE;QAChC,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,MAAM,CAAA;KACjB,KAAK,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,WAAW,mBAAoB,gBAAgB,mBACtC,GAAG,QA+XxB,CAAA"}