@blinkdotnew/mobile-ui 2.0.0-alpha.4 → 2.0.0-alpha.6
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.d.mts +314 -3
- package/dist/index.d.ts +314 -3
- package/dist/index.js +1255 -191
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1208 -171
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
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/layouts/StepPageLayout.tsx","../src/layouts/ScreenLayout.tsx","../src/layouts/Section.tsx","../src/layouts/ListItem.tsx","../src/layouts/Divider.tsx","../src/layouts/KeyboardStickyFooter.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"],"sourcesContent":["// Config\nexport { blinkConfig } from './config/tamagui.config'\nexport type { BlinkConfig } from './config/tamagui.config'\n\n// Re-export Tamagui builtins — single import source for consumers\nexport {\n // Layout\n View, XStack, YStack, ZStack, ScrollView, Circle,\n // Text\n H1, H2, H3, H4, H5, H6, Paragraph, SizableText, Text,\n // Forms\n Button, Input, TextArea, Switch, Checkbox, Slider, RadioGroup, Select, Label,\n // Display\n Card, Avatar, Separator, Image as TamaguiImage, Progress, Spinner,\n // Overlay\n Sheet, Dialog, AlertDialog, Popover, Tooltip,\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// Interface\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\n// 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\n// 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","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, 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 { 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=\"$4\" paddingBottom=\"$6\">\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=\"80%\"\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=\"$4\" 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"],"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_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_tamagui","import_jsx_runtime","import_tamagui","import_jsx_runtime","import_tamagui","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/Accordion.tsx","../src/interface/Tabs.tsx","../src/interface/ToggleGroup.tsx","../src/interface/Toast.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// Re-export Tamagui builtins — single import source for consumers\nexport {\n // Layout\n View, XStack, YStack, ZStack, ScrollView, Circle,\n // Text\n H1, H2, H3, H4, H5, H6, Paragraph, SizableText, Text,\n // Forms\n Button, Input, TextArea, Switch, Checkbox, Slider, RadioGroup, Select, Label,\n // Display\n Card, Avatar, Separator, Image as TamaguiImage, Progress, Spinner,\n // Overlay\n Sheet, Dialog, AlertDialog, Popover, Tooltip,\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// Interface — Phase 1\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\n// Interface — Phase 3+\nexport { Icon, ICONS } from './interface/Icon'\nexport type { IconName, IconProps } from './interface/Icon'\n\nexport { Accordion } from './interface/Accordion'\nexport type { AccordionProps, AccordionItem } from './interface/Accordion'\n\nexport { Tabs } from './interface/Tabs'\nexport type { TabsProps, TabItem } from './interface/Tabs'\n\nexport { ToggleGroup } from './interface/ToggleGroup'\nexport type { ToggleGroupProps, ToggleOption } from './interface/ToggleGroup'\n\nexport { ToastProvider, useToast, toast } from './interface/Toast'\nexport type { ToastVariant, ToastData, ToastContextType } from './interface/Toast'\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// Layouts — Phase 1\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\n// Layouts — Phase 3+\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// Patterns — Phase 1-2\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\n// Patterns — Phase 3\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\n// Patterns — Phase 4 (Navigation)\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\n// Patterns — Phase 5 (Premium)\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: '⌂',\n search: '⌕',\n back: '‹',\n forward: '›',\n close: '✕',\n menu: '☰',\n more: '⋯',\n\n plus: '+',\n minus: '−',\n check: '✓',\n star: '★',\n starOutline: '☆',\n heart: '♥',\n heartOutline: '♡',\n share: '⤴',\n edit: '✎',\n trash: '⌫',\n copy: '⎘',\n\n chat: '💬',\n mail: '✉',\n bell: '🔔',\n bellOff: '🔕',\n send: '➤',\n\n play: '▶',\n pause: '⏸',\n camera: '📷',\n image: '🖼',\n\n info: 'ℹ',\n warning: '⚠',\n error: '✕',\n success: '✓',\n loading: '⟳',\n\n user: '👤',\n users: '👥',\n settings: '⚙',\n lock: '🔒',\n unlock: '🔓',\n\n arrowUp: '↑',\n arrowDown: '↓',\n arrowLeft: '←',\n arrowRight: '→',\n chevronUp: '⌃',\n chevronDown: '⌄',\n chevronLeft: '‹',\n chevronRight: '›',\n} as const\n\nexport type IconName = keyof typeof ICONS\n\nexport type IconProps = {\n name: IconName\n size?: number\n color?: string\n}\n\nexport function Icon({ name, size = 20, color = '$color12' }: IconProps) {\n return (\n <SizableText\n fontSize={size}\n lineHeight={size}\n color={color}\n textAlign=\"center\"\n width={size}\n height={size}\n >\n {ICONS[name]}\n </SizableText>\n )\n}\n","import { useState } from 'react'\nimport { Separator, SizableText, XStack, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type AccordionItem = {\n id: string\n title: string\n content: ReactNode\n}\n\nexport type AccordionProps = {\n items: AccordionItem[]\n defaultOpen?: string\n allowMultiple?: boolean\n}\n\nexport function Accordion({ items, defaultOpen, allowMultiple = false }: AccordionProps) {\n const [openIds, setOpenIds] = useState<string[]>(defaultOpen ? [defaultOpen] : [])\n\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\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\"\n paddingHorizontal=\"$2\"\n justifyContent=\"space-between\"\n alignItems=\"center\"\n pressStyle={{ opacity: 0.7 }}\n onPress={() => toggle(item.id)}\n cursor=\"pointer\"\n >\n <SizableText size=\"$4\" fontWeight=\"600\">{item.title}</SizableText>\n <SizableText size=\"$3\" color=\"$color10\">{isOpen ? '⌃' : '⌄'}</SizableText>\n </XStack>\n {isOpen && (\n <YStack paddingHorizontal=\"$2\" paddingBottom=\"$3\">\n {item.content}\n </YStack>\n )}\n </YStack>\n )\n })}\n </YStack>\n )\n}\n","import { useState } from 'react'\nimport { ScrollView } from 'react-native'\nimport { SizableText, XStack, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type TabItem = {\n id: string\n label: string\n content: ReactNode\n}\n\nexport type TabsProps = {\n tabs: TabItem[]\n activeTab?: string\n onTabChange?: (tabId: string) => void\n variant?: 'underline' | 'pill'\n}\n\nexport function Tabs({ tabs, activeTab, onTabChange, variant = 'underline' }: TabsProps) {\n const [internalActive, setInternalActive] = useState(tabs[0]?.id ?? '')\n const current = activeTab ?? internalActive\n\n const handlePress = (id: string) => {\n if (!activeTab) setInternalActive(id)\n onTabChange?.(id)\n }\n\n const activeContent = tabs.find((t) => t.id === current)?.content\n\n return (\n <YStack flex={1}>\n <ScrollView horizontal showsHorizontalScrollIndicator={false}>\n <XStack gap=\"$2\" paddingHorizontal=\"$2\" paddingBottom=\"$2\">\n {tabs.map((tab) => {\n const isActive = tab.id === current\n return (\n <YStack\n key={tab.id}\n paddingVertical=\"$2\"\n 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 }}\n onPress={() => handlePress(tab.id)}\n cursor=\"pointer\"\n >\n <SizableText\n size=\"$3\"\n 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 flex={1} paddingTop=\"$2\">{activeContent}</YStack>\n </YStack>\n )\n}\n","import { SizableText, XStack } from 'tamagui'\n\nexport type ToggleOption = {\n id: string\n label: string\n}\n\nexport type ToggleGroupProps = {\n options: ToggleOption[]\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 ToggleGroup({ options, value, onValueChange, size = 'md' }: ToggleGroupProps) {\n const textSize = sizeMap[size]\n\n return (\n <XStack borderRadius=\"$4\" overflow=\"hidden\" backgroundColor=\"$color2\">\n {options.map((option, index) => {\n const isActive = option.id === value\n return (\n <XStack\n key={option.id}\n flex={1}\n justifyContent=\"center\"\n alignItems=\"center\"\n paddingVertical=\"$2\"\n paddingHorizontal=\"$3\"\n backgroundColor={isActive ? '$color9' : '$color2'}\n borderLeftWidth={index > 0 ? 1 : 0}\n borderLeftColor={isActive ? '$color9' : '$color4'}\n pressStyle={{ opacity: 0.7 }}\n onPress={() => onValueChange(option.id)}\n 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 } from 'react'\nimport { SizableText, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type ToastVariant = 'default' | 'success' | 'error' | 'warning'\n\nexport type ToastData = {\n id: string\n message: string\n variant?: ToastVariant\n duration?: number\n}\n\nexport type ToastContextType = {\n show: (message: string, variant?: ToastVariant, duration?: number) => void\n}\n\nconst ToastContext = createContext<ToastContextType | null>(null)\n\nconst variantColors: Record<ToastVariant, string> = {\n default: '$color9',\n success: '$green9',\n error: '$red9',\n warning: '$yellow9',\n}\n\nlet globalToastShow: ToastContextType['show'] | null = null\n\nexport const toast = (message: string, variant?: ToastVariant, duration?: number) => {\n if (globalToastShow) globalToastShow(message, variant, duration)\n else console.warn('ToastProvider not mounted')\n}\n\nexport function ToastProvider({ children }: { children: ReactNode }) {\n const [toasts, setToasts] = useState<ToastData[]>([])\n\n const show = useCallback<ToastContextType['show']>((message, variant = '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(() => {\n globalToastShow = show\n return () => { globalToastShow = null }\n }, [show])\n\n return (\n <ToastContext.Provider value={{ show }}>\n {children}\n <YStack\n position=\"absolute\"\n top={60}\n left={0}\n right={0}\n alignItems=\"center\"\n gap=\"$2\"\n pointerEvents=\"none\"\n zIndex={100_000}\n >\n {toasts.map((t) => (\n <YStack\n key={t.id}\n backgroundColor={variantColors[t.variant ?? 'default']}\n paddingHorizontal=\"$4\"\n paddingVertical=\"$2.5\"\n borderRadius=\"$4\"\n enterStyle={{ opacity: 0, y: -10 }}\n exitStyle={{ opacity: 0, y: -10 }}\n opacity={1}\n y={0}\n animation=\"quick\"\n >\n <SizableText size=\"$3\" color=\"white\" fontWeight=\"600\">\n {t.message}\n </SizableText>\n </YStack>\n ))}\n </YStack>\n </ToastContext.Provider>\n )\n}\n\nexport function useToast(): ToastContextType {\n const ctx = useContext(ToastContext)\n if (!ctx) throw new Error('useToast must be used within ToastProvider')\n return ctx\n}\n","import { SizableText, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type FormFieldProps = {\n label?: string\n error?: string\n helperText?: string\n required?: boolean\n 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 && (\n <SizableText size=\"$2\" color=\"$color9\">{helperText}</SizableText>\n )}\n {error && (\n <SizableText size=\"$2\" color=\"$red9\">{error}</SizableText>\n )}\n </YStack>\n )\n}\n","import { Popover, SizableText, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type TooltipProps = {\n content: string\n children: ReactNode\n side?: 'top' | 'bottom' | 'left' | 'right'\n}\n\nexport function BlinkTooltip({ content, children, side = 'top' }: TooltipProps) {\n return (\n <Popover size=\"$2\" placement={side}>\n <Popover.Trigger asChild>\n {children}\n </Popover.Trigger>\n <Popover.Content\n backgroundColor=\"$color11\"\n borderRadius=\"$2\"\n paddingHorizontal=\"$2.5\"\n paddingVertical=\"$1.5\"\n elevate\n enterStyle={{ opacity: 0, y: side === 'bottom' ? -4 : 4 }}\n exitStyle={{ opacity: 0, y: side === 'bottom' ? -4 : 4 }}\n opacity={1}\n y={0}\n animation=\"quick\"\n >\n <Popover.Arrow backgroundColor=\"$color11\" size=\"$1\" />\n <SizableText size=\"$2\" color=\"$color1\">\n {content}\n </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 = {\n children: ReactNode\n edges?: ('top' | 'bottom' | 'left' | 'right')[]\n}\n\nexport function SafeArea({ children, edges = ['top', 'bottom'] }: SafeAreaProps) {\n return (\n <YStack\n flex={1}\n 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 = {\n children: ReactNode\n columns?: 2 | 3 | 4\n gap?: '$2' | '$3' | '$4'\n}\n\nexport function Grid({ children, columns = 2, gap = '$3' }: GridProps) {\n const childWidth = `${100 / columns}%` as const\n\n return (\n <XStack flexWrap=\"wrap\" gap={gap}>\n {Array.isArray(children)\n ? children.map((child, i) => (\n <YStack key={i} width={childWidth} flexBasis={childWidth}>\n {child}\n </YStack>\n ))\n : children}\n </XStack>\n )\n}\n\nexport type ContainerProps = {\n children: ReactNode\n maxWidth?: number\n centered?: boolean\n}\n\nexport function Container({ children, maxWidth = 500, centered = true }: ContainerProps) {\n return (\n <YStack width=\"100%\" maxWidth={maxWidth} alignSelf={centered ? 'center' : undefined}>\n {children}\n </YStack>\n )\n}\n","import { Button, SizableText, XStack, YStack, ScrollView } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type PlanOption = {\n id: string\n name: string\n price: string\n period: string\n pricePerWeek?: string\n savings?: string\n popular?: boolean\n trial?: string\n}\n\nexport type PaywallScreenProps = {\n title?: string\n subtitle?: string\n features?: string[]\n plans: PlanOption[]\n selectedPlan?: string\n onSelectPlan?: (planId: string) => void\n onContinue?: () => void\n onClose?: () => void\n onRestore?: () => void\n onTerms?: () => void\n onPrivacy?: () => void\n continueLabel?: string\n reassurance?: string\n hero?: ReactNode\n socialProof?: string\n}\n\nexport function PaywallScreen({\n title = 'Unlock Premium',\n subtitle,\n features = [],\n plans,\n selectedPlan,\n onSelectPlan,\n onContinue,\n onClose,\n onRestore,\n onTerms,\n onPrivacy,\n continueLabel = 'Continue',\n reassurance = 'Cancel anytime',\n hero,\n socialProof,\n}: PaywallScreenProps) {\n const selected = selectedPlan ?? plans.find((p) => p.popular)?.id ?? plans[0]?.id\n\n return (\n <YStack flex={1} backgroundColor=\"$background\">\n {onClose && (\n <XStack position=\"absolute\" top=\"$4\" right=\"$4\" zIndex={10}>\n <Button\n size=\"$3\"\n circular\n chromeless\n onPress={onClose}\n pressStyle={{ opacity: 0.6 }}\n >\n <SizableText size=\"$5\" color=\"$color9\">✕</SizableText>\n </Button>\n </XStack>\n )}\n\n <ScrollView flex={1} contentContainerStyle={{ paddingBottom: 200 }}>\n <YStack padding=\"$4\" gap=\"$5\" paddingTop=\"$8\">\n {hero && <YStack alignItems=\"center\" paddingVertical=\"$4\">{hero}</YStack>}\n\n <YStack gap=\"$2\" alignItems=\"center\">\n <SizableText size=\"$9\" fontWeight=\"800\" textAlign=\"center\">\n {title}\n </SizableText>\n {subtitle && (\n <SizableText size=\"$4\" color=\"$color10\" textAlign=\"center\">\n {subtitle}\n </SizableText>\n )}\n {socialProof && (\n <SizableText size=\"$3\" color=\"$color9\" textAlign=\"center\" paddingTop=\"$1\">\n {socialProof}\n </SizableText>\n )}\n </YStack>\n\n {features.length > 0 && (\n <YStack gap=\"$2.5\" paddingHorizontal=\"$2\">\n {features.map((feature, i) => (\n <XStack key={i} gap=\"$2.5\" alignItems=\"center\">\n <SizableText size=\"$4\" color=\"$green9\">✓</SizableText>\n <SizableText size=\"$4\" color=\"$color11\">{feature}</SizableText>\n </XStack>\n ))}\n </YStack>\n )}\n\n <XStack gap=\"$3\" paddingTop=\"$2\">\n {plans.map((plan) => {\n const isSelected = selected === plan.id\n return (\n <YStack\n key={plan.id}\n flex={1}\n padding=\"$3.5\"\n borderRadius=\"$5\"\n borderWidth={2}\n borderColor={isSelected ? '$color9' : '$color5'}\n backgroundColor={isSelected ? '$color2' : '$color1'}\n pressStyle={{ scale: 0.97 }}\n onPress={() => onSelectPlan?.(plan.id)}\n cursor=\"pointer\"\n position=\"relative\"\n gap=\"$1.5\"\n >\n {plan.savings && (\n <YStack\n position=\"absolute\"\n top={-10}\n right={8}\n backgroundColor=\"$green9\"\n paddingHorizontal=\"$2\"\n paddingVertical=\"$1\"\n borderRadius=\"$10\"\n >\n <SizableText size=\"$1\" color=\"white\" fontWeight=\"700\">\n {plan.savings}\n </SizableText>\n </YStack>\n )}\n <SizableText size=\"$3\" fontWeight=\"600\" color=\"$color11\">\n {plan.name}\n </SizableText>\n <SizableText size=\"$7\" fontWeight=\"800\">\n {plan.price}\n </SizableText>\n <SizableText size=\"$2\" color=\"$color9\">\n /{plan.period}\n </SizableText>\n {plan.pricePerWeek && (\n <SizableText size=\"$2\" color=\"$color10\" paddingTop=\"$1\">\n {plan.pricePerWeek}\n </SizableText>\n )}\n {plan.trial && (\n <SizableText size=\"$2\" color=\"$green9\" fontWeight=\"600\" paddingTop=\"$1\">\n {plan.trial}\n </SizableText>\n )}\n </YStack>\n )\n })}\n </XStack>\n </YStack>\n </ScrollView>\n\n <YStack\n position=\"absolute\"\n bottom={0}\n left={0}\n right={0}\n padding=\"$4\"\n paddingBottom=\"$6\"\n backgroundColor=\"$background\"\n borderTopWidth={1}\n borderTopColor=\"$color4\"\n gap=\"$3\"\n >\n <Button\n size=\"$5\"\n backgroundColor=\"$color9\"\n color=\"$color1\"\n onPress={onContinue}\n pressStyle={{ backgroundColor: '$color8' }}\n borderRadius=\"$10\"\n fontWeight=\"700\"\n >\n {continueLabel}\n </Button>\n {reassurance && (\n <SizableText size=\"$2\" color=\"$color9\" textAlign=\"center\">\n {reassurance}\n </SizableText>\n )}\n <XStack justifyContent=\"center\" gap=\"$3\">\n {onRestore && (\n <SizableText size=\"$2\" color=\"$color8\" onPress={onRestore}>Restore</SizableText>\n )}\n {onTerms && (\n <SizableText size=\"$2\" color=\"$color8\" onPress={onTerms}>Terms</SizableText>\n )}\n {onPrivacy && (\n <SizableText size=\"$2\" color=\"$color8\" onPress={onPrivacy}>Privacy</SizableText>\n )}\n </XStack>\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 type { ReactNode } from 'react'\nimport { Avatar } from '../primitives/Avatar'\n\nexport type AppHeaderVariant = 'simple' | 'back' | 'profile' | 'centered'\n\nexport type AppHeaderProps = {\n title: string\n subtitle?: string\n variant?: AppHeaderVariant\n onBack?: () => void\n avatar?: string\n left?: ReactNode\n right?: ReactNode\n transparent?: boolean\n borderless?: boolean\n}\n\nexport function AppHeader({\n title,\n subtitle,\n variant = 'simple',\n onBack,\n avatar,\n left,\n right,\n transparent,\n borderless,\n}: AppHeaderProps) {\n const leftContent = (() => {\n if (variant === 'back')\n return (\n <SizableText\n size=\"$6\"\n paddingRight=\"$2\"\n onPress={onBack}\n pressStyle={{ opacity: 0.6 }}\n cursor=\"pointer\"\n >\n ‹\n </SizableText>\n )\n if (variant === 'profile')\n return <Avatar uri={avatar} name={title} size=\"sm\" />\n if (variant === 'centered') return left ?? null\n return null\n })()\n\n const rightContent = (variant === 'profile' || variant === 'centered') ? right ?? null : null\n\n return (\n <YStack\n paddingTop=\"$6\"\n backgroundColor={transparent ? 'transparent' : '$background'}\n borderBottomWidth={borderless ? 0 : 1}\n borderBottomColor=\"$borderColor\"\n >\n <XStack\n height={56}\n alignItems=\"center\"\n paddingHorizontal=\"$4\"\n gap=\"$3\"\n >\n {leftContent}\n <YStack\n flex={1}\n alignItems={variant === 'centered' ? 'center' : 'flex-start'}\n >\n <SizableText size=\"$6\" fontWeight=\"700\" numberOfLines={1}>\n {title}\n </SizableText>\n {subtitle && (\n <SizableText size=\"$2\" color=\"$color9\" numberOfLines={1}>\n {subtitle}\n </SizableText>\n )}\n </YStack>\n {rightContent}\n </XStack>\n </YStack>\n )\n}\n","import { Sheet, SizableText, XStack, YStack } from 'tamagui'\nimport { ScrollView } from 'react-native'\nimport type { ReactNode } from 'react'\n\nexport type BottomSheetProps = {\n open: boolean\n onOpenChange: (open: boolean) => void\n title?: string\n children: ReactNode\n snapPoints?: number[]\n dismissOnSnapToBottom?: boolean\n showHandle?: boolean\n showClose?: boolean\n}\n\nexport function BottomSheet({\n open,\n onOpenChange,\n title,\n children,\n snapPoints = [85],\n dismissOnSnapToBottom = true,\n showHandle = true,\n showClose = false,\n}: BottomSheetProps) {\n return (\n <Sheet\n modal\n open={open}\n onOpenChange={onOpenChange}\n snapPoints={snapPoints}\n dismissOnSnapToBottom={dismissOnSnapToBottom}\n animation=\"medium\"\n >\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\n paddingHorizontal=\"$4\"\n paddingTop=\"$3\"\n paddingBottom=\"$2\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n >\n <SizableText size=\"$6\" fontWeight=\"600\" flexShrink={1}>\n {title}\n </SizableText>\n {showClose && (\n <XStack\n width={28}\n height={28}\n borderRadius=\"$10\"\n backgroundColor=\"$color4\"\n alignItems=\"center\"\n justifyContent=\"center\"\n pressStyle={{ opacity: 0.7 }}\n onPress={() => onOpenChange(false)}\n >\n <SizableText size=\"$3\" color=\"$color10\" fontWeight=\"600\">✕</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 } from 'react'\nimport { Button, SizableText, Spinner, XStack, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\nimport { Input } from '../primitives/Input'\nimport { Divider } from '../layouts/Divider'\n\nexport type AuthProvider = {\n id: string\n name: string\n icon?: ReactNode\n}\n\nexport type LoginScreenProps = {\n title?: string\n subtitle?: string\n logo?: ReactNode\n providers?: AuthProvider[]\n onProviderPress?: (providerId: string) => void\n showEmailForm?: boolean\n onEmailSubmit?: (email: string, password: string) => void\n onForgotPassword?: () => void\n onCreateAccount?: () => void\n onTerms?: () => void\n onPrivacy?: () => void\n loading?: boolean\n}\n\nexport function LoginScreen({\n title = 'Welcome',\n subtitle = 'Sign in to continue',\n logo,\n providers = [],\n onProviderPress,\n showEmailForm,\n onEmailSubmit,\n onForgotPassword,\n onCreateAccount,\n onTerms,\n onPrivacy,\n loading,\n}: LoginScreenProps) {\n const [email, setEmail] = useState('')\n const [password, setPassword] = useState('')\n\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\">\n {title}\n </SizableText>\n <SizableText size=\"$4\" color=\"$color10\" textAlign=\"center\">\n {subtitle}\n </SizableText>\n </YStack>\n\n {providers.length > 0 && (\n <YStack gap=\"$2.5\">\n {providers.map((p) => (\n <Button\n key={p.id}\n size=\"$5\"\n borderWidth={1.5}\n borderColor=\"$color5\"\n backgroundColor=\"$color1\"\n borderRadius=\"$4\"\n disabled={loading}\n onPress={() => onProviderPress?.(p.id)}\n hoverStyle={{ backgroundColor: '$color2' }}\n pressStyle={{ backgroundColor: '$color3' }}\n >\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\n {showEmailForm && providers.length > 0 && <Divider label=\"or\" />}\n\n {showEmailForm && (\n <YStack gap=\"$3\">\n <Input\n label=\"Email\"\n placeholder=\"your@email.com\"\n value={email}\n onChangeText={setEmail}\n keyboardType=\"email-address\"\n autoCapitalize=\"none\"\n />\n <Input\n label=\"Password\"\n placeholder=\"••••••••\"\n value={password}\n onChangeText={setPassword}\n secureTextEntry\n />\n {onForgotPassword && (\n <XStack justifyContent=\"flex-end\">\n <SizableText size=\"$3\" color=\"$color9\" onPress={onForgotPassword}>\n Forgot password?\n </SizableText>\n </XStack>\n )}\n <Button\n size=\"$5\"\n backgroundColor=\"$color9\"\n color=\"$color1\"\n borderRadius=\"$5\"\n disabled={loading}\n onPress={() => onEmailSubmit?.(email, password)}\n hoverStyle={{ backgroundColor: '$color10' }}\n pressStyle={{ backgroundColor: '$color8' }}\n icon={loading ? <Spinner size=\"small\" color=\"$color1\" /> : undefined}\n >\n Sign In\n </Button>\n {onCreateAccount && (\n <Button size=\"$3\" chromeless onPress={onCreateAccount}>\n <SizableText size=\"$3\" color=\"$color9\">\n Create Account\n </SizableText>\n </Button>\n )}\n </YStack>\n )}\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 && (\n <SizableText size=\"$2\" color=\"$color9\" onPress={onTerms}>\n Terms of Service\n </SizableText>\n )}\n {onTerms && onPrivacy && ' & '}\n {onPrivacy && (\n <SizableText size=\"$2\" color=\"$color9\" onPress={onPrivacy}>\n Privacy Policy\n </SizableText>\n )}\n </SizableText>\n </YStack>\n )}\n </YStack>\n )\n}\n","import { SizableText, XStack, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type TabBarItem = {\n id: string\n label: string\n icon?: ReactNode\n}\n\nexport type TabBarProps = {\n tabs: TabBarItem[]\n activeTab: string\n onTabPress: (tabId: string) => void\n showLabels?: boolean\n}\n\nexport function TabBar({ tabs, activeTab, onTabPress, showLabels = true }: TabBarProps) {\n return (\n <XStack\n height={56}\n borderTopWidth={1}\n borderTopColor=\"$borderColor\"\n backgroundColor=\"$background\"\n paddingBottom=\"$2\"\n >\n {tabs.map((tab) => {\n const active = tab.id === activeTab\n return (\n <YStack\n key={tab.id}\n flex={1}\n alignItems=\"center\"\n justifyContent=\"center\"\n gap=\"$1\"\n pressStyle={{ opacity: 0.6 }}\n onPress={() => onTabPress(tab.id)}\n >\n {tab.icon && (\n <SizableText size=\"$5\" color={active ? '$color9' : '$color8'}>\n {tab.icon}\n </SizableText>\n )}\n {showLabels && (\n <SizableText size=\"$1\" color={active ? '$color9' : '$color8'} fontWeight={active ? '600' : '400'}>\n {tab.label}\n </SizableText>\n )}\n </YStack>\n )\n })}\n </XStack>\n )\n}\n","import { Input, SizableText, XStack } from 'tamagui'\n\nexport type SearchBarProps = {\n value: string\n onChangeText: (text: string) => void\n placeholder?: string\n onFilter?: () => void\n onCancel?: () => void\n autoFocus?: boolean\n}\n\nexport function SearchBar({ value, onChangeText, placeholder = 'Search…', onFilter, onCancel, autoFocus }: SearchBarProps) {\n return (\n <XStack\n height={44}\n borderRadius=\"$10\"\n backgroundColor=\"$color2\"\n alignItems=\"center\"\n paddingHorizontal=\"$3\"\n gap=\"$2\"\n >\n <SizableText size=\"$4\" color=\"$color8\">⌕</SizableText>\n <Input\n flex={1}\n size=\"$4\"\n value={value}\n onChangeText={onChangeText}\n placeholder={placeholder}\n placeholderTextColor=\"$color8\"\n backgroundColor=\"transparent\"\n borderWidth={0}\n autoFocus={autoFocus}\n />\n {onFilter && (\n <SizableText size=\"$4\" color=\"$color9\" pressStyle={{ opacity: 0.6 }} onPress={onFilter}>\n ⫏\n </SizableText>\n )}\n {onCancel && (\n <SizableText size=\"$3\" color=\"$color9\" pressStyle={{ opacity: 0.6 }} onPress={onCancel}>\n Cancel\n </SizableText>\n )}\n </XStack>\n )\n}\n","import { SizableText, XStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type FABProps = {\n icon?: ReactNode\n label?: string\n onPress: () => void\n position?: 'bottom-right' | 'bottom-center' | 'bottom-left'\n size?: 'sm' | 'md' | 'lg'\n}\n\nconst sizes = { sm: 44, md: 56, lg: 68 } as const\n\nconst positionStyles = {\n 'bottom-right': { right: 20 },\n 'bottom-center': { left: '50%' as const, marginLeft: -28 },\n 'bottom-left': { left: 20 },\n} as const\n\nexport function FloatingActionButton({ icon, label, onPress, position = 'bottom-right', size = 'md' }: FABProps) {\n const dim = sizes[size]\n\n return (\n <XStack\n position=\"absolute\"\n bottom={32}\n {...positionStyles[position]}\n height={dim}\n minWidth={dim}\n borderRadius={label ? '$6' : '$10'}\n backgroundColor=\"$color9\"\n alignItems=\"center\"\n justifyContent=\"center\"\n gap=\"$2\"\n paddingHorizontal={label ? '$4' : 0}\n elevation={4}\n pressStyle={{ scale: 0.95, opacity: 0.9 }}\n onPress={onPress}\n >\n {icon && <SizableText color=\"$color1\">{icon}</SizableText>}\n {label && (\n <SizableText color=\"$color1\" size=\"$4\" fontWeight=\"600\">\n {label}\n </SizableText>\n )}\n </XStack>\n )\n}\n","import { Sheet, SizableText, XStack, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type ActionSheetItem = {\n id: string\n label: string\n icon?: ReactNode\n destructive?: boolean\n}\n\nexport type ActionSheetProps = {\n open: boolean\n onOpenChange: (open: boolean) => void\n title?: string\n items: ActionSheetItem[]\n onSelect: (itemId: string) => void\n cancelLabel?: string\n}\n\nexport function ActionSheet({\n open,\n onOpenChange,\n title,\n items,\n onSelect,\n cancelLabel = 'Cancel',\n}: ActionSheetProps) {\n return (\n <Sheet\n modal\n open={open}\n onOpenChange={onOpenChange}\n snapPoints={[50]}\n dismissOnSnapToBottom\n animation=\"medium\"\n >\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 && (\n <SizableText size=\"$3\" color=\"$color8\" textAlign=\"center\" paddingTop=\"$3\" paddingBottom=\"$1\">\n {title}\n </SizableText>\n )}\n <YStack paddingHorizontal=\"$3\" paddingTop=\"$2\">\n {items.map((item) => (\n <XStack\n key={item.id}\n height={52}\n alignItems=\"center\"\n gap=\"$3\"\n paddingHorizontal=\"$3\"\n borderRadius=\"$4\"\n pressStyle={{ backgroundColor: '$color3' }}\n onPress={() => {\n onSelect(item.id)\n onOpenChange(false)\n }}\n >\n {item.icon && <SizableText size=\"$5\">{item.icon}</SizableText>}\n <SizableText\n size=\"$5\"\n flex={1}\n color={item.destructive ? '$red9' : '$color12'}\n fontWeight={item.destructive ? '600' : '400'}\n >\n {item.label}\n </SizableText>\n </XStack>\n ))}\n </YStack>\n <YStack paddingHorizontal=\"$3\" paddingVertical=\"$3\" borderTopWidth={1} borderTopColor=\"$borderColor\" marginTop=\"$2\">\n <XStack\n height={48}\n alignItems=\"center\"\n justifyContent=\"center\"\n borderRadius=\"$4\"\n pressStyle={{ backgroundColor: '$color3' }}\n onPress={() => onOpenChange(false)}\n >\n <SizableText size=\"$5\" fontWeight=\"600\" color=\"$color9\">\n {cancelLabel}\n </SizableText>\n </XStack>\n </YStack>\n </Sheet.Frame>\n </Sheet>\n )\n}\n","import { YStack } from 'tamagui'\n\nexport type SkeletonProps = {\n width?: number | string\n height?: number\n borderRadius?: number\n variant?: 'text' | 'circular' | 'rectangular'\n}\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\n return (\n <YStack\n width={w}\n height={h}\n borderRadius={r}\n backgroundColor=\"$color3\"\n opacity={0.6}\n animation=\"slow\"\n enterStyle={{ opacity: 0.3 }}\n exitStyle={{ opacity: 0.3 }}\n />\n )\n}\n","import { SizableText, XStack, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type NotificationBannerProps = {\n title: string\n message?: string\n variant?: 'info' | 'success' | 'warning' | 'error'\n onPress?: () => void\n onDismiss?: () => void\n icon?: ReactNode\n}\n\nconst variantColors = {\n info: { bg: '$blue3', text: '$blue11' },\n success: { bg: '$green3', text: '$green11' },\n warning: { bg: '$yellow3', text: '$yellow11' },\n error: { bg: '$red3', text: '$red11' },\n} as const\n\nexport function NotificationBanner({\n title,\n message,\n variant = 'info',\n onPress,\n onDismiss,\n icon,\n}: NotificationBannerProps) {\n const colors = variantColors[variant]\n\n return (\n <XStack\n backgroundColor={colors.bg}\n padding=\"$3\"\n borderRadius=\"$4\"\n gap=\"$3\"\n alignItems=\"flex-start\"\n onPress={onPress}\n pressStyle={onPress ? { opacity: 0.8 } : undefined}\n >\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 && (\n <SizableText size=\"$3\" color={colors.text} opacity={0.6} onPress={onDismiss} padding=\"$1\">\n ✕\n </SizableText>\n )}\n </XStack>\n )\n}\n","import { Circle, SizableText, XStack, YStack } from 'tamagui'\n\nexport type ProgressStepsProps = {\n steps: string[]\n currentStep: number\n variant?: 'dots' | 'bar' | 'numbered'\n}\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) => (\n <SizableText key={i} size=\"$2\" color={i <= currentStep ? '$color9' : '$color8'}>{label}</SizableText>\n ))}\n </XStack>\n </YStack>\n )\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\n size={variant === 'numbered' ? 28 : 10}\n backgroundColor={i <= currentStep ? '$color9' : '$color4'}\n animation=\"quick\"\n >\n {variant === 'numbered' && (\n <SizableText size=\"$2\" fontWeight=\"600\" color={i <= currentStep ? '$color1' : '$color8'}>\n {i + 1}\n </SizableText>\n )}\n </Circle>\n <SizableText size=\"$1\" color={i <= currentStep ? '$color11' : '$color8'} numberOfLines={1}>\n {label}\n </SizableText>\n </YStack>\n {i < steps.length - 1 && (\n <YStack\n height={2}\n width={32}\n backgroundColor={i < currentStep ? '$color9' : '$color4'}\n marginBottom=\"$4\"\n />\n )}\n </XStack>\n ))}\n </XStack>\n )\n}\n","import { useState } from 'react'\nimport { Button, SizableText, XStack, YStack } from 'tamagui'\nimport type { ReactNode } from 'react'\n\nexport type SwipeAction = {\n id: string\n label: string\n color: string\n onPress: () => void\n}\n\nexport type SwipeableRowProps = {\n children: ReactNode\n leftActions?: SwipeAction[]\n rightActions?: SwipeAction[]\n}\n\nexport function SwipeableRow({ children, leftActions, rightActions }: SwipeableRowProps) {\n const [showActions, setShowActions] = useState(false)\n const actions = [...(leftActions ?? []), ...(rightActions ?? [])]\n\n if (actions.length === 0) return <>{children}</>\n\n return (\n <YStack>\n <YStack\n onLongPress={() => setShowActions((v) => !v)}\n pressStyle={{ opacity: 0.9 }}\n >\n {children}\n </YStack>\n {showActions && (\n <XStack gap=\"$2\" padding=\"$2\" animation=\"quick\" enterStyle={{ opacity: 0, scale: 0.95 }}>\n {actions.map((action) => (\n <Button\n key={action.id}\n flex={1}\n size=\"$3\"\n backgroundColor={action.color}\n borderRadius=\"$3\"\n onPress={() => {\n action.onPress()\n setShowActions(false)\n }}\n >\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\n title: string\n subtitle?: string\n overlay?: 'gradient' | 'dark' | 'none'\n aspectRatio?: number\n onPress?: () => void\n badge?: string\n}\n\nexport function MediaCard({\n image,\n title,\n subtitle,\n overlay = 'gradient',\n aspectRatio = 16 / 9,\n onPress,\n badge,\n}: MediaCardProps) {\n return (\n <YStack\n borderRadius=\"$4\"\n overflow=\"hidden\"\n onPress={onPress}\n pressStyle={onPress ? { scale: 0.98, opacity: 0.9 } : undefined}\n animation=\"quick\"\n >\n <YStack aspectRatio={aspectRatio}>\n <Image source={{ uri: image }} width=\"100%\" height=\"100%\" objectFit=\"cover\" />\n {overlay === 'gradient' && (\n <LinearGradient\n colors={['transparent', 'rgba(0,0,0,0.7)']}\n start={[0, 0]}\n end={[0, 1]}\n position=\"absolute\"\n bottom={0}\n left={0}\n right={0}\n height=\"60%\"\n />\n )}\n {overlay === 'dark' && (\n <YStack position=\"absolute\" fullscreen backgroundColor=\"rgba(0,0,0,0.4)\" />\n )}\n {badge && (\n <XStack position=\"absolute\" top=\"$2\" right=\"$2\" backgroundColor=\"$color9\" 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 } from 'react'\nimport { Circle, XStack, YStack } from 'tamagui'\nimport { ScrollView } from 'react-native'\nimport type { ReactNode } from 'react'\n\nexport type CarouselProps = {\n children: ReactNode\n gap?: '$2' | '$3' | '$4'\n snapToInterval?: number\n showIndicators?: boolean\n}\n\nexport function Carousel({ children, gap = '$3', snapToInterval, showIndicators = false }: CarouselProps) {\n const [activeIndex, setActiveIndex] = useState(0)\n const count = Children.count(children)\n\n return (\n <YStack gap=\"$3\">\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n snapToInterval={snapToInterval}\n decelerationRate=\"fast\"\n contentContainerStyle={{ gap: gap === '$2' ? 8 : gap === '$3' ? 12 : 16, paddingHorizontal: 16 }}\n onMomentumScrollEnd={(e) => {\n if (snapToInterval) {\n setActiveIndex(Math.round(e.nativeEvent.contentOffset.x / snapToInterval))\n }\n }}\n >\n {children}\n </ScrollView>\n {showIndicators && count > 1 && (\n <XStack justifyContent=\"center\" gap=\"$1.5\">\n {Array.from({ length: count }, (_, i) => (\n <Circle\n key={i}\n size={6}\n backgroundColor={i === activeIndex ? '$color9' : '$color4'}\n animation=\"quick\"\n />\n ))}\n </XStack>\n )}\n </YStack>\n )\n}\n","import { YStack } from 'tamagui'\nimport { RefreshControl, ScrollView } from 'react-native'\nimport type { ReactNode } from 'react'\n\nexport type PullToRefreshProps = {\n children: ReactNode\n onRefresh: () => Promise<void>\n refreshing?: boolean\n}\n\nexport function PullToRefresh({ children, onRefresh, refreshing = false }: PullToRefreshProps) {\n return (\n <ScrollView\n contentContainerStyle={{ flexGrow: 1 }}\n refreshControl={<RefreshControl refreshing={refreshing} onRefresh={onRefresh} />}\n >\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"]}
|