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, paddingTop: spacing.md, paddingBottom: spacing.xxl + 40, }, // ── Empty State ──────────────────────────────────────────────────── emptyContainer: { alignItems: 'center', justifyContent: 'center', paddingVertical: spacing.huge + 24, }, emptyIconCircle: { width: 80, height: 80, borderRadius: borderRadius.full, backgroundColor: colors.primaryLight, justifyContent: 'center', alignItems: 'center', marginBottom: spacing.lg, }, emptyTitle: { fontSize: typography.fontSize.lg, fontWeight: typography.fontWeight.bold, color: colors.text, marginBottom: spacing.xs, }, emptySubtitle: { fontSize: typography.fontSize.sm, color: colors.textSecondary, textAlign: 'center', lineHeight: 20, paddingHorizontal: spacing.xl, }, // ── Summary Banner ──────────────────────────────────────────────── summaryBanner: { backgroundColor: colors.primaryLight, borderRadius: borderRadius.lg, padding: spacing.lg, marginBottom: spacing.lg, borderWidth: 1, borderColor: colors.border, flexDirection: 'row', alignItems: 'center', }, summaryIconCircle: { width: 44, height: 44, borderRadius: borderRadius.full, backgroundColor: colors.primary, justifyContent: 'center', alignItems: 'center', marginRight: spacing.md, }, summaryTextContainer: { flex: 1, }, summaryTitle: { fontSize: typography.fontSize.md, fontWeight: typography.fontWeight.bold, color: colors.primaryDark || colors.primary, marginBottom: 2, }, summarySubtitle: { fontSize: typography.fontSize.xs, color: colors.textSecondary, }, // ── Section Header ───────────────────────────────────────────────── sectionHeader: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', marginBottom: spacing.md, }, sectionTitle: { fontSize: typography.fontSize.md, fontWeight: typography.fontWeight.bold, color: colors.text, }, countBadge: { backgroundColor: colors.primaryLight, paddingHorizontal: spacing.sm, paddingVertical: 3, borderRadius: borderRadius.full, }, countBadgeText: { fontSize: typography.fontSize.xs - 1, fontWeight: typography.fontWeight.bold, color: colors.primary, }, // ── Account Card ─────────────────────────────────────────────────── accountCard: { backgroundColor: colors.cardBg, borderRadius: borderRadius.lg, marginBottom: spacing.md, borderWidth: 1, borderColor: colors.border, overflow: 'hidden', ...shadow.sm, }, defaultCard: { borderColor: colors.primary, borderWidth: 1.5, }, cardTopStrip: { height: 4, backgroundColor: colors.primary, width: '100%', }, cardBody: { padding: spacing.lg, }, cardHeaderRow: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', marginBottom: spacing.md, }, cardHeaderLeft: { flexDirection: 'row', alignItems: 'center', flex: 1, marginRight: spacing.sm, }, bankIconCircle: { width: 46, height: 46, borderRadius: borderRadius.md, backgroundColor: colors.primaryLight, justifyContent: 'center', alignItems: 'center', marginRight: spacing.md, }, cardTitleGroup: { flex: 1, }, bankName: { fontSize: typography.fontSize.md, fontWeight: typography.fontWeight.bold, color: colors.text, marginBottom: 2, }, holderName: { fontSize: typography.fontSize.xs, color: colors.textSecondary, }, badgeRow: { flexDirection: 'row', alignItems: 'center', gap: 6, }, defaultBadge: { backgroundColor: colors.primary, paddingHorizontal: spacing.sm, paddingVertical: 3, borderRadius: borderRadius.full, }, defaultBadgeText: { fontSize: typography.fontSize.xs - 2, fontWeight: typography.fontWeight.bold, color: colors.white, letterSpacing: 0.3, }, verifiedBadge: { backgroundColor: colors.successLight, paddingHorizontal: spacing.sm, paddingVertical: 3, borderRadius: borderRadius.full, }, unverifiedBadge: { backgroundColor: colors.warningLight, paddingHorizontal: spacing.sm, paddingVertical: 3, borderRadius: borderRadius.full, }, verifiedBadgeText: { fontSize: typography.fontSize.xs - 2, fontWeight: typography.fontWeight.bold, color: colors.success, letterSpacing: 0.3, }, unverifiedBadgeText: { fontSize: typography.fontSize.xs - 2, fontWeight: typography.fontWeight.bold, color: colors.warning, letterSpacing: 0.3, }, divider: { height: 1, backgroundColor: colors.divider, marginVertical: spacing.md, }, // ── Card Fields ──────────────────────────────────────────────────── fieldsGrid: { flexDirection: 'row', flexWrap: 'wrap', }, fieldItem: { width: '50%', marginBottom: spacing.md, }, fieldItemFull: { width: '100%', marginBottom: spacing.md, }, fieldLabel: { fontSize: typography.fontSize.xs - 1, color: colors.textSecondary, marginBottom: 3, textTransform: 'uppercase', letterSpacing: 0.5, }, fieldValue: { fontSize: typography.fontSize.sm, fontWeight: typography.fontWeight.semibold, color: colors.text, }, fieldValueMasked: { fontSize: typography.fontSize.sm, fontWeight: typography.fontWeight.semibold, color: colors.text, letterSpacing: 2, }, // ── Card Footer ──────────────────────────────────────────────────── cardFooter: { flexDirection: 'row', alignItems: 'center', justifyContent: 'space-between', paddingTop: spacing.sm, }, addedAtText: { fontSize: typography.fontSize.xs, color: colors.textSecondary, }, // ── Add Button ───────────────────────────────────────────────────── addButton: { backgroundColor: colors.primary, borderRadius: borderRadius.md, paddingVertical: spacing.md + 2, alignItems: 'center', justifyContent: 'center', flexDirection: 'row', marginTop: spacing.sm, ...shadow.md, }, addButtonText: { fontSize: typography.fontSize.md, fontWeight: typography.fontWeight.bold, color: colors.white, marginLeft: spacing.sm, }, addButtonIcon: { width: 22, height: 22, borderRadius: borderRadius.full, backgroundColor: 'rgba(255,255,255,0.25)', justifyContent: 'center', alignItems: 'center', }, addButtonIconText: { color: colors.white, fontSize: 18, lineHeight: 20, fontWeight: typography.fontWeight.bold, }, });