import { Image } from "expo-image"; import { StyleSheet, Text, View, type ViewStyle } from "react-native"; import { useAppTheme } from "@/contexts/ThemeContext"; import { fonts } from "@/constants/theme"; const markSource = require("@/assets/images/icon.png"); type LogoSize = "xs" | "sm" | "md" | "lg"; const widths: Record = { xs: 104, sm: 140, md: 180, lg: 220, }; type LogoProps = { size?: LogoSize; style?: ViewStyle; /** Force the light wordmark for dark backgrounds (e.g. status bar chrome). */ onDark?: boolean; }; /** Full beenvoice wordmark from web `public/beenvoice-logo.png` */ export function Logo({ size = "md", style, onDark }: LogoProps) { const { isDark } = useAppTheme(); const width = widths[size]; const height = width * (436 / 2970); const useDarkAsset = onDark ?? isDark; return ( ); } /** Square dollar mark from Icon Composer export (1024×1024 PNG). */ export function LogoMark({ size = 32, style, }: { size?: number; style?: ViewStyle; }) { const fromStyle = typeof style?.width === "number" ? style.width : typeof style?.height === "number" ? style.height : undefined; const dimension = fromStyle ?? size; return ( ); } export function HeadingText({ children, style, }: { children: React.ReactNode; style?: object; }) { const { colors } = useAppTheme(); return ( {children} ); } const styles = StyleSheet.create({ row: { flexDirection: "row", alignItems: "center", }, noShrink: { flexShrink: 0, }, markBox: { flexShrink: 0, alignItems: "center", justifyContent: "center", }, heading: { fontFamily: fonts.heading, }, });