267 lines
6.5 KiB
TypeScript

import { StyleSheet } from 'react-native';
import { typography, spacing, borderRadius, shadow } from '@theme';
export const getStyles = (colors: any) =>
StyleSheet.create({
container: {
flex: 1,
backgroundColor: colors.background,
},
scrollContainer: {
paddingHorizontal: spacing.lg,
paddingBottom: spacing.xxxl,
},
header: {
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-between',
marginTop: 20,
marginBottom: spacing.lg,
},
greetingText: {
fontSize: typography.fontSize.sm,
color: colors.textSecondary,
},
nameText: {
fontSize: typography.fontSize.xl,
fontWeight: typography.fontWeight.bold,
color: colors.text,
marginTop: 2,
},
toggleWrapper: {
flexDirection: 'row',
alignItems: 'center',
backgroundColor: colors.inputBg,
paddingHorizontal: spacing.sm,
paddingVertical: 6,
borderRadius: borderRadius.full,
borderWidth: 1,
borderColor: colors.border,
},
statusDot: {
width: 8,
height: 8,
borderRadius: 4,
marginRight: 6,
},
statusText: {
fontSize: typography.fontSize.xs,
fontWeight: typography.fontWeight.bold,
},
offlineBanner: {
backgroundColor: colors.errorLight,
paddingVertical: spacing.md,
paddingHorizontal: spacing.lg,
borderRadius: borderRadius.md,
marginBottom: spacing.lg,
alignItems: 'center',
borderWidth: 1,
borderColor: colors.error,
},
offlineBannerText: {
fontSize: typography.fontSize.sm,
color: colors.error,
fontWeight: typography.fontWeight.medium,
},
summaryCard: {
backgroundColor: colors.cardBg,
borderRadius: borderRadius.lg,
padding: spacing.xl,
marginBottom: spacing.lg,
...shadow.md,
borderWidth: 1,
borderColor: colors.border,
},
summaryTitle: {
fontSize: typography.fontSize.sm,
fontWeight: typography.fontWeight.bold,
color: colors.textSecondary,
textTransform: 'uppercase',
marginBottom: spacing.lg,
},
statsRow: {
flexDirection: 'row',
alignItems: 'center',
justifyContent: 'space-between',
},
statBox: {
flex: 1,
alignItems: 'center',
},
statVal: {
fontSize: typography.fontSize.xl,
fontWeight: typography.fontWeight.bold,
color: colors.text,
marginBottom: 4,
},
statLabel: {
fontSize: typography.fontSize.xs,
color: colors.textSecondary,
},
statDivider: {
width: 1,
height: 32,
backgroundColor: colors.border,
},
promptCard: {
backgroundColor: colors.cardBg,
borderRadius: borderRadius.lg,
padding: spacing.xl,
alignItems: 'center',
marginBottom: spacing.lg,
...shadow.md,
borderWidth: 1,
borderColor: colors.border,
},
promptTitle: {
fontSize: typography.fontSize.lg,
fontWeight: typography.fontWeight.bold,
color: colors.text,
textAlign: 'center',
marginBottom: spacing.sm,
},
promptDesc: {
fontSize: typography.fontSize.sm,
color: colors.textSecondary,
textAlign: 'center',
marginBottom: spacing.xl,
lineHeight: 20,
},
onlineBtn: {
width: '100%',
},
performanceCard: {
backgroundColor: colors.cardBg,
borderRadius: borderRadius.lg,
padding: spacing.xl,
marginBottom: spacing.lg,
...shadow.md,
borderWidth: 1,
borderColor: colors.border,
},
perfTitle: {
fontSize: typography.fontSize.sm,
fontWeight: typography.fontWeight.bold,
color: colors.textSecondary,
textTransform: 'uppercase',
marginBottom: spacing.md,
},
perfRow: {
flexDirection: 'row',
justifyContent: 'space-between',
},
perfBox: {
alignItems: 'center',
flex: 1,
},
perfVal: {
fontSize: typography.fontSize.lg,
fontWeight: typography.fontWeight.bold,
color: colors.text,
marginBottom: 2,
},
perfLabel: {
fontSize: 10,
color: colors.textSecondary,
},
chartCard: {
backgroundColor: colors.cardBg,
borderRadius: borderRadius.lg,
padding: spacing.xl,
marginBottom: spacing.lg,
...shadow.md,
borderWidth: 1,
borderColor: colors.border,
},
chartTitle: {
fontSize: typography.fontSize.sm,
fontWeight: typography.fontWeight.bold,
color: colors.textSecondary,
textTransform: 'uppercase',
marginBottom: spacing.lg,
},
chartRow: {
flexDirection: 'row',
justifyContent: 'space-between',
alignItems: 'flex-end',
height: 120,
paddingBottom: 8,
},
barContainer: {
alignItems: 'center',
flex: 1,
},
bar: {
width: 14,
borderRadius: borderRadius.sm,
backgroundColor: colors.primary,
},
barLabel: {
fontSize: 10,
color: colors.textSecondary,
marginTop: 8,
},
barVal: {
fontSize: 8,
color: colors.text,
marginBottom: 4,
fontWeight: 'bold',
},
offlineBtn: {
width: '100%',
marginBottom: spacing.xl,
},
simulateBtn: {
marginVertical: spacing.sm,
backgroundColor: colors.primaryLight,
borderColor: colors.primary,
borderWidth: 1,
paddingVertical: 8,
borderRadius: borderRadius.sm,
alignItems: 'center',
},
simulateBtnText: {
color: colors.primary,
fontWeight: 'bold',
fontSize: typography.fontSize.sm,
},
helpSection: {
marginTop: spacing.sm,
},
helpTitle: {
fontSize: typography.fontSize.sm,
fontWeight: typography.fontWeight.bold,
color: colors.textSecondary,
textTransform: 'uppercase',
marginBottom: spacing.md,
},
helpRow: {
flexDirection: 'row',
justifyContent: 'space-between',
gap: 10,
},
helpItem: {
flex: 1,
backgroundColor: colors.cardBg,
borderRadius: borderRadius.md,
padding: spacing.md,
alignItems: 'center',
borderWidth: 1,
borderColor: colors.border,
...shadow.sm,
},
helpLabel: {
fontSize: typography.fontSize.xs,
fontWeight: typography.fontWeight.bold,
color: colors.text,
marginTop: spacing.sm,
textAlign: 'center',
},
helpSub: {
fontSize: 9,
color: colors.textSecondary,
marginTop: 2,
textAlign: 'center',
},
});