import React from 'react'; import { ChevronLeft } from 'lucide-react'; import { YStack, XStack } from '@tamagui/stacks'; import { SizableText as Text } from '@tamagui/text'; import { Pressable } from '@tamagui/react-native-web-lite'; import { useTranslation } from 'react-i18next'; import { useAdminTheme } from '../theme'; type OnboardingShellProps = { eyebrow?: string; title: string; subtitle?: string; children: React.ReactNode; onBack?: () => void; onSkip?: () => void; footer?: React.ReactNode; backLabel?: string; skipLabel?: string; }; export function OnboardingShell({ eyebrow, title, subtitle, children, onBack, onSkip, footer, backLabel, skipLabel, }: OnboardingShellProps) { const { t } = useTranslation('onboarding'); const { background, surface, text, textStrong, muted, border, shadow } = useAdminTheme(); const resolvedBackLabel = backLabel ?? t('layout.back', 'Back'); const resolvedSkipLabel = skipLabel ?? t('layout.skip', 'Skip'); return ( {onBack ? ( {resolvedBackLabel} ) : ( )} {onSkip ? ( {resolvedSkipLabel} ) : ( )} {eyebrow ? ( {eyebrow} ) : null} {title} {subtitle ? ( {subtitle} ) : null} {children} {footer ? {footer} : null} ); }