import { StyleSheet } from 'react-native'; import { ThemeColors, colors as globalColors } from '@theme'; export const getStyles = (colors: ThemeColors, isDark: boolean) => StyleSheet.create({ /* ── Card wrapper ── */ card: { backgroundColor: colors.card, borderRadius: 20, marginBottom: 20, shadowColor: isDark ? '#000000' : '#0F172A', shadowOffset: { width: 0, height: 4 }, shadowOpacity: isDark ? 0.25 : 0.08, shadowRadius: 12, elevation: 4, borderWidth: 1, borderColor: colors.border, }, /* ── Header ── */ header: { flexDirection: 'row', alignItems: 'center', paddingHorizontal: 16, paddingTop: 16, paddingBottom: 14, gap: 10, }, titleIconBadge: { width: 34, height: 34, borderRadius: 10, backgroundColor: globalColors.accent, justifyContent: 'center', alignItems: 'center', shadowColor: globalColors.accent, shadowOffset: { width: 0, height: 3 }, shadowOpacity: 0.4, shadowRadius: 6, elevation: 4, }, titleGroup: { flex: 1, }, title: { fontSize: 15, fontWeight: '700', color: colors.text, letterSpacing: 0.1, }, subtitle: { fontSize: 11, fontWeight: '500', color: colors.textMuted, marginTop: 1, letterSpacing: 0.2, }, countBadge: { paddingHorizontal: 9, paddingVertical: 4, borderRadius: 20, backgroundColor: isDark ? `${globalColors.accent}28` : `${globalColors.accent}15`, borderWidth: 1, borderColor: isDark ? `${globalColors.accent}55` : `${globalColors.accent}35`, }, countBadgeText: { fontSize: 12, fontWeight: '700', color: globalColors.accent, }, /* ── Divider ── */ divider: { height: 1, backgroundColor: colors.border, marginHorizontal: 16, marginBottom: 4, opacity: isDark ? 0.5 : 0.8, }, /* ── Timeline list ── */ listContent: { paddingHorizontal: 16, paddingBottom: 12, paddingTop: 4, }, /* ── Timeline row ── */ row: { flexDirection: 'row', paddingVertical: 12, }, /* ── Left column: avatar + connector line ── */ leftCol: { width: 38, alignItems: 'center', }, avatar: { width: 34, height: 34, borderRadius: 17, justifyContent: 'center', alignItems: 'center', }, avatarText: { fontSize: 13, fontWeight: '800', color: '#FFFFFF', }, connector: { width: 2, flex: 1, marginTop: 4, borderRadius: 1, backgroundColor: colors.border, opacity: isDark ? 0.5 : 0.7, }, /* ── Right column: content bubble ── */ rightCol: { flex: 1, marginLeft: 10, }, bubble: { backgroundColor: isDark ? `${globalColors.primary}12` : `${globalColors.primary}07`, borderRadius: 14, borderWidth: 1, borderColor: isDark ? `${globalColors.primary}30` : `${globalColors.primary}18`, padding: 12, }, /* row inside bubble: name + time */ bubbleHeader: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', marginBottom: 4, }, staffName: { fontSize: 13, fontWeight: '700', color: colors.text, flex: 1, marginRight: 6, }, timeAgo: { fontSize: 10, fontWeight: '600', color: colors.textMuted, letterSpacing: 0.2, }, /* description */ descriptionRow: { flexDirection: 'row', alignItems: 'center', gap: 5, marginBottom: 6, }, actionDot: { width: 5, height: 5, borderRadius: 2.5, backgroundColor: globalColors.accent, }, description: { fontSize: 13, fontWeight: '500', color: colors.textSecondary, flex: 1, }, /* project chip */ projectChip: { flexDirection: 'row', alignItems: 'center', gap: 5, backgroundColor: isDark ? `${globalColors.accentAlt}18` : `${globalColors.accentAlt}12`, borderRadius: 20, paddingHorizontal: 9, paddingVertical: 4, alignSelf: 'flex-start', borderWidth: 1, borderColor: isDark ? `${globalColors.accentAlt}40` : `${globalColors.accentAlt}30`, marginBottom: 6, }, projectChipText: { fontSize: 10, fontWeight: '700', color: globalColors.accentAlt, letterSpacing: 0.2, }, /* additional data tag */ additionalTag: { flexDirection: 'row', alignItems: 'center', gap: 4, }, additionalText: { fontSize: 11, fontWeight: '500', color: colors.textMuted, flex: 1, }, /* ── Empty / Loader states ── */ stateContainer: { paddingVertical: 32, alignItems: 'center', justifyContent: 'center', }, emptyText: { fontSize: 13, color: colors.textMuted, marginTop: 8, fontWeight: '500', }, /* ── Footer ── */ footer: { borderTopWidth: 1, borderTopColor: colors.border, paddingVertical: 12, alignItems: 'center', justifyContent: 'center', }, footerButton: { flexDirection: 'row', alignItems: 'center', gap: 6, }, footerButtonText: { fontSize: 13, fontWeight: '700', color: globalColors.primary, }, });