import React from 'react'; import { YStack, XStack } from '@tamagui/stacks'; import { SizableText as Text } from '@tamagui/text'; import { Pressable } from '@tamagui/react-native-web-lite'; import { useTheme } from '@tamagui/core'; export function MobileCard({ children, ...rest }: React.ComponentProps) { return ( {children} ); } export function PillBadge({ tone = 'muted', children, }: { tone?: 'success' | 'warning' | 'muted'; children: React.ReactNode; }) { const palette: Record = { success: { bg: '#ecfdf3', text: '#047857', border: '#bbf7d0' }, warning: { bg: '#fffbeb', text: '#92400e', border: '#fef3c7' }, muted: { bg: '#f3f4f6', text: '#374151', border: '#e5e7eb' }, }; const colors = palette[tone] ?? palette.muted; return ( {children} ); } export function CTAButton({ label, onPress, tone = 'primary', }: { label: string; onPress: () => void; tone?: 'primary' | 'ghost'; }) { const theme = useTheme(); const isPrimary = tone === 'primary'; return ( {label} ); } export function KpiTile({ icon: IconCmp, label, value, }: { icon: React.ComponentType<{ size?: number; color?: string }>; label: string; value: string | number; }) { return ( {label} {value} ); } export function ActionTile({ icon: IconCmp, label, color, onPress, }: { icon: React.ComponentType<{ size?: number; color?: string }>; label: string; color: string; onPress: () => void; }) { return ( {label} ); }