@blinkdotnew/mobile-ui 2.0.0-alpha.3 → 2.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/config/tamagui.config.ts","../src/primitives/Button.tsx","../src/primitives/Text.tsx","../src/primitives/Card.tsx","../src/primitives/Input.tsx","../src/primitives/Avatar.tsx","../src/interface/Headings.tsx","../src/interface/PageContainer.tsx","../src/interface/Dialog.tsx","../src/interface/Pressable.tsx","../src/interface/Image.tsx","../src/interface/Separator.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// Primitives\nexport { Button } from './primitives/Button'\nexport type { ButtonProps } from './primitives/Button'\n\nexport { BlinkText } from './primitives/Text'\nexport type { BlinkTextProps } from './primitives/Text'\n\nexport { Card } from './primitives/Card'\nexport type { CardProps } from './primitives/Card'\n\nexport { Input } from './primitives/Input'\nexport type { InputProps } from './primitives/Input'\n\nexport { Avatar } from './primitives/Avatar'\nexport type { AvatarProps } from './primitives/Avatar'\n\n// Interface\nexport { H1, H2, H3, H4, H5, H6, 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 { Separator } from './interface/Separator'\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 { Separator as TamaguiSeparator, styled } from 'tamagui'\n\nexport const Separator = styled(TamaguiSeparator, {\n name: 'BlinkSeparator',\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","Separator","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","Separator","TamaguiSeparator","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/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"]}
package/dist/index.mjs CHANGED
@@ -5,6 +5,52 @@ var blinkConfig = createTamagui({
5
5
  ...defaultConfig
6
6
  });
7
7
 
8
+ // src/index.ts
9
+ import {
10
+ View as View6,
11
+ XStack as XStack10,
12
+ YStack as YStack14,
13
+ ZStack,
14
+ ScrollView,
15
+ Circle as Circle6,
16
+ H1 as H12,
17
+ H2 as H22,
18
+ H3 as H32,
19
+ H4 as H42,
20
+ H5 as H52,
21
+ H6 as H62,
22
+ Paragraph,
23
+ SizableText as SizableText16,
24
+ Text,
25
+ Button as Button6,
26
+ Input as Input2,
27
+ TextArea,
28
+ Switch as Switch2,
29
+ Checkbox,
30
+ Slider,
31
+ RadioGroup,
32
+ Select,
33
+ Label,
34
+ Card as Card2,
35
+ Avatar as Avatar2,
36
+ Separator as Separator4,
37
+ Image as Image5,
38
+ Progress,
39
+ Spinner,
40
+ Sheet,
41
+ Dialog,
42
+ AlertDialog as AlertDialog2,
43
+ Popover,
44
+ Tooltip,
45
+ Theme,
46
+ TamaguiProvider,
47
+ styled as styled12,
48
+ withStaticProperties as withStaticProperties2,
49
+ useTheme,
50
+ useMedia,
51
+ useThemeName
52
+ } from "tamagui";
53
+
8
54
  // src/primitives/Button.tsx
9
55
  import { Button as TamaguiButton, styled } from "tamagui";
