replace all stylesheets with tailwind classes

This commit is contained in:
Jorrin
2024-01-23 21:56:17 +01:00
parent 8a48a1cce4
commit 26a1b623e7
25 changed files with 148 additions and 285 deletions

1
apps/mobile/app.d.ts vendored Normal file
View File

@@ -0,0 +1 @@
/// <reference types="nativewind/types" />

View File

@@ -1,10 +1,16 @@
import { Tabs } from 'expo-router';
import { NativeWindStyleSheet } from 'nativewind';
import TabBarIcon from '../../components/TabBarIcon';
import Colors from '../../constants/Colors.js';
import { globalStyles } from '../../styles/global';
import useTailwind from '../hooks/useTailwind';
NativeWindStyleSheet.setOutput({
default: 'native',
});
export default function TabLayout() {
const { colors } = useTailwind();
return (
<Tabs
sceneContainerStyle={{
@@ -12,9 +18,9 @@ export default function TabLayout() {
}}
screenOptions={{
headerShown: false,
tabBarActiveTintColor: Colors.purple[100],
tabBarActiveTintColor: colors.purple[100],
tabBarStyle: {
backgroundColor: Colors.shade[700],
backgroundColor: colors.shade[700],
borderTopColor: 'transparent',
borderTopRightRadius: 20,
borderTopLeftRadius: 20,
@@ -55,7 +61,6 @@ export default function TabLayout() {
options={{
title: 'Search',
tabBarLabel: '',
tabBarShowLabel: false,
tabBarLabelStyle: {
display: 'none',
},
@@ -65,7 +70,7 @@ export default function TabLayout() {
style={{
position: 'relative',
top: -1,
backgroundColor: Colors.purple[400],
backgroundColor: colors.purple[400],
display: 'flex',
alignItems: 'center',
justifyContent: 'center',

View File

@@ -1,5 +1,5 @@
import ScreenLayout from '../../components/layout/ScreenLayout';
import { RegularText } from '../../components/ui/Text';
import { StyledText } from '../../components/ui/Styled';
export default function AboutScreen() {
return (
@@ -7,10 +7,10 @@ export default function AboutScreen() {
title="About"
subtitle="What is movie-web and how content is served?"
>
<RegularText className="text-white">
<StyledText>
No content is served from movie-web directly and movie web does not host
anything.
</RegularText>
</StyledText>
</ScreenLayout>
);
}

View File

@@ -1,5 +1,5 @@
import ScreenLayout from '../../components/layout/ScreenLayout';
import { RegularText } from '../../components/ui/Text';
import { StyledText } from '../../components/ui/Styled';
export default function AccountScreen() {
return (
@@ -7,9 +7,7 @@ export default function AccountScreen() {
title="Account"
subtitle="Manage your movie web account from here"
>
<RegularText className="text-white">
Hey Bro! what are you up to?
</RegularText>
<StyledText>Hey Bro! what are you up to?</StyledText>
</ScreenLayout>
);
}

View File

@@ -1,12 +1,10 @@
import ScreenLayout from '../../components/layout/ScreenLayout';
import { RegularText } from '../../components/ui/Text';
import { StyledText } from '../../components/ui/Styled';
export default function HomeScreen() {
return (
<ScreenLayout title="Home" subtitle="This is where all magic happens">
<RegularText className="text-white">
Movies will be listed here
</RegularText>
<StyledText>Movies will be listed here</StyledText>
</ScreenLayout>
);
}

View File

@@ -1,13 +1,13 @@
import { FontAwesome5 } from '@expo/vector-icons';
import { useFocusEffect } from 'expo-router';
import { useCallback, useRef, useState } from 'react';
import { View } from 'react-native';
import { TextInput } from 'react-native-gesture-handler';
import Colors from '../../../constants/Colors.js';
import { globalStyles } from '../../../styles/global';
import { StyledView } from '../../../components/ui/Styled';
import useTailwind from '../../hooks/useTailwind';
export default function Searchbar() {
const { colors } = useTailwind();
const [keyword, setKeyword] = useState('');
const inputRef = useRef<TextInput>(null);
@@ -25,19 +25,19 @@ export default function Searchbar() {
);
return (
<View className="mb-6 mt-4 flex-row items-center rounded-full border">
<View className="ml-1 w-12 items-center justify-center">
<FontAwesome5 name="search" size={18} color={Colors.shade[200]} />
</View>
<StyledView className="mb-6 mt-4 flex-row items-center rounded-full border">
<StyledView className="ml-1 w-12 items-center justify-center">
<FontAwesome5 name="search" size={18} color={colors.shade[200]} />
</StyledView>
<TextInput
value={keyword}
autoFocus
onChangeText={(text) => setKeyword(text)}
ref={inputRef}
placeholder="What are you looking for?"
placeholderTextColor={Colors.shade[200]}
className="rounded-3xl py-3 pr-5 text-white"
placeholderTextColor={colors.shade[200]}
className="w-full rounded-3xl py-3 pr-5 text-white"
/>
</View>
</StyledView>
);
}

View File

@@ -1,40 +1,33 @@
import { useFocusEffect } from 'expo-router';
import { useCallback, useEffect, useRef, useState } from 'react';
import { Dimensions, ScrollView, View } from 'react-native';
import { TextInput } from 'react-native-gesture-handler';
import { ScrollView } from 'react-native';
import Searchbar from './Searchbar';
import styles from './styles';
import Item from '../../../components/item/item';
import ScreenLayout from '../../../components/layout/ScreenLayout';
import { BoldText } from '../../../components/ui/Text';
import { globalStyles } from '../../../styles/global';
import { StyledText, StyledView } from '../../../components/ui/Styled';
export default function SearchScreen() {
return (
<ScrollView>
<ScreenLayout
title={
<View className="flex-row items-center">
<BoldText className="text-2xl font-bold text-white">
Search
</BoldText>
</View>
<StyledView className="flex-row items-center">
<StyledText className="text-2xl font-bold">Search</StyledText>
</StyledView>
}
subtitle="Looking for something?"
>
<Searchbar />
<View className="flex w-full flex-1 flex-row flex-wrap justify-start">
<View className="basis-1/2 px-3 pb-3">
<StyledView className="flex w-full flex-1 flex-row flex-wrap justify-start">
<StyledView className="basis-1/2 px-3 pb-3">
<Item />
</View>
<View className="basis-1/2 px-3 pb-3">
</StyledView>
<StyledView className="basis-1/2 px-3 pb-3">
<Item />
</View>
<View className="basis-1/2 px-3 pb-3">
</StyledView>
<StyledView className="basis-1/2 px-3 pb-3">
<Item />
</View>
</View>
</StyledView>
</StyledView>
</ScreenLayout>
</ScrollView>
);

View File

@@ -1,19 +0,0 @@
import { StyleSheet } from 'react-native';
const styles = StyleSheet.create({
items: {
display: 'flex',
flexWrap: 'wrap',
justifyContent: 'flex-start',
width: '100%',
flexDirection: 'row',
flex: 1,
},
itemOuter: {
flexBasis: '50%',
paddingHorizontal: 12,
paddingBottom: 12,
},
});
export default styles;

View File

@@ -1,12 +1,10 @@
import ScreenLayout from '../../components/layout/ScreenLayout';
import { RegularText } from '../../components/ui/Text';
import { StyledText } from '../../components/ui/Styled';
export default function SettingsScreen() {
return (
<ScreenLayout title="Settings" subtitle="Need to change something?">
<RegularText className="text-white">
Settings would be listed in here. Coming soon
</RegularText>
<StyledText>Settings would be listed in here. Coming soon</StyledText>
</ScreenLayout>
);
}

View File

@@ -1,23 +1,22 @@
import { Link, Stack } from 'expo-router';
import { View } from 'react-native';
import { BoldText, RegularText } from '../components/ui/Text';
import { StyledText, StyledView } from '../components/ui/Styled';
export default function NotFoundScreen() {
return (
<>
<Stack.Screen options={{ title: 'Oops!' }} />
<View className="flex-1 items-center justify-center p-5">
<BoldText className="text-lg font-bold">
<StyledView className="flex-1 items-center justify-center p-5">
<StyledText className="text-lg font-bold">
This screen doesn&apos;t exist.
</BoldText>
</StyledText>
<Link href="/" className="mt-4 py-4">
<RegularText className="text-sm text-sky-500">
<StyledText className="text-sm text-sky-500">
Go to home screen!
</RegularText>
</StyledText>
</Link>
</View>
</StyledView>
</>
);
}

View File

@@ -10,7 +10,7 @@ import { SplashScreen, Stack } from 'expo-router';
import { useEffect } from 'react';
import { useColorScheme } from 'react-native';
import Colors from '../constants/Colors.js';
import useTailwind from './hooks/useTailwind';
export {
// Catch any errors thrown by the Layout component.
@@ -57,6 +57,7 @@ export default function RootLayout() {
function RootLayoutNav() {
const colorScheme = useColorScheme();
const { colors } = useTailwind();
return (
<ThemeProvider value={colorScheme === 'dark' ? DarkTheme : DefaultTheme}>
@@ -65,7 +66,7 @@ function RootLayoutNav() {
gestureEnabled: true,
headerShown: false,
contentStyle: {
backgroundColor: Colors.shade[900],
backgroundColor: colors.shade[900],
},
}}
>

View File

@@ -0,0 +1,13 @@
import { useMemo } from 'react';
import resolveConfig from 'tailwindcss/resolveConfig';
import tailwindConfig from '../../tailwind.config.js';
const useTailwind = () => {
const tailwind = useMemo(() => resolveConfig(tailwindConfig), []);
return {
colors: tailwind.theme.colors,
};
};
export default useTailwind;

View File

@@ -1,20 +1,16 @@
import { FontAwesome } from '@expo/vector-icons';
import Colors from '../constants/Colors.js';
import useTailwind from '../app/hooks/useTailwind';
type Props = {
focused?: boolean;
color?: string;
} & React.ComponentProps<typeof FontAwesome>;
export default function TabBarIcon({
color = Colors.shade[300],
focused,
...rest
}: Props) {
export default function TabBarIcon({ focused, ...rest }: Props) {
const { colors } = useTailwind();
return (
<FontAwesome
color={color || (focused ? Colors.purple[300] : Colors.shade[300])}
color={focused ? colors.purple[300] : colors.shade[300]}
size={24}
{...rest}
/>

View File

@@ -1,12 +1,12 @@
import { Image, View } from 'react-native';
import { Image } from 'react-native';
import { TMDB_POSTER_PATH } from '../../constants/General';
import { BoldText, RegularText } from '../ui/Text';
import { StyledText, StyledView } from '../ui/Styled';
export default function Item() {
return (
<View className="w-full">
<View className="mb-2 aspect-[9/14] w-full overflow-hidden rounded-2xl">
<StyledView className="w-full">
<StyledView className="mb-2 aspect-[9/14] w-full overflow-hidden rounded-2xl">
<Image
source={{
uri: `${TMDB_POSTER_PATH}/w342//gdIrmf2DdY5mgN6ycVP0XlzKzbE.jpg`,
@@ -14,13 +14,13 @@ export default function Item() {
}}
className="h-full w-full object-cover"
/>
</View>
<BoldText className="text-white">Hamilton</BoldText>
<View className="flex-row items-center gap-3">
<RegularText className="text-xs text-gray-600">Movie</RegularText>
<View className="h-1 w-1 rounded-3xl bg-gray-600" />
<RegularText className="text-sm text-gray-600">2023</RegularText>
</View>
</View>
</StyledView>
<StyledText className="font-bold text-white">Hamilton</StyledText>
<StyledView className="flex-row items-center gap-3">
<StyledText className="text-xs text-gray-600">Movie</StyledText>
<StyledView className="h-1 w-1 rounded-3xl bg-gray-600" />
<StyledText className="text-sm text-gray-600">2023</StyledText>
</StyledView>
</StyledView>
);
}

View File

@@ -1,6 +1,4 @@
import { View } from 'react-native';
import { BoldText, RegularText } from '../ui/Text';
import { StyledText, StyledView } from '../ui/Styled';
type Props = {
title?: React.ReactNode | string;
@@ -10,15 +8,17 @@ type Props = {
export default function ScreenLayout({ title, subtitle, children }: Props) {
return (
<View className="bg-shade-900 flex-1 py-12">
<StyledView tw="bg-shade-900 flex-1 p-12">
{typeof title === 'string' && (
<BoldText className="text-2xl font-bold text-white">{title}</BoldText>
<StyledText className="text-2xl font-bold text-white">
{title}
</StyledText>
)}
{typeof title !== 'string' && title}
<RegularText className="text-shade-200 mt-1 text-sm">
<StyledText className="mt-1 text-sm font-bold text-white">
{subtitle}
</RegularText>
<View className="py-3">{children}</View>
</View>
</StyledText>
<StyledView className="py-3">{children}</StyledView>
</StyledView>
);
}

View File

@@ -1,10 +0,0 @@
import { Dimensions, StyleSheet } from 'react-native';
export const styles = StyleSheet.create({
container: {
minHeight: Dimensions.get('window').height,
},
children: {
paddingVertical: 12,
},
});

View File

@@ -0,0 +1,6 @@
import { styled } from 'nativewind';
import { Text, View } from 'react-native';
export const StyledText = styled(Text, 'text-white');
export const StyledView = styled(View);

View File

@@ -1,44 +0,0 @@
import { Text } from 'react-native';
export function RegularText({ style, children, ...rest }: Text['props']) {
return (
<Text style={[{ fontFamily: 'OpenSansRegular' }, style]} {...rest}>
{children}
</Text>
);
}
export function BoldText({ style, children, ...rest }: Text['props']) {
return (
<Text style={[{ fontFamily: 'OpenSansBold' }, style]} {...rest}>
{children}
</Text>
);
}
export function SemiBoldText({ style, children, ...rest }: Text['props']) {
return (
<Text style={[{ fontFamily: 'OpenSansSemiBold' }, style]} {...rest}>
{children}
</Text>
);
}
export function MediumText({ style, children, ...rest }: Text['props']) {
return (
<Text style={[{ fontFamily: 'OpenSansMedium' }, style]} {...rest}>
{children}
</Text>
);
}
export function ExtraBoldText({ style, children, ...rest }: Text['props']) {
return (
<Text style={[{ fontFamily: 'OpenSansExtraBold' }, style]} {...rest}>
{children}
</Text>
);
}
export function LightText({ style, children, ...rest }: Text['props']) {
return (
<Text style={[{ fontFamily: 'OpenSansLight' }, style]} {...rest}>
{children}
</Text>
);
}

View File

@@ -1,42 +0,0 @@
const tintColorLight = '#2f95dc';
const tintColorDark = '#fff';
// export default {
// light: {
// text: '#000',
// background: '#fff',
// tint: tintColorLight,
// tabIconDefault: '#ccc',
// tabIconSelected: tintColorLight,
// },
// dark: {
// text: '#fff',
// background: '#000',
// tint: tintColorDark,
// tabIconDefault: '#ccc',
// tabIconSelected: tintColorDark,
// purple100: '#C082FF',
// purple300: '#8D44D6',
// purple400: '#7831BF',
// shade50: '#676790',
// shade200: '#3F3F60',
// shade300: '#32324F',
// shade700: '#131322',
// shade900: '#0A0A12',
// },
// };
export default {
purple: {
100: '#C082FF',
300: '#8D44D6',
400: '#7831BF',
},
shade: {
50: '#676790',
200: '#3F3F60',
300: '#32324F',
700: '#131322',
900: '#0A0A12',
},
};

View File

@@ -43,7 +43,7 @@
"react-native-web": "^0.19.10",
"react-test-renderer": "*",
"typescript": "*",
"tailwindcss": "*"
"tailwindcss": "3.3.2"
},
"scripts": {
"eas-build-pre-install": "cd ../../ && node tools/scripts/eas-build-pre-install.mjs . apps/mobile && cp pnpm-lock.yaml apps/mobile",
@@ -65,7 +65,6 @@
"jest-expo": "~49.0.0",
"pod-install": "^0.1.39",
"react-test-renderer": "18.2.0",
"tailwindcss": "^3.4.1",
"typescript": "~5.2.2"
},
"overrides": {

View File

@@ -0,0 +1,26 @@
const colors = require('tailwindcss/colors');
// https://github.com/marklawlor/nativewind/issues/573
module.exports = {
content: ['./**/*.{js,jsx,ts,tsx}'],
theme: {
extend: {
colors: {
...colors,
purple: {
100: '#C082FF',
300: '#8D44D6',
400: '#7831BF',
},
shade: {
50: '#676790',
200: '#3F3F60',
300: '#32324F',
700: '#131322',
900: '#0A0A12',
},
},
},
},
plugins: [],
};

View File

@@ -1,13 +0,0 @@
import type { Config } from 'tailwindcss';
import colors from './constants/Colors';
export default {
content: [],
theme: {
extend: {
colors,
},
},
plugins: [],
} satisfies Config;

View File

@@ -12,5 +12,5 @@
"**/*.spec.tsx",
"test-setup.ts"
],
"include": ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "constants/Colors.ts", "tailwind.config.mjs"]
"include": ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "tailwind.config.js"]
}

View File

@@ -11,7 +11,8 @@
"skipLibCheck": true,
"resolveJsonModule": true,
"strict": true,
"declaration": true
"declaration": true,
"allowJs": true,
},
"files": [],
"include": [

85
pnpm-lock.yaml generated
View File

@@ -156,9 +156,6 @@ importers:
prettier:
specifier: ^3.0.3
version: 3.2.4
prettier-plugin-tailwindcss:
specifier: ^0.5.11
version: 0.5.11(prettier@3.2.4)
react-test-renderer:
specifier: 18.2.0
version: 18.2.0(react@18.2.0)
@@ -245,7 +242,7 @@ importers:
version: 0.80.4
nativewind:
specifier: ^2.0.11
version: 2.0.11(react@18.2.0)(tailwindcss@3.4.1)
version: 2.0.11(react@18.2.0)(tailwindcss@3.3.2)
pod-install:
specifier: '*'
version: 0.2.0
@@ -279,13 +276,12 @@ importers:
react-test-renderer:
specifier: '*'
version: 18.2.0(react@18.2.0)
tailwindcss:
specifier: 3.3.2
version: 3.3.2(ts-node@10.9.1)
typescript:
specifier: '*'
version: 5.2.2
devDependencies:
tailwindcss:
specifier: ^3.4.1
version: 3.4.1(ts-node@10.9.1)
packages:
@@ -309,6 +305,7 @@ packages:
/@alloc/quick-lru@5.2.0:
resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==}
engines: {node: '>=10'}
dev: false
/@ampproject/remapping@2.2.1:
resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
@@ -5723,6 +5720,7 @@ packages:
/camelcase-css@2.0.1:
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
engines: {node: '>= 6'}
dev: false
/camelcase@5.3.1:
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
@@ -6649,6 +6647,7 @@ packages:
/didyoumean@1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
dev: false
/diff-sequences@29.6.3:
resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==}
@@ -6666,6 +6665,7 @@ packages:
/dlv@1.1.3:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
dev: false
/dns-packet@5.6.1:
resolution: {integrity: sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==}
@@ -9549,6 +9549,7 @@ packages:
/jiti@1.21.0:
resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==}
hasBin: true
dev: false
/jks-js@1.1.0:
resolution: {integrity: sha512-irWi8S2V029Vic63w0/TYa8NIZwXu9oeMtHQsX51JDIVBo0lrEaOoyM8ALEEh5PVKD6TrA26FixQK6TzT7dHqA==}
@@ -9928,6 +9929,7 @@ packages:
/lilconfig@2.1.0:
resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
engines: {node: '>=10'}
dev: false
/lilconfig@3.0.0:
resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==}
@@ -10849,7 +10851,7 @@ packages:
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
/nativewind@2.0.11(react@18.2.0)(tailwindcss@3.4.1):
/nativewind@2.0.11(react@18.2.0)(tailwindcss@3.3.2):
resolution: {integrity: sha512-qCEXUwKW21RYJ33KRAJl3zXq2bCq82WoI564fI21D/TiqhfmstZOqPN53RF8qK1NDK6PGl56b2xaTxgObEePEg==}
engines: {node: '>=14.18'}
peerDependencies:
@@ -10867,7 +10869,7 @@ packages:
postcss-css-variables: 0.18.0(postcss@8.4.33)
postcss-nested: 5.0.6(postcss@8.4.33)
react-is: 18.2.0
tailwindcss: 3.4.1(ts-node@10.9.1)
tailwindcss: 3.3.2(ts-node@10.9.1)
use-sync-external-store: 1.2.0(react@18.2.0)
transitivePeerDependencies:
- react
@@ -11119,6 +11121,7 @@ packages:
/object-hash@3.0.0:
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
engines: {node: '>= 6'}
dev: false
/object-inspect@1.13.1:
resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
@@ -11661,6 +11664,7 @@ packages:
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.8
dev: false
/postcss-js@4.0.1(postcss@8.4.33):
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
@@ -11670,6 +11674,7 @@ packages:
dependencies:
camelcase-css: 2.0.1
postcss: 8.4.33
dev: false
/postcss-load-config@4.0.2(postcss@8.4.33)(ts-node@10.9.1):
resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
@@ -11687,6 +11692,7 @@ packages:
postcss: 8.4.33
ts-node: 10.9.1(@swc/core@1.3.105)(@types/node@18.16.9)(typescript@5.2.2)
yaml: 2.3.4
dev: false
/postcss-loader@6.2.1(postcss@8.4.33)(webpack@5.89.0):
resolution: {integrity: sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==}
@@ -11818,6 +11824,7 @@ packages:
dependencies:
postcss: 8.4.33
postcss-selector-parser: 6.0.15
dev: false
/postcss-normalize-charset@6.0.1(postcss@8.4.33):
resolution: {integrity: sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==}
@@ -11982,58 +11989,6 @@ packages:
fast-diff: 1.3.0
dev: true
/prettier-plugin-tailwindcss@0.5.11(prettier@3.2.4):
resolution: {integrity: sha512-AvI/DNyMctyyxGOjyePgi/gqj5hJYClZ1avtQvLlqMT3uDZkRbi4HhGUpok3DRzv9z7Lti85Kdj3s3/1CeNI0w==}
engines: {node: '>=14.21.3'}
peerDependencies:
'@ianvs/prettier-plugin-sort-imports': '*'
'@prettier/plugin-pug': '*'
'@shopify/prettier-plugin-liquid': '*'
'@trivago/prettier-plugin-sort-imports': '*'
prettier: ^3.0
prettier-plugin-astro: '*'
prettier-plugin-css-order: '*'
prettier-plugin-import-sort: '*'
prettier-plugin-jsdoc: '*'
prettier-plugin-marko: '*'
prettier-plugin-organize-attributes: '*'
prettier-plugin-organize-imports: '*'
prettier-plugin-style-order: '*'
prettier-plugin-svelte: '*'
prettier-plugin-twig-melody: '*'
peerDependenciesMeta:
'@ianvs/prettier-plugin-sort-imports':
optional: true
'@prettier/plugin-pug':
optional: true
'@shopify/prettier-plugin-liquid':
optional: true
'@trivago/prettier-plugin-sort-imports':
optional: true
prettier-plugin-astro:
optional: true
prettier-plugin-css-order:
optional: true
prettier-plugin-import-sort:
optional: true
prettier-plugin-jsdoc:
optional: true
prettier-plugin-marko:
optional: true
prettier-plugin-organize-attributes:
optional: true
prettier-plugin-organize-imports:
optional: true
prettier-plugin-style-order:
optional: true
prettier-plugin-svelte:
optional: true
prettier-plugin-twig-melody:
optional: true
dependencies:
prettier: 3.2.4
dev: true
/prettier@3.2.4:
resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==}
engines: {node: '>=14'}
@@ -13489,8 +13444,8 @@ packages:
tslib: 2.6.2
dev: true
/tailwindcss@3.4.1(ts-node@10.9.1):
resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==}
/tailwindcss@3.3.2(ts-node@10.9.1):
resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==}
engines: {node: '>=14.0.0'}
hasBin: true
dependencies:
@@ -13514,10 +13469,12 @@ packages:
postcss-load-config: 4.0.2(postcss@8.4.33)(ts-node@10.9.1)
postcss-nested: 6.0.1(postcss@8.4.33)
postcss-selector-parser: 6.0.15
postcss-value-parser: 4.2.0
resolve: 1.22.8
sucrase: 3.35.0
transitivePeerDependencies:
- ts-node
dev: false
/tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}