@blinkdotnew/mobile-ui 2.0.0-alpha.7 → 2.0.0-alpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/config/tamagui.config.ts","../src/primitives/Button.tsx","../src/primitives/Text.tsx","../src/primitives/Card.tsx","../src/primitives/Input.tsx","../src/primitives/Avatar.tsx","../src/interface/Headings.tsx","../src/interface/PageContainer.tsx","../src/interface/Dialog.tsx","../src/interface/Pressable.tsx","../src/interface/Image.tsx","../src/interface/Badge.tsx","../src/interface/Icon.tsx","../src/interface/BlinkAccordion.tsx","../src/interface/BlinkTabs.tsx","../src/interface/BlinkToggleGroup.tsx","../src/interface/BlinkToast.tsx","../src/interface/FormField.tsx","../src/interface/Tooltip.tsx","../src/layouts/StepPageLayout.tsx","../src/layouts/ScreenLayout.tsx","../src/layouts/Section.tsx","../src/layouts/ListItem.tsx","../src/layouts/Divider.tsx","../src/layouts/KeyboardStickyFooter.tsx","../src/layouts/SafeArea.tsx","../src/layouts/Grid.tsx","../src/patterns/PaywallScreen.tsx","../src/patterns/OnboardingCarousel.tsx","../src/patterns/ChatBubble.tsx","../src/patterns/SettingsScreen.tsx","../src/patterns/EmptyState.tsx","../src/patterns/ProfileHeader.tsx","../src/patterns/AppHeader.tsx","../src/patterns/BottomSheet.tsx","../src/patterns/LoginScreen.tsx","../src/patterns/TabBar.tsx","../src/patterns/SearchBar.tsx","../src/patterns/FloatingActionButton.tsx","../src/patterns/ActionSheet.tsx","../src/patterns/Skeleton.tsx","../src/patterns/NotificationBanner.tsx","../src/patterns/ProgressSteps.tsx","../src/patterns/SwipeableRow.tsx","../src/patterns/MediaCard.tsx","../src/patterns/Carousel.tsx","../src/patterns/PullToRefresh.tsx"],"sourcesContent":["// Config\nexport { blinkConfig } from './config/tamagui.config'\nexport type { BlinkConfig } from './config/tamagui.config'\n\n// ─── Tamagui re-exports (full component library) ────────────────────────────\nexport {\n // Layout\n View, XStack, YStack, ZStack, ScrollView, Circle, Square,\n // Groups\n XGroup, YGroup,\n // Text\n H1, H2, H3, H4, H5, H6, Paragraph, SizableText, Text, Label,\n // Forms\n Button, Input, TextArea, Switch, Checkbox, Slider, RadioGroup, Select, Fieldset,\n // Display\n Card, Avatar, Separator, Image as TamaguiImage, Progress, Spinner, ListItem as TamaguiListItem,\n // Overlay\n Sheet, Dialog, AlertDialog, Popover, Tooltip, TooltipSimple,\n // Navigation (composable Tamagui components)\n Tabs, Accordion, ToggleGroup,\n // Utilities\n Adapt, PortalProvider, VisuallyHidden, Unspaced, Anchor, Form,\n // Theme\n Theme, TamaguiProvider,\n // Styled\n styled, withStaticProperties,\n // Hooks\n useTheme, useMedia, useThemeName,\n // Types\n type GetProps, type SizeTokens, type ColorTokens, type ThemeTokens,\n} from 'tamagui'\n\n// ─── Blink styled primitives (named to avoid Tamagui conflicts) ──────────────\nexport { Button as BlinkButton } from './primitives/Button'\nexport type { ButtonProps as BlinkButtonProps } from './primitives/Button'\n\nexport { BlinkText } from './primitives/Text'\nexport type { BlinkTextProps } from './primitives/Text'\n\nexport { Card as BlinkCard } from './primitives/Card'\nexport type { CardProps as BlinkCardProps } from './primitives/Card'\n\nexport { Input as BlinkInput } from './primitives/Input'\nexport type { InputProps as BlinkInputProps } from './primitives/Input'\n\nexport { Avatar as BlinkAvatar } from './primitives/Avatar'\nexport type { AvatarProps as BlinkAvatarProps } from './primitives/Avatar'\n\n// ─── Blink interface components ──────────────────────────────────────────────\nexport { SubHeading, SepHeading } from './interface/Headings'\nexport { PageContainer, PageMainContainer } from './interface/PageContainer'\nexport { DialogProvider, showError, dialogConfirm } from './interface/Dialog'\nexport { Pressable } from './interface/Pressable'\nexport { Image } from './interface/Image'\nexport { Badge } from './interface/Badge'\nexport type { BadgeProps } from './interface/Badge'\n\nexport { Icon, ICONS } from './interface/Icon'\nexport type { IconName, IconProps } from './interface/Icon'\n\nexport { BlinkAccordion } from './interface/BlinkAccordion'\nexport type { BlinkAccordionProps, BlinkAccordionItem } from './interface/BlinkAccordion'\n\nexport { BlinkTabs } from './interface/BlinkTabs'\nexport type { BlinkTabsProps, BlinkTabItem } from './interface/BlinkTabs'\n\nexport { BlinkToggleGroup } from './interface/BlinkToggleGroup'\nexport type { BlinkToggleGroupProps, BlinkToggleOption } from './interface/BlinkToggleGroup'\n\nexport { BlinkToastProvider, useBlinkToast, toast } from './interface/BlinkToast'\nexport type { BlinkToastVariant, BlinkToastData, BlinkToastContextType } from './interface/BlinkToast'\n\nexport { FormField } from './interface/FormField'\nexport type { FormFieldProps } from './interface/FormField'\n\nexport { BlinkTooltip } from './interface/Tooltip'\nexport type { TooltipProps } from './interface/Tooltip'\n\n// ─── Blink layouts ───────────────────────────────────────────────────────────\nexport { StepPageLayout } from './layouts/StepPageLayout'\nexport type { StepPageProps } from './layouts/StepPageLayout'\n\nexport { ScreenLayout } from './layouts/ScreenLayout'\n\nexport { Section } from './layouts/Section'\nexport type { SectionProps } from './layouts/Section'\n\nexport { ListItem } from './layouts/ListItem'\nexport type { ListItemProps } from './layouts/ListItem'\n\nexport { Divider } from './layouts/Divider'\nexport type { DividerProps } from './layouts/Divider'\n\nexport { KeyboardStickyFooter } from './layouts/KeyboardStickyFooter'\nexport type { KeyboardStickyFooterProps } from './layouts/KeyboardStickyFooter'\n\nexport { SafeArea } from './layouts/SafeArea'\nexport type { SafeAreaProps } from './layouts/SafeArea'\n\nexport { Grid, Container } from './layouts/Grid'\nexport type { GridProps, ContainerProps } from './layouts/Grid'\n\n// ─── Blink patterns ─────────────────────────────────────────────────────────\nexport { PaywallScreen } from './patterns/PaywallScreen'\nexport type { PaywallScreenProps, PlanOption } from './patterns/PaywallScreen'\n\nexport { OnboardingCarousel } from './patterns/OnboardingCarousel'\nexport type { OnboardingCarouselProps, OnboardingStep } from './patterns/OnboardingCarousel'\n\nexport { ChatBubble } from './patterns/ChatBubble'\nexport type { ChatBubbleProps, ChatMessage } from './patterns/ChatBubble'\n\nexport { SettingsScreen } from './patterns/SettingsScreen'\nexport type { SettingsScreenProps, SettingsSection, SettingsItem } from './patterns/SettingsScreen'\n\nexport { EmptyState } from './patterns/EmptyState'\nexport type { EmptyStateProps } from './patterns/EmptyState'\n\nexport { ProfileHeader } from './patterns/ProfileHeader'\nexport type { ProfileHeaderProps } from './patterns/ProfileHeader'\n\nexport { AppHeader } from './patterns/AppHeader'\nexport type { AppHeaderProps, AppHeaderVariant } from './patterns/AppHeader'\n\nexport { BottomSheet } from './patterns/BottomSheet'\nexport type { BottomSheetProps } from './patterns/BottomSheet'\n\nexport { LoginScreen } from './patterns/LoginScreen'\nexport type { LoginScreenProps, AuthProvider } from './patterns/LoginScreen'\n\nexport { TabBar } from './patterns/TabBar'\nexport type { TabBarProps, TabBarItem } from './patterns/TabBar'\n\nexport { SearchBar } from './patterns/SearchBar'\nexport type { SearchBarProps } from './patterns/SearchBar'\n\nexport { FloatingActionButton } from './patterns/FloatingActionButton'\nexport type { FABProps } from './patterns/FloatingActionButton'\n\nexport { ActionSheet } from './patterns/ActionSheet'\nexport type { ActionSheetProps, ActionSheetItem } from './patterns/ActionSheet'\n\nexport { Skeleton } from './patterns/Skeleton'\nexport type { SkeletonProps } from './patterns/Skeleton'\n\nexport { NotificationBanner } from './patterns/NotificationBanner'\nexport type { NotificationBannerProps } from './patterns/NotificationBanner'\n\nexport { ProgressSteps } from './patterns/ProgressSteps'\nexport type { ProgressStepsProps } from './patterns/ProgressSteps'\n\nexport { SwipeableRow } from './patterns/SwipeableRow'\nexport type { SwipeableRowProps, SwipeAction } from './patterns/SwipeableRow'\n\nexport { MediaCard } from './patterns/MediaCard'\nexport type { MediaCardProps } from './patterns/MediaCard'\n\nexport { Carousel } from './patterns/Carousel'\nexport type { CarouselProps } from './patterns/Carousel'\n\nexport { PullToRefresh } from './patterns/PullToRefresh'\nexport type { PullToRefreshProps } from './patterns/PullToRefresh'\n","import { defaultConfig } from '@tamagui/config/v5'\nimport { createTamagui, type TamaguiInternalConfig } from 'tamagui'\n\nexport const blinkConfig: TamaguiInternalConfig = createTamagui({\n ...defaultConfig,\n})\n\nexport type BlinkConfig = typeof blinkConfig\n\ndeclare module 'tamagui' {\n interface TamaguiCustomConfig extends BlinkConfig {}\n}\n","import { Button as TamaguiButton, styled, type GetProps } from 'tamagui'\n\nexport const Button = styled(TamaguiButton, {\n borderWidth: 0,\n cursor: 'pointer',\n focusVisibleStyle: {\n outlineWidth: 2,\n outlineStyle: 'solid',\n outlineColor: '$color8',\n },\n\n variants: {\n variant: {\n default: {\n backgroundColor: '$color3',\n hoverStyle: { backgroundColor: '$color4' },\n pressStyle: { backgroundColor: '$color2', opacity: 0.8 },\n },\n primary: {\n backgroundColor: '$color9',\n color: '$color1',\n hoverStyle: { backgroundColor: '$color10' },\n pressStyle: { backgroundColor: '$color8', opacity: 0.9 },\n },\n outlined: {\n backgroundColor: 'transparent',\n borderWidth: 2,\n borderColor: '$color6',\n hoverStyle: { borderColor: '$color8' },\n pressStyle: { borderColor: '$color4', opacity: 0.8 },\n },\n transparent: {\n backgroundColor: 'transparent',\n hoverStyle: { backgroundColor: '$color2' },\n pressStyle: { backgroundColor: '$color1', opacity: 0.8 },\n },\n floating: {\n backgroundColor: '$color4',\n shadowColor: '$shadow2',\n shadowRadius: 5,\n shadowOffset: { height: 2, width: 0 },\n hoverStyle: { backgroundColor: '$color5' },\n pressStyle: { backgroundColor: '$color3', opacity: 0.9 },\n },\n destructive: {\n backgroundColor: '$red9',\n color: '$color1',\n hoverStyle: { backgroundColor: '$red10' },\n pressStyle: { backgroundColor: '$red8', opacity: 0.9 },\n },\n },\n size: {\n sm: { height: '$3', paddingHorizontal: '$3', borderRadius: '$3' },\n md: { height: '$4', paddingHorizontal: '$4', borderRadius: '$4' },\n lg: { height: '$5', paddingHorizontal: '$5', borderRadius: '$5' },\n },\n fullWidth: {\n true: { width: '100%' },\n },\n } as const,\n\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n})\n\nexport type ButtonProps = GetProps<typeof Button>\n","import { SizableText, styled, type GetProps } from 'tamagui'\n\nexport const BlinkText = styled(SizableText, {\n name: 'BlinkText',\n\n variants: {\n variant: {\n display: { size: '$10', fontWeight: '800' },\n h1: { size: '$9', fontWeight: '700' },\n h2: { size: '$8', fontWeight: '700' },\n h3: { size: '$7', fontWeight: '600' },\n h4: { size: '$6', fontWeight: '600' },\n body: { size: '$5', fontWeight: '400' },\n bodySmall: { size: '$4', fontWeight: '400' },\n caption: { size: '$3', fontWeight: '400', color: '$color10' },\n small: { size: '$2', fontWeight: '400', color: '$color9' },\n },\n muted: {\n true: { color: '$color9' },\n },\n secondary: {\n true: { color: '$color10' },\n },\n center: {\n true: { textAlign: 'center' },\n },\n bold: {\n true: { fontWeight: '700' },\n },\n } as const,\n\n defaultVariants: {\n variant: 'body',\n },\n})\n\nexport type BlinkTextProps = GetProps<typeof BlinkText>\n","import { styled, View, GetProps, withStaticProperties } from 'tamagui'\n\nconst CardFrame = styled(View, {\n name: 'BlinkCard',\n backgroundColor: '$color2',\n borderRadius: '$4',\n overflow: 'hidden',\n\n variants: {\n variant: {\n flat: {},\n elevated: {\n shadowColor: '$shadow2',\n shadowOffset: { width: 0, height: 2 },\n shadowRadius: 8,\n elevation: 3,\n },\n outlined: {\n borderWidth: 1,\n borderColor: '$color5',\n },\n },\n size: {\n sm: { borderRadius: '$3', padding: '$3' },\n md: { borderRadius: '$4', padding: '$4' },\n lg: { borderRadius: '$5', padding: '$5' },\n },\n pressable: {\n true: {\n pressStyle: { scale: 0.98, opacity: 0.9 },\n cursor: 'pointer',\n },\n },\n } as const,\n\n defaultVariants: {\n variant: 'flat',\n size: 'md',\n },\n})\n\nconst CardHeader = styled(View, { name: 'BlinkCardHeader', paddingBottom: '$3' })\nconst CardContent = styled(View, { name: 'BlinkCardContent' })\nconst CardFooter = styled(View, {\n name: 'BlinkCardFooter',\n paddingTop: '$3',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '$2',\n})\n\nexport type CardProps = GetProps<typeof CardFrame>\n\nexport const Card = withStaticProperties(CardFrame, {\n Header: CardHeader,\n Content: CardContent,\n Footer: CardFooter,\n})\n","import { Input as TamaguiInput, styled, View, SizableText, type GetProps } from 'tamagui'\n\nconst InputFrame = styled(View, {\n name: 'BlinkInputFrame',\n gap: '$1.5',\n})\n\nconst InputLabel = styled(SizableText, {\n name: 'BlinkInputLabel',\n size: '$4',\n fontWeight: '500',\n color: '$color11',\n})\n\nconst InputField = styled(TamaguiInput, {\n name: 'BlinkInput',\n height: 50,\n size: '$5',\n borderWidth: 0.5,\n borderColor: '$color5',\n borderRadius: '$4',\n backgroundColor: '$color1',\n placeholderTextColor: '$color8',\n\n focusVisibleStyle: {\n outlineWidth: 3,\n outlineStyle: 'solid',\n outlineColor: '$background04',\n outlineOffset: 1,\n borderWidth: 0.5,\n borderColor: '$color7',\n },\n\n variants: {\n hasError: {\n true: {\n borderColor: '$red9',\n focusVisibleStyle: { borderColor: '$red9' },\n },\n },\n variant: {\n default: {},\n filled: {\n backgroundColor: '$color2',\n borderColor: 'transparent',\n focusVisibleStyle: { borderColor: '$color7' },\n },\n },\n } as const,\n\n defaultVariants: { variant: 'default' },\n})\n\nconst InputError = styled(SizableText, { name: 'BlinkInputError', size: '$2', color: '$red10' })\nconst InputHint = styled(SizableText, { name: 'BlinkInputHint', size: '$2', color: '$color9' })\n\nexport type InputProps = GetProps<typeof InputField> & {\n label?: string\n error?: string\n hint?: string\n}\n\nexport function Input({ label, error, hint, ...props }: InputProps) {\n return (\n <InputFrame>\n {label && <InputLabel>{label}</InputLabel>}\n <InputField hasError={!!error} {...props} />\n {error && <InputError>{error}</InputError>}\n {hint && !error && <InputHint>{hint}</InputHint>}\n </InputFrame>\n )\n}\n","import { memo } from 'react'\nimport { Circle, Image, SizableText } from 'tamagui'\n\ntype SimpleSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n\nconst simpleSizes: Record<SimpleSize, number> = {\n xs: 24,\n sm: 32,\n md: 40,\n lg: 48,\n xl: 64,\n}\n\nfunction getSize(size: number | SimpleSize): number {\n if (typeof size === 'number') return size\n return simpleSizes[size] ?? 40\n}\n\nexport type AvatarProps = {\n uri?: string\n name?: string\n size?: number | SimpleSize\n}\n\nexport const Avatar = memo(({ uri, name, size: sizeIn = 'md' }: AvatarProps) => {\n const size = getSize(sizeIn)\n\n return (\n <Circle\n size={size}\n overflow=\"hidden\"\n backgroundColor=\"$color4\"\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n {uri ? (\n <Image\n source={{ uri }}\n width={size}\n height={size}\n objectFit=\"cover\"\n />\n ) : (\n <SizableText\n size=\"$3\"\n fontWeight=\"600\"\n color=\"$color11\"\n >\n {name ? name.split(' ').map(p => p[0]).join('').toUpperCase().slice(0, 2) : '?'}\n </SizableText>\n )}\n </Circle>\n )\n})\n","import { Separator, SizableText, XStack, styled } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport const H1 = styled(SizableText, {\n name: 'BlinkH1',\n role: 'heading',\n fontFamily: '$heading',\n size: '$10',\n fontWeight: '700',\n})\n\nexport const H2 = styled(SizableText, {\n name: 'BlinkH2',\n role: 'heading',\n fontFamily: '$heading',\n size: '$9',\n fontWeight: '700',\n})\n\nexport const H3 = styled(SizableText, {\n name: 'BlinkH3',\n role: 'heading',\n fontFamily: '$heading',\n size: '$8',\n fontWeight: '600',\n})\n\nexport const H4 = styled(SizableText, {\n name: 'BlinkH4',\n role: 'heading',\n fontFamily: '$heading',\n size: '$6',\n fontWeight: '600',\n})\n\nexport const H5 = styled(SizableText, {\n name: 'BlinkH5',\n role: 'heading',\n fontFamily: '$heading',\n size: '$5',\n fontWeight: '500',\n})\n\nexport const H6 = styled(SizableText, {\n name: 'BlinkH6',\n role: 'heading',\n fontFamily: '$heading',\n size: '$4',\n fontWeight: '500',\n})\n\nexport const SubHeading = styled(SizableText, {\n name: 'BlinkSubHeading',\n size: '$5',\n color: '$color10',\n fontWeight: '300',\n $lg: { size: '$6' },\n})\n\nexport function SepHeading({ children }: { children: ReactNode }) {\n return (\n <XStack marginTop=\"$6\" marginBottom=\"$4\" alignItems=\"center\" gap=\"$6\">\n <H3 size=\"$4\" color=\"$color10\">\n {children}\n </H3>\n <Separator opacity={0.5} />\n </XStack>\n )\n}\n","import { styled, YStack } from 'tamagui'\n\nexport const PageContainer = styled(YStack, {\n name: 'BlinkPageContainer',\n position: 'relative',\n marginHorizontal: 'auto',\n flex: 1,\n flexBasis: 'auto',\n paddingHorizontal: '$4',\n width: '100%',\n minWidth: 380,\n $md: { maxWidth: 760 },\n $lg: { maxWidth: 860 },\n $xl: { maxWidth: 1140 },\n})\n\nexport const PageMainContainer = styled(PageContainer, {\n name: 'BlinkPageMainContainer',\n role: 'main',\n})\n","import { useState, useEffect, type ReactNode } from 'react'\nimport { AlertDialog, Button, XStack, YStack } from 'tamagui'\n\ntype DialogState = {\n type: 'error' | 'confirm' | null\n title: string\n description: string\n resolve?: (value: boolean) => void\n}\n\nlet globalShowDialog: ((\n state: Omit<DialogState, 'resolve'> & { resolve?: (value: boolean) => void }\n) => void) | null = null\n\nexport function DialogProvider({ children }: { children: ReactNode }) {\n const [state, setState] = useState<DialogState>({\n type: null,\n title: '',\n description: '',\n })\n\n useEffect(() => {\n globalShowDialog = (newState) =>\n setState({ ...newState, resolve: newState.resolve } as DialogState)\n return () => {\n globalShowDialog = null\n }\n }, [])\n\n const handleClose = (confirmed: boolean) => {\n if (!state.resolve) return\n const resolve = state.resolve\n setState({ type: null, title: '', description: '' })\n resolve(confirmed)\n }\n\n return (\n <>\n {children}\n <AlertDialog\n open={state.type !== null}\n onOpenChange={(open) => {\n if (!open && state.type !== null) handleClose(false)\n }}\n >\n <AlertDialog.Portal>\n <AlertDialog.Overlay\n key=\"overlay\"\n opacity={0.5}\n enterStyle={{ opacity: 0 }}\n exitStyle={{ opacity: 0 }}\n />\n <AlertDialog.Content\n bordered\n elevate\n key=\"content\"\n enterStyle={{ x: 0, y: -20, opacity: 0, scale: 0.9 }}\n exitStyle={{ x: 0, y: 10, opacity: 0, scale: 0.95 }}\n x={0}\n scale={1}\n opacity={1}\n y={0}\n width=\"90%\"\n maxWidth={400}\n >\n <YStack gap=\"$4\">\n <AlertDialog.Title size=\"$6\">{state.title}</AlertDialog.Title>\n <AlertDialog.Description size=\"$3\" color=\"$color11\">\n {state.description}\n </AlertDialog.Description>\n <XStack gap=\"$3\" justifyContent=\"flex-end\">\n {state.type === 'confirm' ? (\n <>\n <Button onPress={() => handleClose(false)}>Cancel</Button>\n <Button theme=\"blue\" onPress={() => handleClose(true)}>\n Confirm\n </Button>\n </>\n ) : (\n <Button theme=\"blue\" onPress={() => handleClose(false)}>\n OK\n </Button>\n )}\n </XStack>\n </YStack>\n </AlertDialog.Content>\n </AlertDialog.Portal>\n </AlertDialog>\n </>\n )\n}\n\nexport const showError = (error: unknown, title = 'Error') => {\n let description = 'An unexpected error occurred'\n if (error instanceof Error) description = error.message\n else if (typeof error === 'string') description = error\n else if (error && typeof error === 'object' && 'message' in error)\n description = String(error.message)\n\n if (globalShowDialog) globalShowDialog({ type: 'error', title, description })\n else console.error(`${title}: ${description}`)\n}\n\nexport const dialogConfirm = async (props: {\n title?: string\n description?: string\n}): Promise<boolean> => {\n const { title = 'Confirm', description = 'Are you sure?' } = props\n if (!globalShowDialog) {\n console.error('DialogProvider not mounted')\n return false\n }\n return new Promise<boolean>((resolve) => {\n globalShowDialog!({ type: 'confirm', title, description, resolve })\n })\n}\n","import { styled, View } from 'tamagui'\n\nexport const Pressable = styled(View, {\n name: 'BlinkPressable',\n hitSlop: 10,\n pressStyle: { opacity: 0.5 },\n})\n","import { styled, Image as TamaguiImage } from 'tamagui'\n\nexport const Image = styled(TamaguiImage, {\n name: 'BlinkImage',\n})\n","import { styled, SizableText, View } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nconst BadgeFrame = styled(View, {\n name: 'BlinkBadge',\n paddingHorizontal: '$2',\n paddingVertical: '$1',\n borderRadius: '$10',\n backgroundColor: '$color3',\n alignSelf: 'flex-start',\n variants: {\n variant: {\n default: { backgroundColor: '$color3' },\n success: { backgroundColor: '$green3' },\n warning: { backgroundColor: '$yellow3' },\n error: { backgroundColor: '$red3' },\n info: { backgroundColor: '$blue3' },\n },\n } as const,\n defaultVariants: { variant: 'default' },\n})\n\nconst BadgeText = styled(SizableText, {\n name: 'BlinkBadgeText',\n size: '$2',\n fontWeight: '600',\n color: '$color11',\n})\n\nexport type BadgeProps = {\n children: ReactNode\n variant?: 'default' | 'success' | 'warning' | 'error' | 'info'\n}\n\nexport function Badge({ children, variant = 'default' }: BadgeProps) {\n return (\n <BadgeFrame variant={variant}>\n <BadgeText>{children}</BadgeText>\n </BadgeFrame>\n )\n}\n","import { SizableText } from 'tamagui'\n\nexport const ICONS = {\n home: '\\u2302', search: '\\u2315', back: '\\u2039', forward: '\\u203A',\n close: '\\u2715', menu: '\\u2630', more: '\\u22EF', plus: '+',\n minus: '\\u2212', check: '\\u2713', star: '\\u2605', starOutline: '\\u2606',\n heart: '\\u2665', heartOutline: '\\u2661', share: '\\u2934', edit: '\\u270E',\n trash: '\\u232B', copy: '\\u2398', chat: '\\u{1F4AC}', mail: '\\u2709',\n bell: '\\u{1F514}', bellOff: '\\u{1F515}', send: '\\u27A4', play: '\\u25B6',\n pause: '\\u23F8', camera: '\\u{1F4F7}', image: '\\u{1F5BC}', info: '\\u2139',\n warning: '\\u26A0', error: '\\u2715', success: '\\u2713', loading: '\\u27F3',\n user: '\\u{1F464}', users: '\\u{1F465}', settings: '\\u2699',\n lock: '\\u{1F512}', unlock: '\\u{1F513}',\n arrowUp: '\\u2191', arrowDown: '\\u2193', arrowLeft: '\\u2190', arrowRight: '\\u2192',\n chevronUp: '\\u2303', chevronDown: '\\u2304', chevronLeft: '\\u2039', chevronRight: '\\u203A',\n} as const\n\nexport type IconName = keyof typeof ICONS\nexport type IconProps = { name: IconName; size?: number; color?: string }\n\nexport function Icon({ name, size = 20, color = '$color12' }: IconProps) {\n return (\n <SizableText fontSize={size} lineHeight={size} color={color} textAlign=\"center\" width={size} height={size}>\n {ICONS[name]}\n </SizableText>\n )\n}\n","import { type ReactNode, useState } from 'react'\nimport { Separator, SizableText, XStack, YStack } from 'tamagui'\n\nexport type BlinkAccordionItem = { id: string; title: string; content: ReactNode }\nexport type BlinkAccordionProps = {\n items: BlinkAccordionItem[]\n defaultOpen?: string[]\n allowMultiple?: boolean\n}\n\nexport function BlinkAccordion({ items, defaultOpen, allowMultiple = false }: BlinkAccordionProps) {\n const [openIds, setOpenIds] = useState<string[]>(defaultOpen ?? [])\n const toggle = (id: string) => {\n setOpenIds(prev => {\n if (prev.includes(id)) return prev.filter(i => i !== id)\n return allowMultiple ? [...prev, id] : [id]\n })\n }\n return (\n <YStack>\n {items.map((item, index) => {\n const isOpen = openIds.includes(item.id)\n return (\n <YStack key={item.id}>\n {index > 0 && <Separator borderColor=\"$borderColor\" />}\n <XStack\n paddingVertical=\"$3\" paddingHorizontal=\"$2\"\n justifyContent=\"space-between\" alignItems=\"center\"\n pressStyle={{ opacity: 0.7 }} onPress={() => toggle(item.id)} cursor=\"pointer\"\n >\n <SizableText size=\"$4\" fontWeight=\"600\">{item.title}</SizableText>\n <SizableText size=\"$3\" color=\"$color10\">{isOpen ? '\\u2303' : '\\u2304'}</SizableText>\n </XStack>\n {isOpen && <YStack paddingHorizontal=\"$2\" paddingBottom=\"$3\">{item.content}</YStack>}\n </YStack>\n )\n })}\n </YStack>\n )\n}\n","import { useState } from 'react'\nimport { ScrollView } from 'react-native'\nimport { SizableText, XStack, YStack } from 'tamagui'\n\nexport type BlinkTabItem = { key: string; label: string }\nexport type BlinkTabsProps = {\n tabs: BlinkTabItem[]\n activeTab?: string\n onTabChange?: (key: string) => void\n variant?: 'underline' | 'pill'\n}\n\nexport function BlinkTabs({ tabs, activeTab, onTabChange, variant = 'underline' }: BlinkTabsProps) {\n const [internalActive, setInternalActive] = useState(tabs[0]?.key ?? '')\n const current = activeTab ?? internalActive\n const handlePress = (key: string) => {\n if (!activeTab) setInternalActive(key)\n onTabChange?.(key)\n }\n return (\n <YStack>\n <ScrollView horizontal showsHorizontalScrollIndicator={false}>\n <XStack gap=\"$2\" paddingHorizontal=\"$2\" paddingBottom=\"$2\">\n {tabs.map(tab => {\n const isActive = tab.key === current\n return (\n <YStack\n key={tab.key}\n paddingVertical=\"$2\" paddingHorizontal=\"$3\"\n borderRadius={variant === 'pill' ? '$4' : '$0'}\n backgroundColor={variant === 'pill' && isActive ? '$color9' : 'transparent'}\n borderBottomWidth={variant === 'underline' ? 2 : 0}\n borderBottomColor={variant === 'underline' && isActive ? '$color9' : 'transparent'}\n pressStyle={{ opacity: 0.7 }} onPress={() => handlePress(tab.key)} cursor=\"pointer\"\n >\n <SizableText\n size=\"$3\" fontWeight={isActive ? '600' : '400'}\n color={variant === 'pill' && isActive ? '$color1' : isActive ? '$color12' : '$color10'}\n >\n {tab.label}\n </SizableText>\n </YStack>\n )\n })}\n </XStack>\n </ScrollView>\n </YStack>\n )\n}\n","import { SizableText, XStack } from 'tamagui'\n\nexport type BlinkToggleOption = { value: string; label: string }\nexport type BlinkToggleGroupProps = {\n options: BlinkToggleOption[]\n value: string\n onValueChange: (value: string) => void\n size?: 'sm' | 'md' | 'lg'\n}\n\nconst sizeMap = { sm: '$2' as const, md: '$3' as const, lg: '$4' as const }\n\nexport function BlinkToggleGroup({ options, value, onValueChange, size = 'md' }: BlinkToggleGroupProps) {\n const textSize = sizeMap[size]\n return (\n <XStack borderRadius=\"$4\" overflow=\"hidden\" backgroundColor=\"$color2\">\n {options.map((option, index) => {\n const isActive = option.value === value\n return (\n <XStack\n key={option.value} flex={1} justifyContent=\"center\" alignItems=\"center\"\n paddingVertical=\"$2\" paddingHorizontal=\"$3\"\n backgroundColor={isActive ? '$color9' : '$color2'}\n borderLeftWidth={index > 0 ? 1 : 0}\n borderLeftColor={isActive ? '$color9' : '$color4'}\n pressStyle={{ opacity: 0.7 }} onPress={() => onValueChange(option.value)} cursor=\"pointer\"\n >\n <SizableText size={textSize} fontWeight={isActive ? '600' : '400'} color={isActive ? '$color1' : '$color11'}>\n {option.label}\n </SizableText>\n </XStack>\n )\n })}\n </XStack>\n )\n}\n","import { useState, useCallback, useEffect, createContext, useContext, type ReactNode } from 'react'\nimport { SizableText, YStack } from 'tamagui'\n\nexport type BlinkToastVariant = 'default' | 'success' | 'error' | 'warning'\nexport type BlinkToastData = { id: string; message: string; variant?: BlinkToastVariant; duration?: number }\nexport type BlinkToastContextType = { show: (message: string, variant?: BlinkToastVariant, duration?: number) => void }\n\nconst ToastContext = createContext<BlinkToastContextType | null>(null)\n\nconst variantColors: Record<BlinkToastVariant, string> = {\n default: '$color9', success: '$green9', error: '$red9', warning: '$yellow9',\n}\n\nlet globalToastShow: ((message: string, variant?: BlinkToastVariant, duration?: number) => void) | null = null\n\nexport const toast = (message: string, variant?: BlinkToastVariant, duration?: number) => {\n if (globalToastShow) globalToastShow(message, variant, duration)\n else console.warn('BlinkToastProvider not mounted')\n}\n\nexport function BlinkToastProvider({ children }: { children: ReactNode }) {\n const [toasts, setToasts] = useState<BlinkToastData[]>([])\n const show = useCallback((message: string, variant: BlinkToastVariant = 'default', duration = 3000) => {\n const id = Math.random().toString(36).slice(2, 9)\n setToasts(prev => [...prev, { id, message, variant, duration }])\n setTimeout(() => setToasts(prev => prev.filter(t => t.id !== id)), duration)\n }, [])\n\n useEffect(() => { globalToastShow = show; return () => { globalToastShow = null } }, [show])\n\n return (\n <ToastContext.Provider value={{ show }}>\n {children}\n <YStack position=\"absolute\" top={60} left={0} right={0} alignItems=\"center\" gap=\"$2\" pointerEvents=\"none\" zIndex={100000}>\n {toasts.map(t => (\n <YStack\n key={t.id} backgroundColor={variantColors[t.variant ?? 'default']}\n paddingHorizontal=\"$4\" paddingVertical=\"$2.5\" borderRadius=\"$4\"\n enterStyle={{ opacity: 0, y: -10 }} exitStyle={{ opacity: 0, y: -10 }}\n opacity={1} y={0} animation=\"quick\"\n >\n <SizableText size=\"$3\" color=\"white\" fontWeight=\"600\">{t.message}</SizableText>\n </YStack>\n ))}\n </YStack>\n </ToastContext.Provider>\n )\n}\n\nexport function useBlinkToast() {\n const ctx = useContext(ToastContext)\n if (!ctx) throw new Error('useBlinkToast must be used within BlinkToastProvider')\n return ctx\n}\n","import { type ReactNode } from 'react'\nimport { SizableText, YStack } from 'tamagui'\n\nexport type FormFieldProps = {\n label?: string; error?: string; helperText?: string; required?: boolean; children: ReactNode\n}\n\nexport function FormField({ label, error, helperText, required, children }: FormFieldProps) {\n return (\n <YStack gap=\"$1.5\">\n {label && (\n <SizableText size=\"$3\" fontWeight=\"600\" color=\"$color11\">\n {label}{required && <SizableText color=\"$red9\"> *</SizableText>}\n </SizableText>\n )}\n {children}\n {helperText && !error && <SizableText size=\"$2\" color=\"$color9\">{helperText}</SizableText>}\n {error && <SizableText size=\"$2\" color=\"$red9\">{error}</SizableText>}\n </YStack>\n )\n}\n","import { type ReactNode } from 'react'\nimport { Popover, SizableText } from 'tamagui'\n\nexport type TooltipProps = { content: string; children: ReactNode; side?: 'top' | 'bottom' | 'left' | 'right' }\n\nexport function BlinkTooltip({ content, children, side = 'top' }: TooltipProps) {\n return (\n <Popover size=\"$2\" placement={side}>\n <Popover.Trigger asChild>{children}</Popover.Trigger>\n <Popover.Content\n backgroundColor=\"$color11\" borderRadius=\"$2\"\n paddingHorizontal=\"$2.5\" paddingVertical=\"$1.5\" elevate\n enterStyle={{ opacity: 0, y: side === 'bottom' ? -4 : 4 }}\n exitStyle={{ opacity: 0, y: side === 'bottom' ? -4 : 4 }}\n opacity={1} y={0} animation=\"quick\"\n >\n <Popover.Arrow backgroundColor=\"$color11\" size=\"$1\" />\n <SizableText size=\"$2\" color=\"$color1\">{content}</SizableText>\n </Popover.Content>\n </Popover>\n )\n}\n","import { SizableText, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type StepPageProps = {\n title: string\n description?: string\n children: ReactNode\n bottom?: ReactNode\n}\n\nexport function StepPageLayout({ title, description, children, bottom }: StepPageProps) {\n return (\n <YStack flex={1} padding=\"$4\" maxWidth={500} marginHorizontal=\"auto\" width=\"100%\">\n <YStack gap=\"$5\">\n <YStack gap=\"$2\">\n <SizableText size=\"$8\" fontWeight=\"700\">{title}</SizableText>\n {description && (\n <SizableText size=\"$5\" fontWeight=\"400\" color=\"$color10\">{description}</SizableText>\n )}\n </YStack>\n </YStack>\n <YStack paddingTop=\"$5\" gap=\"$4\">{children}</YStack>\n {bottom && <YStack paddingTop=\"$4\">{bottom}</YStack>}\n </YStack>\n )\n}\n","import { styled, YStack } from 'tamagui'\n\nexport const ScreenLayout = styled(YStack, {\n name: 'BlinkScreenLayout',\n flex: 1,\n backgroundColor: '$background',\n\n variants: {\n padded: {\n true: { padding: '$4' },\n },\n centered: {\n true: { alignItems: 'center', justifyContent: 'center' },\n },\n safe: {\n true: { paddingTop: '$6' },\n },\n } as const,\n})\n","import { SizableText, YStack, type GetProps } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type SectionProps = {\n title?: string\n description?: string\n children: ReactNode\n gap?: GetProps<typeof YStack>['gap']\n}\n\nexport function Section({ title, description, children, gap = '$3' }: SectionProps) {\n return (\n <YStack gap={gap}>\n {title && (\n <YStack gap=\"$1\">\n <SizableText size=\"$5\" fontWeight=\"600\" color=\"$color12\">{title}</SizableText>\n {description && (\n <SizableText size=\"$3\" color=\"$color9\">{description}</SizableText>\n )}\n </YStack>\n )}\n {children}\n </YStack>\n )\n}\n","import { styled, SizableText, XStack, YStack, View } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nconst ListItemFrame = styled(XStack, {\n name: 'BlinkListItem',\n alignItems: 'center',\n gap: '$3',\n padding: '$3',\n borderRadius: '$3',\n\n variants: {\n pressable: {\n true: {\n cursor: 'pointer',\n hoverStyle: { backgroundColor: '$color2' },\n pressStyle: { backgroundColor: '$color3', opacity: 0.9 },\n },\n },\n } as const,\n})\n\nexport type ListItemProps = {\n icon?: ReactNode\n title: string\n subtitle?: string\n right?: ReactNode\n onPress?: () => void\n}\n\nexport function ListItem({ icon, title, subtitle, right, onPress }: ListItemProps) {\n return (\n <ListItemFrame pressable={!!onPress} onPress={onPress}>\n {icon && <View>{icon}</View>}\n <YStack flex={1} gap=\"$1\">\n <SizableText size=\"$4\" fontWeight=\"500\" color=\"$color12\">{title}</SizableText>\n {subtitle && <SizableText size=\"$2\" color=\"$color9\">{subtitle}</SizableText>}\n </YStack>\n {right}\n </ListItemFrame>\n )\n}\n","import { Separator, SizableText, XStack } from 'tamagui'\n\nexport type DividerProps = {\n label?: string\n}\n\nexport function Divider({ label }: DividerProps) {\n if (!label) return <Separator borderColor=\"$color4\" />\n return (\n <XStack alignItems=\"center\" gap=\"$3\">\n <Separator flex={1} borderColor=\"$color4\" />\n <SizableText size=\"$2\" color=\"$color9\">{label}</SizableText>\n <Separator flex={1} borderColor=\"$color4\" />\n </XStack>\n )\n}\n","import { YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type KeyboardStickyFooterProps = {\n children: ReactNode\n offset?: number\n}\n\nexport function KeyboardStickyFooter({ children, offset }: KeyboardStickyFooterProps) {\n return (\n <YStack maxWidth={500} alignSelf=\"center\" paddingTop=\"$8\" paddingBottom=\"$4\" style={{ paddingBottom: offset }}>\n {children}\n </YStack>\n )\n}\n","import { type ReactNode } from 'react'\nimport { YStack } from 'tamagui'\n\nexport type SafeAreaProps = { children: ReactNode; edges?: ('top' | 'bottom' | 'left' | 'right')[] }\n\nexport function SafeArea({ children, edges = ['top', 'bottom'] }: SafeAreaProps) {\n return (\n <YStack\n flex={1} backgroundColor=\"$background\"\n paddingTop={edges.includes('top') ? '$6' : undefined}\n paddingBottom={edges.includes('bottom') ? '$6' : undefined}\n paddingLeft={edges.includes('left') ? '$4' : undefined}\n paddingRight={edges.includes('right') ? '$4' : undefined}\n >\n {children}\n </YStack>\n )\n}\n","import { type ReactNode } from 'react'\nimport { XStack, YStack } from 'tamagui'\n\nexport type GridProps = { children: ReactNode; columns?: number; gap?: string }\nexport type ContainerProps = { children: ReactNode; maxWidth?: number; centered?: boolean }\n\nexport function Grid({ children, columns = 2, gap = '$3' }: GridProps) {\n const childWidth = `${100 / columns}%`\n return (\n <XStack flexWrap=\"wrap\" gap={gap as any}>\n {Array.isArray(children) ? children.map((child, i) => (\n <YStack key={i} width={childWidth as any} flexBasis={childWidth as any}>{child}</YStack>\n )) : children}\n </XStack>\n )\n}\n\nexport function Container({ children, maxWidth = 500, centered = true }: ContainerProps) {\n return <YStack width=\"100%\" maxWidth={maxWidth} alignSelf={centered ? 'center' : undefined}>{children}</YStack>\n}\n","import { Button, SizableText, XStack, YStack, Circle } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type PlanOption = {\n id: string\n name: string\n price: string\n period: string\n features: string[]\n popular?: boolean\n}\n\nexport type PaywallScreenProps = {\n title?: string\n subtitle?: string\n plans: PlanOption[]\n selectedPlan?: string\n onSelectPlan?: (planId: string) => void\n onContinue?: () => void\n onRestore?: () => void\n continueLabel?: string\n}\n\nexport function PaywallScreen({\n title = 'Upgrade Your Experience',\n subtitle = 'Choose the plan that works for you',\n plans,\n selectedPlan,\n onSelectPlan,\n onContinue,\n onRestore,\n continueLabel = 'Continue',\n}: PaywallScreenProps) {\n return (\n <YStack flex={1} padding=\"$4\" gap=\"$5\" backgroundColor=\"$background\">\n <YStack gap=\"$2\" paddingTop=\"$6\">\n <SizableText size=\"$9\" fontWeight=\"700\" textAlign=\"center\">\n {title}\n </SizableText>\n <SizableText size=\"$4\" color=\"$color10\" textAlign=\"center\">\n {subtitle}\n </SizableText>\n </YStack>\n\n <YStack gap=\"$3\" flex={1}>\n {plans.map((plan) => (\n <YStack\n key={plan.id}\n padding=\"$4\"\n borderRadius=\"$5\"\n borderWidth={2}\n borderColor={selectedPlan === plan.id ? '$color9' : '$color4'}\n backgroundColor={selectedPlan === plan.id ? '$color2' : '$color1'}\n pressStyle={{ scale: 0.98 }}\n onPress={() => onSelectPlan?.(plan.id)}\n cursor=\"pointer\"\n >\n <XStack justifyContent=\"space-between\" alignItems=\"center\">\n <YStack>\n <SizableText size=\"$5\" fontWeight=\"600\">\n {plan.name}\n </SizableText>\n <XStack alignItems=\"baseline\" gap=\"$1\">\n <SizableText size=\"$8\" fontWeight=\"700\">\n {plan.price}\n </SizableText>\n <SizableText size=\"$3\" color=\"$color9\">\n /{plan.period}\n </SizableText>\n </XStack>\n </YStack>\n {plan.popular && (\n <YStack backgroundColor=\"$color9\" paddingHorizontal=\"$2\" paddingVertical=\"$1\" borderRadius=\"$10\">\n <SizableText size=\"$1\" color=\"$color1\" fontWeight=\"600\">\n POPULAR\n </SizableText>\n </YStack>\n )}\n </XStack>\n <YStack gap=\"$2\" paddingTop=\"$3\">\n {plan.features.map((feature, i) => (\n <XStack key={i} gap=\"$2\" alignItems=\"center\">\n <Circle size={6} backgroundColor=\"$green9\" />\n <SizableText size=\"$3\" color=\"$color11\">\n {feature}\n </SizableText>\n </XStack>\n ))}\n </YStack>\n </YStack>\n ))}\n </YStack>\n\n <YStack gap=\"$3\" paddingBottom=\"$4\">\n <Button\n size=\"$5\"\n backgroundColor=\"$color9\"\n color=\"$color1\"\n onPress={onContinue}\n hoverStyle={{ backgroundColor: '$color10' }}\n pressStyle={{ backgroundColor: '$color8' }}\n borderRadius=\"$5\"\n >\n {continueLabel}\n </Button>\n {onRestore && (\n <Button size=\"$3\" chromeless onPress={onRestore}>\n <SizableText size=\"$3\" color=\"$color9\">\n Restore Purchases\n </SizableText>\n </Button>\n )}\n </YStack>\n </YStack>\n )\n}\n","import { useState } from 'react'\nimport { Button, SizableText, XStack, YStack, Circle } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type OnboardingStep = {\n title: string\n description: string\n icon?: ReactNode\n}\n\nexport type OnboardingCarouselProps = {\n steps: OnboardingStep[]\n onComplete?: () => void\n onSkip?: () => void\n completeLabel?: string\n skipLabel?: string\n nextLabel?: string\n}\n\nexport function OnboardingCarousel({\n steps,\n onComplete,\n onSkip,\n completeLabel = 'Get Started',\n skipLabel = 'Skip',\n nextLabel = 'Next',\n}: OnboardingCarouselProps) {\n const [current, setCurrent] = useState(0)\n const isLast = current === steps.length - 1\n const step = steps[current]\n\n return (\n <YStack flex={1} backgroundColor=\"$background\" padding=\"$4\" justifyContent=\"space-between\">\n <XStack justifyContent=\"flex-end\" paddingTop=\"$4\">\n {!isLast && onSkip && (\n <Button chromeless onPress={onSkip}>\n <SizableText size=\"$4\" color=\"$color9\">\n {skipLabel}\n </SizableText>\n </Button>\n )}\n </XStack>\n\n <YStack flex={1} alignItems=\"center\" justifyContent=\"center\" gap=\"$5\" paddingHorizontal=\"$4\">\n {step?.icon && (\n <Circle size={120} backgroundColor=\"$color2\" alignItems=\"center\" justifyContent=\"center\">\n {step.icon}\n </Circle>\n )}\n <YStack gap=\"$3\" alignItems=\"center\">\n <SizableText size=\"$9\" fontWeight=\"700\" textAlign=\"center\">\n {step?.title}\n </SizableText>\n <SizableText size=\"$4\" color=\"$color10\" textAlign=\"center\" maxWidth={300}>\n {step?.description}\n </SizableText>\n </YStack>\n </YStack>\n\n <YStack gap=\"$3\" paddingBottom=\"$2\">\n <XStack justifyContent=\"center\" gap=\"$2\">\n {steps.map((_, i) => (\n <Circle\n key={i}\n size={8}\n backgroundColor={i === current ? '$color9' : '$color4'}\n animation=\"quick\"\n />\n ))}\n </XStack>\n <Button\n size=\"$5\"\n backgroundColor=\"$color9\"\n color=\"$color1\"\n borderRadius=\"$5\"\n hoverStyle={{ backgroundColor: '$color10' }}\n pressStyle={{ backgroundColor: '$color8' }}\n onPress={() => (isLast ? onComplete?.() : setCurrent((c) => c + 1))}\n >\n {isLast ? completeLabel : nextLabel}\n </Button>\n </YStack>\n </YStack>\n )\n}\n","import { SizableText, XStack, YStack, Circle, Image } from 'tamagui'\n\nexport type ChatMessage = {\n id: string\n text: string\n sender: 'user' | 'other'\n timestamp?: string\n avatar?: string\n senderName?: string\n}\n\nexport type ChatBubbleProps = {\n message: ChatMessage\n showAvatar?: boolean\n}\n\nexport function ChatBubble({ message, showAvatar = true }: ChatBubbleProps) {\n const isUser = message.sender === 'user'\n\n return (\n <XStack\n alignSelf={isUser ? 'flex-end' : 'flex-start'}\n maxWidth=\"75%\"\n gap=\"$2\"\n flexDirection={isUser ? 'row-reverse' : 'row'}\n >\n {showAvatar && !isUser && (\n <Circle size={32} backgroundColor=\"$color4\" overflow=\"hidden\">\n {message.avatar ? (\n <Image source={{ uri: message.avatar }} width={32} height={32} objectFit=\"cover\" />\n ) : (\n <SizableText size=\"$2\" fontWeight=\"600\" color=\"$color11\">\n {message.senderName?.[0]?.toUpperCase() ?? '?'}\n </SizableText>\n )}\n </Circle>\n )}\n <YStack\n backgroundColor={isUser ? '$color9' : '$color3'}\n paddingHorizontal=\"$3\"\n paddingVertical=\"$2.5\"\n borderRadius=\"$5\"\n borderBottomRightRadius={isUser ? '$2' : '$5'}\n borderBottomLeftRadius={isUser ? '$5' : '$2'}\n gap=\"$1\"\n >\n <SizableText size=\"$3\" color={isUser ? '$color1' : '$color12'}>\n {message.text}\n </SizableText>\n {message.timestamp && (\n <SizableText size=\"$1\" color={isUser ? '$color3' : '$color9'} alignSelf=\"flex-end\">\n {message.timestamp}\n </SizableText>\n )}\n </YStack>\n </XStack>\n )\n}\n","import { Separator, SizableText, Switch, XStack, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type SettingsItem = {\n id: string\n icon?: ReactNode\n title: string\n subtitle?: string\n right?: ReactNode\n onPress?: () => void\n type?: 'navigate' | 'toggle'\n value?: boolean\n onValueChange?: (value: boolean) => void\n}\n\nexport type SettingsSection = {\n title?: string\n items: SettingsItem[]\n}\n\nexport type SettingsScreenProps = {\n sections: SettingsSection[]\n header?: ReactNode\n}\n\nfunction SettingsItemRow({ item }: { item: SettingsItem }) {\n return (\n <XStack\n alignItems=\"center\"\n gap=\"$3\"\n paddingVertical=\"$3\"\n paddingHorizontal=\"$4\"\n hoverStyle={item.onPress ? { backgroundColor: '$color2' } : undefined}\n pressStyle={item.onPress ? { backgroundColor: '$color3' } : undefined}\n onPress={item.onPress}\n cursor={item.onPress ? 'pointer' : undefined}\n >\n {item.icon && (\n <YStack width={24} alignItems=\"center\">\n {item.icon}\n </YStack>\n )}\n <YStack flex={1} gap=\"$1\">\n <SizableText size=\"$4\" fontWeight=\"500\">\n {item.title}\n </SizableText>\n {item.subtitle && (\n <SizableText size=\"$2\" color=\"$color9\">\n {item.subtitle}\n </SizableText>\n )}\n </YStack>\n {item.type === 'toggle' ? (\n <Switch size=\"$3\" checked={item.value} onCheckedChange={item.onValueChange}>\n <Switch.Thumb animation=\"quick\" />\n </Switch>\n ) : item.right ? (\n item.right\n ) : (\n item.onPress && (\n <SizableText size=\"$5\" color=\"$color8\">\n ›\n </SizableText>\n )\n )}\n </XStack>\n )\n}\n\nexport function SettingsScreen({ sections, header }: SettingsScreenProps) {\n return (\n <YStack flex={1} backgroundColor=\"$background\">\n {header}\n <YStack gap=\"$4\" paddingVertical=\"$2\">\n {sections.map((section, si) => (\n <YStack key={si}>\n {section.title && (\n <SizableText\n size=\"$2\"\n fontWeight=\"600\"\n color=\"$color9\"\n paddingHorizontal=\"$4\"\n paddingBottom=\"$2\"\n textTransform=\"uppercase\"\n >\n {section.title}\n </SizableText>\n )}\n <YStack backgroundColor=\"$color1\" borderRadius=\"$4\" marginHorizontal=\"$3\" overflow=\"hidden\">\n {section.items.map((item, ii) => (\n <YStack key={item.id}>\n <SettingsItemRow item={item} />\n {ii < section.items.length - 1 && (\n <Separator borderColor=\"$color3\" marginLeft=\"$12\" />\n )}\n </YStack>\n ))}\n </YStack>\n </YStack>\n ))}\n </YStack>\n </YStack>\n )\n}\n","import { Button, SizableText, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type EmptyStateProps = {\n icon?: ReactNode\n title: string\n description?: string\n actionLabel?: string\n onAction?: () => void\n}\n\nexport function EmptyState({ icon, title, description, actionLabel, onAction }: EmptyStateProps) {\n return (\n <YStack flex={1} alignItems=\"center\" justifyContent=\"center\" gap=\"$4\" padding=\"$6\">\n {icon}\n <YStack gap=\"$2\" alignItems=\"center\">\n <SizableText size=\"$6\" fontWeight=\"600\" textAlign=\"center\">\n {title}\n </SizableText>\n {description && (\n <SizableText size=\"$4\" color=\"$color9\" textAlign=\"center\" maxWidth={280}>\n {description}\n </SizableText>\n )}\n </YStack>\n {actionLabel && onAction && (\n <Button\n size=\"$4\"\n backgroundColor=\"$color9\"\n color=\"$color1\"\n borderRadius=\"$4\"\n hoverStyle={{ backgroundColor: '$color10' }}\n pressStyle={{ backgroundColor: '$color8' }}\n onPress={onAction}\n >\n {actionLabel}\n </Button>\n )}\n </YStack>\n )\n}\n","import { Circle, Image, SizableText, XStack, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type ProfileHeaderProps = {\n name: string\n subtitle?: string\n avatar?: string\n stats?: { label: string; value: string }[]\n actions?: ReactNode\n}\n\nexport function ProfileHeader({ name, subtitle, avatar, stats, actions }: ProfileHeaderProps) {\n return (\n <YStack alignItems=\"center\" gap=\"$4\" paddingVertical=\"$6\" paddingHorizontal=\"$4\">\n <Circle size={80} backgroundColor=\"$color4\" overflow=\"hidden\">\n {avatar ? (\n <Image source={{ uri: avatar }} width={80} height={80} objectFit=\"cover\" />\n ) : (\n <SizableText size=\"$9\" fontWeight=\"700\" color=\"$color11\">\n {name[0]?.toUpperCase() ?? '?'}\n </SizableText>\n )}\n </Circle>\n <YStack alignItems=\"center\" gap=\"$1\">\n <SizableText size=\"$7\" fontWeight=\"700\">\n {name}\n </SizableText>\n {subtitle && (\n <SizableText size=\"$4\" color=\"$color10\">\n {subtitle}\n </SizableText>\n )}\n </YStack>\n {stats && stats.length > 0 && (\n <XStack gap=\"$6\">\n {stats.map((stat, i) => (\n <YStack key={i} alignItems=\"center\" gap=\"$1\">\n <SizableText size=\"$6\" fontWeight=\"700\">\n {stat.value}\n </SizableText>\n <SizableText size=\"$2\" color=\"$color9\">\n {stat.label}\n </SizableText>\n </YStack>\n ))}\n </XStack>\n )}\n {actions}\n </YStack>\n )\n}\n","import { SizableText, XStack, YStack } from 'tamagui'\nimport { Avatar as BlinkAvatar } from '../primitives/Avatar'\n\nexport type AppHeaderVariant = 'simple' | 'back' | 'profile' | 'centered'\nexport type AppHeaderProps = {\n title: string; subtitle?: string; variant?: AppHeaderVariant\n onBack?: () => void; avatar?: string; left?: React.ReactNode; right?: React.ReactNode\n transparent?: boolean; borderless?: boolean\n}\n\nexport function AppHeader({ title, subtitle, variant = 'simple', onBack, avatar, left, right, transparent, borderless }: AppHeaderProps) {\n const leftContent = (() => {\n if (variant === 'back') return (\n <SizableText size=\"$6\" paddingRight=\"$2\" onPress={onBack} pressStyle={{ opacity: 0.6 }} cursor=\"pointer\">{'\\u2039'}</SizableText>\n )\n if (variant === 'profile') return <BlinkAvatar uri={avatar} name={title} size=\"sm\" />\n if (variant === 'centered') return left ?? null\n return null\n })()\n const rightContent = (variant === 'profile' || variant === 'centered') ? (right ?? null) : null\n\n return (\n <YStack paddingTop=\"$6\" backgroundColor={transparent ? 'transparent' : '$background'}\n borderBottomWidth={borderless ? 0 : 1} borderBottomColor=\"$borderColor\">\n <XStack height={56} alignItems=\"center\" paddingHorizontal=\"$4\" gap=\"$3\">\n {leftContent}\n <YStack flex={1} alignItems={variant === 'centered' ? 'center' : 'flex-start'}>\n <SizableText size=\"$6\" fontWeight=\"700\" numberOfLines={1}>{title}</SizableText>\n {subtitle && <SizableText size=\"$2\" color=\"$color9\" numberOfLines={1}>{subtitle}</SizableText>}\n </YStack>\n {rightContent}\n </XStack>\n </YStack>\n )\n}\n","import { type ReactNode } from 'react'\nimport { Sheet, SizableText, XStack, YStack } from 'tamagui'\nimport { ScrollView } from 'react-native'\n\nexport type BottomSheetProps = {\n open: boolean; onOpenChange: (open: boolean) => void; title?: string; children: ReactNode\n snapPoints?: number[]; dismissOnSnapToBottom?: boolean; showHandle?: boolean; showClose?: boolean\n}\n\nexport function BottomSheet({ open, onOpenChange, title, children, snapPoints = [85], dismissOnSnapToBottom = true, showHandle = true, showClose = false }: BottomSheetProps) {\n return (\n <Sheet modal open={open} onOpenChange={onOpenChange} snapPoints={snapPoints} dismissOnSnapToBottom={dismissOnSnapToBottom} animation=\"medium\">\n <Sheet.Overlay animation=\"lazy\" enterStyle={{ opacity: 0 }} exitStyle={{ opacity: 0 }} />\n {showHandle && <Sheet.Handle />}\n <Sheet.Frame borderTopLeftRadius=\"$6\" borderTopRightRadius=\"$6\" backgroundColor=\"$background\">\n {(title || showClose) && (\n <XStack paddingHorizontal=\"$4\" paddingTop=\"$3\" paddingBottom=\"$2\" alignItems=\"center\" justifyContent=\"space-between\">\n <SizableText size=\"$6\" fontWeight=\"600\" flexShrink={1}>{title}</SizableText>\n {showClose && (\n <XStack width={28} height={28} borderRadius=\"$10\" backgroundColor=\"$color4\" alignItems=\"center\" justifyContent=\"center\"\n pressStyle={{ opacity: 0.7 }} onPress={() => onOpenChange(false)}>\n <SizableText size=\"$3\" color=\"$color10\" fontWeight=\"600\">{'\\u2715'}</SizableText>\n </XStack>\n )}\n </XStack>\n )}\n <ScrollView contentContainerStyle={{ paddingBottom: 40 }}>\n <YStack padding=\"$4\">{children}</YStack>\n </ScrollView>\n </Sheet.Frame>\n </Sheet>\n )\n}\n","import { useState, type ReactNode } from 'react'\nimport { Button, SizableText, Spinner, XStack, YStack } from 'tamagui'\nimport { Input } from '../primitives/Input'\nimport { Divider } from '../layouts/Divider'\n\nexport type AuthProvider = { id: string; name: string; icon?: ReactNode }\nexport type LoginScreenProps = {\n title?: string; subtitle?: string; logo?: ReactNode; providers?: AuthProvider[]\n onProviderPress?: (id: string) => void; showEmailForm?: boolean\n onEmailSubmit?: (email: string, password: string) => void\n onForgotPassword?: () => void; onCreateAccount?: () => void\n onTerms?: () => void; onPrivacy?: () => void; loading?: boolean\n}\n\nexport function LoginScreen({ title = 'Welcome', subtitle = 'Sign in to continue', logo, providers = [], onProviderPress, showEmailForm, onEmailSubmit, onForgotPassword, onCreateAccount, onTerms, onPrivacy, loading }: LoginScreenProps) {\n const [email, setEmail] = useState('')\n const [password, setPassword] = useState('')\n return (\n <YStack flex={1} padding=\"$4\" gap=\"$5\" backgroundColor=\"$background\" justifyContent=\"center\">\n <YStack alignItems=\"center\" gap=\"$2\">\n {logo && <YStack paddingBottom=\"$3\">{logo}</YStack>}\n <SizableText size=\"$9\" fontWeight=\"700\" textAlign=\"center\">{title}</SizableText>\n <SizableText size=\"$4\" color=\"$color10\" textAlign=\"center\">{subtitle}</SizableText>\n </YStack>\n {providers.length > 0 && (\n <YStack gap=\"$2.5\">\n {providers.map(p => (\n <Button key={p.id} size=\"$5\" borderWidth={1.5} borderColor=\"$color5\" backgroundColor=\"$color1\" borderRadius=\"$4\"\n disabled={loading} onPress={() => onProviderPress?.(p.id)}\n hoverStyle={{ backgroundColor: '$color2' }} pressStyle={{ backgroundColor: '$color3' }}>\n <XStack alignItems=\"center\" gap=\"$2\">\n {p.icon}\n <SizableText size=\"$4\" fontWeight=\"500\">{p.name}</SizableText>\n </XStack>\n </Button>\n ))}\n </YStack>\n )}\n {showEmailForm && providers.length > 0 && <Divider label=\"or\" />}\n {showEmailForm && (\n <YStack gap=\"$3\">\n <Input label=\"Email\" placeholder=\"your@email.com\" value={email} onChangeText={setEmail} keyboardType=\"email-address\" autoCapitalize=\"none\" />\n <Input label=\"Password\" placeholder=\"••••••••\" value={password} onChangeText={setPassword} secureTextEntry />\n {onForgotPassword && <XStack justifyContent=\"flex-end\"><SizableText size=\"$3\" color=\"$color9\" onPress={onForgotPassword}>Forgot password?</SizableText></XStack>}\n <Button size=\"$5\" backgroundColor=\"$color9\" color=\"$color1\" borderRadius=\"$5\" disabled={loading}\n onPress={() => onEmailSubmit?.(email, password)}\n hoverStyle={{ backgroundColor: '$color10' }} pressStyle={{ backgroundColor: '$color8' }}\n icon={loading ? <Spinner size=\"small\" color=\"$color1\" /> : undefined}>\n Sign In\n </Button>\n {onCreateAccount && <Button size=\"$3\" chromeless onPress={onCreateAccount}><SizableText size=\"$3\" color=\"$color9\">Create Account</SizableText></Button>}\n </YStack>\n )}\n {(onTerms || onPrivacy) && (\n <YStack paddingTop=\"$2\" alignItems=\"center\">\n <SizableText size=\"$2\" color=\"$color8\" textAlign=\"center\">\n By continuing you agree to our{' '}\n {onTerms && <SizableText size=\"$2\" color=\"$color9\" onPress={onTerms}>Terms of Service</SizableText>}\n {onTerms && onPrivacy && ' & '}\n {onPrivacy && <SizableText size=\"$2\" color=\"$color9\" onPress={onPrivacy}>Privacy Policy</SizableText>}\n </SizableText>\n </YStack>\n )}\n </YStack>\n )\n}\n","import { SizableText, XStack, YStack } from 'tamagui'\n\nexport type TabBarItem = { id: string; label: string; icon?: React.ReactNode }\nexport type TabBarProps = { tabs: TabBarItem[]; activeTab: string; onTabPress: (id: string) => void; showLabels?: boolean }\n\nexport function TabBar({ tabs, activeTab, onTabPress, showLabels = true }: TabBarProps) {\n return (\n <XStack height={56} borderTopWidth={1} borderTopColor=\"$borderColor\" backgroundColor=\"$background\" paddingBottom=\"$2\">\n {tabs.map(tab => {\n const active = tab.id === activeTab\n return (\n <YStack key={tab.id} flex={1} alignItems=\"center\" justifyContent=\"center\" gap=\"$1\"\n pressStyle={{ opacity: 0.6 }} onPress={() => onTabPress(tab.id)}>\n {tab.icon && <SizableText size=\"$5\" color={active ? '$color9' : '$color8'}>{tab.icon}</SizableText>}\n {showLabels && <SizableText size=\"$1\" color={active ? '$color9' : '$color8'} fontWeight={active ? '600' : '400'}>{tab.label}</SizableText>}\n </YStack>\n )\n })}\n </XStack>\n )\n}\n","import { Input, SizableText, XStack } from 'tamagui'\n\nexport type SearchBarProps = {\n value: string; onChangeText: (text: string) => void; placeholder?: string\n onFilter?: () => void; onCancel?: () => void; autoFocus?: boolean\n}\n\nexport function SearchBar({ value, onChangeText, placeholder = 'Search\\u2026', onFilter, onCancel, autoFocus }: SearchBarProps) {\n return (\n <XStack height={44} borderRadius=\"$10\" backgroundColor=\"$color2\" alignItems=\"center\" paddingHorizontal=\"$3\" gap=\"$2\">\n <SizableText size=\"$4\" color=\"$color8\">{'\\u2315'}</SizableText>\n <Input flex={1} size=\"$4\" value={value} onChangeText={onChangeText} placeholder={placeholder}\n placeholderTextColor=\"$color8\" backgroundColor=\"transparent\" borderWidth={0} autoFocus={autoFocus} />\n {onFilter && <SizableText size=\"$4\" color=\"$color9\" pressStyle={{ opacity: 0.6 }} onPress={onFilter}>{'\\u2ACF'}</SizableText>}\n {onCancel && <SizableText size=\"$3\" color=\"$color9\" pressStyle={{ opacity: 0.6 }} onPress={onCancel}>Cancel</SizableText>}\n </XStack>\n )\n}\n","import { type ReactNode } from 'react'\nimport { SizableText, XStack } from 'tamagui'\n\nexport type FABProps = {\n icon?: ReactNode; label?: string; onPress: () => void\n position?: 'bottom-right' | 'bottom-center' | 'bottom-left'; size?: 'sm' | 'md' | 'lg'\n}\n\nconst sizes = { sm: 44, md: 56, lg: 68 }\nconst positionStyles = {\n 'bottom-right': { right: 20 },\n 'bottom-center': { left: '50%', marginLeft: -28 },\n 'bottom-left': { left: 20 },\n}\n\nexport function FloatingActionButton({ icon, label, onPress, position = 'bottom-right', size = 'md' }: FABProps) {\n const dim = sizes[size]\n return (\n <XStack position=\"absolute\" bottom={32} {...positionStyles[position] as any}\n height={dim} minWidth={dim} borderRadius={label ? '$6' : '$10'}\n backgroundColor=\"$color9\" alignItems=\"center\" justifyContent=\"center\" gap=\"$2\"\n paddingHorizontal={label ? '$4' : 0} elevation={4}\n pressStyle={{ scale: 0.95, opacity: 0.9 }} onPress={onPress}>\n {icon && <SizableText color=\"$color1\">{icon}</SizableText>}\n {label && <SizableText color=\"$color1\" size=\"$4\" fontWeight=\"600\">{label}</SizableText>}\n </XStack>\n )\n}\n","import { type ReactNode } from 'react'\nimport { Sheet, SizableText, XStack, YStack } from 'tamagui'\n\nexport type ActionSheetItem = { id: string; label: string; icon?: ReactNode; destructive?: boolean }\nexport type ActionSheetProps = {\n open: boolean; onOpenChange: (open: boolean) => void; title?: string\n items: ActionSheetItem[]; onSelect: (id: string) => void; cancelLabel?: string\n}\n\nexport function ActionSheet({ open, onOpenChange, title, items, onSelect, cancelLabel = 'Cancel' }: ActionSheetProps) {\n return (\n <Sheet modal open={open} onOpenChange={onOpenChange} snapPoints={[50]} dismissOnSnapToBottom animation=\"medium\">\n <Sheet.Overlay animation=\"lazy\" enterStyle={{ opacity: 0 }} exitStyle={{ opacity: 0 }} />\n <Sheet.Handle />\n <Sheet.Frame borderTopLeftRadius=\"$6\" borderTopRightRadius=\"$6\" backgroundColor=\"$background\">\n {title && <SizableText size=\"$3\" color=\"$color8\" textAlign=\"center\" paddingTop=\"$3\" paddingBottom=\"$1\">{title}</SizableText>}\n <YStack paddingHorizontal=\"$3\" paddingTop=\"$2\">\n {items.map(item => (\n <XStack key={item.id} height={52} alignItems=\"center\" gap=\"$3\" paddingHorizontal=\"$3\" borderRadius=\"$4\"\n pressStyle={{ backgroundColor: '$color3' }} onPress={() => { onSelect(item.id); onOpenChange(false) }}>\n {item.icon && <SizableText size=\"$5\">{item.icon}</SizableText>}\n <SizableText size=\"$5\" flex={1} color={item.destructive ? '$red9' : '$color12'}\n fontWeight={item.destructive ? '600' : '400'}>{item.label}</SizableText>\n </XStack>\n ))}\n </YStack>\n <YStack paddingHorizontal=\"$3\" paddingVertical=\"$3\" borderTopWidth={1} borderTopColor=\"$borderColor\" marginTop=\"$2\">\n <XStack height={48} alignItems=\"center\" justifyContent=\"center\" borderRadius=\"$4\"\n pressStyle={{ backgroundColor: '$color3' }} onPress={() => onOpenChange(false)}>\n <SizableText size=\"$5\" fontWeight=\"600\" color=\"$color9\">{cancelLabel}</SizableText>\n </XStack>\n </YStack>\n </Sheet.Frame>\n </Sheet>\n )\n}\n","import { YStack } from 'tamagui'\n\nexport type SkeletonProps = { width?: number | string; height?: number; borderRadius?: number; variant?: 'text' | 'circular' | 'rectangular' }\n\nexport function Skeleton({ width, height, borderRadius, variant = 'rectangular' }: SkeletonProps) {\n const size = variant === 'circular' ? (height ?? 40) : height\n const w = variant === 'text' ? (width ?? '100%') : width\n const h = variant === 'text' ? (height ?? 16) : size\n const r = variant === 'circular' ? 9999 : (borderRadius ?? 8)\n return <YStack width={w as any} height={h} borderRadius={r} backgroundColor=\"$color3\" opacity={0.6} animation=\"slow\" enterStyle={{ opacity: 0.3 }} exitStyle={{ opacity: 0.3 }} />\n}\n","import { type ReactNode } from 'react'\nimport { SizableText, XStack, YStack } from 'tamagui'\n\nexport type NotificationBannerProps = {\n title: string; message?: string; variant?: 'info' | 'success' | 'warning' | 'error'\n onPress?: () => void; onDismiss?: () => void; icon?: ReactNode\n}\n\nconst variantColors = {\n info: { bg: '$blue3', text: '$blue11' }, success: { bg: '$green3', text: '$green11' },\n warning: { bg: '$yellow3', text: '$yellow11' }, error: { bg: '$red3', text: '$red11' },\n}\n\nexport function NotificationBanner({ title, message, variant = 'info', onPress, onDismiss, icon }: NotificationBannerProps) {\n const colors = variantColors[variant]\n return (\n <XStack backgroundColor={colors.bg} padding=\"$3\" borderRadius=\"$4\" gap=\"$3\" alignItems=\"flex-start\"\n onPress={onPress} pressStyle={onPress ? { opacity: 0.8 } : undefined}>\n {icon && <YStack paddingTop=\"$0.5\">{icon}</YStack>}\n <YStack flex={1} gap=\"$1\">\n <SizableText size=\"$4\" fontWeight=\"600\" color={colors.text}>{title}</SizableText>\n {message && <SizableText size=\"$3\" color={colors.text} opacity={0.8}>{message}</SizableText>}\n </YStack>\n {onDismiss && <SizableText size=\"$3\" color={colors.text} opacity={0.6} onPress={onDismiss} padding=\"$1\">{'\\u2715'}</SizableText>}\n </XStack>\n )\n}\n","import { Circle, SizableText, XStack, YStack } from 'tamagui'\n\nexport type ProgressStepsProps = { steps: string[]; currentStep: number; variant?: 'dots' | 'bar' | 'numbered' }\n\nexport function ProgressSteps({ steps, currentStep, variant = 'dots' }: ProgressStepsProps) {\n if (variant === 'bar') {\n const progress = steps.length > 1 ? (currentStep / (steps.length - 1)) * 100 : 100\n return (\n <YStack gap=\"$2\">\n <YStack height={4} backgroundColor=\"$color4\" borderRadius={2} overflow=\"hidden\">\n <YStack height={4} width={`${progress}%`} backgroundColor=\"$color9\" borderRadius={2} animation=\"quick\" />\n </YStack>\n <XStack justifyContent=\"space-between\">\n {steps.map((label, i) => <SizableText key={i} size=\"$2\" color={i <= currentStep ? '$color9' : '$color8'}>{label}</SizableText>)}\n </XStack>\n </YStack>\n )\n }\n return (\n <XStack alignItems=\"center\" justifyContent=\"center\" gap=\"$0\">\n {steps.map((label, i) => (\n <XStack key={i} alignItems=\"center\" gap=\"$0\">\n <YStack alignItems=\"center\" gap=\"$1.5\">\n <Circle size={variant === 'numbered' ? 28 : 10} backgroundColor={i <= currentStep ? '$color9' : '$color4'} animation=\"quick\">\n {variant === 'numbered' && <SizableText size=\"$2\" fontWeight=\"600\" color={i <= currentStep ? '$color1' : '$color8'}>{i + 1}</SizableText>}\n </Circle>\n <SizableText size=\"$1\" color={i <= currentStep ? '$color11' : '$color8'} numberOfLines={1}>{label}</SizableText>\n </YStack>\n {i < steps.length - 1 && <YStack height={2} width={32} backgroundColor={i < currentStep ? '$color9' : '$color4'} marginBottom=\"$4\" />}\n </XStack>\n ))}\n </XStack>\n )\n}\n","import { useState, type ReactNode } from 'react'\nimport { Button, SizableText, XStack, YStack } from 'tamagui'\n\nexport type SwipeAction = { id: string; label: string; color: string; onPress: () => void }\nexport type SwipeableRowProps = { children: ReactNode; leftActions?: SwipeAction[]; rightActions?: SwipeAction[] }\n\nexport function SwipeableRow({ children, leftActions, rightActions }: SwipeableRowProps) {\n const [showActions, setShowActions] = useState(false)\n const actions = [...(leftActions ?? []), ...(rightActions ?? [])]\n if (actions.length === 0) return <>{children}</>\n return (\n <YStack>\n <YStack onLongPress={() => setShowActions(v => !v)} pressStyle={{ opacity: 0.9 }}>{children}</YStack>\n {showActions && (\n <XStack gap=\"$2\" padding=\"$2\" animation=\"quick\" enterStyle={{ opacity: 0, scale: 0.95 }}>\n {actions.map(action => (\n <Button key={action.id} flex={1} size=\"$3\" backgroundColor={action.color} borderRadius=\"$3\"\n onPress={() => { action.onPress(); setShowActions(false) }}>\n <SizableText size=\"$2\" fontWeight=\"600\" color=\"white\">{action.label}</SizableText>\n </Button>\n ))}\n </XStack>\n )}\n </YStack>\n )\n}\n","import { Image, SizableText, XStack, YStack } from 'tamagui'\nimport { LinearGradient } from 'tamagui/linear-gradient'\n\nexport type MediaCardProps = {\n image: string; title: string; subtitle?: string\n overlay?: 'gradient' | 'dark' | 'none'; aspectRatio?: number\n onPress?: () => void; badge?: string\n}\n\nexport function MediaCard({ image, title, subtitle, overlay = 'gradient', aspectRatio = 16 / 9, onPress, badge }: MediaCardProps) {\n return (\n <YStack borderRadius=\"$4\" overflow=\"hidden\" onPress={onPress}\n pressStyle={onPress ? { scale: 0.98, opacity: 0.9 } : undefined} animation=\"quick\">\n <YStack aspectRatio={aspectRatio}>\n <Image source={{ uri: image }} width=\"100%\" height=\"100%\" objectFit=\"cover\" />\n {overlay === 'gradient' && (\n <LinearGradient colors={['transparent', 'rgba(0,0,0,0.7)']} start={[0, 0]} end={[0, 1]}\n position=\"absolute\" bottom={0} left={0} right={0} height=\"60%\" />\n )}\n {overlay === 'dark' && <YStack position=\"absolute\" fullscreen backgroundColor=\"rgba(0,0,0,0.4)\" />}\n {badge && (\n <XStack position=\"absolute\" top=\"$2\" right=\"$2\" backgroundColor=\"$color9\"\n paddingHorizontal=\"$2\" paddingVertical=\"$1\" borderRadius=\"$2\">\n <SizableText size=\"$1\" fontWeight=\"600\" color=\"$color1\">{badge}</SizableText>\n </XStack>\n )}\n <YStack position=\"absolute\" bottom={0} left={0} right={0} padding=\"$3\" gap=\"$1\">\n <SizableText size=\"$5\" fontWeight=\"600\" color=\"white\">{title}</SizableText>\n {subtitle && <SizableText size=\"$3\" color=\"rgba(255,255,255,0.8)\">{subtitle}</SizableText>}\n </YStack>\n </YStack>\n </YStack>\n )\n}\n","import { Children, useState, type ReactNode } from 'react'\nimport { Circle, XStack, YStack } from 'tamagui'\nimport { ScrollView } from 'react-native'\nimport type { NativeScrollEvent, NativeSyntheticEvent } from 'react-native'\n\nexport type CarouselProps = { children: ReactNode; gap?: string; snapToInterval?: number; showIndicators?: boolean }\n\nexport function Carousel({ children, gap = '$3', snapToInterval, showIndicators = false }: CarouselProps) {\n const [activeIndex, setActiveIndex] = useState(0)\n const count = Children.count(children)\n const gapPx = gap === '$2' ? 8 : gap === '$3' ? 12 : 16\n return (\n <YStack gap=\"$3\">\n <ScrollView horizontal showsHorizontalScrollIndicator={false} snapToInterval={snapToInterval} decelerationRate=\"fast\"\n contentContainerStyle={{ gap: gapPx, paddingHorizontal: 16 }}\n onMomentumScrollEnd={(e: NativeSyntheticEvent<NativeScrollEvent>) => {\n if (snapToInterval) setActiveIndex(Math.round(e.nativeEvent.contentOffset.x / snapToInterval))\n }}>\n {children}\n </ScrollView>\n {showIndicators && count > 1 && (\n <XStack justifyContent=\"center\" gap=\"$1.5\">\n {Array.from({ length: count }, (_, i) => (\n <Circle key={i} size={6} backgroundColor={i === activeIndex ? '$color9' : '$color4'} animation=\"quick\" />\n ))}\n </XStack>\n )}\n </YStack>\n )\n}\n","import { type ReactNode } from 'react'\nimport { YStack } from 'tamagui'\nimport { RefreshControl, ScrollView } from 'react-native'\n\nexport type PullToRefreshProps = { children: ReactNode; onRefresh: () => void; refreshing?: boolean }\n\nexport function PullToRefresh({ children, onRefresh, refreshing = false }: PullToRefreshProps) {\n return (\n <ScrollView contentContainerStyle={{ flexGrow: 1 }}\n refreshControl={<RefreshControl refreshing={refreshing} onRefresh={onRefresh} />}>\n <YStack flex={1}>{children}</YStack>\n </ScrollView>\n )\n}\n"],"mappings":"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","names":["Image","import_tamagui","import_tamagui","TamaguiButton","import_tamagui","import_tamagui","import_tamagui","TamaguiInput","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_react","import_tamagui","import_jsx_runtime","import_tamagui","import_tamagui","Image","TamaguiImage","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_react","import_tamagui","import_jsx_runtime","import_react","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_react","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_react","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_react_native","import_jsx_runtime","import_react","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","variantColors","import_tamagui","import_jsx_runtime","import_react","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_react","import_tamagui","import_react_native","import_jsx_runtime","import_tamagui","import_react_native","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/config/tamagui.config.ts","../src/primitives/Button.tsx","../src/primitives/Text.tsx","../src/primitives/Card.tsx","../src/primitives/Input.tsx","../src/primitives/Avatar.tsx","../src/interface/Headings.tsx","../src/interface/PageContainer.tsx","../src/interface/Dialog.tsx","../src/interface/Pressable.tsx","../src/interface/Image.tsx","../src/interface/Badge.tsx","../src/interface/Icon.tsx","../src/interface/BlinkAccordion.tsx","../src/interface/BlinkTabs.tsx","../src/interface/BlinkToggleGroup.tsx","../src/interface/BlinkToast.tsx","../src/interface/FormField.tsx","../src/interface/Tooltip.tsx","../src/layouts/StepPageLayout.tsx","../src/layouts/ScreenLayout.tsx","../src/layouts/Section.tsx","../src/layouts/ListItem.tsx","../src/layouts/Divider.tsx","../src/layouts/KeyboardStickyFooter.tsx","../src/layouts/SafeArea.tsx","../src/layouts/Grid.tsx","../src/patterns/PaywallScreen.tsx","../src/patterns/OnboardingCarousel.tsx","../src/patterns/ChatBubble.tsx","../src/patterns/SettingsScreen.tsx","../src/patterns/EmptyState.tsx","../src/patterns/ProfileHeader.tsx","../src/patterns/AppHeader.tsx","../src/patterns/BottomSheet.tsx","../src/patterns/LoginScreen.tsx","../src/patterns/TabBar.tsx","../src/patterns/SearchBar.tsx","../src/patterns/FloatingActionButton.tsx","../src/patterns/ActionSheet.tsx","../src/patterns/Skeleton.tsx","../src/patterns/NotificationBanner.tsx","../src/patterns/ProgressSteps.tsx","../src/patterns/SwipeableRow.tsx","../src/patterns/MediaCard.tsx","../src/patterns/Carousel.tsx","../src/patterns/PullToRefresh.tsx"],"sourcesContent":["// Config\nexport { blinkConfig } from './config/tamagui.config'\nexport type { BlinkConfig } from './config/tamagui.config'\nexport { defaultConfig as tamaguiDefaultConfig } from '@tamagui/config/v5'\n\n// ─── Tamagui re-exports (full component library) ────────────────────────────\nexport {\n // Layout\n View, XStack, YStack, ZStack, ScrollView, Circle, Square,\n // Groups\n XGroup, YGroup,\n // Text\n H1, H2, H3, H4, H5, H6, Paragraph, SizableText, Text, Label,\n // Forms\n Button, Input, TextArea, Switch, Checkbox, Slider, RadioGroup, Select, Fieldset,\n // Display\n Card, Avatar, Separator, Image as TamaguiImage, Progress, Spinner, ListItem as TamaguiListItem,\n // Overlay\n Sheet, Dialog, AlertDialog, Popover, Tooltip, TooltipSimple,\n // Navigation (composable Tamagui components)\n Tabs, Accordion, ToggleGroup,\n // Utilities\n Adapt, PortalProvider, VisuallyHidden, Unspaced, Anchor, Form,\n // Theme\n Theme, TamaguiProvider, TamaguiProvider as BlinkProvider,\n createTamagui,\n // Styled\n styled, withStaticProperties,\n // Hooks\n useTheme, useMedia, useThemeName,\n // Types\n type GetProps, type SizeTokens, type ColorTokens, type ThemeTokens,\n} from 'tamagui'\n\n// ─── Blink styled primitives (named to avoid Tamagui conflicts) ──────────────\nexport { Button as BlinkButton } from './primitives/Button'\nexport type { ButtonProps as BlinkButtonProps } from './primitives/Button'\n\nexport { BlinkText } from './primitives/Text'\nexport type { BlinkTextProps } from './primitives/Text'\n\nexport { Card as BlinkCard } from './primitives/Card'\nexport type { CardProps as BlinkCardProps } from './primitives/Card'\n\nexport { Input as BlinkInput } from './primitives/Input'\nexport type { InputProps as BlinkInputProps } from './primitives/Input'\n\nexport { Avatar as BlinkAvatar } from './primitives/Avatar'\nexport type { AvatarProps as BlinkAvatarProps } from './primitives/Avatar'\n\n// ─── Blink interface components ──────────────────────────────────────────────\nexport { SubHeading, SepHeading } from './interface/Headings'\nexport { PageContainer, PageMainContainer } from './interface/PageContainer'\nexport { DialogProvider, showError, dialogConfirm } from './interface/Dialog'\nexport { Pressable } from './interface/Pressable'\nexport { Image } from './interface/Image'\nexport { Badge } from './interface/Badge'\nexport type { BadgeProps } from './interface/Badge'\n\nexport { Icon, ICONS } from './interface/Icon'\nexport type { IconName, IconProps } from './interface/Icon'\n\nexport { BlinkAccordion } from './interface/BlinkAccordion'\nexport type { BlinkAccordionProps, BlinkAccordionItem } from './interface/BlinkAccordion'\n\nexport { BlinkTabs } from './interface/BlinkTabs'\nexport type { BlinkTabsProps, BlinkTabItem } from './interface/BlinkTabs'\n\nexport { BlinkToggleGroup } from './interface/BlinkToggleGroup'\nexport type { BlinkToggleGroupProps, BlinkToggleOption } from './interface/BlinkToggleGroup'\n\nexport { BlinkToastProvider, useBlinkToast, toast } from './interface/BlinkToast'\nexport type { BlinkToastVariant, BlinkToastData, BlinkToastOptions, BlinkToastContextType } from './interface/BlinkToast'\n\nexport { FormField } from './interface/FormField'\nexport type { FormFieldProps } from './interface/FormField'\n\nexport { BlinkTooltip } from './interface/Tooltip'\nexport type { TooltipProps } from './interface/Tooltip'\n\n// ─── Blink layouts ───────────────────────────────────────────────────────────\nexport { StepPageLayout } from './layouts/StepPageLayout'\nexport type { StepPageProps } from './layouts/StepPageLayout'\n\nexport { ScreenLayout } from './layouts/ScreenLayout'\n\nexport { Section } from './layouts/Section'\nexport type { SectionProps } from './layouts/Section'\n\nexport { ListItem } from './layouts/ListItem'\nexport type { ListItemProps } from './layouts/ListItem'\n\nexport { Divider } from './layouts/Divider'\nexport type { DividerProps } from './layouts/Divider'\n\nexport { KeyboardStickyFooter } from './layouts/KeyboardStickyFooter'\nexport type { KeyboardStickyFooterProps } from './layouts/KeyboardStickyFooter'\n\nexport { SafeArea } from './layouts/SafeArea'\nexport type { SafeAreaProps } from './layouts/SafeArea'\n\nexport { Grid, Container } from './layouts/Grid'\nexport type { GridProps, ContainerProps } from './layouts/Grid'\n\n// ─── Blink patterns ─────────────────────────────────────────────────────────\nexport { PaywallScreen } from './patterns/PaywallScreen'\nexport type { PaywallScreenProps, PlanOption } from './patterns/PaywallScreen'\n\nexport { OnboardingCarousel } from './patterns/OnboardingCarousel'\nexport type { OnboardingCarouselProps, OnboardingStep } from './patterns/OnboardingCarousel'\n\nexport { ChatBubble } from './patterns/ChatBubble'\nexport type { ChatBubbleProps, ChatMessage } from './patterns/ChatBubble'\n\nexport { SettingsScreen } from './patterns/SettingsScreen'\nexport type { SettingsScreenProps, SettingsSection, SettingsItem } from './patterns/SettingsScreen'\n\nexport { EmptyState } from './patterns/EmptyState'\nexport type { EmptyStateProps } from './patterns/EmptyState'\n\nexport { ProfileHeader } from './patterns/ProfileHeader'\nexport type { ProfileHeaderProps } from './patterns/ProfileHeader'\n\nexport { AppHeader } from './patterns/AppHeader'\nexport type { AppHeaderProps, AppHeaderVariant } from './patterns/AppHeader'\n\nexport { BottomSheet } from './patterns/BottomSheet'\nexport type { BottomSheetProps } from './patterns/BottomSheet'\n\nexport { LoginScreen } from './patterns/LoginScreen'\nexport type { LoginScreenProps, AuthProvider } from './patterns/LoginScreen'\n\nexport { TabBar } from './patterns/TabBar'\nexport type { TabBarProps, TabBarItem } from './patterns/TabBar'\n\nexport { SearchBar } from './patterns/SearchBar'\nexport type { SearchBarProps } from './patterns/SearchBar'\n\nexport { FloatingActionButton } from './patterns/FloatingActionButton'\nexport type { FABProps } from './patterns/FloatingActionButton'\n\nexport { ActionSheet } from './patterns/ActionSheet'\nexport type { ActionSheetProps, ActionSheetItem } from './patterns/ActionSheet'\n\nexport { Skeleton } from './patterns/Skeleton'\nexport type { SkeletonProps } from './patterns/Skeleton'\n\nexport { NotificationBanner } from './patterns/NotificationBanner'\nexport type { NotificationBannerProps } from './patterns/NotificationBanner'\n\nexport { ProgressSteps } from './patterns/ProgressSteps'\nexport type { ProgressStepsProps } from './patterns/ProgressSteps'\n\nexport { SwipeableRow } from './patterns/SwipeableRow'\nexport type { SwipeableRowProps, SwipeAction } from './patterns/SwipeableRow'\n\nexport { MediaCard } from './patterns/MediaCard'\nexport type { MediaCardProps } from './patterns/MediaCard'\n\nexport { Carousel } from './patterns/Carousel'\nexport type { CarouselProps } from './patterns/Carousel'\n\nexport { PullToRefresh } from './patterns/PullToRefresh'\nexport type { PullToRefreshProps } from './patterns/PullToRefresh'\n","import { defaultConfig } from '@tamagui/config/v5'\nimport { createTamagui, type TamaguiInternalConfig } from 'tamagui'\n\nexport const blinkConfig: TamaguiInternalConfig = createTamagui({\n ...defaultConfig,\n})\n\nexport type BlinkConfig = typeof blinkConfig\n\ndeclare module 'tamagui' {\n interface TamaguiCustomConfig extends BlinkConfig {}\n}\n","import { Button as TamaguiButton, styled, type GetProps } from 'tamagui'\n\nexport const Button = styled(TamaguiButton, {\n borderWidth: 0,\n cursor: 'pointer',\n focusVisibleStyle: {\n outlineWidth: 2,\n outlineStyle: 'solid',\n outlineColor: '$color8',\n },\n\n variants: {\n variant: {\n default: {\n backgroundColor: '$color3',\n hoverStyle: { backgroundColor: '$color4' },\n pressStyle: { backgroundColor: '$color2', opacity: 0.8 },\n },\n primary: {\n backgroundColor: '$color9',\n color: '$color1',\n hoverStyle: { backgroundColor: '$color10' },\n pressStyle: { backgroundColor: '$color8', opacity: 0.9 },\n },\n outlined: {\n backgroundColor: 'transparent',\n borderWidth: 2,\n borderColor: '$color6',\n hoverStyle: { borderColor: '$color8' },\n pressStyle: { borderColor: '$color4', opacity: 0.8 },\n },\n transparent: {\n backgroundColor: 'transparent',\n hoverStyle: { backgroundColor: '$color2' },\n pressStyle: { backgroundColor: '$color1', opacity: 0.8 },\n },\n floating: {\n backgroundColor: '$color4',\n shadowColor: '$shadow2',\n shadowRadius: 5,\n shadowOffset: { height: 2, width: 0 },\n hoverStyle: { backgroundColor: '$color5' },\n pressStyle: { backgroundColor: '$color3', opacity: 0.9 },\n },\n destructive: {\n backgroundColor: '$red9',\n color: '$color1',\n hoverStyle: { backgroundColor: '$red10' },\n pressStyle: { backgroundColor: '$red8', opacity: 0.9 },\n },\n },\n size: {\n sm: { height: '$3', paddingHorizontal: '$3', borderRadius: '$3' },\n md: { height: '$4', paddingHorizontal: '$4', borderRadius: '$4' },\n lg: { height: '$5', paddingHorizontal: '$5', borderRadius: '$5' },\n },\n fullWidth: {\n true: { width: '100%' },\n },\n } as const,\n\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n})\n\nexport type ButtonProps = GetProps<typeof Button>\n","import { SizableText, styled, type GetProps } from 'tamagui'\n\nexport const BlinkText = styled(SizableText, {\n name: 'BlinkText',\n\n variants: {\n variant: {\n display: { size: '$10', fontWeight: '800' },\n h1: { size: '$9', fontWeight: '700' },\n h2: { size: '$8', fontWeight: '700' },\n h3: { size: '$7', fontWeight: '600' },\n h4: { size: '$6', fontWeight: '600' },\n body: { size: '$5', fontWeight: '400' },\n bodySmall: { size: '$4', fontWeight: '400' },\n caption: { size: '$3', fontWeight: '400', color: '$color10' },\n small: { size: '$2', fontWeight: '400', color: '$color9' },\n },\n muted: {\n true: { color: '$color9' },\n },\n secondary: {\n true: { color: '$color10' },\n },\n center: {\n true: { textAlign: 'center' },\n },\n bold: {\n true: { fontWeight: '700' },\n },\n } as const,\n\n defaultVariants: {\n variant: 'body',\n },\n})\n\nexport type BlinkTextProps = GetProps<typeof BlinkText>\n","import { styled, View, GetProps, withStaticProperties } from 'tamagui'\n\nconst CardFrame = styled(View, {\n name: 'BlinkCard',\n backgroundColor: '$color2',\n borderRadius: '$4',\n overflow: 'hidden',\n\n variants: {\n variant: {\n flat: {},\n elevated: {\n shadowColor: '$shadow2',\n shadowOffset: { width: 0, height: 2 },\n shadowRadius: 8,\n elevation: 3,\n },\n outlined: {\n borderWidth: 1,\n borderColor: '$color5',\n },\n },\n size: {\n sm: { borderRadius: '$3', padding: '$3' },\n md: { borderRadius: '$4', padding: '$4' },\n lg: { borderRadius: '$5', padding: '$5' },\n },\n pressable: {\n true: {\n pressStyle: { scale: 0.98, opacity: 0.9 },\n cursor: 'pointer',\n },\n },\n } as const,\n\n defaultVariants: {\n variant: 'flat',\n size: 'md',\n },\n})\n\nconst CardHeader = styled(View, { name: 'BlinkCardHeader', paddingBottom: '$3' })\nconst CardContent = styled(View, { name: 'BlinkCardContent' })\nconst CardFooter = styled(View, {\n name: 'BlinkCardFooter',\n paddingTop: '$3',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '$2',\n})\n\nexport type CardProps = GetProps<typeof CardFrame>\n\nexport const Card = withStaticProperties(CardFrame, {\n Header: CardHeader,\n Content: CardContent,\n Footer: CardFooter,\n})\n","import { Input as TamaguiInput, styled, View, SizableText, type GetProps } from 'tamagui'\n\nconst InputFrame = styled(View, {\n name: 'BlinkInputFrame',\n gap: '$1.5',\n})\n\nconst InputLabel = styled(SizableText, {\n name: 'BlinkInputLabel',\n size: '$4',\n fontWeight: '500',\n color: '$color11',\n})\n\nconst InputField = styled(TamaguiInput, {\n name: 'BlinkInput',\n height: 50,\n size: '$5',\n borderWidth: 0.5,\n borderColor: '$color5',\n borderRadius: '$4',\n backgroundColor: '$color1',\n placeholderTextColor: '$color8',\n\n focusVisibleStyle: {\n outlineWidth: 3,\n outlineStyle: 'solid',\n outlineColor: '$background04',\n outlineOffset: 1,\n borderWidth: 0.5,\n borderColor: '$color7',\n },\n\n variants: {\n hasError: {\n true: {\n borderColor: '$red9',\n focusVisibleStyle: { borderColor: '$red9' },\n },\n },\n variant: {\n default: {},\n filled: {\n backgroundColor: '$color2',\n borderColor: 'transparent',\n focusVisibleStyle: { borderColor: '$color7' },\n },\n },\n } as const,\n\n defaultVariants: { variant: 'default' },\n})\n\nconst InputError = styled(SizableText, { name: 'BlinkInputError', size: '$2', color: '$red10' })\nconst InputHint = styled(SizableText, { name: 'BlinkInputHint', size: '$2', color: '$color9' })\n\nexport type InputProps = GetProps<typeof InputField> & {\n label?: string\n error?: string\n hint?: string\n}\n\nexport function Input({ label, error, hint, ...props }: InputProps) {\n return (\n <InputFrame>\n {label && <InputLabel>{label}</InputLabel>}\n <InputField hasError={!!error} {...props} />\n {error && <InputError>{error}</InputError>}\n {hint && !error && <InputHint>{hint}</InputHint>}\n </InputFrame>\n )\n}\n","import { memo } from 'react'\nimport { Circle, Image, SizableText } from 'tamagui'\n\ntype SimpleSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\n\nconst simpleSizes: Record<SimpleSize, number> = {\n xs: 24,\n sm: 32,\n md: 40,\n lg: 48,\n xl: 64,\n}\n\nfunction getSize(size: number | SimpleSize): number {\n if (typeof size === 'number') return size\n return simpleSizes[size] ?? 40\n}\n\nexport type AvatarProps = {\n uri?: string\n name?: string\n size?: number | SimpleSize\n}\n\nexport const Avatar = memo(({ uri, name, size: sizeIn = 'md' }: AvatarProps) => {\n const size = getSize(sizeIn)\n\n return (\n <Circle\n size={size}\n overflow=\"hidden\"\n backgroundColor=\"$color4\"\n alignItems=\"center\"\n justifyContent=\"center\"\n >\n {uri ? (\n <Image\n source={{ uri }}\n width={size}\n height={size}\n objectFit=\"cover\"\n />\n ) : (\n <SizableText\n size=\"$3\"\n fontWeight=\"600\"\n color=\"$color11\"\n >\n {name ? name.split(' ').map(p => p[0]).join('').toUpperCase().slice(0, 2) : '?'}\n </SizableText>\n )}\n </Circle>\n )\n})\n","import { Separator, SizableText, XStack, styled } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport const H1 = styled(SizableText, {\n name: 'BlinkH1',\n role: 'heading',\n fontFamily: '$heading',\n size: '$10',\n fontWeight: '700',\n})\n\nexport const H2 = styled(SizableText, {\n name: 'BlinkH2',\n role: 'heading',\n fontFamily: '$heading',\n size: '$9',\n fontWeight: '700',\n})\n\nexport const H3 = styled(SizableText, {\n name: 'BlinkH3',\n role: 'heading',\n fontFamily: '$heading',\n size: '$8',\n fontWeight: '600',\n})\n\nexport const H4 = styled(SizableText, {\n name: 'BlinkH4',\n role: 'heading',\n fontFamily: '$heading',\n size: '$6',\n fontWeight: '600',\n})\n\nexport const H5 = styled(SizableText, {\n name: 'BlinkH5',\n role: 'heading',\n fontFamily: '$heading',\n size: '$5',\n fontWeight: '500',\n})\n\nexport const H6 = styled(SizableText, {\n name: 'BlinkH6',\n role: 'heading',\n fontFamily: '$heading',\n size: '$4',\n fontWeight: '500',\n})\n\nexport const SubHeading = styled(SizableText, {\n name: 'BlinkSubHeading',\n size: '$5',\n color: '$color10',\n fontWeight: '300',\n $lg: { size: '$6' },\n})\n\nexport function SepHeading({ children }: { children: ReactNode }) {\n return (\n <XStack marginTop=\"$6\" marginBottom=\"$4\" alignItems=\"center\" gap=\"$6\">\n <H3 size=\"$4\" color=\"$color10\">\n {children}\n </H3>\n <Separator opacity={0.5} />\n </XStack>\n )\n}\n","import { styled, YStack } from 'tamagui'\n\nexport const PageContainer = styled(YStack, {\n name: 'BlinkPageContainer',\n position: 'relative',\n marginHorizontal: 'auto',\n flex: 1,\n flexBasis: 'auto',\n paddingHorizontal: '$4',\n width: '100%',\n minWidth: 380,\n $md: { maxWidth: 760 },\n $lg: { maxWidth: 860 },\n $xl: { maxWidth: 1140 },\n})\n\nexport const PageMainContainer = styled(PageContainer, {\n name: 'BlinkPageMainContainer',\n role: 'main',\n})\n","import { useState, useEffect, type ReactNode } from 'react'\nimport { AlertDialog, Button, XStack, YStack } from 'tamagui'\n\ntype DialogState = {\n type: 'error' | 'confirm' | null\n title: string\n description: string\n resolve?: (value: boolean) => void\n}\n\nlet globalShowDialog: ((\n state: Omit<DialogState, 'resolve'> & { resolve?: (value: boolean) => void }\n) => void) | null = null\n\nexport function DialogProvider({ children }: { children: ReactNode }) {\n const [state, setState] = useState<DialogState>({\n type: null,\n title: '',\n description: '',\n })\n\n useEffect(() => {\n globalShowDialog = (newState) =>\n setState({ ...newState, resolve: newState.resolve } as DialogState)\n return () => {\n globalShowDialog = null\n }\n }, [])\n\n const handleClose = (confirmed: boolean) => {\n if (!state.resolve) return\n const resolve = state.resolve\n setState({ type: null, title: '', description: '' })\n resolve(confirmed)\n }\n\n return (\n <>\n {children}\n <AlertDialog\n open={state.type !== null}\n onOpenChange={(open) => {\n if (!open && state.type !== null) handleClose(false)\n }}\n >\n <AlertDialog.Portal>\n <AlertDialog.Overlay\n key=\"overlay\"\n opacity={0.5}\n enterStyle={{ opacity: 0 }}\n exitStyle={{ opacity: 0 }}\n />\n <AlertDialog.Content\n bordered\n elevate\n key=\"content\"\n enterStyle={{ x: 0, y: -20, opacity: 0, scale: 0.9 }}\n exitStyle={{ x: 0, y: 10, opacity: 0, scale: 0.95 }}\n x={0}\n scale={1}\n opacity={1}\n y={0}\n width=\"90%\"\n maxWidth={400}\n >\n <YStack gap=\"$4\">\n <AlertDialog.Title size=\"$6\">{state.title}</AlertDialog.Title>\n <AlertDialog.Description size=\"$3\" color=\"$color11\">\n {state.description}\n </AlertDialog.Description>\n <XStack gap=\"$3\" justifyContent=\"flex-end\">\n {state.type === 'confirm' ? (\n <>\n <Button onPress={() => handleClose(false)}>Cancel</Button>\n <Button theme=\"blue\" onPress={() => handleClose(true)}>\n Confirm\n </Button>\n </>\n ) : (\n <Button theme=\"blue\" onPress={() => handleClose(false)}>\n OK\n </Button>\n )}\n </XStack>\n </YStack>\n </AlertDialog.Content>\n </AlertDialog.Portal>\n </AlertDialog>\n </>\n )\n}\n\nexport const showError = (error: unknown, title = 'Error') => {\n let description = 'An unexpected error occurred'\n if (error instanceof Error) description = error.message\n else if (typeof error === 'string') description = error\n else if (error && typeof error === 'object' && 'message' in error)\n description = String(error.message)\n\n if (globalShowDialog) globalShowDialog({ type: 'error', title, description })\n else console.error(`${title}: ${description}`)\n}\n\nexport const dialogConfirm = async (props: {\n title?: string\n description?: string\n}): Promise<boolean> => {\n const { title = 'Confirm', description = 'Are you sure?' } = props\n if (!globalShowDialog) {\n console.error('DialogProvider not mounted')\n return false\n }\n return new Promise<boolean>((resolve) => {\n globalShowDialog!({ type: 'confirm', title, description, resolve })\n })\n}\n","import { styled, View } from 'tamagui'\n\nexport const Pressable = styled(View, {\n name: 'BlinkPressable',\n hitSlop: 10,\n pressStyle: { opacity: 0.5 },\n})\n","import { styled, Image as TamaguiImage } from 'tamagui'\n\nexport const Image = styled(TamaguiImage, {\n name: 'BlinkImage',\n})\n","import { styled, SizableText, View } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nconst BadgeFrame = styled(View, {\n name: 'BlinkBadge',\n paddingHorizontal: '$2',\n paddingVertical: '$1',\n borderRadius: '$10',\n backgroundColor: '$color3',\n alignSelf: 'flex-start',\n variants: {\n variant: {\n default: { backgroundColor: '$color3' },\n success: { backgroundColor: '$green3' },\n warning: { backgroundColor: '$yellow3' },\n error: { backgroundColor: '$red3' },\n info: { backgroundColor: '$blue3' },\n },\n } as const,\n defaultVariants: { variant: 'default' },\n})\n\nconst BadgeText = styled(SizableText, {\n name: 'BlinkBadgeText',\n size: '$2',\n fontWeight: '600',\n color: '$color11',\n})\n\nexport type BadgeProps = {\n children: ReactNode\n variant?: 'default' | 'success' | 'warning' | 'error' | 'info'\n}\n\nexport function Badge({ children, variant = 'default' }: BadgeProps) {\n return (\n <BadgeFrame variant={variant}>\n <BadgeText>{children}</BadgeText>\n </BadgeFrame>\n )\n}\n","import { SizableText } from 'tamagui'\n\nexport const ICONS = {\n home: '\\u2302', search: '\\u2315', back: '\\u2039', forward: '\\u203A',\n close: '\\u2715', menu: '\\u2630', more: '\\u22EF', plus: '+',\n minus: '\\u2212', check: '\\u2713', star: '\\u2605', starOutline: '\\u2606',\n heart: '\\u2665', heartOutline: '\\u2661', share: '\\u2934', edit: '\\u270E',\n trash: '\\u232B', copy: '\\u2398', chat: '\\u{1F4AC}', mail: '\\u2709',\n bell: '\\u{1F514}', bellOff: '\\u{1F515}', send: '\\u27A4', play: '\\u25B6',\n pause: '\\u23F8', camera: '\\u{1F4F7}', image: '\\u{1F5BC}', info: '\\u2139',\n warning: '\\u26A0', error: '\\u2715', success: '\\u2713', loading: '\\u27F3',\n user: '\\u{1F464}', users: '\\u{1F465}', settings: '\\u2699',\n lock: '\\u{1F512}', unlock: '\\u{1F513}',\n arrowUp: '\\u2191', arrowDown: '\\u2193', arrowLeft: '\\u2190', arrowRight: '\\u2192',\n chevronUp: '\\u2303', chevronDown: '\\u2304', chevronLeft: '\\u2039', chevronRight: '\\u203A',\n} as const\n\nexport type IconName = keyof typeof ICONS\nexport type IconProps = { name: IconName; size?: number; color?: string }\n\nexport function Icon({ name, size = 20, color = '$color12' }: IconProps) {\n return (\n <SizableText fontSize={size} lineHeight={size} color={color} textAlign=\"center\" width={size} height={size}>\n {ICONS[name]}\n </SizableText>\n )\n}\n","import { type ReactNode, useState } from 'react'\nimport { Separator, SizableText, XStack, YStack } from 'tamagui'\n\nexport type BlinkAccordionItem = { id: string; title: string; content: ReactNode }\nexport type BlinkAccordionProps = {\n items: BlinkAccordionItem[]\n defaultOpen?: string[]\n allowMultiple?: boolean\n}\n\nexport function BlinkAccordion({ items, defaultOpen, allowMultiple = false }: BlinkAccordionProps) {\n const [openIds, setOpenIds] = useState<string[]>(defaultOpen ?? [])\n const toggle = (id: string) => {\n setOpenIds(prev => {\n if (prev.includes(id)) return prev.filter(i => i !== id)\n return allowMultiple ? [...prev, id] : [id]\n })\n }\n return (\n <YStack>\n {items.map((item, index) => {\n const isOpen = openIds.includes(item.id)\n return (\n <YStack key={item.id}>\n {index > 0 && <Separator borderColor=\"$borderColor\" />}\n <XStack\n paddingVertical=\"$3\" paddingHorizontal=\"$2\"\n justifyContent=\"space-between\" alignItems=\"center\"\n pressStyle={{ opacity: 0.7 }} onPress={() => toggle(item.id)} cursor=\"pointer\"\n >\n <SizableText size=\"$4\" fontWeight=\"600\">{item.title}</SizableText>\n <SizableText size=\"$3\" color=\"$color10\">{isOpen ? '\\u2303' : '\\u2304'}</SizableText>\n </XStack>\n {isOpen && <YStack paddingHorizontal=\"$2\" paddingBottom=\"$3\">{item.content}</YStack>}\n </YStack>\n )\n })}\n </YStack>\n )\n}\n","import { useState } from 'react'\nimport { ScrollView } from 'react-native'\nimport { SizableText, XStack, YStack } from 'tamagui'\n\nexport type BlinkTabItem = { key: string; label: string }\nexport type BlinkTabsProps = {\n tabs: BlinkTabItem[]\n activeTab?: string\n onTabChange?: (key: string) => void\n variant?: 'underline' | 'pill'\n}\n\nexport function BlinkTabs({ tabs, activeTab, onTabChange, variant = 'underline' }: BlinkTabsProps) {\n const [internalActive, setInternalActive] = useState(tabs[0]?.key ?? '')\n const current = activeTab ?? internalActive\n const handlePress = (key: string) => {\n if (!activeTab) setInternalActive(key)\n onTabChange?.(key)\n }\n return (\n <YStack>\n <ScrollView horizontal showsHorizontalScrollIndicator={false}>\n <XStack gap=\"$2\" paddingHorizontal=\"$2\" paddingBottom=\"$2\">\n {tabs.map(tab => {\n const isActive = tab.key === current\n return (\n <YStack\n key={tab.key}\n paddingVertical=\"$2\" paddingHorizontal=\"$3\"\n borderRadius={variant === 'pill' ? '$4' : '$0'}\n backgroundColor={variant === 'pill' && isActive ? '$color9' : 'transparent'}\n borderBottomWidth={variant === 'underline' ? 2 : 0}\n borderBottomColor={variant === 'underline' && isActive ? '$color9' : 'transparent'}\n pressStyle={{ opacity: 0.7 }} onPress={() => handlePress(tab.key)} cursor=\"pointer\"\n >\n <SizableText\n size=\"$3\" fontWeight={isActive ? '600' : '400'}\n color={variant === 'pill' && isActive ? '$color1' : isActive ? '$color12' : '$color10'}\n >\n {tab.label}\n </SizableText>\n </YStack>\n )\n })}\n </XStack>\n </ScrollView>\n </YStack>\n )\n}\n","import { SizableText, XStack } from 'tamagui'\n\nexport type BlinkToggleOption = { value: string; label: string }\nexport type BlinkToggleGroupProps = {\n options: BlinkToggleOption[]\n value: string\n onValueChange: (value: string) => void\n size?: 'sm' | 'md' | 'lg'\n}\n\nconst sizeMap = { sm: '$2' as const, md: '$3' as const, lg: '$4' as const }\n\nexport function BlinkToggleGroup({ options, value, onValueChange, size = 'md' }: BlinkToggleGroupProps) {\n const textSize = sizeMap[size]\n return (\n <XStack borderRadius=\"$4\" overflow=\"hidden\" backgroundColor=\"$color2\">\n {options.map((option, index) => {\n const isActive = option.value === value\n return (\n <XStack\n key={option.value} flex={1} justifyContent=\"center\" alignItems=\"center\"\n paddingVertical=\"$2\" paddingHorizontal=\"$3\"\n backgroundColor={isActive ? '$color9' : '$color2'}\n borderLeftWidth={index > 0 ? 1 : 0}\n borderLeftColor={isActive ? '$color9' : '$color4'}\n pressStyle={{ opacity: 0.7 }} onPress={() => onValueChange(option.value)} cursor=\"pointer\"\n >\n <SizableText size={textSize} fontWeight={isActive ? '600' : '400'} color={isActive ? '$color1' : '$color11'}>\n {option.label}\n </SizableText>\n </XStack>\n )\n })}\n </XStack>\n )\n}\n","import { useState, useCallback, useEffect, createContext, useContext, type ReactNode } from 'react'\nimport { SizableText, XStack, YStack } from 'tamagui'\n\nexport type BlinkToastVariant = 'default' | 'success' | 'error' | 'warning'\nexport type BlinkToastData = {\n id: string; title: string; message?: string\n variant?: BlinkToastVariant; duration?: number\n}\nexport type BlinkToastOptions = { message?: string; variant?: BlinkToastVariant; duration?: number }\nexport type BlinkToastContextType = {\n show: (title: string, options?: BlinkToastOptions) => void\n}\n\nconst ToastContext = createContext<BlinkToastContextType | null>(null)\n\nconst variantStyles: Record<BlinkToastVariant, { bg: string; border: string; icon: string }> = {\n default: { bg: '$color3', border: '$color6', icon: 'ℹ' },\n success: { bg: '$green2', border: '$green7', icon: '✓' },\n error: { bg: '$red2', border: '$red7', icon: '✕' },\n warning: { bg: '$yellow2', border: '$yellow7', icon: '!' },\n}\n\nlet globalToastShow: BlinkToastContextType['show'] | null = null\n\nexport const toast = (title: string, options?: BlinkToastOptions | BlinkToastVariant) => {\n const opts: BlinkToastOptions | undefined = typeof options === 'string' ? { variant: options } : options\n if (globalToastShow) globalToastShow(title, opts)\n else console.warn('BlinkToastProvider not mounted')\n}\n\nexport function BlinkToastProvider({ children }: { children: ReactNode }) {\n const [toasts, setToasts] = useState<BlinkToastData[]>([])\n\n const show = useCallback((title: string, options?: BlinkToastOptions) => {\n const id = Math.random().toString(36).slice(2, 9)\n const entry: BlinkToastData = {\n id, title,\n message: options?.message,\n variant: options?.variant ?? 'default',\n duration: options?.duration ?? 3000,\n }\n setToasts(prev => [...prev, entry])\n setTimeout(() => setToasts(prev => prev.filter(t => t.id !== id)), entry.duration)\n }, [])\n\n useEffect(() => { globalToastShow = show; return () => { globalToastShow = null } }, [show])\n\n const dismiss = useCallback((id: string) => {\n setToasts(prev => prev.filter(t => t.id !== id))\n }, [])\n\n return (\n <ToastContext.Provider value={{ show }}>\n {children}\n <YStack\n position=\"absolute\" top={50} left={0} right={0}\n alignItems=\"center\" gap=\"$2\" pointerEvents=\"box-none\" zIndex={100000}\n paddingHorizontal=\"$4\"\n >\n {toasts.map(t => {\n const style = variantStyles[t.variant ?? 'default']\n return (\n <XStack\n key={t.id}\n width=\"100%\"\n maxWidth={400}\n backgroundColor={style.bg}\n borderWidth={1}\n borderColor={style.border}\n borderRadius=\"$4\"\n paddingHorizontal=\"$4\"\n paddingVertical=\"$3\"\n gap=\"$3\"\n alignItems=\"flex-start\"\n enterStyle={{ opacity: 0, y: -20, scale: 0.95 }}\n exitStyle={{ opacity: 0, y: -20, scale: 0.95 }}\n opacity={1}\n y={0}\n scale={1}\n animation=\"quick\"\n pointerEvents=\"auto\"\n elevation={4}\n >\n <SizableText size=\"$4\" fontWeight=\"700\" marginTop=\"$0.5\">{style.icon}</SizableText>\n <YStack flex={1} gap=\"$1\">\n <SizableText size=\"$4\" fontWeight=\"600\" color=\"$color12\">{t.title}</SizableText>\n {t.message && (\n <SizableText size=\"$3\" color=\"$color10\">{t.message}</SizableText>\n )}\n </YStack>\n <SizableText\n size=\"$3\" color=\"$color8\" fontWeight=\"600\"\n pressStyle={{ opacity: 0.5 }}\n onPress={() => dismiss(t.id)}\n cursor=\"pointer\"\n marginTop=\"$0.5\"\n >\n ✕\n </SizableText>\n </XStack>\n )\n })}\n </YStack>\n </ToastContext.Provider>\n )\n}\n\nexport function useBlinkToast() {\n const ctx = useContext(ToastContext)\n if (!ctx) throw new Error('useBlinkToast must be used within BlinkToastProvider')\n return ctx\n}\n","import { type ReactNode } from 'react'\nimport { SizableText, YStack } from 'tamagui'\n\nexport type FormFieldProps = {\n label?: string; error?: string; helperText?: string; required?: boolean; children: ReactNode\n}\n\nexport function FormField({ label, error, helperText, required, children }: FormFieldProps) {\n return (\n <YStack gap=\"$1.5\">\n {label && (\n <SizableText size=\"$3\" fontWeight=\"600\" color=\"$color11\">\n {label}{required && <SizableText color=\"$red9\"> *</SizableText>}\n </SizableText>\n )}\n {children}\n {helperText && !error && <SizableText size=\"$2\" color=\"$color9\">{helperText}</SizableText>}\n {error && <SizableText size=\"$2\" color=\"$red9\">{error}</SizableText>}\n </YStack>\n )\n}\n","import { type ReactNode } from 'react'\nimport { Popover, SizableText } from 'tamagui'\n\nexport type TooltipProps = { content: string; children: ReactNode; side?: 'top' | 'bottom' | 'left' | 'right' }\n\nexport function BlinkTooltip({ content, children, side = 'top' }: TooltipProps) {\n return (\n <Popover size=\"$2\" placement={side}>\n <Popover.Trigger asChild>{children}</Popover.Trigger>\n <Popover.Content\n backgroundColor=\"$color11\" borderRadius=\"$2\"\n paddingHorizontal=\"$2.5\" paddingVertical=\"$1.5\" elevate\n enterStyle={{ opacity: 0, y: side === 'bottom' ? -4 : 4 }}\n exitStyle={{ opacity: 0, y: side === 'bottom' ? -4 : 4 }}\n opacity={1} y={0} animation=\"quick\"\n >\n <Popover.Arrow backgroundColor=\"$color11\" size=\"$1\" />\n <SizableText size=\"$2\" color=\"$color1\">{content}</SizableText>\n </Popover.Content>\n </Popover>\n )\n}\n","import { SizableText, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type StepPageProps = {\n title: string\n description?: string\n children: ReactNode\n bottom?: ReactNode\n}\n\nexport function StepPageLayout({ title, description, children, bottom }: StepPageProps) {\n return (\n <YStack flex={1} padding=\"$4\" maxWidth={500} marginHorizontal=\"auto\" width=\"100%\">\n <YStack gap=\"$5\">\n <YStack gap=\"$2\">\n <SizableText size=\"$8\" fontWeight=\"700\">{title}</SizableText>\n {description && (\n <SizableText size=\"$5\" fontWeight=\"400\" color=\"$color10\">{description}</SizableText>\n )}\n </YStack>\n </YStack>\n <YStack paddingTop=\"$5\" gap=\"$4\">{children}</YStack>\n {bottom && <YStack paddingTop=\"$4\">{bottom}</YStack>}\n </YStack>\n )\n}\n","import { styled, YStack } from 'tamagui'\n\nexport const ScreenLayout = styled(YStack, {\n name: 'BlinkScreenLayout',\n flex: 1,\n backgroundColor: '$background',\n\n variants: {\n padded: {\n true: { padding: '$4' },\n },\n centered: {\n true: { alignItems: 'center', justifyContent: 'center' },\n },\n safe: {\n true: { paddingTop: '$6' },\n },\n } as const,\n})\n","import { SizableText, YStack, type GetProps } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type SectionProps = {\n title?: string\n description?: string\n children: ReactNode\n gap?: GetProps<typeof YStack>['gap']\n}\n\nexport function Section({ title, description, children, gap = '$3' }: SectionProps) {\n return (\n <YStack gap={gap}>\n {title && (\n <YStack gap=\"$1\">\n <SizableText size=\"$5\" fontWeight=\"600\" color=\"$color12\">{title}</SizableText>\n {description && (\n <SizableText size=\"$3\" color=\"$color9\">{description}</SizableText>\n )}\n </YStack>\n )}\n {children}\n </YStack>\n )\n}\n","import { styled, SizableText, XStack, YStack, View } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nconst ListItemFrame = styled(XStack, {\n name: 'BlinkListItem',\n alignItems: 'center',\n gap: '$3',\n padding: '$3',\n borderRadius: '$3',\n\n variants: {\n pressable: {\n true: {\n cursor: 'pointer',\n hoverStyle: { backgroundColor: '$color2' },\n pressStyle: { backgroundColor: '$color3', opacity: 0.9 },\n },\n },\n } as const,\n})\n\nexport type ListItemProps = {\n icon?: ReactNode\n title: string\n subtitle?: string\n right?: ReactNode\n onPress?: () => void\n}\n\nexport function ListItem({ icon, title, subtitle, right, onPress }: ListItemProps) {\n return (\n <ListItemFrame pressable={!!onPress} onPress={onPress}>\n {icon && <View>{icon}</View>}\n <YStack flex={1} gap=\"$1\">\n <SizableText size=\"$4\" fontWeight=\"500\" color=\"$color12\">{title}</SizableText>\n {subtitle && <SizableText size=\"$2\" color=\"$color9\">{subtitle}</SizableText>}\n </YStack>\n {right}\n </ListItemFrame>\n )\n}\n","import { Separator, SizableText, XStack } from 'tamagui'\n\nexport type DividerProps = {\n label?: string\n}\n\nexport function Divider({ label }: DividerProps) {\n if (!label) return <Separator borderColor=\"$color4\" />\n return (\n <XStack alignItems=\"center\" gap=\"$3\">\n <Separator flex={1} borderColor=\"$color4\" />\n <SizableText size=\"$2\" color=\"$color9\">{label}</SizableText>\n <Separator flex={1} borderColor=\"$color4\" />\n </XStack>\n )\n}\n","import { YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type KeyboardStickyFooterProps = {\n children: ReactNode\n offset?: number\n}\n\nexport function KeyboardStickyFooter({ children, offset }: KeyboardStickyFooterProps) {\n return (\n <YStack maxWidth={500} alignSelf=\"center\" paddingTop=\"$8\" paddingBottom=\"$4\" style={{ paddingBottom: offset }}>\n {children}\n </YStack>\n )\n}\n","import { type ReactNode } from 'react'\nimport { YStack } from 'tamagui'\n\nexport type SafeAreaProps = { children: ReactNode; edges?: ('top' | 'bottom' | 'left' | 'right')[] }\n\nexport function SafeArea({ children, edges = ['top', 'bottom'] }: SafeAreaProps) {\n return (\n <YStack\n flex={1} backgroundColor=\"$background\"\n paddingTop={edges.includes('top') ? '$6' : undefined}\n paddingBottom={edges.includes('bottom') ? '$6' : undefined}\n paddingLeft={edges.includes('left') ? '$4' : undefined}\n paddingRight={edges.includes('right') ? '$4' : undefined}\n >\n {children}\n </YStack>\n )\n}\n","import { type ReactNode, Children } from 'react'\nimport { XStack, YStack } from 'tamagui'\n\nexport type GridProps = { children: ReactNode; columns?: number; gap?: string }\nexport type ContainerProps = { children: ReactNode; maxWidth?: number; centered?: boolean; padding?: string }\n\nexport function Grid({ children, columns = 2, gap = '$3' }: GridProps) {\n const items = Children.toArray(children)\n const rows: ReactNode[][] = []\n for (let i = 0; i < items.length; i += columns) {\n rows.push(items.slice(i, i + columns))\n }\n return (\n <YStack gap={gap as any}>\n {rows.map((row, ri) => (\n <XStack key={ri} gap={gap as any}>\n {row.map((item, ci) => (\n <YStack key={ci} flex={1}>{item}</YStack>\n ))}\n {row.length < columns && Array.from({ length: columns - row.length }).map((_, i) => (\n <YStack key={`pad-${i}`} flex={1} />\n ))}\n </XStack>\n ))}\n </YStack>\n )\n}\n\nexport function Container({ children, maxWidth = 500, centered = true, padding = '$4' }: ContainerProps) {\n return (\n <YStack width=\"100%\" maxWidth={maxWidth} alignSelf={centered ? 'center' : undefined} padding={padding as any}>\n {children}\n </YStack>\n )\n}\n","import { Button, SizableText, XStack, YStack, Circle } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type PlanOption = {\n id: string\n name: string\n price: string\n period: string\n features: string[]\n popular?: boolean\n}\n\nexport type PaywallScreenProps = {\n title?: string\n subtitle?: string\n plans: PlanOption[]\n selectedPlan?: string\n onSelectPlan?: (planId: string) => void\n onContinue?: () => void\n onRestore?: () => void\n continueLabel?: string\n}\n\nexport function PaywallScreen({\n title = 'Upgrade Your Experience',\n subtitle = 'Choose the plan that works for you',\n plans,\n selectedPlan,\n onSelectPlan,\n onContinue,\n onRestore,\n continueLabel = 'Continue',\n}: PaywallScreenProps) {\n return (\n <YStack flex={1} padding=\"$4\" gap=\"$5\" backgroundColor=\"$background\">\n <YStack gap=\"$2\" paddingTop=\"$6\">\n <SizableText size=\"$9\" fontWeight=\"700\" textAlign=\"center\">\n {title}\n </SizableText>\n <SizableText size=\"$4\" color=\"$color10\" textAlign=\"center\">\n {subtitle}\n </SizableText>\n </YStack>\n\n <YStack gap=\"$3\" flex={1}>\n {plans.map((plan) => (\n <YStack\n key={plan.id}\n padding=\"$4\"\n borderRadius=\"$5\"\n borderWidth={2}\n borderColor={selectedPlan === plan.id ? '$color9' : '$color4'}\n backgroundColor={selectedPlan === plan.id ? '$color2' : '$color1'}\n pressStyle={{ scale: 0.98 }}\n onPress={() => onSelectPlan?.(plan.id)}\n cursor=\"pointer\"\n >\n <XStack justifyContent=\"space-between\" alignItems=\"center\">\n <YStack>\n <SizableText size=\"$5\" fontWeight=\"600\">\n {plan.name}\n </SizableText>\n <XStack alignItems=\"baseline\" gap=\"$1\">\n <SizableText size=\"$8\" fontWeight=\"700\">\n {plan.price}\n </SizableText>\n <SizableText size=\"$3\" color=\"$color9\">\n /{plan.period}\n </SizableText>\n </XStack>\n </YStack>\n {plan.popular && (\n <YStack backgroundColor=\"$color9\" paddingHorizontal=\"$2\" paddingVertical=\"$1\" borderRadius=\"$10\">\n <SizableText size=\"$1\" color=\"$color1\" fontWeight=\"600\">\n POPULAR\n </SizableText>\n </YStack>\n )}\n </XStack>\n <YStack gap=\"$2\" paddingTop=\"$3\">\n {plan.features.map((feature, i) => (\n <XStack key={i} gap=\"$2\" alignItems=\"center\">\n <Circle size={6} backgroundColor=\"$green9\" />\n <SizableText size=\"$3\" color=\"$color11\">\n {feature}\n </SizableText>\n </XStack>\n ))}\n </YStack>\n </YStack>\n ))}\n </YStack>\n\n <YStack gap=\"$3\" paddingBottom=\"$4\">\n <Button\n size=\"$5\"\n backgroundColor=\"$color9\"\n color=\"$color1\"\n onPress={onContinue}\n hoverStyle={{ backgroundColor: '$color10' }}\n pressStyle={{ backgroundColor: '$color8' }}\n borderRadius=\"$5\"\n >\n {continueLabel}\n </Button>\n {onRestore && (\n <Button size=\"$3\" chromeless onPress={onRestore}>\n <SizableText size=\"$3\" color=\"$color9\">\n Restore Purchases\n </SizableText>\n </Button>\n )}\n </YStack>\n </YStack>\n )\n}\n","import { useState } from 'react'\nimport { Button, SizableText, XStack, YStack, Circle } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type OnboardingStep = {\n title: string\n description: string\n icon?: ReactNode\n}\n\nexport type OnboardingCarouselProps = {\n steps: OnboardingStep[]\n onComplete?: () => void\n onSkip?: () => void\n completeLabel?: string\n skipLabel?: string\n nextLabel?: string\n}\n\nexport function OnboardingCarousel({\n steps,\n onComplete,\n onSkip,\n completeLabel = 'Get Started',\n skipLabel = 'Skip',\n nextLabel = 'Next',\n}: OnboardingCarouselProps) {\n const [current, setCurrent] = useState(0)\n const isLast = current === steps.length - 1\n const step = steps[current]\n\n return (\n <YStack flex={1} backgroundColor=\"$background\" padding=\"$4\" justifyContent=\"space-between\">\n <XStack justifyContent=\"flex-end\" paddingTop=\"$4\">\n {!isLast && onSkip && (\n <Button chromeless onPress={onSkip}>\n <SizableText size=\"$4\" color=\"$color9\">\n {skipLabel}\n </SizableText>\n </Button>\n )}\n </XStack>\n\n <YStack flex={1} alignItems=\"center\" justifyContent=\"center\" gap=\"$5\" paddingHorizontal=\"$4\">\n {step?.icon && (\n <Circle size={120} backgroundColor=\"$color2\" alignItems=\"center\" justifyContent=\"center\">\n {step.icon}\n </Circle>\n )}\n <YStack gap=\"$3\" alignItems=\"center\">\n <SizableText size=\"$9\" fontWeight=\"700\" textAlign=\"center\">\n {step?.title}\n </SizableText>\n <SizableText size=\"$4\" color=\"$color10\" textAlign=\"center\" maxWidth={300}>\n {step?.description}\n </SizableText>\n </YStack>\n </YStack>\n\n <YStack gap=\"$3\" paddingBottom=\"$2\">\n <XStack justifyContent=\"center\" gap=\"$2\">\n {steps.map((_, i) => (\n <Circle\n key={i}\n size={8}\n backgroundColor={i === current ? '$color9' : '$color4'}\n animation=\"quick\"\n />\n ))}\n </XStack>\n <Button\n size=\"$5\"\n backgroundColor=\"$color9\"\n color=\"$color1\"\n borderRadius=\"$5\"\n hoverStyle={{ backgroundColor: '$color10' }}\n pressStyle={{ backgroundColor: '$color8' }}\n onPress={() => (isLast ? onComplete?.() : setCurrent((c) => c + 1))}\n >\n {isLast ? completeLabel : nextLabel}\n </Button>\n </YStack>\n </YStack>\n )\n}\n","import { SizableText, XStack, YStack, Circle, Image } from 'tamagui'\n\nexport type ChatMessage = {\n id: string\n text: string\n sender: 'user' | 'other'\n timestamp?: string\n avatar?: string\n senderName?: string\n}\n\nexport type ChatBubbleProps = {\n message: ChatMessage\n showAvatar?: boolean\n}\n\nexport function ChatBubble({ message, showAvatar = true }: ChatBubbleProps) {\n const isUser = message.sender === 'user'\n\n return (\n <XStack\n alignSelf={isUser ? 'flex-end' : 'flex-start'}\n maxWidth=\"75%\"\n gap=\"$2\"\n flexDirection={isUser ? 'row-reverse' : 'row'}\n >\n {showAvatar && !isUser && (\n <Circle size={32} backgroundColor=\"$color4\" overflow=\"hidden\">\n {message.avatar ? (\n <Image source={{ uri: message.avatar }} width={32} height={32} objectFit=\"cover\" />\n ) : (\n <SizableText size=\"$2\" fontWeight=\"600\" color=\"$color11\">\n {message.senderName?.[0]?.toUpperCase() ?? '?'}\n </SizableText>\n )}\n </Circle>\n )}\n <YStack\n backgroundColor={isUser ? '$color9' : '$color3'}\n paddingHorizontal=\"$3\"\n paddingVertical=\"$2.5\"\n borderRadius=\"$5\"\n borderBottomRightRadius={isUser ? '$2' : '$5'}\n borderBottomLeftRadius={isUser ? '$5' : '$2'}\n gap=\"$1\"\n >\n <SizableText size=\"$3\" color={isUser ? '$color1' : '$color12'}>\n {message.text}\n </SizableText>\n {message.timestamp && (\n <SizableText size=\"$1\" color={isUser ? '$color3' : '$color9'} alignSelf=\"flex-end\">\n {message.timestamp}\n </SizableText>\n )}\n </YStack>\n </XStack>\n )\n}\n","import { Separator, SizableText, Switch, XStack, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type SettingsItem = {\n id: string\n icon?: ReactNode\n title: string\n subtitle?: string\n right?: ReactNode\n onPress?: () => void\n type?: 'navigate' | 'toggle'\n value?: boolean\n onValueChange?: (value: boolean) => void\n}\n\nexport type SettingsSection = {\n title?: string\n items: SettingsItem[]\n}\n\nexport type SettingsScreenProps = {\n sections: SettingsSection[]\n header?: ReactNode\n}\n\nfunction SettingsItemRow({ item }: { item: SettingsItem }) {\n return (\n <XStack\n alignItems=\"center\"\n gap=\"$3\"\n paddingVertical=\"$3\"\n paddingHorizontal=\"$4\"\n hoverStyle={item.onPress ? { backgroundColor: '$color2' } : undefined}\n pressStyle={item.onPress ? { backgroundColor: '$color3' } : undefined}\n onPress={item.onPress}\n cursor={item.onPress ? 'pointer' : undefined}\n >\n {item.icon && (\n <YStack width={24} alignItems=\"center\">\n {item.icon}\n </YStack>\n )}\n <YStack flex={1} gap=\"$1\">\n <SizableText size=\"$4\" fontWeight=\"500\">\n {item.title}\n </SizableText>\n {item.subtitle && (\n <SizableText size=\"$2\" color=\"$color9\">\n {item.subtitle}\n </SizableText>\n )}\n </YStack>\n {item.type === 'toggle' ? (\n <Switch size=\"$3\" checked={item.value} onCheckedChange={item.onValueChange}>\n <Switch.Thumb animation=\"quick\" />\n </Switch>\n ) : item.right ? (\n item.right\n ) : (\n item.onPress && (\n <SizableText size=\"$5\" color=\"$color8\">\n ›\n </SizableText>\n )\n )}\n </XStack>\n )\n}\n\nexport function SettingsScreen({ sections, header }: SettingsScreenProps) {\n return (\n <YStack flex={1} backgroundColor=\"$background\">\n {header}\n <YStack gap=\"$4\" paddingVertical=\"$2\">\n {sections.map((section, si) => (\n <YStack key={si}>\n {section.title && (\n <SizableText\n size=\"$2\"\n fontWeight=\"600\"\n color=\"$color9\"\n paddingHorizontal=\"$4\"\n paddingBottom=\"$2\"\n textTransform=\"uppercase\"\n >\n {section.title}\n </SizableText>\n )}\n <YStack backgroundColor=\"$color1\" borderRadius=\"$4\" marginHorizontal=\"$3\" overflow=\"hidden\">\n {section.items.map((item, ii) => (\n <YStack key={item.id}>\n <SettingsItemRow item={item} />\n {ii < section.items.length - 1 && (\n <Separator borderColor=\"$color3\" marginLeft=\"$12\" />\n )}\n </YStack>\n ))}\n </YStack>\n </YStack>\n ))}\n </YStack>\n </YStack>\n )\n}\n","import { Button, SizableText, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type EmptyStateProps = {\n icon?: ReactNode\n title: string\n description?: string\n actionLabel?: string\n onAction?: () => void\n}\n\nexport function EmptyState({ icon, title, description, actionLabel, onAction }: EmptyStateProps) {\n return (\n <YStack flex={1} alignItems=\"center\" justifyContent=\"center\" gap=\"$4\" padding=\"$6\">\n {icon}\n <YStack gap=\"$2\" alignItems=\"center\">\n <SizableText size=\"$6\" fontWeight=\"600\" textAlign=\"center\">\n {title}\n </SizableText>\n {description && (\n <SizableText size=\"$4\" color=\"$color9\" textAlign=\"center\" maxWidth={280}>\n {description}\n </SizableText>\n )}\n </YStack>\n {actionLabel && onAction && (\n <Button\n size=\"$4\"\n backgroundColor=\"$color9\"\n color=\"$color1\"\n borderRadius=\"$4\"\n hoverStyle={{ backgroundColor: '$color10' }}\n pressStyle={{ backgroundColor: '$color8' }}\n onPress={onAction}\n >\n {actionLabel}\n </Button>\n )}\n </YStack>\n )\n}\n","import { Circle, Image, SizableText, XStack, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type ProfileHeaderProps = {\n name: string\n subtitle?: string\n avatar?: string\n stats?: { label: string; value: string }[]\n actions?: ReactNode\n}\n\nexport function ProfileHeader({ name, subtitle, avatar, stats, actions }: ProfileHeaderProps) {\n return (\n <YStack alignItems=\"center\" gap=\"$4\" paddingVertical=\"$6\" paddingHorizontal=\"$4\">\n <Circle size={80} backgroundColor=\"$color4\" overflow=\"hidden\">\n {avatar ? (\n <Image source={{ uri: avatar }} width={80} height={80} objectFit=\"cover\" />\n ) : (\n <SizableText size=\"$9\" fontWeight=\"700\" color=\"$color11\">\n {name[0]?.toUpperCase() ?? '?'}\n </SizableText>\n )}\n </Circle>\n <YStack alignItems=\"center\" gap=\"$1\">\n <SizableText size=\"$7\" fontWeight=\"700\">\n {name}\n </SizableText>\n {subtitle && (\n <SizableText size=\"$4\" color=\"$color10\">\n {subtitle}\n </SizableText>\n )}\n </YStack>\n {stats && stats.length > 0 && (\n <XStack gap=\"$6\">\n {stats.map((stat, i) => (\n <YStack key={i} alignItems=\"center\" gap=\"$1\">\n <SizableText size=\"$6\" fontWeight=\"700\">\n {stat.value}\n </SizableText>\n <SizableText size=\"$2\" color=\"$color9\">\n {stat.label}\n </SizableText>\n </YStack>\n ))}\n </XStack>\n )}\n {actions}\n </YStack>\n )\n}\n","import { SizableText, XStack, YStack } from 'tamagui'\nimport { Avatar as BlinkAvatar } from '../primitives/Avatar'\n\nexport type AppHeaderVariant = 'simple' | 'back' | 'profile' | 'centered'\nexport type AppHeaderProps = {\n title: string; subtitle?: string; variant?: AppHeaderVariant\n onBack?: () => void; avatar?: string; left?: React.ReactNode; right?: React.ReactNode\n transparent?: boolean; borderless?: boolean\n}\n\nexport function AppHeader({ title, subtitle, variant = 'simple', onBack, avatar, left, right, transparent, borderless }: AppHeaderProps) {\n const leftContent = (() => {\n if (variant === 'back') return (\n <SizableText size=\"$6\" paddingRight=\"$2\" onPress={onBack} pressStyle={{ opacity: 0.6 }} cursor=\"pointer\">{'\\u2039'}</SizableText>\n )\n if (variant === 'profile') return <BlinkAvatar uri={avatar} name={title} size=\"sm\" />\n if (variant === 'centered') return left ?? null\n return null\n })()\n const rightContent = (variant === 'profile' || variant === 'centered') ? (right ?? null) : null\n\n return (\n <YStack paddingTop=\"$6\" backgroundColor={transparent ? 'transparent' : '$background'}\n borderBottomWidth={borderless ? 0 : 1} borderBottomColor=\"$borderColor\">\n <XStack height={56} alignItems=\"center\" paddingHorizontal=\"$4\" gap=\"$3\">\n {leftContent}\n <YStack flex={1} alignItems={variant === 'centered' ? 'center' : 'flex-start'}>\n <SizableText size=\"$6\" fontWeight=\"700\" numberOfLines={1}>{title}</SizableText>\n {subtitle && <SizableText size=\"$2\" color=\"$color9\" numberOfLines={1}>{subtitle}</SizableText>}\n </YStack>\n {rightContent}\n </XStack>\n </YStack>\n )\n}\n","import { type ReactNode } from 'react'\nimport { Sheet, SizableText, XStack, YStack } from 'tamagui'\nimport { ScrollView } from 'react-native'\n\nexport type BottomSheetProps = {\n open: boolean; onOpenChange: (open: boolean) => void; title?: string; children: ReactNode\n snapPoints?: number[]; dismissOnSnapToBottom?: boolean; showHandle?: boolean; showClose?: boolean\n}\n\nexport function BottomSheet({ open, onOpenChange, title, children, snapPoints = [85], dismissOnSnapToBottom = true, showHandle = true, showClose = false }: BottomSheetProps) {\n return (\n <Sheet modal open={open} onOpenChange={onOpenChange} snapPoints={snapPoints} dismissOnSnapToBottom={dismissOnSnapToBottom} animation=\"medium\">\n <Sheet.Overlay animation=\"lazy\" enterStyle={{ opacity: 0 }} exitStyle={{ opacity: 0 }} />\n {showHandle && <Sheet.Handle />}\n <Sheet.Frame borderTopLeftRadius=\"$6\" borderTopRightRadius=\"$6\" backgroundColor=\"$background\">\n {(title || showClose) && (\n <XStack paddingHorizontal=\"$4\" paddingTop=\"$3\" paddingBottom=\"$2\" alignItems=\"center\" justifyContent=\"space-between\">\n <SizableText size=\"$6\" fontWeight=\"600\" flexShrink={1}>{title}</SizableText>\n {showClose && (\n <XStack width={28} height={28} borderRadius=\"$10\" backgroundColor=\"$color4\" alignItems=\"center\" justifyContent=\"center\"\n pressStyle={{ opacity: 0.7 }} onPress={() => onOpenChange(false)}>\n <SizableText size=\"$3\" color=\"$color10\" fontWeight=\"600\">{'\\u2715'}</SizableText>\n </XStack>\n )}\n </XStack>\n )}\n <ScrollView contentContainerStyle={{ paddingBottom: 40 }}>\n <YStack padding=\"$4\">{children}</YStack>\n </ScrollView>\n </Sheet.Frame>\n </Sheet>\n )\n}\n","import { useState, type ReactNode } from 'react'\nimport { Button, SizableText, Spinner, XStack, YStack } from 'tamagui'\nimport { Input } from '../primitives/Input'\nimport { Divider } from '../layouts/Divider'\n\nexport type AuthProvider = { id: string; name: string; icon?: ReactNode }\nexport type LoginScreenProps = {\n title?: string; subtitle?: string; logo?: ReactNode; providers?: AuthProvider[]\n onProviderPress?: (id: string) => void; showEmailForm?: boolean\n onEmailSubmit?: (email: string, password: string) => void\n onForgotPassword?: () => void; onCreateAccount?: () => void\n onTerms?: () => void; onPrivacy?: () => void; loading?: boolean\n}\n\nexport function LoginScreen({ title = 'Welcome', subtitle = 'Sign in to continue', logo, providers = [], onProviderPress, showEmailForm, onEmailSubmit, onForgotPassword, onCreateAccount, onTerms, onPrivacy, loading }: LoginScreenProps) {\n const [email, setEmail] = useState('')\n const [password, setPassword] = useState('')\n return (\n <YStack flex={1} padding=\"$4\" gap=\"$5\" backgroundColor=\"$background\" justifyContent=\"center\">\n <YStack alignItems=\"center\" gap=\"$2\">\n {logo && <YStack paddingBottom=\"$3\">{logo}</YStack>}\n <SizableText size=\"$9\" fontWeight=\"700\" textAlign=\"center\">{title}</SizableText>\n <SizableText size=\"$4\" color=\"$color10\" textAlign=\"center\">{subtitle}</SizableText>\n </YStack>\n {providers.length > 0 && (\n <YStack gap=\"$2.5\">\n {providers.map(p => (\n <Button key={p.id} size=\"$5\" borderWidth={1.5} borderColor=\"$color5\" backgroundColor=\"$color1\" borderRadius=\"$4\"\n disabled={loading} onPress={() => onProviderPress?.(p.id)}\n hoverStyle={{ backgroundColor: '$color2' }} pressStyle={{ backgroundColor: '$color3' }}>\n <XStack alignItems=\"center\" gap=\"$2\">\n {p.icon}\n <SizableText size=\"$4\" fontWeight=\"500\">{p.name}</SizableText>\n </XStack>\n </Button>\n ))}\n </YStack>\n )}\n {showEmailForm && providers.length > 0 && <Divider label=\"or\" />}\n {showEmailForm && (\n <YStack gap=\"$3\">\n <Input label=\"Email\" placeholder=\"your@email.com\" value={email} onChangeText={setEmail} keyboardType=\"email-address\" autoCapitalize=\"none\" />\n <Input label=\"Password\" placeholder=\"••••••••\" value={password} onChangeText={setPassword} secureTextEntry />\n {onForgotPassword && <XStack justifyContent=\"flex-end\"><SizableText size=\"$3\" color=\"$color9\" onPress={onForgotPassword}>Forgot password?</SizableText></XStack>}\n <Button size=\"$5\" backgroundColor=\"$color9\" color=\"$color1\" borderRadius=\"$5\" disabled={loading}\n onPress={() => onEmailSubmit?.(email, password)}\n hoverStyle={{ backgroundColor: '$color10' }} pressStyle={{ backgroundColor: '$color8' }}\n icon={loading ? <Spinner size=\"small\" color=\"$color1\" /> : undefined}>\n Sign In\n </Button>\n {onCreateAccount && <Button size=\"$3\" chromeless onPress={onCreateAccount}><SizableText size=\"$3\" color=\"$color9\">Create Account</SizableText></Button>}\n </YStack>\n )}\n {(onTerms || onPrivacy) && (\n <YStack paddingTop=\"$2\" alignItems=\"center\">\n <SizableText size=\"$2\" color=\"$color8\" textAlign=\"center\">\n By continuing you agree to our{' '}\n {onTerms && <SizableText size=\"$2\" color=\"$color9\" onPress={onTerms}>Terms of Service</SizableText>}\n {onTerms && onPrivacy && ' & '}\n {onPrivacy && <SizableText size=\"$2\" color=\"$color9\" onPress={onPrivacy}>Privacy Policy</SizableText>}\n </SizableText>\n </YStack>\n )}\n </YStack>\n )\n}\n","import { SizableText, XStack, YStack } from 'tamagui'\n\nexport type TabBarItem = { id: string; label: string; icon?: React.ReactNode }\nexport type TabBarProps = { tabs: TabBarItem[]; activeTab: string; onTabPress: (id: string) => void; showLabels?: boolean }\n\nexport function TabBar({ tabs, activeTab, onTabPress, showLabels = true }: TabBarProps) {\n return (\n <XStack height={56} borderTopWidth={1} borderTopColor=\"$borderColor\" backgroundColor=\"$background\" paddingBottom=\"$2\">\n {tabs.map(tab => {\n const active = tab.id === activeTab\n return (\n <YStack key={tab.id} flex={1} alignItems=\"center\" justifyContent=\"center\" gap=\"$1\"\n pressStyle={{ opacity: 0.6 }} onPress={() => onTabPress(tab.id)}>\n {tab.icon && <SizableText size=\"$5\" color={active ? '$color9' : '$color8'}>{tab.icon}</SizableText>}\n {showLabels && <SizableText size=\"$1\" color={active ? '$color9' : '$color8'} fontWeight={active ? '600' : '400'}>{tab.label}</SizableText>}\n </YStack>\n )\n })}\n </XStack>\n )\n}\n","import { Input, SizableText, XStack } from 'tamagui'\n\nexport type SearchBarProps = {\n value: string; onChangeText: (text: string) => void; placeholder?: string\n onFilter?: () => void; onCancel?: () => void; autoFocus?: boolean\n}\n\nexport function SearchBar({ value, onChangeText, placeholder = 'Search\\u2026', onFilter, onCancel, autoFocus }: SearchBarProps) {\n return (\n <XStack height={44} borderRadius=\"$10\" backgroundColor=\"$color2\" alignItems=\"center\" paddingHorizontal=\"$3\" gap=\"$2\">\n <SizableText size=\"$4\" color=\"$color8\">{'\\u2315'}</SizableText>\n <Input flex={1} size=\"$4\" value={value} onChangeText={onChangeText} placeholder={placeholder}\n placeholderTextColor=\"$color8\" backgroundColor=\"transparent\" borderWidth={0} autoFocus={autoFocus} />\n {onFilter && <SizableText size=\"$4\" color=\"$color9\" pressStyle={{ opacity: 0.6 }} onPress={onFilter}>{'\\u2ACF'}</SizableText>}\n {onCancel && <SizableText size=\"$3\" color=\"$color9\" pressStyle={{ opacity: 0.6 }} onPress={onCancel}>Cancel</SizableText>}\n </XStack>\n )\n}\n","import { type ReactNode } from 'react'\nimport { SizableText, XStack } from 'tamagui'\n\nexport type FABProps = {\n icon?: ReactNode; label?: string; onPress: () => void\n position?: 'bottom-right' | 'bottom-center' | 'bottom-left'; size?: 'sm' | 'md' | 'lg'\n}\n\nconst sizes = { sm: 44, md: 56, lg: 68 }\nconst positionStyles = {\n 'bottom-right': { right: 20 },\n 'bottom-center': { left: '50%', marginLeft: -28 },\n 'bottom-left': { left: 20 },\n}\n\nexport function FloatingActionButton({ icon, label, onPress, position = 'bottom-right', size = 'md' }: FABProps) {\n const dim = sizes[size]\n return (\n <XStack position=\"absolute\" bottom={32} {...positionStyles[position] as any}\n height={dim} minWidth={dim} borderRadius={label ? '$6' : '$10'}\n backgroundColor=\"$color9\" alignItems=\"center\" justifyContent=\"center\" gap=\"$2\"\n paddingHorizontal={label ? '$4' : 0} elevation={4}\n pressStyle={{ scale: 0.95, opacity: 0.9 }} onPress={onPress}>\n {icon && <SizableText color=\"$color1\">{icon}</SizableText>}\n {label && <SizableText color=\"$color1\" size=\"$4\" fontWeight=\"600\">{label}</SizableText>}\n </XStack>\n )\n}\n","import { type ReactNode } from 'react'\nimport { Sheet, SizableText, XStack, YStack } from 'tamagui'\n\nexport type ActionSheetItem = { id: string; label: string; icon?: ReactNode; destructive?: boolean }\nexport type ActionSheetProps = {\n open: boolean; onOpenChange: (open: boolean) => void; title?: string\n items: ActionSheetItem[]; onSelect: (id: string) => void; cancelLabel?: string\n}\n\nexport function ActionSheet({ open, onOpenChange, title, items, onSelect, cancelLabel = 'Cancel' }: ActionSheetProps) {\n return (\n <Sheet modal open={open} onOpenChange={onOpenChange} snapPoints={[50]} dismissOnSnapToBottom animation=\"medium\">\n <Sheet.Overlay animation=\"lazy\" enterStyle={{ opacity: 0 }} exitStyle={{ opacity: 0 }} />\n <Sheet.Handle />\n <Sheet.Frame borderTopLeftRadius=\"$6\" borderTopRightRadius=\"$6\" backgroundColor=\"$background\">\n {title && <SizableText size=\"$3\" color=\"$color8\" textAlign=\"center\" paddingTop=\"$3\" paddingBottom=\"$1\">{title}</SizableText>}\n <YStack paddingHorizontal=\"$3\" paddingTop=\"$2\">\n {items.map(item => (\n <XStack key={item.id} height={52} alignItems=\"center\" gap=\"$3\" paddingHorizontal=\"$3\" borderRadius=\"$4\"\n pressStyle={{ backgroundColor: '$color3' }} onPress={() => { onSelect(item.id); onOpenChange(false) }}>\n {item.icon && <SizableText size=\"$5\">{item.icon}</SizableText>}\n <SizableText size=\"$5\" flex={1} color={item.destructive ? '$red9' : '$color12'}\n fontWeight={item.destructive ? '600' : '400'}>{item.label}</SizableText>\n </XStack>\n ))}\n </YStack>\n <YStack paddingHorizontal=\"$3\" paddingVertical=\"$3\" borderTopWidth={1} borderTopColor=\"$borderColor\" marginTop=\"$2\">\n <XStack height={48} alignItems=\"center\" justifyContent=\"center\" borderRadius=\"$4\"\n pressStyle={{ backgroundColor: '$color3' }} onPress={() => onOpenChange(false)}>\n <SizableText size=\"$5\" fontWeight=\"600\" color=\"$color9\">{cancelLabel}</SizableText>\n </XStack>\n </YStack>\n </Sheet.Frame>\n </Sheet>\n )\n}\n","import { YStack } from 'tamagui'\n\nexport type SkeletonProps = { width?: number | string; height?: number; borderRadius?: number; variant?: 'text' | 'circular' | 'rectangular' }\n\nexport function Skeleton({ width, height, borderRadius, variant = 'rectangular' }: SkeletonProps) {\n const size = variant === 'circular' ? (height ?? 40) : height\n const w = variant === 'text' ? (width ?? '100%') : width\n const h = variant === 'text' ? (height ?? 16) : size\n const r = variant === 'circular' ? 9999 : (borderRadius ?? 8)\n return <YStack width={w as any} height={h} borderRadius={r} backgroundColor=\"$color3\" opacity={0.6} animation=\"slow\" enterStyle={{ opacity: 0.3 }} exitStyle={{ opacity: 0.3 }} />\n}\n","import { type ReactNode } from 'react'\nimport { SizableText, XStack, YStack } from 'tamagui'\n\nexport type NotificationBannerProps = {\n title: string; message?: string; variant?: 'info' | 'success' | 'warning' | 'error'\n onPress?: () => void; onDismiss?: () => void; icon?: ReactNode\n}\n\nconst variantColors = {\n info: { bg: '$blue3', text: '$blue11' }, success: { bg: '$green3', text: '$green11' },\n warning: { bg: '$yellow3', text: '$yellow11' }, error: { bg: '$red3', text: '$red11' },\n}\n\nexport function NotificationBanner({ title, message, variant = 'info', onPress, onDismiss, icon }: NotificationBannerProps) {\n const colors = variantColors[variant]\n return (\n <XStack backgroundColor={colors.bg} padding=\"$3\" borderRadius=\"$4\" gap=\"$3\" alignItems=\"flex-start\"\n onPress={onPress} pressStyle={onPress ? { opacity: 0.8 } : undefined}>\n {icon && <YStack paddingTop=\"$0.5\">{icon}</YStack>}\n <YStack flex={1} gap=\"$1\">\n <SizableText size=\"$4\" fontWeight=\"600\" color={colors.text}>{title}</SizableText>\n {message && <SizableText size=\"$3\" color={colors.text} opacity={0.8}>{message}</SizableText>}\n </YStack>\n {onDismiss && <SizableText size=\"$3\" color={colors.text} opacity={0.6} onPress={onDismiss} padding=\"$1\">{'\\u2715'}</SizableText>}\n </XStack>\n )\n}\n","import { Circle, SizableText, XStack, YStack } from 'tamagui'\n\nexport type ProgressStepsProps = { steps: string[]; currentStep: number; variant?: 'dots' | 'bar' | 'numbered' }\n\nexport function ProgressSteps({ steps, currentStep, variant = 'dots' }: ProgressStepsProps) {\n if (variant === 'bar') {\n const progress = steps.length > 1 ? (currentStep / (steps.length - 1)) * 100 : 100\n return (\n <YStack gap=\"$2\">\n <YStack height={4} backgroundColor=\"$color4\" borderRadius={2} overflow=\"hidden\">\n <YStack height={4} width={`${progress}%`} backgroundColor=\"$color9\" borderRadius={2} animation=\"quick\" />\n </YStack>\n <XStack justifyContent=\"space-between\">\n {steps.map((label, i) => <SizableText key={i} size=\"$2\" color={i <= currentStep ? '$color9' : '$color8'}>{label}</SizableText>)}\n </XStack>\n </YStack>\n )\n }\n return (\n <XStack alignItems=\"center\" justifyContent=\"center\" gap=\"$0\">\n {steps.map((label, i) => (\n <XStack key={i} alignItems=\"center\" gap=\"$0\">\n <YStack alignItems=\"center\" gap=\"$1.5\">\n <Circle size={variant === 'numbered' ? 28 : 10} backgroundColor={i <= currentStep ? '$color9' : '$color4'} animation=\"quick\">\n {variant === 'numbered' && <SizableText size=\"$2\" fontWeight=\"600\" color={i <= currentStep ? '$color1' : '$color8'}>{i + 1}</SizableText>}\n </Circle>\n <SizableText size=\"$1\" color={i <= currentStep ? '$color11' : '$color8'} numberOfLines={1}>{label}</SizableText>\n </YStack>\n {i < steps.length - 1 && <YStack height={2} width={32} backgroundColor={i < currentStep ? '$color9' : '$color4'} marginBottom=\"$4\" />}\n </XStack>\n ))}\n </XStack>\n )\n}\n","import { useState, type ReactNode } from 'react'\nimport { Button, SizableText, XStack, YStack } from 'tamagui'\n\nexport type SwipeAction = { id: string; label: string; color: string; onPress: () => void }\nexport type SwipeableRowProps = { children: ReactNode; leftActions?: SwipeAction[]; rightActions?: SwipeAction[] }\n\nexport function SwipeableRow({ children, leftActions, rightActions }: SwipeableRowProps) {\n const [showActions, setShowActions] = useState(false)\n const actions = [...(leftActions ?? []), ...(rightActions ?? [])]\n if (actions.length === 0) return <>{children}</>\n return (\n <YStack>\n <YStack onLongPress={() => setShowActions(v => !v)} pressStyle={{ opacity: 0.9 }}>{children}</YStack>\n {showActions && (\n <XStack gap=\"$2\" padding=\"$2\" animation=\"quick\" enterStyle={{ opacity: 0, scale: 0.95 }}>\n {actions.map(action => (\n <Button key={action.id} flex={1} size=\"$3\" backgroundColor={action.color} borderRadius=\"$3\"\n onPress={() => { action.onPress(); setShowActions(false) }}>\n <SizableText size=\"$2\" fontWeight=\"600\" color=\"white\">{action.label}</SizableText>\n </Button>\n ))}\n </XStack>\n )}\n </YStack>\n )\n}\n","import { Image, SizableText, XStack, YStack } from 'tamagui'\nimport { LinearGradient } from 'tamagui/linear-gradient'\n\nexport type MediaCardProps = {\n image: string; title: string; subtitle?: string\n overlay?: 'gradient' | 'dark' | 'none'; aspectRatio?: number\n onPress?: () => void; badge?: string\n}\n\nexport function MediaCard({ image, title, subtitle, overlay = 'gradient', aspectRatio = 16 / 9, onPress, badge }: MediaCardProps) {\n return (\n <YStack borderRadius=\"$4\" overflow=\"hidden\" onPress={onPress}\n pressStyle={onPress ? { scale: 0.98, opacity: 0.9 } : undefined} animation=\"quick\">\n <YStack aspectRatio={aspectRatio}>\n <Image source={{ uri: image }} width=\"100%\" height=\"100%\" objectFit=\"cover\" />\n {overlay === 'gradient' && (\n <LinearGradient colors={['transparent', 'rgba(0,0,0,0.7)']} start={[0, 0]} end={[0, 1]}\n position=\"absolute\" bottom={0} left={0} right={0} height=\"60%\" />\n )}\n {overlay === 'dark' && <YStack position=\"absolute\" fullscreen backgroundColor=\"rgba(0,0,0,0.4)\" />}\n {badge && (\n <XStack position=\"absolute\" top=\"$2\" right=\"$2\" backgroundColor=\"$color9\"\n paddingHorizontal=\"$2\" paddingVertical=\"$1\" borderRadius=\"$2\">\n <SizableText size=\"$1\" fontWeight=\"600\" color=\"$color1\">{badge}</SizableText>\n </XStack>\n )}\n <YStack position=\"absolute\" bottom={0} left={0} right={0} padding=\"$3\" gap=\"$1\">\n <SizableText size=\"$5\" fontWeight=\"600\" color=\"white\">{title}</SizableText>\n {subtitle && <SizableText size=\"$3\" color=\"rgba(255,255,255,0.8)\">{subtitle}</SizableText>}\n </YStack>\n </YStack>\n </YStack>\n )\n}\n","import { Children, useState, type ReactNode } from 'react'\nimport { Circle, XStack, YStack } from 'tamagui'\nimport { ScrollView } from 'react-native'\nimport type { NativeScrollEvent, NativeSyntheticEvent } from 'react-native'\n\nexport type CarouselProps = { children: ReactNode; gap?: string; snapToInterval?: number; showIndicators?: boolean }\n\nexport function Carousel({ children, gap = '$3', snapToInterval, showIndicators = false }: CarouselProps) {\n const [activeIndex, setActiveIndex] = useState(0)\n const count = Children.count(children)\n const gapPx = gap === '$2' ? 8 : gap === '$3' ? 12 : 16\n return (\n <YStack gap=\"$3\">\n <ScrollView horizontal showsHorizontalScrollIndicator={false} snapToInterval={snapToInterval} decelerationRate=\"fast\"\n contentContainerStyle={{ gap: gapPx, paddingHorizontal: 16 }}\n onMomentumScrollEnd={(e: NativeSyntheticEvent<NativeScrollEvent>) => {\n if (snapToInterval) setActiveIndex(Math.round(e.nativeEvent.contentOffset.x / snapToInterval))\n }}>\n {children}\n </ScrollView>\n {showIndicators && count > 1 && (\n <XStack justifyContent=\"center\" gap=\"$1.5\">\n {Array.from({ length: count }, (_, i) => (\n <Circle key={i} size={6} backgroundColor={i === activeIndex ? '$color9' : '$color4'} animation=\"quick\" />\n ))}\n </XStack>\n )}\n </YStack>\n )\n}\n","import { type ReactNode } from 'react'\nimport { YStack } from 'tamagui'\nimport { RefreshControl, ScrollView } from 'react-native'\n\nexport type PullToRefreshProps = { children: ReactNode; onRefresh: () => void; refreshing?: boolean }\n\nexport function PullToRefresh({ children, onRefresh, refreshing = false }: PullToRefreshProps) {\n return (\n <ScrollView contentContainerStyle={{ flexGrow: 1 }}\n refreshControl={<RefreshControl refreshing={refreshing} onRefresh={onRefresh} />}>\n <YStack flex={1}>{children}</YStack>\n </ScrollView>\n )\n}\n"],"mappings":"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","names":["Image","import_v5","import_tamagui","import_tamagui","TamaguiButton","import_tamagui","import_tamagui","import_tamagui","TamaguiInput","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_react","import_tamagui","import_jsx_runtime","import_tamagui","import_tamagui","Image","TamaguiImage","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_react","import_tamagui","import_jsx_runtime","import_react","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_react","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_react","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_react","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_react_native","import_jsx_runtime","import_react","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_react","import_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_react","import_tamagui","import_react_native","import_jsx_runtime","import_tamagui","import_react_native","import_jsx_runtime"]}