diff --git a/apps/expo/babel.config.js b/apps/expo/babel.config.js
index 73b60ebd19..143cb08582 100644
--- a/apps/expo/babel.config.js
+++ b/apps/expo/babel.config.js
@@ -1,32 +1,15 @@
-const path = require("path");
-const loadConfig = require("tailwindcss/loadConfig");
-
-/** @type {import("tailwindcss").Config | null} */
-let _tailwindConfig = null;
-/**
- * Transpiles tailwind.config.ts for babel
- * Fix until nativewind babel plugin supports tailwind.config.ts files
- */
-function lazyLoadConfig() {
- return (
- _tailwindConfig ?? loadConfig(path.join(__dirname, "tailwind.config.ts"))
- );
-}
-
/** @type {import("@babel/core").ConfigFunction} */
module.exports = function (api) {
api.cache.forever();
return {
- presets: ["babel-preset-expo"],
+ presets: [
+ ["babel-preset-expo", { jsxImportSource: "nativewind" }],
+ "nativewind/babel",
+ ],
plugins: [
- [
- "nativewind/babel",
- {
- tailwindConfig: lazyLoadConfig(),
- },
- ],
require.resolve("expo-router/babel"),
+ require.resolve("react-native-reanimated/plugin"),
],
};
};
diff --git a/apps/expo/metro.config.js b/apps/expo/metro.config.js
index ad6852f7e5..3754383a1d 100644
--- a/apps/expo/metro.config.js
+++ b/apps/expo/metro.config.js
@@ -1,12 +1,14 @@
// Learn more: https://docs.expo.dev/guides/monorepos/
const { getDefaultConfig } = require("@expo/metro-config");
+const { withNativeWind } = require("nativewind/metro");
+
const path = require("path");
const projectRoot = __dirname;
const workspaceRoot = path.resolve(projectRoot, "../..");
// Create the default Metro config
-const config = getDefaultConfig(projectRoot);
+const config = getDefaultConfig(projectRoot, { isCSSEnabled: true });
if (config.resolver) {
// 1. Watch all files within the monorepo
@@ -20,4 +22,8 @@ if (config.resolver) {
config.resolver.disableHierarchicalLookup = true;
}
-module.exports = config;
+// @ts-expect-error - FIXME: type is mismatching?
+module.exports = withNativeWind(config, {
+ input: "./src/styles.css",
+ configPath: "./tailwind.config.ts",
+});
diff --git a/apps/expo/package.json b/apps/expo/package.json
index 05809ab1a1..21c8e41020 100644
--- a/apps/expo/package.json
+++ b/apps/expo/package.json
@@ -27,11 +27,12 @@
"expo-router": "2.0.10",
"expo-splash-screen": "~0.22.0",
"expo-status-bar": "~1.7.1",
- "nativewind": "^2.0.11",
+ "nativewind": "^4.0.5",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-native": "0.72.6",
"react-native-gesture-handler": "~2.12.0",
+ "react-native-reanimated": "~3.3.0",
"react-native-safe-area-context": "4.6.3",
"react-native-screens": "~3.22.1",
"superjson": "2.2.0"
diff --git a/apps/expo/src/app/_layout.tsx b/apps/expo/src/app/_layout.tsx
index c785f8ef96..74a51d06a6 100644
--- a/apps/expo/src/app/_layout.tsx
+++ b/apps/expo/src/app/_layout.tsx
@@ -4,6 +4,8 @@ import { StatusBar } from "expo-status-bar";
import { TRPCProvider } from "~/utils/api";
+import "../styles.css";
+
// This is the main layout of the app
// It wraps your pages with the providers they need
const RootLayout = () => {
diff --git a/apps/expo/src/app/index.tsx b/apps/expo/src/app/index.tsx
index cb9391a924..844233e89b 100644
--- a/apps/expo/src/app/index.tsx
+++ b/apps/expo/src/app/index.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { Button, Text, TextInput, TouchableOpacity, View } from "react-native";
+import { Button, Text, TextInput, Pressable, View } from "react-native";
import { SafeAreaView } from "react-native-safe-area-context";
import { Link, Stack } from "expo-router";
import { FlashList } from "@shopify/flash-list";
@@ -21,17 +21,17 @@ function PostCard(props: {
params: { id: props.post.id },
}}
>
-
+
{props.post.title}
{props.post.content}
-
+
-
+
Delete
-
+
);
}
@@ -76,7 +76,7 @@ function CreatePost() {
{error.data.zodError.fieldErrors.content}
)}
- {
mutate({
@@ -86,7 +86,12 @@ function CreatePost() {
}}
>
Publish post
-
+
+ {error?.data?.code === "UNAUTHORIZED" && (
+
+ You need to be logged in to create a post
+
+ )}
);
}
@@ -105,7 +110,7 @@ const Index = () => {
{/* Changes page title visible on the header */}
-
+
Create T3 Turbo
diff --git a/apps/expo/src/styles.css b/apps/expo/src/styles.css
new file mode 100644
index 0000000000..b5c61c9567
--- /dev/null
+++ b/apps/expo/src/styles.css
@@ -0,0 +1,3 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
diff --git a/apps/expo/src/types/nativewind-env.d.ts b/apps/expo/src/types/nativewind-env.d.ts
new file mode 100644
index 0000000000..a13e3136bb
--- /dev/null
+++ b/apps/expo/src/types/nativewind-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/apps/expo/tailwind.config.ts b/apps/expo/tailwind.config.ts
index 60989680da..6b8f837874 100644
--- a/apps/expo/tailwind.config.ts
+++ b/apps/expo/tailwind.config.ts
@@ -1,8 +1,10 @@
+// @ts-expect-error - no types
+import nativewind from "nativewind/preset";
import type { Config } from "tailwindcss";
import baseConfig from "@acme/tailwind-config";
export default {
content: ["./src/**/*.{ts,tsx}"],
- presets: [baseConfig],
+ presets: [baseConfig, nativewind],
} satisfies Config;
diff --git a/apps/nextjs/postcss.config.cjs b/apps/nextjs/postcss.config.cjs
index a3474d782a..12a703d900 100644
--- a/apps/nextjs/postcss.config.cjs
+++ b/apps/nextjs/postcss.config.cjs
@@ -1,2 +1,6 @@
-// @ts-expect-error - No types for postcss
-module.exports = require("@acme/tailwind-config/postcss");
+module.exports = {
+ plugins: {
+ tailwindcss: {},
+ autoprefixer: {},
+ },
+};
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 36f2ba05d3..34da81243e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -58,7 +58,7 @@ importers:
version: 5.0.2(expo@49.0.16)
expo-router:
specifier: 2.0.10
- version: 2.0.10(expo-constants@14.4.2)(expo-linking@5.0.2)(expo-modules-autolinking@1.5.1)(expo-status-bar@1.7.1)(expo@49.0.16)(metro@0.76.8)(react-dom@18.2.0)(react-native-gesture-handler@2.12.1)(react-native-safe-area-context@4.6.3)(react-native-screens@3.22.1)(react-native@0.72.6)(react@18.2.0)
+ version: 2.0.10(expo-constants@14.4.2)(expo-linking@5.0.2)(expo-modules-autolinking@1.5.1)(expo-status-bar@1.7.1)(expo@49.0.16)(metro@0.76.8)(react-dom@18.2.0)(react-native-gesture-handler@2.12.1)(react-native-reanimated@3.3.0)(react-native-safe-area-context@4.6.3)(react-native-screens@3.22.1)(react-native@0.72.6)(react@18.2.0)
expo-splash-screen:
specifier: ~0.22.0
version: 0.22.0(expo-modules-autolinking@1.5.1)(expo@49.0.16)
@@ -66,8 +66,8 @@ importers:
specifier: ~1.7.1
version: 1.7.1
nativewind:
- specifier: ^2.0.11
- version: 2.0.11(react@18.2.0)(tailwindcss@3.3.5)
+ specifier: ^4.0.5
+ version: 4.0.5(@babel/core@7.23.2)(react-native-reanimated@3.3.0)(react-native-safe-area-context@4.6.3)(react-native@0.72.6)(react@18.2.0)(tailwindcss@3.3.5)
react:
specifier: 18.2.0
version: 18.2.0
@@ -80,6 +80,9 @@ importers:
react-native-gesture-handler:
specifier: ~2.12.0
version: 2.12.1(react-native@0.72.6)(react@18.2.0)
+ react-native-reanimated:
+ specifier: ~3.3.0
+ version: 3.3.0(@babel/core@7.23.2)(@babel/plugin-proposal-nullish-coalescing-operator@7.18.6)(@babel/plugin-proposal-optional-chaining@7.21.0)(@babel/plugin-transform-arrow-functions@7.22.5)(@babel/plugin-transform-shorthand-properties@7.22.5)(@babel/plugin-transform-template-literals@7.22.5)(react-native@0.72.6)(react@18.2.0)
react-native-safe-area-context:
specifier: 4.6.3
version: 4.6.3(react-native@0.72.6)(react@18.2.0)
@@ -419,9 +422,6 @@ importers:
autoprefixer:
specifier: ^10.4.16
version: 10.4.16(postcss@8.4.31)
- postcss:
- specifier: 8.4.31
- version: 8.4.31
tailwindcss:
specifier: 3.3.5
version: 3.3.5
@@ -526,16 +526,6 @@ packages:
transitivePeerDependencies:
- supports-color
- /@babel/generator@7.21.5:
- resolution: {integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.23.0
- '@jridgewell/gen-mapping': 0.3.3
- '@jridgewell/trace-mapping': 0.3.18
- jsesc: 2.5.2
- dev: false
-
/@babel/generator@7.23.0:
resolution: {integrity: sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g==}
engines: {node: '>=6.9.0'}
@@ -632,13 +622,6 @@ packages:
dependencies:
'@babel/types': 7.23.0
- /@babel/helper-module-imports@7.18.6:
- resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/types': 7.23.0
- dev: false
-
/@babel/helper-module-imports@7.22.15:
resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==}
engines: {node: '>=6.9.0'}
@@ -1416,6 +1399,16 @@ packages:
'@babel/helper-plugin-utils': 7.22.5
'@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.2)
+ /@babel/plugin-transform-object-assign@7.22.5(@babel/core@7.23.2):
+ resolution: {integrity: sha512-iDhx9ARkXq4vhZ2CYOSnQXkmxkDgosLi3J8Z17mKz7LyzthtkdVchLD7WZ3aXeCuvJDOW3+1I5TpJmwIbF9MKQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.23.2
+ '@babel/helper-plugin-utils': 7.22.5
+ dev: false
+
/@babel/plugin-transform-object-rest-spread@7.22.15(@babel/core@7.23.2):
resolution: {integrity: sha512-fEB+I1+gAmfAyxZcX1+ZUwLeAuuf8VIg67CTznZE0MqVFumWkh8xWtn58I4dxdVf080wn7gzWoF8vndOViJe9Q==}
engines: {node: '>=6.9.0'}
@@ -1860,15 +1853,6 @@ packages:
transitivePeerDependencies:
- supports-color
- /@babel/types@7.19.0:
- resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==}
- engines: {node: '>=6.9.0'}
- dependencies:
- '@babel/helper-string-parser': 7.22.5
- '@babel/helper-validator-identifier': 7.22.20
- to-fast-properties: 2.0.0
- dev: false
-
/@babel/types@7.23.0:
resolution: {integrity: sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg==}
engines: {node: '>=6.9.0'}
@@ -4405,6 +4389,22 @@ packages:
resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==}
dev: false
+ /babel-plugin-tester@11.0.4(@babel/core@7.23.2):
+ resolution: {integrity: sha512-cqswtpSPo0e++rZB0l/54EG17LL25l9gLgh59yXfnmNxX+2lZTIOpx2zt4YI9QIClVXc8xf63J6yWwKkzy0jNg==}
+ engines: {node: ^14.20.0 || ^16.16.0 || >=18.5.0}
+ peerDependencies:
+ '@babel/core': '>=7.11.6'
+ dependencies:
+ '@babel/core': 7.23.2
+ core-js: 3.33.2
+ debug: 4.3.4
+ lodash.mergewith: 4.6.2
+ prettier: 2.8.8
+ strip-indent: 3.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
/babel-plugin-transform-flow-enums@0.0.2(@babel/core@7.23.2):
resolution: {integrity: sha512-g4aaCrDDOsWjbm0PUUeVnkcVd6AKJsVc/MbnPhEotEpkeJQP6b8nzewohQi7+QS8UyPehOhGWn0nOwjvWpmMvQ==}
dependencies:
@@ -4716,10 +4716,6 @@ packages:
engines: {node: '>=14.16'}
dev: true
- /camelize@1.0.1:
- resolution: {integrity: sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==}
- dev: false
-
/caniuse-lite@1.0.30001538:
resolution: {integrity: sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==}
dev: false
@@ -5054,6 +5050,11 @@ packages:
requiresBuild: true
dev: true
+ /core-js@3.33.2:
+ resolution: {integrity: sha512-XeBzWI6QL3nJQiHmdzbAOiMYqjrb7hwU7A39Qhvd/POSa/t9E1AeZyEZx3fNvp/vtM8zXwhoL0FsiS0hD0pruQ==}
+ requiresBuild: true
+ dev: false
+
/core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
dev: false
@@ -5113,23 +5114,6 @@ packages:
engines: {node: '>=8'}
dev: false
- /css-color-keywords@1.0.0:
- resolution: {integrity: sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==}
- engines: {node: '>=4'}
- dev: false
-
- /css-mediaquery@0.1.2:
- resolution: {integrity: sha512-COtn4EROW5dBGlE/4PiKnh6rZpAPxDeFLaEEwt4i10jpDMFt2EhQGS79QmmrO+iKCHv0PU/HrOWEhijFd1x99Q==}
- dev: false
-
- /css-to-react-native@3.2.0:
- resolution: {integrity: sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==}
- dependencies:
- camelize: 1.0.1
- css-color-keywords: 1.0.0
- postcss-value-parser: 4.2.0
- dev: false
-
/cssesc@3.0.0:
resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
engines: {node: '>=4'}
@@ -6207,7 +6191,7 @@ packages:
invariant: 2.2.4
dev: false
- /expo-router@2.0.10(expo-constants@14.4.2)(expo-linking@5.0.2)(expo-modules-autolinking@1.5.1)(expo-status-bar@1.7.1)(expo@49.0.16)(metro@0.76.8)(react-dom@18.2.0)(react-native-gesture-handler@2.12.1)(react-native-safe-area-context@4.6.3)(react-native-screens@3.22.1)(react-native@0.72.6)(react@18.2.0):
+ /expo-router@2.0.10(expo-constants@14.4.2)(expo-linking@5.0.2)(expo-modules-autolinking@1.5.1)(expo-status-bar@1.7.1)(expo@49.0.16)(metro@0.76.8)(react-dom@18.2.0)(react-native-gesture-handler@2.12.1)(react-native-reanimated@3.3.0)(react-native-safe-area-context@4.6.3)(react-native-screens@3.22.1)(react-native@0.72.6)(react@18.2.0):
resolution: {integrity: sha512-5x+/CKfgPpCm6mSsPvI1EWifuN3fKpj2wrCyDZpgWm8lo0eIxGIvLW2aNU7eK5N0jFWAW5GyrLRO4rHkAomzIg==}
peerDependencies:
'@react-navigation/drawer': ^6.5.8
@@ -6245,6 +6229,7 @@ packages:
query-string: 7.1.3
react-helmet-async: 1.3.0(react-dom@18.2.0)(react@18.2.0)
react-native-gesture-handler: 2.12.1(react-native@0.72.6)(react@18.2.0)
+ react-native-reanimated: 3.3.0(@babel/core@7.23.2)(@babel/plugin-proposal-nullish-coalescing-operator@7.18.6)(@babel/plugin-proposal-optional-chaining@7.21.0)(@babel/plugin-transform-arrow-functions@7.22.5)(@babel/plugin-transform-shorthand-properties@7.22.5)(@babel/plugin-transform-template-literals@7.22.5)(react-native@0.72.6)(react@18.2.0)
react-native-safe-area-context: 4.6.3(react-native@0.72.6)(react@18.2.0)
react-native-screens: 3.22.1(react-native@0.72.6)(react@18.2.0)
schema-utils: 4.2.0
@@ -6327,10 +6312,6 @@ packages:
type: 2.7.2
dev: true
- /extend@3.0.2:
- resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
- dev: false
-
/external-editor@3.1.0:
resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==}
engines: {node: '>=4'}
@@ -7737,6 +7718,15 @@ packages:
dev: false
optional: true
+ /lightningcss-darwin-arm64@1.22.0:
+ resolution: {integrity: sha512-aH2be3nNny+It5YEVm8tBSSdRlBVWQV8m2oJ7dESiYRzyY/E/bQUe2xlw5caaMuhlM9aoTMtOH25yzMhir0qPg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/lightningcss-darwin-x64@1.19.0:
resolution: {integrity: sha512-Lif1wD6P4poaw9c/4Uh2z+gmrWhw/HtXFoeZ3bEsv6Ia4tt8rOJBdkfVaUJ6VXmpKHALve+iTyP2+50xY1wKPw==}
engines: {node: '>= 12.0.0'}
@@ -7746,6 +7736,24 @@ packages:
dev: false
optional: true
+ /lightningcss-darwin-x64@1.22.0:
+ resolution: {integrity: sha512-9KHRFA0Y6mNxRHeoQMp0YaI0R0O2kOgUlYPRjuasU4d+pI8NRhVn9bt0yX9VPs5ibWX1RbDViSPtGJvYYrfVAQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /lightningcss-freebsd-x64@1.22.0:
+ resolution: {integrity: sha512-xaYL3xperGwD85rQioDb52ozF3NAJb+9wrge3jD9lxGffplu0Mn35rXMptB8Uc2N9Mw1i3Bvl7+z1evlqVl7ww==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/lightningcss-linux-arm-gnueabihf@1.19.0:
resolution: {integrity: sha512-P15VXY5682mTXaiDtbnLYQflc8BYb774j2R84FgDLJTN6Qp0ZjWEFyN1SPqyfTj2B2TFjRHRUvQSSZ7qN4Weig==}
engines: {node: '>= 12.0.0'}
@@ -7755,6 +7763,15 @@ packages:
dev: false
optional: true
+ /lightningcss-linux-arm-gnueabihf@1.22.0:
+ resolution: {integrity: sha512-epQGvXIjOuxrZpMpMnRjK54ZqzhiHhCPLtHvw2fb6NeK2kK9YtF0wqmeTBiQ1AkbWfnnXGTstYaFNiadNK+StQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/lightningcss-linux-arm64-gnu@1.19.0:
resolution: {integrity: sha512-zwXRjWqpev8wqO0sv0M1aM1PpjHz6RVIsBcxKszIG83Befuh4yNysjgHVplF9RTU7eozGe3Ts7r6we1+Qkqsww==}
engines: {node: '>= 12.0.0'}
@@ -7764,6 +7781,15 @@ packages:
dev: false
optional: true
+ /lightningcss-linux-arm64-gnu@1.22.0:
+ resolution: {integrity: sha512-AArGtKSY4DGTA8xP8SDyNyKtpsUl1Rzq6FW4JomeyUQ4nBrR71uPChksTpj3gmWuGhZeRKLeCUI1DBid/zhChg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/lightningcss-linux-arm64-musl@1.19.0:
resolution: {integrity: sha512-vSCKO7SDnZaFN9zEloKSZM5/kC5gbzUjoJQ43BvUpyTFUX7ACs/mDfl2Eq6fdz2+uWhUh7vf92c4EaaP4udEtA==}
engines: {node: '>= 12.0.0'}
@@ -7773,6 +7799,15 @@ packages:
dev: false
optional: true
+ /lightningcss-linux-arm64-musl@1.22.0:
+ resolution: {integrity: sha512-RRraNgP8hnBPhInTTUdlFm+z16C/ghbxBG51Sw00hd7HUyKmEUKRozyc5od+/N6pOrX/bIh5vIbtMXIxsos0lg==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/lightningcss-linux-x64-gnu@1.19.0:
resolution: {integrity: sha512-0AFQKvVzXf9byrXUq9z0anMGLdZJS+XSDqidyijI5njIwj6MdbvX2UZK/c4FfNmeRa2N/8ngTffoIuOUit5eIQ==}
engines: {node: '>= 12.0.0'}
@@ -7782,6 +7817,15 @@ packages:
dev: false
optional: true
+ /lightningcss-linux-x64-gnu@1.22.0:
+ resolution: {integrity: sha512-grdrhYGRi2KrR+bsXJVI0myRADqyA7ekprGxiuK5QRNkv7kj3Yq1fERDNyzZvjisHwKUi29sYMClscbtl+/Zpw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/lightningcss-linux-x64-musl@1.19.0:
resolution: {integrity: sha512-SJoM8CLPt6ECCgSuWe+g0qo8dqQYVcPiW2s19dxkmSI5+Uu1GIRzyKA0b7QqmEXolA+oSJhQqCmJpzjY4CuZAg==}
engines: {node: '>= 12.0.0'}
@@ -7791,6 +7835,15 @@ packages:
dev: false
optional: true
+ /lightningcss-linux-x64-musl@1.22.0:
+ resolution: {integrity: sha512-t5f90X+iQUtIyR56oXIHMBUyQFX/zwmPt72E6Dane3P8KNGlkijTg2I75XVQS860gNoEFzV7Mm5ArRRA7u5CAQ==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/lightningcss-win32-x64-msvc@1.19.0:
resolution: {integrity: sha512-C+VuUTeSUOAaBZZOPT7Etn/agx/MatzJzGRkeV+zEABmPuntv1zihncsi+AyGmjkkzq3wVedEy7h0/4S84mUtg==}
engines: {node: '>= 12.0.0'}
@@ -7800,6 +7853,15 @@ packages:
dev: false
optional: true
+ /lightningcss-win32-x64-msvc@1.22.0:
+ resolution: {integrity: sha512-64HTDtOOZE9PUCZJiZZQpyqXBbdby1lnztBccnqh+NtbKxjnGzP92R2ngcgeuqMPecMNqNWxgoWgTGpC+yN5Sw==}
+ engines: {node: '>= 12.0.0'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: false
+ optional: true
+
/lightningcss@1.19.0:
resolution: {integrity: sha512-yV5UR7og+Og7lQC+70DA7a8ta1uiOPnWPJfxa0wnxylev5qfo4P+4iMpzWAdYWOca4jdNQZii+bDL/l+4hUXIA==}
engines: {node: '>= 12.0.0'}
@@ -7816,6 +7878,23 @@ packages:
lightningcss-win32-x64-msvc: 1.19.0
dev: false
+ /lightningcss@1.22.0:
+ resolution: {integrity: sha512-+z0qvwRVzs4XGRXelnWRNwqsXUx8k3bSkbP8vD42kYKSk3z9OM2P3e/gagT7ei/gwh8DTS80LZOFZV6lm8Z8Fg==}
+ engines: {node: '>= 12.0.0'}
+ dependencies:
+ detect-libc: 1.0.3
+ optionalDependencies:
+ lightningcss-darwin-arm64: 1.22.0
+ lightningcss-darwin-x64: 1.22.0
+ lightningcss-freebsd-x64: 1.22.0
+ lightningcss-linux-arm-gnueabihf: 1.22.0
+ lightningcss-linux-arm64-gnu: 1.22.0
+ lightningcss-linux-arm64-musl: 1.22.0
+ lightningcss-linux-x64-gnu: 1.22.0
+ lightningcss-linux-x64-musl: 1.22.0
+ lightningcss-win32-x64-msvc: 1.22.0
+ dev: false
+
/lilconfig@2.1.0:
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
engines: {node: '>=10'}
@@ -7854,6 +7933,10 @@ packages:
/lodash.merge@4.6.2:
resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+ /lodash.mergewith@4.6.2:
+ resolution: {integrity: sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==}
+ dev: false
+
/lodash.throttle@4.1.1:
resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
@@ -8355,6 +8438,11 @@ packages:
resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
engines: {node: '>=6'}
+ /min-indent@1.0.1:
+ resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
+ engines: {node: '>=4'}
+ dev: false
+
/minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
dependencies:
@@ -8474,28 +8562,26 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
- /nativewind@2.0.11(react@18.2.0)(tailwindcss@3.3.5):
- resolution: {integrity: sha512-qCEXUwKW21RYJ33KRAJl3zXq2bCq82WoI564fI21D/TiqhfmstZOqPN53RF8qK1NDK6PGl56b2xaTxgObEePEg==}
- engines: {node: '>=14.18'}
+ /nativewind@4.0.5(@babel/core@7.23.2)(react-native-reanimated@3.3.0)(react-native-safe-area-context@4.6.3)(react-native@0.72.6)(react@18.2.0)(tailwindcss@3.3.5):
+ resolution: {integrity: sha512-yfm2zyBU2Hh0FOM8wMCJWueyNBpkc4yoEM7pAX2Zv01s0CESF+w3Rz3pSWs0UXw7MlmfeK9blAq5p1Qtg8kpjA==}
+ engines: {node: '>=16'}
peerDependencies:
- tailwindcss: ~3
+ react-native-reanimated: '>=3.3.0'
+ tailwindcss: '>3.3.0'
+ peerDependenciesMeta:
+ react-native-reanimated:
+ optional: true
dependencies:
- '@babel/generator': 7.21.5
- '@babel/helper-module-imports': 7.18.6
- '@babel/types': 7.19.0
- css-mediaquery: 0.1.2
- css-to-react-native: 3.2.0
- micromatch: 4.0.5
- postcss: 8.4.26
- postcss-calc: 8.2.4(postcss@8.4.26)
- postcss-color-functional-notation: 4.2.4(postcss@8.4.26)
- postcss-css-variables: 0.18.0(postcss@8.4.26)
- postcss-nested: 5.0.6(postcss@8.4.26)
- react-is: 18.2.0
+ react-native-css-interop: 0.0.5(@babel/core@7.23.2)(react-native-reanimated@3.3.0)(react-native-safe-area-context@4.6.3)(react-native@0.72.6)(react@18.2.0)(tailwindcss@3.3.5)
+ react-native-reanimated: 3.3.0(@babel/core@7.23.2)(@babel/plugin-proposal-nullish-coalescing-operator@7.18.6)(@babel/plugin-proposal-optional-chaining@7.21.0)(@babel/plugin-transform-arrow-functions@7.22.5)(@babel/plugin-transform-shorthand-properties@7.22.5)(@babel/plugin-transform-template-literals@7.22.5)(react-native@0.72.6)(react@18.2.0)
tailwindcss: 3.3.5
- use-sync-external-store: 1.2.0(react@18.2.0)
transitivePeerDependencies:
+ - '@babel/core'
- react
+ - react-native
+ - react-native-safe-area-context
+ - react-native-svg
+ - supports-color
dev: false
/natural-compare@1.4.0:
@@ -9140,37 +9226,6 @@ packages:
engines: {node: '>=4.0.0'}
dev: false
- /postcss-calc@8.2.4(postcss@8.4.26):
- resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==}
- peerDependencies:
- postcss: ^8.2.2
- dependencies:
- postcss: 8.4.26
- postcss-selector-parser: 6.0.12
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-color-functional-notation@4.2.4(postcss@8.4.26):
- resolution: {integrity: sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==}
- engines: {node: ^12 || ^14 || >=16}
- peerDependencies:
- postcss: ^8.2
- dependencies:
- postcss: 8.4.26
- postcss-value-parser: 4.2.0
- dev: false
-
- /postcss-css-variables@0.18.0(postcss@8.4.26):
- resolution: {integrity: sha512-lYS802gHbzn1GI+lXvy9MYIYDuGnl1WB4FTKoqMQqJ3Mab09A7a/1wZvGTkCEZJTM8mSbIyb1mJYn8f0aPye0Q==}
- peerDependencies:
- postcss: ^8.2.6
- dependencies:
- balanced-match: 1.0.2
- escape-string-regexp: 1.0.5
- extend: 3.0.2
- postcss: 8.4.26
- dev: false
-
/postcss-import@15.1.0(postcss@8.4.31):
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'}
@@ -9207,16 +9262,6 @@ packages:
postcss: 8.4.31
yaml: 2.2.2
- /postcss-nested@5.0.6(postcss@8.4.26):
- resolution: {integrity: sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==}
- engines: {node: '>=12.0'}
- peerDependencies:
- postcss: ^8.2.14
- dependencies:
- postcss: 8.4.26
- postcss-selector-parser: 6.0.12
- dev: false
-
/postcss-nested@6.0.1(postcss@8.4.31):
resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==}
engines: {node: '>=12.0'}
@@ -9326,6 +9371,12 @@ packages:
prettier: 3.0.3
dev: false
+ /prettier@2.8.8:
+ resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ dev: false
+
/prettier@3.0.3:
resolution: {integrity: sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==}
engines: {node: '>=14'}
@@ -9572,6 +9623,37 @@ packages:
resolution: {integrity: sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==}
dev: false
+ /react-native-css-interop@0.0.5(@babel/core@7.23.2)(react-native-reanimated@3.3.0)(react-native-safe-area-context@4.6.3)(react-native@0.72.6)(react@18.2.0)(tailwindcss@3.3.5):
+ resolution: {integrity: sha512-Rr0300TFNnsXxf4zxE+bPyflwg2PvSIDrzOFqDQcgCODmZLNdFRW6qTl/vlmNtTImuobD6HijsPoivt+PoP+zQ==}
+ engines: {node: '>=16'}
+ peerDependencies:
+ react: '>=18'
+ react-native: '*'
+ react-native-reanimated: '>=3.3.0'
+ react-native-safe-area-context: '>=4'
+ react-native-svg: '*'
+ tailwindcss: ~3
+ peerDependenciesMeta:
+ react-native-safe-area-context:
+ optional: true
+ react-native-svg:
+ optional: true
+ dependencies:
+ '@babel/helper-module-imports': 7.22.15
+ '@babel/traverse': 7.23.2
+ '@babel/types': 7.23.0
+ babel-plugin-tester: 11.0.4(@babel/core@7.23.2)
+ lightningcss: 1.22.0
+ react: 18.2.0
+ react-native: 0.72.6(@babel/core@7.23.2)(@babel/preset-env@7.23.2)(react@18.2.0)
+ react-native-reanimated: 3.3.0(@babel/core@7.23.2)(@babel/plugin-proposal-nullish-coalescing-operator@7.18.6)(@babel/plugin-proposal-optional-chaining@7.21.0)(@babel/plugin-transform-arrow-functions@7.22.5)(@babel/plugin-transform-shorthand-properties@7.22.5)(@babel/plugin-transform-template-literals@7.22.5)(react-native@0.72.6)(react@18.2.0)
+ react-native-safe-area-context: 4.6.3(react-native@0.72.6)(react@18.2.0)
+ tailwindcss: 3.3.5
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
+ dev: false
+
/react-native-gesture-handler@2.12.1(react-native@0.72.6)(react@18.2.0):
resolution: {integrity: sha512-deqh36bw82CFUV9EC4tTo2PP1i9HfCOORGS3Zmv71UYhEZEHkzZv18IZNPB+2Awzj45vLIidZxGYGFxHlDSQ5A==}
peerDependencies:
@@ -9587,6 +9669,32 @@ packages:
react-native: 0.72.6(@babel/core@7.23.2)(@babel/preset-env@7.23.2)(react@18.2.0)
dev: false
+ /react-native-reanimated@3.3.0(@babel/core@7.23.2)(@babel/plugin-proposal-nullish-coalescing-operator@7.18.6)(@babel/plugin-proposal-optional-chaining@7.21.0)(@babel/plugin-transform-arrow-functions@7.22.5)(@babel/plugin-transform-shorthand-properties@7.22.5)(@babel/plugin-transform-template-literals@7.22.5)(react-native@0.72.6)(react@18.2.0):
+ resolution: {integrity: sha512-LzfpPZ1qXBGy5BcUHqw3pBC0qSd22qXS3t8hWSbozXNrBkzMhhOrcILE/nEg/PHpNNp1xvGOW8NwpAMF006roQ==}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ '@babel/plugin-proposal-nullish-coalescing-operator': ^7.0.0-0
+ '@babel/plugin-proposal-optional-chaining': ^7.0.0-0
+ '@babel/plugin-transform-arrow-functions': ^7.0.0-0
+ '@babel/plugin-transform-shorthand-properties': ^7.0.0-0
+ '@babel/plugin-transform-template-literals': ^7.0.0-0
+ react: '*'
+ react-native: '*'
+ dependencies:
+ '@babel/core': 7.23.2
+ '@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.23.2)
+ '@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.23.2)
+ '@babel/plugin-transform-arrow-functions': 7.22.5(@babel/core@7.23.2)
+ '@babel/plugin-transform-object-assign': 7.22.5(@babel/core@7.23.2)
+ '@babel/plugin-transform-shorthand-properties': 7.22.5(@babel/core@7.23.2)
+ '@babel/plugin-transform-template-literals': 7.22.5(@babel/core@7.23.2)
+ '@babel/preset-typescript': 7.21.5(@babel/core@7.23.2)
+ convert-source-map: 2.0.0
+ invariant: 2.2.4
+ react: 18.2.0
+ react-native: 0.72.6(@babel/core@7.23.2)(@babel/preset-env@7.23.2)(react@18.2.0)
+ dev: false
+
/react-native-safe-area-context@4.6.3(react-native@0.72.6)(react@18.2.0):
resolution: {integrity: sha512-3CeZM9HFXkuqiU9HqhOQp1yxhXw6q99axPWrT+VJkITd67gnPSU03+U27Xk2/cr9XrLUnakM07kj7H0hdPnFiQ==}
peerDependencies:
@@ -10413,6 +10521,13 @@ packages:
resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
engines: {node: '>=6'}
+ /strip-indent@3.0.0:
+ resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ min-indent: 1.0.1
+ dev: false
+
/strip-json-comments@2.0.1:
resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==}
engines: {node: '>=0.10.0'}
diff --git a/tooling/tailwind/package.json b/tooling/tailwind/package.json
index 032b126820..a62c57de28 100644
--- a/tooling/tailwind/package.json
+++ b/tooling/tailwind/package.json
@@ -5,8 +5,7 @@
"main": "index.ts",
"license": "MIT",
"files": [
- "index.ts",
- "postcss.js"
+ "index.ts"
],
"scripts": {
"clean": "rm -rf .turbo node_modules",
@@ -16,7 +15,6 @@
},
"dependencies": {
"autoprefixer": "^10.4.16",
- "postcss": "8.4.31",
"tailwindcss": "3.3.5"
},
"devDependencies": {
diff --git a/tooling/tailwind/postcss.js b/tooling/tailwind/postcss.js
deleted file mode 100644
index 12a703d900..0000000000
--- a/tooling/tailwind/postcss.js
+++ /dev/null
@@ -1,6 +0,0 @@
-module.exports = {
- plugins: {
- tailwindcss: {},
- autoprefixer: {},
- },
-};