10
56
  var Button = styled(TamaguiButton, {
@@ -446,16 +492,10 @@ var Image2 = styled8(TamaguiImage, {
446
492
  name: "BlinkImage"
447
493
  });
448
494
 
449
- // src/interface/Separator.tsx
450
- import { Separator as TamaguiSeparator, styled as styled9 } from "tamagui";
451
- var Separator2 = styled9(TamaguiSeparator, {
452
- name: "BlinkSeparator"
453
- });
454
-
455
495
  // src/interface/Badge.tsx
456
- import { styled as styled10, SizableText as SizableText5, View as View4 } from "tamagui";
496
+ import { styled as styled9, SizableText as SizableText5, View as View4 } from "tamagui";
457
497
  import { jsx as jsx5 } from "react/jsx-runtime";
458
- var BadgeFrame = styled10(View4, {
498
+ var BadgeFrame = styled9(View4, {
459
499
  name: "BlinkBadge",
460
500
  paddingHorizontal: "$2",
461
501
  paddingVertical: "$1",
@@ -473,7 +513,7 @@ var BadgeFrame = styled10(View4, {
473
513
  },
474
514
  defaultVariants: { variant: "default" }
475
515
  });
476
- var BadgeText = styled10(SizableText5, {
516
+ var BadgeText = styled9(SizableText5, {
477
517
  name: "BlinkBadgeText",
478
518
  size: "$2",
479
519
  fontWeight: "600",
@@ -498,8 +538,8 @@ function StepPageLayout({ title, description, children, bottom }) {
498
538
  }
499
539
 
500
540
  // src/layouts/ScreenLayout.tsx
501
- import { styled as styled11, YStack as YStack4 } from "tamagui";
502
- var ScreenLayout = styled11(YStack4, {
541
+ import { styled as styled10, YStack as YStack4 } from "tamagui";
542
+ var ScreenLayout = styled10(YStack4, {
503
543
  name: "BlinkScreenLayout",
504
544
  flex: 1,
505
545
  backgroundColor: "$background",
@@ -530,9 +570,9 @@ function Section({ title, description, children, gap = "$3" }) {
530
570
  }
531
571
 
532
572
  // src/layouts/ListItem.tsx
533
- import { styled as styled12, SizableText as SizableText8, XStack as XStack3, YStack as YStack6, View as View5 } from "tamagui";
573
+ import { styled as styled11, SizableText as SizableText8, XStack as XStack3, YStack as YStack6, View as View5 } from "tamagui";
534
574
  import { jsx as jsx8, jsxs as jsxs6 } from "react/jsx-runtime";
535
- var ListItemFrame = styled12(XStack3, {
575
+ var ListItemFrame = styled11(XStack3, {
536
576
  name: "BlinkListItem",
537
577
  alignItems: "center",
538
578
  gap: "$3",
@@ -560,14 +600,14 @@ function ListItem({ icon, title, subtitle, right, onPress }) {
560
600
  }
561
601
 
562
602
  // src/layouts/Divider.tsx
563
- import { Separator as Separator3, SizableText as SizableText9, XStack as XStack4 } from "tamagui";
603
+ import { Separator as Separator2, SizableText as SizableText9, XStack as XStack4 } from "tamagui";
564
604
  import { jsx as jsx9, jsxs as jsxs7 } from "react/jsx-runtime";
565
605
  function Divider({ label }) {
566
- if (!label) return /* @__PURE__ */ jsx9(Separator3, { borderColor: "$color4" });
606
+ if (!label) return /* @__PURE__ */ jsx9(Separator2, { borderColor: "$color4" });
567
607
  return /* @__PURE__ */ jsxs7(XStack4, { alignItems: "center", gap: "$3", children: [
568
- /* @__PURE__ */ jsx9(Separator3, { flex: 1, borderColor: "$color4" }),
608
+ /* @__PURE__ */ jsx9(Separator2, { flex: 1, borderColor: "$color4" }),
569
609
  /* @__PURE__ */ jsx9(SizableText9, { size: "$2", color: "$color9", children: label }),
570
- /* @__PURE__ */ jsx9(Separator3, { flex: 1, borderColor: "$color4" })
610
+ /* @__PURE__ */ jsx9(Separator2, { flex: 1, borderColor: "$color4" })
571
611
  ] });
572
612
  }
573
613
 
@@ -735,7 +775,7 @@ function ChatBubble({ message, showAvatar = true }) {
735
775
  }
736
776
 
737
777
  // src/patterns/SettingsScreen.tsx
738
- import { Separator as Separator4, SizableText as SizableText13, Switch, XStack as XStack8, YStack as YStack11 } from "tamagui";
778
+ import { Separator as Separator3, SizableText as SizableText13, Switch, XStack as XStack8, YStack as YStack11 } from "tamagui";
739
779
  import { jsx as jsx14, jsxs as jsxs11 } from "react/jsx-runtime";
740
780
  function SettingsItemRow({ item }) {
741
781
  return /* @__PURE__ */ jsxs11(
@@ -778,7 +818,7 @@ function SettingsScreen({ sections, header }) {
778
818
  ),
779
819
  /* @__PURE__ */ jsx14(YStack11, { backgroundColor: "$color1", borderRadius: "$4", marginHorizontal: "$3", overflow: "hidden", children: section.items.map((item, ii) => /* @__PURE__ */ jsxs11(YStack11, { children: [
780
820
  /* @__PURE__ */ jsx14(SettingsItemRow, { item }),
781
- ii < section.items.length - 1 && /* @__PURE__ */ jsx14(Separator4, { borderColor: "$color3", marginLeft: "$12" })
821
+ ii < section.items.length - 1 && /* @__PURE__ */ jsx14(Separator3, { borderColor: "$color3", marginLeft: "$12" })
782
822
  ] }, item.id)) })
783
823
  ] }, si)) })
784
824
  ] });
@@ -828,40 +868,75 @@ function ProfileHeader({ name, subtitle, avatar, stats, actions }) {
828
868
  ] });
829
869
  }
830
870
  export {
831
- Avatar,
871
+ AlertDialog2 as AlertDialog,
872
+ Avatar2 as Avatar,
832
873
  Badge,
874
+ Avatar as BlinkAvatar,
875
+ Button as BlinkButton,
876
+ Card as BlinkCard,
877
+ Input as BlinkInput,
833
878
  BlinkText,
834
- Button,
835
- Card,
879
+ Button6 as Button,
880
+ Card2 as Card,
836
881
  ChatBubble,
882
+ Checkbox,
883
+ Circle6 as Circle,
884
+ Dialog,
837
885
  DialogProvider,
838
886
  Divider,
839
887
  EmptyState,
840
- H1,
841
- H2,
842
- H3,
843
- H4,
844
- H5,
845
- H6,
888
+ H12 as H1,
889
+ H22 as H2,
890
+ H32 as H3,
891
+ H42 as H4,
892
+ H52 as H5,
893
+ H62 as H6,
846
894
  Image2 as Image,
847
- Input,
895
+ Input2 as Input,
848
896
  KeyboardStickyFooter,
897
+ Label,
849
898
  ListItem,
850
899
  OnboardingCarousel,
851
900
  PageContainer,
852
901
  PageMainContainer,
902
+ Paragraph,
853
903
  PaywallScreen,
904
+ Popover,
854
905
  Pressable,
855
906
  ProfileHeader,
907
+ Progress,
908
+ RadioGroup,
856
909
  ScreenLayout,
910
+ ScrollView,
857
911
  Section,
912
+ Select,
858
913
  SepHeading,
859
- Separator2 as Separator,
914
+ Separator4 as Separator,
860
915
  SettingsScreen,
916
+ Sheet,
917
+ SizableText16 as SizableText,
918
+ Slider,
919
+ Spinner,
861
920
  StepPageLayout,
862
921
  SubHeading,
922
+ Switch2 as Switch,
923
+ Image5 as TamaguiImage,
924
+ TamaguiProvider,
925
+ Text,
926
+ TextArea,
927
+ Theme,
928
+ Tooltip,
929
+ View6 as View,
930
+ XStack10 as XStack,
931
+ YStack14 as YStack,
932
+ ZStack,
863
933
  blinkConfig,
864
934
  dialogConfirm,
865
- showError
935
+ showError,
936
+ styled12 as styled,
937
+ useMedia,
938
+ useTheme,
939
+ useThemeName,
940
+ withStaticProperties2 as withStaticProperties
866
941
  };
867
942
  //# sourceMappingURL=index.mjs.map