@beyondcorp/beyond-ui-native 0.1.5 → 0.1.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/chunk-BJTO5JO5.mjs +11 -0
- package/dist/chunk-BJTO5JO5.mjs.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +25 -0
- package/dist/index.mjs.map +1 -1
- package/dist/preset.mjs +1 -0
- package/dist/utilities.mjs +1 -0
- package/package.json +1 -1
- package/src/providers/BeyondUIProvider.tsx +29 -0
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/primitives/box.tsx","../src/utilities/cn.ts","../src/primitives/pressable.tsx","../src/components/button/button.tsx","../src/components/text/text.tsx","../src/components/text/heading.tsx","../src/components/input/input.tsx","../src/components/textarea/textarea.tsx","../src/components/card/card.tsx","../src/components/badge/badge.tsx","../src/components/avatar/avatar.tsx","../src/components/switch/switch.tsx","../src/components/checkbox/checkbox.tsx","../src/components/radio/radio.tsx","../src/components/spinner/spinner.tsx","../src/components/skeleton/skeleton.tsx","../src/components/alert/alert.tsx","../src/components/separator/separator.tsx","../src/components/dialog/dialog.tsx","../src/components/tabs/tabs.tsx","../src/components/toast/toast.tsx","../src/components/toast/types.ts","../src/components/stats-card/stats-card.tsx","../src/components/accordion/accordion.tsx","../src/components/bottom-sheet/bottom-sheet.tsx","../src/components/select/select.tsx","../src/components/data-table/data-table.tsx","../src/templates/auth/SignInTemplate.tsx","../src/templates/auth/SignUpTemplate.tsx","../src/templates/auth/ForgotPasswordTemplate.tsx","../src/templates/dashboard/DashboardTemplate.tsx","../src/templates/settings/SettingsTemplate.tsx","../src/providers/BeyondUIProvider.tsx","../src/theme/tokens.ts","../src/theme/preset.ts","../src/utilities/accessibility.ts"],"sourcesContent":["/// <reference path=\"./types/nativewind-env.d.ts\" />\n\n// Primitives\nexport * from \"./primitives\";\n\n// Components\nexport * from \"./components/button\";\nexport * from \"./components/text\";\nexport * from \"./components/input\";\nexport * from \"./components/textarea\";\nexport * from \"./components/card\";\nexport * from \"./components/badge\";\nexport * from \"./components/avatar\";\nexport * from \"./components/switch\";\nexport * from \"./components/checkbox\";\nexport * from \"./components/radio\";\nexport * from \"./components/spinner\";\nexport * from \"./components/skeleton\";\nexport * from \"./components/alert\";\nexport * from \"./components/separator\";\nexport * from \"./components/dialog\";\nexport * from \"./components/tabs\";\nexport * from \"./components/toast\";\nexport * from \"./components/stats-card\";\nexport * from \"./components/accordion\";\nexport * from \"./components/bottom-sheet\";\nexport * from \"./components/select\";\nexport * from \"./components/data-table\";\n\n// Screen Templates\nexport * from \"./templates\";\n\n// Providers & Context\nexport * from \"./providers/BeyondUIProvider\";\n\n// Theme & Tokens\nexport * from \"./theme/tokens\";\nexport { default as beyondUIPreset } from \"./theme/preset\";\n\n// Utilities\nexport * from \"./utilities/cn\";\nexport * from \"./utilities/accessibility\";\n","import * as React from \"react\";\nimport { View, type ViewProps } from \"react-native\";\nimport { cn } from \"../utilities/cn\";\n\nexport interface BoxProps extends ViewProps {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const Box = React.forwardRef<View, BoxProps>(\n ({ className, style, children, ...props }, ref) => {\n return (\n <View\n ref={ref}\n className={cn(className)}\n style={style}\n {...props}\n >\n {children}\n </View>\n );\n }\n);\n\nBox.displayName = \"Box\";\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merges class names with tailwind-merge to avoid style collisions in NativeWind.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport {\n Pressable as RNPressable,\n type PressableProps as RNPressableProps,\n type View,\n type GestureResponderEvent,\n} from \"react-native\";\nimport { cn } from \"../utilities/cn\";\n\nexport interface PressableProps extends Omit<RNPressableProps, \"children\"> {\n className?: string;\n children?: React.ReactNode | ((state: { pressed: boolean }) => React.ReactNode);\n feedback?: \"opacity\" | \"scale\" | \"none\";\n}\n\nexport const Pressable = React.forwardRef<View, PressableProps>(\n (\n {\n className,\n style,\n disabled,\n feedback = \"opacity\",\n children,\n ...props\n },\n ref\n ) => {\n return (\n <RNPressable\n ref={ref}\n disabled={disabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!disabled }}\n className={cn(\n feedback === \"opacity\" && \"active:opacity-70\",\n feedback === \"scale\" && \"active:scale-[0.98]\",\n disabled && \"opacity-50\",\n className\n )}\n style={style}\n {...props}\n >\n {typeof children === \"function\" ? children : children}\n </RNPressable>\n );\n }\n);\n\nPressable.displayName = \"Pressable\";\n","import * as React from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n Text,\n View,\n type PressableProps,\n type TextProps,\n} from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const buttonVariants = cva(\n \"flex-row items-center justify-center rounded-xl transition-colors\",\n {\n variants: {\n variant: {\n primary: \"bg-primary-600 active:bg-primary-700 dark:bg-primary-600 dark:active:bg-primary-700\",\n secondary: \"bg-secondary-600 active:bg-secondary-700 dark:bg-secondary-600 dark:active:bg-secondary-700\",\n danger: \"bg-danger-600 active:bg-danger-700 dark:bg-danger-600 dark:active:bg-danger-700\",\n destructive: \"bg-danger-600 active:bg-danger-700 dark:bg-danger-600 dark:active:bg-danger-700\",\n success: \"bg-success-600 active:bg-success-700 dark:bg-success-600 dark:active:bg-success-700\",\n warning: \"bg-warning-600 active:bg-warning-700 dark:bg-warning-600 dark:active:bg-warning-700\",\n outline: \"border border-neutral-300 dark:border-neutral-700 bg-transparent active:bg-neutral-100 dark:active:bg-neutral-800\",\n ghost: \"bg-transparent active:bg-neutral-100 dark:active:bg-neutral-800\",\n link: \"bg-transparent underline\",\n },\n size: {\n sm: \"min-h-8 px-3 py-1.5 rounded-lg\",\n md: \"min-h-10 px-4 py-2 rounded-xl\",\n lg: \"min-h-12 px-6 py-2.5 rounded-xl\",\n xl: \"min-h-14 px-8 py-3 rounded-2xl\",\n icon: \"min-h-10 min-w-10 p-0 rounded-xl\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n }\n);\n\nexport const buttonTextVariants = cva(\"font-semibold text-center select-none\", {\n variants: {\n variant: {\n primary: \"text-white\",\n secondary: \"text-white\",\n danger: \"text-white\",\n destructive: \"text-white\",\n success: \"text-white\",\n warning: \"text-white\",\n outline: \"text-neutral-800 dark:text-neutral-100\",\n ghost: \"text-neutral-800 dark:text-neutral-100\",\n link: \"text-primary-600 dark:text-primary-400 underline\",\n },\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base font-semibold\",\n xl: \"text-lg font-bold\",\n icon: \"text-sm\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n});\n\ntype ButtonVariantProps = VariantProps<typeof buttonVariants>;\n\nexport interface ButtonProps\n extends Omit<PressableProps, \"children\">,\n ButtonVariantProps {\n children?: React.ReactNode;\n loading?: boolean;\n disabled?: boolean;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n className?: string;\n textClassName?: string;\n}\n\ninterface ButtonContextValue {\n variant: ButtonVariantProps[\"variant\"];\n size: ButtonVariantProps[\"size\"];\n}\n\nconst ButtonContext = React.createContext<ButtonContextValue>({\n variant: \"primary\",\n size: \"md\",\n});\n\nexport const Button = React.forwardRef<View, ButtonProps>(function Button(\n {\n children,\n variant = \"primary\",\n size = \"md\",\n loading = false,\n disabled = false,\n leftIcon,\n rightIcon,\n className,\n textClassName,\n ...props\n },\n ref\n) {\n const isDisabled = disabled || loading;\n const isLightText = variant === \"outline\" || variant === \"ghost\" || variant === \"link\";\n const spinnerColor = isLightText ? \"#2563eb\" : \"#ffffff\";\n\n return (\n <ButtonContext.Provider value={{ variant, size }}>\n <Pressable\n ref={ref}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n disabled={isDisabled}\n className={cn(\n buttonVariants({ variant, size }),\n isDisabled && \"opacity-50\",\n className\n )}\n {...props}\n >\n {loading ? (\n <ActivityIndicator color={spinnerColor} className=\"mr-2\" size=\"small\" />\n ) : leftIcon ? (\n <View className=\"mr-2\">{leftIcon}</View>\n ) : null}\n\n {typeof children === \"string\" || typeof children === \"number\" ? (\n <Text\n className={cn(\n buttonTextVariants({ variant, size }),\n textClassName\n )}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n\n {rightIcon && !loading ? (\n <View className=\"ml-2\">{rightIcon}</View>\n ) : null}\n </Pressable>\n </ButtonContext.Provider>\n );\n});\n\nButton.displayName = \"Button\";\n\nexport function ButtonText({\n children,\n className,\n ...props\n}: TextProps & { className?: string }) {\n const { variant, size } = React.useContext(ButtonContext);\n return (\n <Text\n className={cn(buttonTextVariants({ variant, size }), className)}\n {...props}\n >\n {children}\n </Text>\n );\n}\n\nButtonText.displayName = \"Button.Text\";\n","import * as React from \"react\";\nimport { Text as NativeText, type TextProps as NativeTextProps } from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const textVariants = cva(\"text-neutral-900 dark:text-neutral-100\", {\n variants: {\n variant: {\n body: \"text-base font-normal\",\n caption: \"text-xs font-normal text-neutral-500 dark:text-neutral-400\",\n label: \"text-sm font-medium text-neutral-700 dark:text-neutral-300\",\n muted: \"text-sm font-normal text-neutral-500 dark:text-neutral-400\",\n lead: \"text-lg font-normal text-neutral-600 dark:text-neutral-300\",\n },\n color: {\n default: \"text-neutral-900 dark:text-neutral-100\",\n muted: \"text-neutral-500 dark:text-neutral-400\",\n primary: \"text-primary-600 dark:text-primary-400\",\n secondary: \"text-secondary-600 dark:text-secondary-400\",\n danger: \"text-danger-600 dark:text-danger-400\",\n success: \"text-success-600 dark:text-success-400\",\n warning: \"text-warning-600 dark:text-warning-400\",\n },\n size: {\n xs: \"text-xs\",\n sm: \"text-sm\",\n base: \"text-base\",\n lg: \"text-lg\",\n xl: \"text-xl\",\n },\n weight: {\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n },\n },\n defaultVariants: {\n variant: \"body\",\n },\n});\n\nexport interface TextProps\n extends NativeTextProps,\n VariantProps<typeof textVariants> {\n className?: string;\n}\n\nexport const Text = React.forwardRef<NativeText, TextProps>(function Text(\n { className, variant, color, size, weight, ...props },\n ref\n) {\n return (\n <NativeText\n ref={ref}\n className={cn(textVariants({ variant, color, size, weight }), className)}\n {...props}\n />\n );\n});\n\nText.displayName = \"Text\";\n","import * as React from \"react\";\nimport { Text as NativeText, type TextProps as NativeTextProps } from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const headingVariants = cva(\"font-bold text-neutral-900 dark:text-neutral-50 tracking-tight\", {\n variants: {\n level: {\n h1: \"text-3xl font-extrabold\",\n h2: \"text-2xl font-bold\",\n h3: \"text-xl font-bold\",\n h4: \"text-lg font-semibold\",\n h5: \"text-base font-semibold\",\n h6: \"text-sm font-semibold uppercase tracking-wider\",\n },\n },\n defaultVariants: {\n level: \"h2\",\n },\n});\n\nexport type HeadingLevel = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface HeadingProps\n extends NativeTextProps,\n Omit<VariantProps<typeof headingVariants>, \"level\"> {\n level?: HeadingLevel;\n className?: string;\n}\n\nexport const Heading = React.forwardRef<NativeText, HeadingProps>(function Heading(\n { className, level = \"h2\", ...props },\n ref\n) {\n const normalizedLevel =\n typeof level === \"number\"\n ? (`h${level}` as \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\")\n : level;\n\n return (\n <NativeText\n ref={ref}\n accessibilityRole=\"header\"\n className={cn(headingVariants({ level: normalizedLevel }), className)}\n {...props}\n />\n );\n});\n\nHeading.displayName = \"Heading\";\n","import * as React from \"react\";\nimport {\n Text,\n TextInput,\n View,\n type TextInputProps,\n} from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const inputVariants = cva(\n \"w-full rounded-xl border bg-white dark:bg-neutral-900 text-neutral-900 dark:text-neutral-100 px-3.5 flex-row items-center\",\n {\n variants: {\n inputSize: {\n sm: \"min-h-9 py-1 text-sm\",\n md: \"min-h-11 py-2 text-base\",\n lg: \"min-h-14 py-3 text-lg\",\n },\n status: {\n default: \"border-neutral-300 dark:border-neutral-700 focus:border-primary-500\",\n error: \"border-danger-500 dark:border-danger-500\",\n success: \"border-success-500 dark:border-success-500\",\n },\n disabled: {\n true: \"opacity-50 bg-neutral-100 dark:bg-neutral-800\",\n false: \"\",\n },\n },\n defaultVariants: {\n inputSize: \"md\",\n status: \"default\",\n disabled: false,\n },\n }\n);\n\nexport interface InputProps\n extends Omit<TextInputProps, \"editable\">,\n VariantProps<typeof inputVariants> {\n label?: string;\n error?: string;\n helperText?: string;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n leftElement?: React.ReactNode;\n rightElement?: React.ReactNode;\n disabled?: boolean;\n containerClassName?: string;\n className?: string;\n labelClassName?: string;\n}\n\nexport const Input = React.forwardRef<TextInput, InputProps>(function Input(\n {\n label,\n error,\n helperText,\n leftIcon,\n rightIcon,\n leftElement,\n rightElement,\n disabled = false,\n inputSize = \"md\",\n containerClassName,\n className,\n labelClassName,\n placeholderTextColor,\n accessibilityLabel,\n ...props\n },\n ref\n) {\n const status = error ? \"error\" : \"default\";\n\n return (\n <View className={cn(\"w-full gap-1.5\", containerClassName)}>\n {label ? (\n <Text\n className={cn(\n \"text-sm font-medium text-neutral-800 dark:text-neutral-200\",\n labelClassName\n )}\n >\n {label}\n </Text>\n ) : null}\n\n <View\n className={cn(\n inputVariants({ inputSize, status, disabled }),\n className\n )}\n >\n {leftIcon || leftElement ? (\n <View className=\"mr-2\">{leftIcon ?? leftElement}</View>\n ) : null}\n\n <TextInput\n ref={ref}\n editable={!disabled}\n accessibilityLabel={accessibilityLabel ?? label}\n accessibilityHint={error}\n aria-invalid={!!error}\n placeholderTextColor={\n placeholderTextColor ?? \"#9ca3af\" // neutral-400\n }\n className=\"flex-1 py-1 text-neutral-900 dark:text-neutral-100\"\n {...props}\n />\n\n {rightIcon || rightElement ? (\n <View className=\"ml-2\">{rightIcon ?? rightElement}</View>\n ) : null}\n </View>\n\n {error ? (\n <Text accessibilityRole=\"alert\" className=\"text-xs font-medium text-danger-600 dark:text-danger-400\">\n {error}\n </Text>\n ) : helperText ? (\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n {helperText}\n </Text>\n ) : null}\n </View>\n );\n});\n\nInput.displayName = \"Input\";\n","import * as React from \"react\";\nimport {\n Text,\n TextInput,\n View,\n type TextInputProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface TextareaProps\n extends Omit<TextInputProps, \"multiline\"> {\n label?: string;\n error?: string;\n helperText?: string;\n disabled?: boolean;\n rows?: number;\n containerClassName?: string;\n className?: string;\n labelClassName?: string;\n}\n\nexport const Textarea = React.forwardRef<TextInput, TextareaProps>(function Textarea(\n {\n label,\n error,\n helperText,\n disabled = false,\n rows = 4,\n containerClassName,\n className,\n labelClassName,\n placeholderTextColor,\n accessibilityLabel,\n ...props\n },\n ref\n) {\n const minHeight = Math.max(80, rows * 22);\n\n return (\n <View className={cn(\"w-full gap-1.5\", containerClassName)}>\n {label ? (\n <Text\n className={cn(\n \"text-sm font-medium text-neutral-800 dark:text-neutral-200\",\n labelClassName\n )}\n >\n {label}\n </Text>\n ) : null}\n\n <TextInput\n ref={ref}\n multiline\n textAlignVertical=\"top\"\n editable={!disabled}\n accessibilityLabel={accessibilityLabel ?? label}\n accessibilityHint={error}\n aria-invalid={!!error}\n placeholderTextColor={placeholderTextColor ?? \"#9ca3af\"}\n style={{ minHeight }}\n className={cn(\n \"w-full rounded-xl border bg-white dark:bg-neutral-900 text-neutral-900 dark:text-neutral-100 p-3.5 text-base\",\n error\n ? \"border-danger-500 dark:border-danger-500\"\n : \"border-neutral-300 dark:border-neutral-700 focus:border-primary-500\",\n disabled && \"opacity-50 bg-neutral-100 dark:bg-neutral-800\",\n className\n )}\n {...props}\n />\n\n {error ? (\n <Text accessibilityRole=\"alert\" className=\"text-xs font-medium text-danger-600 dark:text-danger-400\">\n {error}\n </Text>\n ) : helperText ? (\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n {helperText}\n </Text>\n ) : null}\n </View>\n );\n});\n\nTextarea.displayName = \"Textarea\";\n","import * as React from \"react\";\nimport { View, Text, type ViewProps, type TextProps } from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const cardVariants = cva(\n \"w-full rounded-2xl border bg-white dark:bg-neutral-900 overflow-hidden\",\n {\n variants: {\n variant: {\n default: \"border-neutral-200 dark:border-neutral-800 shadow-sm\",\n elevated: \"border-neutral-200/80 dark:border-neutral-800 shadow-md\",\n outlined: \"border-2 border-primary-200 dark:border-primary-800\",\n ghost: \"border-transparent bg-transparent shadow-none\",\n },\n padding: {\n none: \"p-0\",\n sm: \"p-3\",\n md: \"p-4\",\n lg: \"p-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n padding: \"none\",\n },\n }\n);\n\nexport interface CardProps\n extends ViewProps,\n VariantProps<typeof cardVariants> {\n className?: string;\n}\n\nexport const Card = React.forwardRef<View, CardProps>(function Card(\n { className, variant, padding, ...props },\n ref\n) {\n return (\n <View\n ref={ref}\n className={cn(cardVariants({ variant, padding }), className)}\n {...props}\n />\n );\n});\nCard.displayName = \"Card\";\n\nexport const CardHeader = React.forwardRef<\n View,\n ViewProps & { className?: string }\n>(function CardHeader({ className, ...props }, ref) {\n return (\n <View\n ref={ref}\n className={cn(\"flex-col space-y-1.5 p-4 pb-2\", className)}\n {...props}\n />\n );\n});\nCardHeader.displayName = \"Card.Header\";\n\nexport const CardTitle = React.forwardRef<\n Text,\n TextProps & { className?: string }\n>(function CardTitle({ className, ...props }, ref) {\n return (\n <Text\n ref={ref}\n className={cn(\n \"text-lg font-bold tracking-tight text-neutral-900 dark:text-neutral-50\",\n className\n )}\n {...props}\n />\n );\n});\nCardTitle.displayName = \"Card.Title\";\n\nexport const CardDescription = React.forwardRef<\n Text,\n TextProps & { className?: string }\n>(function CardDescription({ className, ...props }, ref) {\n return (\n <Text\n ref={ref}\n className={cn(\"text-sm text-neutral-500 dark:text-neutral-400\", className)}\n {...props}\n />\n );\n});\nCardDescription.displayName = \"Card.Description\";\n\nexport const CardContent = React.forwardRef<\n View,\n ViewProps & { className?: string }\n>(function CardContent({ className, ...props }, ref) {\n return (\n <View\n ref={ref}\n className={cn(\"p-4 pt-1\", className)}\n {...props}\n />\n );\n});\nCardContent.displayName = \"Card.Content\";\n\nexport const CardFooter = React.forwardRef<\n View,\n ViewProps & { className?: string }\n>(function CardFooter({ className, ...props }, ref) {\n return (\n <View\n ref={ref}\n className={cn(\"flex-row items-center p-4 pt-0\", className)}\n {...props}\n />\n );\n});\nCardFooter.displayName = \"Card.Footer\";\n","import * as React from \"react\";\nimport { View, Text, type ViewProps } from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const badgeVariants = cva(\n \"inline-flex flex-row items-center justify-center rounded-full self-start\",\n {\n variants: {\n variant: {\n primary: \"bg-primary-600 dark:bg-primary-500\",\n secondary: \"bg-secondary-600 dark:bg-secondary-500\",\n danger: \"bg-danger-600 dark:bg-danger-500\",\n destructive: \"bg-danger-600 dark:bg-danger-500\",\n success: \"bg-success-600 dark:bg-success-500\",\n warning: \"bg-warning-600 dark:bg-warning-500\",\n outline: \"border border-neutral-300 dark:border-neutral-700 bg-transparent\",\n },\n size: {\n sm: \"px-2 py-0.5\",\n md: \"px-2.5 py-1\",\n lg: \"px-3.5 py-1.5\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n }\n);\n\nexport const badgeTextVariants = cva(\"font-semibold text-center\", {\n variants: {\n variant: {\n primary: \"text-white\",\n secondary: \"text-white\",\n danger: \"text-white\",\n destructive: \"text-white\",\n success: \"text-white\",\n warning: \"text-white\",\n outline: \"text-neutral-700 dark:text-neutral-300\",\n },\n size: {\n sm: \"text-[10px]\",\n md: \"text-xs\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n});\n\nexport interface BadgeProps\n extends ViewProps,\n VariantProps<typeof badgeVariants> {\n children?: React.ReactNode;\n className?: string;\n textClassName?: string;\n}\n\nexport function Badge({\n children,\n variant = \"primary\",\n size = \"md\",\n className,\n textClassName,\n ...props\n}: BadgeProps) {\n return (\n <View\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n >\n {typeof children === \"string\" || typeof children === \"number\" ? (\n <Text\n className={cn(badgeTextVariants({ variant, size }), textClassName)}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n </View>\n );\n}\n\nBadge.displayName = \"Badge\";\n","import * as React from \"react\";\nimport { View, Text, Image as NativeImage, type ImageProps, type ViewProps } from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const avatarVariants = cva(\n \"relative flex shrink-0 overflow-hidden rounded-full items-center justify-center bg-neutral-200 dark:bg-neutral-800\",\n {\n variants: {\n size: {\n sm: \"h-8 w-8\",\n md: \"h-10 w-10\",\n lg: \"h-14 w-14\",\n xl: \"h-20 w-20\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nexport const avatarTextVariants = cva(\"font-semibold text-neutral-700 dark:text-neutral-300\", {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-lg\",\n xl: \"text-2xl\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ninterface AvatarContextValue {\n size: \"sm\" | \"md\" | \"lg\" | \"xl\";\n}\n\nconst AvatarContext = React.createContext<AvatarContextValue>({ size: \"md\" });\n\nexport interface AvatarProps\n extends ViewProps,\n VariantProps<typeof avatarVariants> {\n className?: string;\n}\n\nexport function Avatar({\n className,\n size = \"md\",\n children,\n ...props\n}: AvatarProps) {\n const currentSize = size ?? \"md\";\n return (\n <AvatarContext.Provider value={{ size: currentSize }}>\n <View\n className={cn(avatarVariants({ size: currentSize }), className)}\n {...props}\n >\n {children}\n </View>\n </AvatarContext.Provider>\n );\n}\nAvatar.displayName = \"Avatar\";\n\nexport interface AvatarImageProps extends ImageProps {\n className?: string;\n}\n\nexport function AvatarImage({ className, ...props }: AvatarImageProps) {\n const [hasError, setHasError] = React.useState(false);\n\n if (hasError) return null;\n\n return (\n <NativeImage\n onError={() => setHasError(true)}\n className={cn(\"h-full w-full rounded-full object-cover\", className)}\n {...props}\n />\n );\n}\nAvatarImage.displayName = \"Avatar.Image\";\n\nexport interface AvatarFallbackProps extends ViewProps {\n children?: React.ReactNode;\n text?: string;\n className?: string;\n textClassName?: string;\n}\n\nexport function AvatarFallback({\n children,\n text,\n className,\n textClassName,\n ...props\n}: AvatarFallbackProps) {\n const { size } = React.useContext(AvatarContext);\n const content = text ?? children;\n\n return (\n <View\n className={cn(\n \"h-full w-full items-center justify-center rounded-full bg-neutral-200 dark:bg-neutral-800\",\n className\n )}\n {...props}\n >\n {typeof content === \"string\" ? (\n <Text\n className={cn(avatarTextVariants({ size }), textClassName)}\n >\n {content}\n </Text>\n ) : (\n content\n )}\n </View>\n );\n}\nAvatarFallback.displayName = \"Avatar.Fallback\";\n","import * as React from \"react\";\nimport {\n Pressable,\n View,\n type GestureResponderEvent,\n type PressableProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface SwitchProps extends Omit<PressableProps, \"onPress\"> {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n className?: string;\n thumbClassName?: string;\n onPress?: (event: GestureResponderEvent) => void;\n}\n\nexport const Switch = React.forwardRef<\n React.ElementRef<typeof Pressable>,\n SwitchProps\n>(function Switch(\n {\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled = false,\n className,\n thumbClassName,\n onPress,\n ...props\n },\n ref\n) {\n const [uncontrolledChecked, setUncontrolledChecked] = React.useState(defaultChecked);\n const isControlled = controlledChecked !== undefined;\n const isChecked = isControlled ? controlledChecked : uncontrolledChecked;\n\n const handlePress = (e: GestureResponderEvent) => {\n if (disabled) return;\n const nextChecked = !isChecked;\n if (!isControlled) {\n setUncontrolledChecked(nextChecked);\n }\n onCheckedChange?.(nextChecked);\n onPress?.(e);\n };\n\n return (\n <Pressable\n ref={ref}\n role=\"switch\"\n accessibilityRole=\"switch\"\n accessibilityState={{ checked: isChecked, disabled: !!disabled }}\n disabled={disabled}\n onPress={handlePress}\n className={cn(\n \"h-7 w-12 shrink-0 flex-row items-center rounded-full p-0.5 transition-colors\",\n isChecked\n ? \"bg-primary-600 dark:bg-primary-600\"\n : \"bg-neutral-300 dark:bg-neutral-700\",\n disabled && \"opacity-50\",\n className\n )}\n {...props}\n >\n <View\n role=\"presentation\"\n className={cn(\n \"h-6 w-6 rounded-full bg-white shadow-sm transition-transform\",\n isChecked ? \"translate-x-5\" : \"translate-x-0\",\n thumbClassName\n )}\n />\n </Pressable>\n );\n});\n\nSwitch.displayName = \"Switch\";\n","import * as React from \"react\";\nimport {\n View,\n Text,\n Pressable,\n type PressableProps,\n type GestureResponderEvent,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface CheckboxProps extends Omit<PressableProps, \"onPress\"> {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n className?: string;\n indicatorClassName?: string;\n label?: string;\n labelClassName?: string;\n onPress?: (e: GestureResponderEvent) => void;\n}\n\nexport const Checkbox = React.forwardRef<\n React.ElementRef<typeof Pressable>,\n CheckboxProps\n>(function Checkbox(\n {\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled = false,\n className,\n indicatorClassName,\n label,\n labelClassName,\n onPress,\n ...props\n },\n ref\n) {\n const [uncontrolledChecked, setUncontrolledChecked] = React.useState(defaultChecked);\n const isControlled = controlledChecked !== undefined;\n const isChecked = isControlled ? controlledChecked : uncontrolledChecked;\n\n const handlePress = (e: GestureResponderEvent) => {\n if (disabled) return;\n const nextChecked = !isChecked;\n if (!isControlled) {\n setUncontrolledChecked(nextChecked);\n }\n onCheckedChange?.(nextChecked);\n onPress?.(e);\n };\n\n const content = (\n <Pressable\n ref={ref}\n role=\"checkbox\"\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked: isChecked, disabled: !!disabled }}\n disabled={disabled}\n onPress={handlePress}\n className={cn(\n \"h-6 w-6 shrink-0 items-center justify-center rounded-md border border-neutral-300 dark:border-neutral-700 bg-white dark:bg-neutral-900\",\n isChecked && \"bg-primary-600 border-primary-600 dark:bg-primary-600 dark:border-primary-600\",\n disabled && \"opacity-50\",\n className\n )}\n {...props}\n >\n {isChecked ? (\n <View className={cn(\"items-center justify-center\", indicatorClassName)}>\n <Text className=\"text-white text-xs font-bold leading-none\">✓</Text>\n </View>\n ) : null}\n </Pressable>\n );\n\n if (!label) {\n return content;\n }\n\n return (\n <View className=\"flex-row items-center gap-2.5\">\n {content}\n <Text\n onPress={!disabled ? handlePress : undefined}\n className={cn(\n \"text-sm font-medium text-neutral-800 dark:text-neutral-200\",\n disabled && \"opacity-50\",\n labelClassName\n )}\n >\n {label}\n </Text>\n </View>\n );\n});\n\nCheckbox.displayName = \"Checkbox\";\n","import * as React from \"react\";\nimport { View, Text, Pressable, type ViewProps } from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\ninterface RadioGroupContextValue {\n value?: string;\n onValueChange?: (value: string) => void;\n disabled?: boolean;\n}\n\nconst RadioGroupContext = React.createContext<RadioGroupContextValue>({});\n\nexport interface RadioGroupProps extends ViewProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n disabled?: boolean;\n className?: string;\n}\n\nexport function RadioGroup({\n value: controlledValue,\n defaultValue,\n onValueChange,\n disabled = false,\n className,\n children,\n ...props\n}: RadioGroupProps) {\n const [internalValue, setInternalValue] = React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : internalValue;\n\n const handleValueChange = (val: string) => {\n if (!isControlled) setInternalValue(val);\n onValueChange?.(val);\n };\n\n return (\n <RadioGroupContext.Provider\n value={{\n value: currentValue,\n onValueChange: handleValueChange,\n disabled,\n }}\n >\n <View className={cn(\"gap-3\", className)} {...props}>\n {children}\n </View>\n </RadioGroupContext.Provider>\n );\n}\n\nexport interface RadioProps {\n value: string;\n label?: string;\n disabled?: boolean;\n className?: string;\n indicatorClassName?: string;\n labelClassName?: string;\n}\n\nexport function Radio({\n value,\n label,\n disabled: itemDisabled,\n className,\n indicatorClassName,\n labelClassName,\n}: RadioProps) {\n const group = React.useContext(RadioGroupContext);\n const isSelected = group.value === value;\n const isDisabled = group.disabled || itemDisabled;\n\n const handlePress = () => {\n if (!isDisabled) {\n group.onValueChange?.(value);\n }\n };\n\n return (\n <Pressable\n onPress={handlePress}\n disabled={isDisabled}\n accessibilityRole=\"radio\"\n accessibilityState={{ selected: isSelected, disabled: isDisabled }}\n className={cn(\"flex-row items-center gap-2.5\", isDisabled && \"opacity-50\")}\n >\n <View\n className={cn(\n \"h-5 w-5 rounded-full border border-neutral-300 dark:border-neutral-700 items-center justify-center bg-white dark:bg-neutral-900\",\n isSelected && \"border-primary-600 dark:border-primary-600\",\n className\n )}\n >\n {isSelected ? (\n <View\n className={cn(\n \"h-2.5 w-2.5 rounded-full bg-primary-600 dark:bg-primary-600\",\n indicatorClassName\n )}\n />\n ) : null}\n </View>\n {label ? (\n <Text\n className={cn(\n \"text-sm font-medium text-neutral-800 dark:text-neutral-200\",\n labelClassName\n )}\n >\n {label}\n </Text>\n ) : null}\n </Pressable>\n );\n}\n","import * as React from \"react\";\nimport { ActivityIndicator, View, type ViewProps } from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport type SpinnerColor =\n | \"primary\"\n | \"secondary\"\n | \"danger\"\n | \"success\"\n | \"warning\"\n | \"white\"\n | \"muted\";\n\nexport interface SpinnerProps extends ViewProps {\n size?: \"sm\" | \"md\" | \"lg\";\n color?: SpinnerColor;\n className?: string;\n}\n\nconst colorMap: Record<SpinnerColor, string> = {\n primary: \"#2563eb\",\n secondary: \"#475569\",\n danger: \"#dc2626\",\n success: \"#16a34a\",\n warning: \"#d97706\",\n white: \"#ffffff\",\n muted: \"#94a3b8\",\n};\n\nexport function Spinner({\n size = \"md\",\n color = \"primary\",\n className,\n ...props\n}: SpinnerProps) {\n const nativeSize = size === \"lg\" ? \"large\" : \"small\";\n const hexColor = colorMap[color] ?? colorMap.primary;\n\n return (\n <View className={cn(\"items-center justify-center\", className)} {...props}>\n <ActivityIndicator size={nativeSize} color={hexColor} />\n </View>\n );\n}\n\nSpinner.displayName = \"Spinner\";\n","import * as React from \"react\";\nimport { Animated, type ViewProps } from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface SkeletonProps extends ViewProps {\n className?: string;\n}\n\nexport function Skeleton({ className, style, ...props }: SkeletonProps) {\n const pulseAnim = React.useRef(new Animated.Value(0.4)).current;\n\n React.useEffect(() => {\n const animation = Animated.loop(\n Animated.sequence([\n Animated.timing(pulseAnim, {\n toValue: 1,\n duration: 900,\n useNativeDriver: true,\n }),\n Animated.timing(pulseAnim, {\n toValue: 0.4,\n duration: 900,\n useNativeDriver: true,\n }),\n ])\n );\n animation.start();\n return () => animation.stop();\n }, [pulseAnim]);\n\n return (\n <Animated.View\n style={[{ opacity: pulseAnim }, style]}\n className={cn(\n \"rounded-xl bg-neutral-200 dark:bg-neutral-800\",\n className\n )}\n {...props}\n />\n );\n}\n\nSkeleton.displayName = \"Skeleton\";\n","import * as React from \"react\";\nimport { View, Text, type ViewProps, type TextProps } from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const alertVariants = cva(\n \"w-full rounded-2xl border p-4 flex-col gap-1\",\n {\n variants: {\n variant: {\n info: \"bg-primary-50 border-primary-200 dark:bg-primary-950/40 dark:border-primary-800\",\n success: \"bg-success-50 border-success-200 dark:bg-success-950/40 dark:border-success-800\",\n warning: \"bg-warning-50 border-warning-200 dark:bg-warning-950/40 dark:border-warning-800\",\n danger: \"bg-danger-50 border-danger-200 dark:bg-danger-950/40 dark:border-danger-800\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nexport const alertTitleVariants = cva(\"text-base font-bold tracking-tight\", {\n variants: {\n variant: {\n info: \"text-primary-800 dark:text-primary-300\",\n success: \"text-success-800 dark:text-success-300\",\n warning: \"text-warning-800 dark:text-warning-300\",\n danger: \"text-danger-800 dark:text-danger-300\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n});\n\nexport const alertDescriptionVariants = cva(\"text-sm\", {\n variants: {\n variant: {\n info: \"text-primary-700 dark:text-primary-400\",\n success: \"text-success-700 dark:text-success-400\",\n warning: \"text-warning-700 dark:text-warning-400\",\n danger: \"text-danger-700 dark:text-danger-400\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n});\n\ntype AlertVariantProps = VariantProps<typeof alertVariants>;\n\ninterface AlertContextValue {\n variant: AlertVariantProps[\"variant\"];\n}\n\nconst AlertContext = React.createContext<AlertContextValue>({ variant: \"info\" });\n\nexport interface AlertProps extends ViewProps, AlertVariantProps {\n className?: string;\n}\n\nexport function Alert({\n variant = \"info\",\n className,\n children,\n ...props\n}: AlertProps) {\n return (\n <AlertContext.Provider value={{ variant }}>\n <View\n accessibilityRole=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n {children}\n </View>\n </AlertContext.Provider>\n );\n}\n\nAlert.displayName = \"Alert\";\n\nexport function AlertTitle({\n className,\n children,\n ...props\n}: TextProps & { className?: string }) {\n const { variant } = React.useContext(AlertContext);\n return (\n <Text\n className={cn(alertTitleVariants({ variant }), className)}\n {...props}\n >\n {children}\n </Text>\n );\n}\n\nAlertTitle.displayName = \"Alert.Title\";\n\nexport function AlertDescription({\n className,\n children,\n ...props\n}: TextProps & { className?: string }) {\n const { variant } = React.useContext(AlertContext);\n return (\n <Text\n className={cn(alertDescriptionVariants({ variant }), className)}\n {...props}\n >\n {children}\n </Text>\n );\n}\n\nAlertDescription.displayName = \"Alert.Description\";\n","import * as React from \"react\";\nimport { View, type ViewProps } from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface SeparatorProps extends ViewProps {\n orientation?: \"horizontal\" | \"vertical\";\n className?: string;\n}\n\nexport function Separator({\n orientation = \"horizontal\",\n className,\n ...props\n}: SeparatorProps) {\n return (\n <View\n accessibilityRole=\"none\"\n className={cn(\n \"bg-neutral-200 dark:bg-neutral-800\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nSeparator.displayName = \"Separator\";\n","import * as React from \"react\";\nimport {\n Modal,\n View,\n Text,\n Pressable,\n StyleSheet,\n type ViewProps,\n type TextProps,\n type PressableProps,\n type GestureResponderEvent,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface DialogContextValue {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\nexport const DialogContext = React.createContext<DialogContextValue | null>(null);\n\nexport function useDialogContext(): DialogContextValue {\n const context = React.useContext(DialogContext);\n if (!context) {\n throw new Error(\"Dialog compound components must be used within a Dialog component\");\n }\n return context;\n}\n\nexport interface DialogProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nexport function Dialog({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n children,\n}: DialogProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : uncontrolledOpen;\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n },\n [isControlled, onOpenChange]\n );\n\n return (\n <DialogContext.Provider value={{ open, onOpenChange: handleOpenChange }}>\n {children}\n </DialogContext.Provider>\n );\n}\nDialog.displayName = \"Dialog\";\n\nexport interface DialogTriggerProps extends PressableProps {\n asChild?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const DialogTrigger = React.forwardRef<View, DialogTriggerProps>(\n function DialogTrigger({ asChild, children, onPress, ...props }, ref) {\n const { open, onOpenChange } = useDialogContext();\n\n const handlePress = (e: GestureResponderEvent) => {\n onOpenChange(!open);\n onPress?.(e);\n };\n\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children as React.ReactElement<any>, {\n ref,\n onPress: (e: GestureResponderEvent) => {\n (children.props as any)?.onPress?.(e);\n handlePress(e);\n },\n });\n }\n\n return (\n <Pressable ref={ref} onPress={handlePress} role=\"button\" {...props}>\n {children}\n </Pressable>\n );\n }\n);\nDialogTrigger.displayName = \"DialogTrigger\";\n\nexport interface DialogPortalProps {\n children: React.ReactNode;\n forceMount?: boolean;\n}\n\nexport function DialogPortal({ children, forceMount }: DialogPortalProps) {\n const { open, onOpenChange } = useDialogContext();\n\n if (!open && !forceMount) {\n return null;\n }\n\n return (\n <Modal\n transparent\n visible={open}\n animationType=\"fade\"\n onRequestClose={() => onOpenChange(false)}\n statusBarTranslucent\n >\n {children}\n </Modal>\n );\n}\nDialogPortal.displayName = \"DialogPortal\";\n\nexport interface DialogOverlayProps extends ViewProps {\n className?: string;\n closeOnPress?: boolean;\n}\n\nexport const DialogOverlay = React.forwardRef<View, DialogOverlayProps>(\n function DialogOverlay({ className, closeOnPress = true, ...props }, ref) {\n const { onOpenChange } = useDialogContext();\n\n return (\n <Pressable\n ref={ref}\n style={StyleSheet.absoluteFill}\n className={cn(\"z-50 bg-black/60\", className)}\n onPress={() => {\n if (closeOnPress) {\n onOpenChange(false);\n }\n }}\n {...props}\n />\n );\n }\n);\nDialogOverlay.displayName = \"DialogOverlay\";\n\nexport interface DialogContentProps extends ViewProps {\n className?: string;\n overlayClassName?: string;\n children: React.ReactNode;\n}\n\nexport const DialogContent = React.forwardRef<View, DialogContentProps>(\n function DialogContent({ className, overlayClassName, children, ...props }, ref) {\n return (\n <DialogPortal>\n <View\n pointerEvents=\"box-none\"\n style={StyleSheet.absoluteFill}\n className=\"z-50 items-center justify-center p-4\"\n >\n <DialogOverlay className={overlayClassName} />\n <View\n ref={ref}\n role=\"dialog\"\n aria-modal={true}\n className={cn(\n \"z-50 w-full max-w-lg rounded-2xl border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 p-6 shadow-2xl\",\n className\n )}\n {...props}\n >\n {children}\n </View>\n </View>\n </DialogPortal>\n );\n }\n);\nDialogContent.displayName = \"DialogContent\";\n\nexport function DialogHeader({\n className,\n ...props\n}: ViewProps & { className?: string }) {\n return (\n <View\n className={cn(\"flex-col space-y-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\nDialogHeader.displayName = \"DialogHeader\";\n\nexport const DialogTitle = React.forwardRef<Text, TextProps & { className?: string }>(\n function DialogTitle({ className, ...props }, ref) {\n return (\n <Text\n ref={ref}\n role=\"heading\"\n aria-level={2}\n className={cn(\n \"text-xl font-bold tracking-tight text-neutral-900 dark:text-neutral-50\",\n className\n )}\n {...props}\n />\n );\n }\n);\nDialogTitle.displayName = \"DialogTitle\";\n\nexport const DialogDescription = React.forwardRef<Text, TextProps & { className?: string }>(\n function DialogDescription({ className, ...props }, ref) {\n return (\n <Text\n ref={ref}\n className={cn(\n \"text-sm text-neutral-500 dark:text-neutral-400 mt-1\",\n className\n )}\n {...props}\n />\n );\n }\n);\nDialogDescription.displayName = \"DialogDescription\";\n\nexport function DialogFooter({\n className,\n ...props\n}: ViewProps & { className?: string }) {\n return (\n <View\n className={cn(\"flex-row justify-end space-x-2 mt-6\", className)}\n {...props}\n />\n );\n}\nDialogFooter.displayName = \"DialogFooter\";\n\nexport interface DialogCloseProps extends PressableProps {\n asChild?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const DialogClose = React.forwardRef<View, DialogCloseProps>(\n function DialogClose({ asChild, children, onPress, ...props }, ref) {\n const { onOpenChange } = useDialogContext();\n\n const handlePress = (e: GestureResponderEvent) => {\n onOpenChange(false);\n onPress?.(e);\n };\n\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children as React.ReactElement<any>, {\n ref,\n onPress: (e: GestureResponderEvent) => {\n (children.props as any)?.onPress?.(e);\n handlePress(e);\n },\n });\n }\n\n return (\n <Pressable ref={ref} onPress={handlePress} role=\"button\" {...props}>\n {children}\n </Pressable>\n );\n }\n);\nDialogClose.displayName = \"DialogClose\";\n","import * as React from \"react\";\nimport {\n View,\n Text,\n Pressable,\n type ViewProps,\n type PressableProps,\n type GestureResponderEvent,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface TabsContextValue {\n value: string;\n onValueChange: (value: string) => void;\n}\n\nexport const TabsContext = React.createContext<TabsContextValue | null>(null);\n\nexport function useTabsContext(): TabsContextValue {\n const context = React.useContext(TabsContext);\n if (!context) {\n throw new Error(\"Tabs compound components must be rendered inside a Tabs component\");\n }\n return context;\n}\n\nexport interface TabsProps extends ViewProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n className?: string;\n}\n\nexport const Tabs = React.forwardRef<View, TabsProps>(function Tabs(\n { value: controlledValue, defaultValue = \"\", onValueChange, className, children, ...props },\n ref\n) {\n const [internalValue, setInternalValue] = React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : internalValue;\n\n const handleValueChange = React.useCallback(\n (val: string) => {\n if (!isControlled) {\n setInternalValue(val);\n }\n onValueChange?.(val);\n },\n [isControlled, onValueChange]\n );\n\n return (\n <TabsContext.Provider value={{ value: currentValue, onValueChange: handleValueChange }}>\n <View ref={ref} className={className} {...props}>\n {children}\n </View>\n </TabsContext.Provider>\n );\n});\nTabs.displayName = \"Tabs\";\n\nexport interface TabsListProps extends ViewProps {\n className?: string;\n}\n\nexport const TabsList = React.forwardRef<View, TabsListProps>(function TabsList(\n { className, ...props },\n ref\n) {\n return (\n <View\n ref={ref}\n role=\"tablist\"\n className={cn(\n \"flex-row items-center justify-center rounded-xl bg-neutral-100 dark:bg-neutral-800 p-1\",\n className\n )}\n {...props}\n />\n );\n});\nTabsList.displayName = \"TabsList\";\n\nexport interface TabsTriggerProps extends Omit<PressableProps, \"onPress\"> {\n value: string;\n className?: string;\n textClassName?: string;\n children?: React.ReactNode;\n onPress?: (e: GestureResponderEvent) => void;\n}\n\nexport const TabsTrigger = React.forwardRef<\n React.ElementRef<typeof Pressable>,\n TabsTriggerProps\n>(function TabsTrigger({ value, className, textClassName, children, onPress, disabled, ...props }, ref) {\n const { value: selectedValue, onValueChange } = useTabsContext();\n const isSelected = selectedValue === value;\n\n const handlePress = (e: GestureResponderEvent) => {\n if (disabled) return;\n onValueChange(value);\n onPress?.(e);\n };\n\n return (\n <Pressable\n ref={ref}\n role=\"tab\"\n accessibilityRole=\"tab\"\n accessibilityState={{ selected: isSelected, disabled: !!disabled }}\n disabled={disabled}\n onPress={handlePress}\n className={cn(\n \"flex-1 items-center justify-center rounded-lg py-2 px-3 transition-all\",\n isSelected\n ? \"bg-white dark:bg-neutral-900 shadow-sm\"\n : \"bg-transparent opacity-70\",\n disabled && \"opacity-40\",\n className\n )}\n {...props}\n >\n {typeof children === \"string\" ? (\n <Text\n className={cn(\n \"text-sm font-semibold\",\n isSelected\n ? \"text-neutral-900 dark:text-neutral-50\"\n : \"text-neutral-600 dark:text-neutral-400\",\n textClassName\n )}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n </Pressable>\n );\n});\nTabsTrigger.displayName = \"TabsTrigger\";\n\nexport interface TabsContentProps extends ViewProps {\n value: string;\n className?: string;\n forceMount?: boolean;\n}\n\nexport const TabsContent = React.forwardRef<View, TabsContentProps>(function TabsContent(\n { value, className, forceMount, children, ...props },\n ref\n) {\n const { value: selectedValue } = useTabsContext();\n const isSelected = selectedValue === value;\n\n if (!isSelected && !forceMount) {\n return null;\n }\n\n return (\n <View\n ref={ref}\n role=\"tabpanel\"\n accessibilityElementsHidden={!isSelected}\n className={cn(\"mt-3\", className)}\n {...props}\n >\n {children}\n </View>\n );\n});\nTabsContent.displayName = \"TabsContent\";\n","import * as React from \"react\";\nimport { View, Text, Pressable, Animated } from \"react-native\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\nimport { ToastItem, ToastVariant } from \"./types\";\n\nconst toastVariants = cva(\n \"w-full max-w-sm rounded-xl p-4 shadow-lg border flex-row items-center justify-between mb-2\",\n {\n variants: {\n variant: {\n default: \"bg-white border-neutral-200 dark:bg-neutral-900 dark:border-neutral-800\",\n success: \"bg-success-50 border-success-200 dark:bg-success-950/80 dark:border-success-800\",\n danger: \"bg-danger-50 border-danger-200 dark:bg-danger-950/80 dark:border-danger-800\",\n warning: \"bg-warning-50 border-warning-200 dark:bg-warning-950/80 dark:border-warning-800\",\n info: \"bg-primary-50 border-primary-200 dark:bg-primary-950/80 dark:border-primary-800\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst toastTitleVariants = cva(\"text-sm font-semibold\", {\n variants: {\n variant: {\n default: \"text-neutral-900 dark:text-white\",\n success: \"text-success-700 dark:text-success-300\",\n danger: \"text-danger-700 dark:text-danger-300\",\n warning: \"text-warning-800 dark:text-warning-300\",\n info: \"text-primary-700 dark:text-primary-300\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\ninterface ToastBannerProps {\n toast: ToastItem;\n onDismiss: (id: string) => void;\n}\n\nexport function ToastBanner({ toast, onDismiss }: ToastBannerProps) {\n const opacity = React.useRef(new Animated.Value(0)).current;\n const translateY = React.useRef(new Animated.Value(-16)).current;\n\n React.useEffect(() => {\n Animated.parallel([\n Animated.timing(opacity, {\n toValue: 1,\n duration: 200,\n useNativeDriver: true,\n }),\n Animated.timing(translateY, {\n toValue: 0,\n duration: 200,\n useNativeDriver: true,\n }),\n ]).start();\n\n const timer = setTimeout(() => {\n handleDismiss();\n }, toast.duration || 4000);\n\n return () => clearTimeout(timer);\n }, []);\n\n const handleDismiss = () => {\n Animated.parallel([\n Animated.timing(opacity, {\n toValue: 0,\n duration: 200,\n useNativeDriver: true,\n }),\n Animated.timing(translateY, {\n toValue: -16,\n duration: 200,\n useNativeDriver: true,\n }),\n ]).start(() => {\n onDismiss(toast.id);\n });\n };\n\n const variant: ToastVariant = toast.variant || \"default\";\n\n return (\n <Animated.View\n style={{\n opacity,\n transform: [{ translateY }],\n }}\n className=\"w-full items-center px-4\"\n >\n <Pressable\n onPress={handleDismiss}\n className={cn(toastVariants({ variant }))}\n >\n <View className=\"flex-1 pr-2\">\n <Text className={cn(toastTitleVariants({ variant }))}>\n {toast.title}\n </Text>\n {toast.description ? (\n <Text className=\"text-xs text-neutral-600 dark:text-neutral-400 mt-0.5\">\n {toast.description}\n </Text>\n ) : null}\n </View>\n <Text className=\"text-xs text-neutral-400\">✕</Text>\n </Pressable>\n </Animated.View>\n );\n}\n\nexport function ToastContainer({\n toasts,\n onDismiss,\n}: {\n toasts: ToastItem[];\n onDismiss: (id: string) => void;\n}) {\n if (toasts.length === 0) return null;\n\n return (\n <View\n pointerEvents=\"box-none\"\n className=\"absolute top-12 left-0 right-0 z-50 items-center\"\n >\n {toasts.map((toast) => (\n <ToastBanner key={toast.id} toast={toast} onDismiss={onDismiss} />\n ))}\n </View>\n );\n}\n","import * as React from \"react\";\n\nexport type ToastVariant = \"default\" | \"success\" | \"danger\" | \"warning\" | \"info\";\n\nexport interface ToastItem {\n id: string;\n title: string;\n description?: string;\n variant?: ToastVariant;\n duration?: number;\n}\n\nexport interface ToastContextValue {\n toasts: ToastItem[];\n show: (toast: Omit<ToastItem, \"id\">) => string;\n dismiss: (id: string) => void;\n success: (title: string, description?: string) => string;\n danger: (title: string, description?: string) => string;\n error: (title: string, description?: string) => string;\n warning: (title: string, description?: string) => string;\n info: (title: string, description?: string) => string;\n}\n\nexport const ToastContext = React.createContext<ToastContextValue | null>(null);\n\nexport function useToast(): ToastContextValue {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\"useToast must be used within a BeyondUIProvider\");\n }\n return context;\n}\n","import * as React from \"react\";\nimport { View, Text, type ViewProps } from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Card, CardContent } from \"../card/card\";\n\nexport type TrendDirection = \"up\" | \"down\" | \"neutral\";\n\nexport interface StatsCardProps extends ViewProps {\n title: string;\n value: string | number;\n trend?: {\n direction: TrendDirection;\n value: string | number;\n label?: string;\n };\n icon?: React.ReactNode;\n className?: string;\n}\n\nexport function StatsCard({\n title,\n value,\n trend,\n icon,\n className,\n ...props\n}: StatsCardProps) {\n const isUp = trend?.direction === \"up\";\n const isDown = trend?.direction === \"down\";\n\n return (\n <Card className={cn(\"w-full shadow-sm\", className)} {...props}>\n <CardContent className=\"p-4\">\n <View className=\"flex-row items-center justify-between mb-2\">\n <Text className=\"text-sm font-medium text-neutral-500 dark:text-neutral-400\">\n {title}\n </Text>\n {icon ? (\n <View className=\"h-9 w-9 rounded-xl bg-neutral-100 dark:bg-neutral-800 items-center justify-center\">\n {icon}\n </View>\n ) : null}\n </View>\n\n <Text className=\"text-2xl font-extrabold tracking-tight text-neutral-900 dark:text-neutral-50 mb-2\">\n {value}\n </Text>\n\n {trend ? (\n <View className=\"flex-row items-center gap-1.5 flex-wrap\">\n <View\n className={cn(\n \"flex-row items-center rounded-md px-1.5 py-0.5\",\n isUp && \"bg-success-100 dark:bg-success-950/60\",\n isDown && \"bg-danger-100 dark:bg-danger-950/60\",\n !isUp && !isDown && \"bg-neutral-100 dark:bg-neutral-800\"\n )}\n >\n <Text\n className={cn(\n \"text-xs font-bold mr-1\",\n isUp && \"text-success-700 dark:text-success-300\",\n isDown && \"text-danger-700 dark:text-danger-300\",\n !isUp && !isDown && \"text-neutral-600 dark:text-neutral-400\"\n )}\n >\n {isUp ? \"↑\" : isDown ? \"↓\" : \"—\"}\n </Text>\n <Text\n className={cn(\n \"text-xs font-semibold\",\n isUp && \"text-success-700 dark:text-success-300\",\n isDown && \"text-danger-700 dark:text-danger-300\",\n !isUp && !isDown && \"text-neutral-600 dark:text-neutral-400\"\n )}\n >\n {trend.value}\n </Text>\n </View>\n {trend.label ? (\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n {trend.label}\n </Text>\n ) : null}\n </View>\n ) : null}\n </CardContent>\n </Card>\n );\n}\n\nStatsCard.displayName = \"StatsCard\";\n","import * as React from \"react\";\nimport {\n View,\n Pressable,\n Animated,\n type ViewProps,\n type PressableProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../text/text\";\n\ntype AccordionType = \"single\" | \"multiple\";\n\ninterface AccordionContextValue {\n type: AccordionType;\n value: string[];\n toggleItem: (itemValue: string) => void;\n collapsible: boolean;\n}\n\nconst AccordionContext = React.createContext<AccordionContextValue | null>(null);\n\nfunction useAccordionContext() {\n const context = React.useContext(AccordionContext);\n if (!context) {\n throw new Error(\"Accordion components must be used within an Accordion\");\n }\n return context;\n}\n\nexport interface AccordionProps extends ViewProps {\n type?: AccordionType;\n value?: string | string[];\n defaultValue?: string | string[];\n onValueChange?: (value: string | string[]) => void;\n collapsible?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const Accordion = React.forwardRef<View, AccordionProps>(\n (\n {\n type = \"single\",\n value: controlledValue,\n defaultValue,\n onValueChange,\n collapsible = true,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const toArray = (v?: string | string[]): string[] => {\n if (!v) return [];\n return Array.isArray(v) ? v : [v];\n };\n\n const [uncontrolledValue, setUncontrolledValue] = React.useState<string[]>(\n toArray(defaultValue)\n );\n\n const isControlled = controlledValue !== undefined;\n const currentValues = isControlled ? toArray(controlledValue) : uncontrolledValue;\n\n const toggleItem = React.useCallback(\n (itemValue: string) => {\n let nextValues: string[];\n const isCurrentOpen = currentValues.includes(itemValue);\n\n if (type === \"single\") {\n if (isCurrentOpen) {\n nextValues = collapsible ? [] : [itemValue];\n } else {\n nextValues = [itemValue];\n }\n } else {\n if (isCurrentOpen) {\n nextValues = currentValues.filter((v) => v !== itemValue);\n } else {\n nextValues = [...currentValues, itemValue];\n }\n }\n\n if (!isControlled) {\n setUncontrolledValue(nextValues);\n }\n\n if (onValueChange) {\n onValueChange(type === \"single\" ? nextValues[0] ?? \"\" : nextValues);\n }\n },\n [currentValues, type, collapsible, isControlled, onValueChange]\n );\n\n return (\n <AccordionContext.Provider\n value={{\n type,\n value: currentValues,\n toggleItem,\n collapsible,\n }}\n >\n <View\n ref={ref}\n className={cn(\"w-full divide-y divide-border\", className)}\n {...props}\n >\n {children}\n </View>\n </AccordionContext.Provider>\n );\n }\n);\nAccordion.displayName = \"Accordion\";\n\n// --- Accordion Item ---\n\ninterface AccordionItemContextValue {\n value: string;\n isOpen: boolean;\n}\n\nconst AccordionItemContext = React.createContext<AccordionItemContextValue | null>(null);\n\nfunction useAccordionItemContext() {\n const context = React.useContext(AccordionItemContext);\n if (!context) {\n throw new Error(\"AccordionItem subcomponents must be used within an AccordionItem\");\n }\n return context;\n}\n\nexport interface AccordionItemProps extends ViewProps {\n value: string;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const AccordionItem = React.forwardRef<View, AccordionItemProps>(\n ({ value, className, children, ...props }, ref) => {\n const { value: selectedValues } = useAccordionContext();\n const isOpen = selectedValues.includes(value);\n\n return (\n <AccordionItemContext.Provider value={{ value, isOpen }}>\n <View\n ref={ref}\n className={cn(\"border-b border-neutral-200 dark:border-neutral-800 py-1\", className)}\n {...props}\n >\n {children}\n </View>\n </AccordionItemContext.Provider>\n );\n }\n);\nAccordionItem.displayName = \"AccordionItem\";\n\n// --- Accordion Trigger ---\n\nexport interface AccordionTriggerProps extends PressableProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const AccordionTrigger = React.forwardRef<View, AccordionTriggerProps>(\n ({ className, children, ...props }, ref) => {\n const { toggleItem } = useAccordionContext();\n const { value, isOpen } = useAccordionItemContext();\n\n const rotationAnim = React.useRef(new Animated.Value(isOpen ? 1 : 0)).current;\n\n React.useEffect(() => {\n Animated.timing(rotationAnim, {\n toValue: isOpen ? 1 : 0,\n duration: 200,\n useNativeDriver: true,\n }).start();\n }, [isOpen, rotationAnim]);\n\n const rotate = rotationAnim.interpolate({\n inputRange: [0, 1],\n outputRange: [\"0deg\", \"180deg\"],\n });\n\n return (\n <Pressable\n ref={ref}\n onPress={() => toggleItem(value)}\n accessibilityRole=\"button\"\n accessibilityState={{ expanded: isOpen }}\n className={cn(\n \"flex-row items-center justify-between py-3 px-1 active:opacity-70\",\n className\n )}\n {...props}\n >\n <View className=\"flex-1 pr-2\">\n {typeof children === \"string\" ? (\n <Text className=\"text-base font-medium text-neutral-900 dark:text-neutral-100\">{children}</Text>\n ) : (\n children\n )}\n </View>\n <Animated.View style={{ transform: [{ rotate }] }}>\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-base font-semibold\">▼</Text>\n </Animated.View>\n </Pressable>\n );\n }\n);\nAccordionTrigger.displayName = \"AccordionTrigger\";\n\n// --- Accordion Content ---\n\nexport interface AccordionContentProps extends ViewProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const AccordionContent = React.forwardRef<View, AccordionContentProps>(\n ({ className, children, ...props }, ref) => {\n const { isOpen } = useAccordionItemContext();\n\n if (!isOpen) return null;\n\n return (\n <View\n ref={ref}\n className={cn(\"pt-1 pb-3 px-1\", className)}\n {...props}\n >\n {typeof children === \"string\" ? (\n <Text className=\"text-sm text-neutral-600 dark:text-neutral-400 leading-relaxed\">{children}</Text>\n ) : (\n children\n )}\n </View>\n );\n }\n);\nAccordionContent.displayName = \"AccordionContent\";\n","import * as React from \"react\";\nimport {\n Modal,\n View,\n Pressable,\n Animated,\n PanResponder,\n Dimensions,\n type ViewProps,\n type PressableProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../text/text\";\nimport { Heading } from \"../text/heading\";\n\ninterface BottomSheetContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n closeSheet: () => void;\n}\n\nconst BottomSheetContext = React.createContext<BottomSheetContextValue | null>(null);\n\nfunction useBottomSheetContext() {\n const context = React.useContext(BottomSheetContext);\n if (!context) {\n throw new Error(\"BottomSheet components must be used within a BottomSheet\");\n }\n return context;\n}\n\nexport interface BottomSheetProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nexport const BottomSheet: React.FC<BottomSheetProps> = ({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n children,\n}) => {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const isOpen = isControlled ? controlledOpen : uncontrolledOpen;\n\n const setOpen = React.useCallback(\n (nextOpen: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n },\n [isControlled, onOpenChange]\n );\n\n const closeSheet = React.useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n return (\n <BottomSheetContext.Provider value={{ open: isOpen, setOpen, closeSheet }}>\n {children}\n </BottomSheetContext.Provider>\n );\n};\n\n// --- BottomSheetTrigger ---\n\nexport interface BottomSheetTriggerProps extends PressableProps {\n asChild?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetTrigger = React.forwardRef<View, BottomSheetTriggerProps>(\n ({ asChild, children, onPress, ...props }, ref) => {\n const { setOpen } = useBottomSheetContext();\n\n const handlePress = (e: any) => {\n setOpen(true);\n onPress?.(e);\n };\n\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children as React.ReactElement<any>, {\n ref,\n onPress: handlePress,\n });\n }\n\n return (\n <Pressable ref={ref} onPress={handlePress} {...props}>\n {children}\n </Pressable>\n );\n }\n);\nBottomSheetTrigger.displayName = \"BottomSheetTrigger\";\n\n// --- BottomSheetContent ---\n\nexport interface BottomSheetContentProps extends ViewProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetContent = React.forwardRef<View, BottomSheetContentProps>(\n ({ className, children, ...props }, ref) => {\n const { open, closeSheet } = useBottomSheetContext();\n const screenHeight = Dimensions.get(\"window\").height;\n\n const translateY = React.useRef(new Animated.Value(screenHeight)).current;\n const backdropOpacity = React.useRef(new Animated.Value(0)).current;\n\n React.useEffect(() => {\n if (open) {\n Animated.parallel([\n Animated.spring(translateY, {\n toValue: 0,\n useNativeDriver: true,\n bounciness: 4,\n }),\n Animated.timing(backdropOpacity, {\n toValue: 1,\n duration: 250,\n useNativeDriver: true,\n }),\n ]).start();\n } else {\n Animated.parallel([\n Animated.timing(translateY, {\n toValue: screenHeight,\n duration: 200,\n useNativeDriver: true,\n }),\n Animated.timing(backdropOpacity, {\n toValue: 0,\n duration: 200,\n useNativeDriver: true,\n }),\n ]).start();\n }\n }, [open, translateY, backdropOpacity, screenHeight]);\n\n // PanResponder for drag down to dismiss\n const panResponder = React.useRef(\n PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: (_, gestureState) => gestureState.dy > 5,\n onPanResponderMove: (_, gestureState) => {\n if (gestureState.dy > 0) {\n translateY.setValue(gestureState.dy);\n }\n },\n onPanResponderRelease: (_, gestureState) => {\n if (gestureState.dy > 120 || gestureState.vy > 0.8) {\n closeSheet();\n } else {\n Animated.spring(translateY, {\n toValue: 0,\n useNativeDriver: true,\n bounciness: 4,\n }).start();\n }\n },\n })\n ).current;\n\n if (!open) return null;\n\n return (\n <Modal\n transparent\n visible={open}\n animationType=\"none\"\n onRequestClose={closeSheet}\n statusBarTranslucent\n >\n <View className=\"flex-1 justify-end\">\n {/* Backdrop */}\n <Animated.View\n style={{ opacity: backdropOpacity }}\n className=\"absolute inset-0 bg-black/60\"\n >\n <Pressable className=\"flex-1\" onPress={closeSheet} />\n </Animated.View>\n\n {/* Sheet Container */}\n <Animated.View\n ref={ref}\n style={{ transform: [{ translateY }] }}\n className={cn(\n \"w-full bg-white dark:bg-neutral-900 rounded-t-3xl border-t border-neutral-200 dark:border-neutral-800 shadow-2xl pt-2 pb-8 px-6 max-h-[85%]\",\n className\n )}\n {...props}\n >\n {/* Drag Handle Bar */}\n <View {...panResponder.panHandlers} className=\"w-full py-2 items-center\">\n <View className=\"w-12 h-1.5 rounded-full bg-neutral-300 dark:bg-neutral-700\" />\n </View>\n\n {children}\n </Animated.View>\n </View>\n </Modal>\n );\n }\n);\nBottomSheetContent.displayName = \"BottomSheetContent\";\n\n// --- BottomSheetHeader ---\n\nexport interface BottomSheetHeaderProps extends ViewProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetHeader = React.forwardRef<View, BottomSheetHeaderProps>(\n ({ className, children, ...props }, ref) => (\n <View ref={ref} className={cn(\"mb-4 gap-1\", className)} {...props}>\n {children}\n </View>\n )\n);\nBottomSheetHeader.displayName = \"BottomSheetHeader\";\n\n// --- BottomSheetTitle ---\n\nexport interface BottomSheetTitleProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetTitle: React.FC<BottomSheetTitleProps> = ({\n className,\n children,\n}) => {\n return (\n <Heading level={4} className={cn(\"text-xl font-bold text-neutral-900 dark:text-neutral-50\", className)}>\n {children}\n </Heading>\n );\n};\nBottomSheetTitle.displayName = \"BottomSheetTitle\";\n\n// --- BottomSheetDescription ---\n\nexport interface BottomSheetDescriptionProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetDescription: React.FC<BottomSheetDescriptionProps> = ({\n className,\n children,\n}) => {\n return (\n <Text className={cn(\"text-sm text-neutral-500 dark:text-neutral-400\", className)}>\n {children}\n </Text>\n );\n};\nBottomSheetDescription.displayName = \"BottomSheetDescription\";\n\n// --- BottomSheetBody ---\n\nexport interface BottomSheetBodyProps extends ViewProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetBody = React.forwardRef<View, BottomSheetBodyProps>(\n ({ className, children, ...props }, ref) => (\n <View ref={ref} className={cn(\"py-2\", className)} {...props}>\n {children}\n </View>\n )\n);\nBottomSheetBody.displayName = \"BottomSheetBody\";\n\n// --- BottomSheetFooter ---\n\nexport interface BottomSheetFooterProps extends ViewProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetFooter = React.forwardRef<View, BottomSheetFooterProps>(\n ({ className, children, ...props }, ref) => (\n <View\n ref={ref}\n className={cn(\"mt-6 flex-row items-center justify-end gap-3\", className)}\n {...props}\n >\n {children}\n </View>\n )\n);\nBottomSheetFooter.displayName = \"BottomSheetFooter\";\n\n// --- BottomSheetClose ---\n\nexport interface BottomSheetCloseProps extends PressableProps {\n asChild?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetClose = React.forwardRef<View, BottomSheetCloseProps>(\n ({ asChild, children, onPress, ...props }, ref) => {\n const { closeSheet } = useBottomSheetContext();\n\n const handlePress = (e: any) => {\n closeSheet();\n onPress?.(e);\n };\n\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children as React.ReactElement<any>, {\n ref,\n onPress: handlePress,\n });\n }\n\n return (\n <Pressable ref={ref} onPress={handlePress} {...props}>\n {children}\n </Pressable>\n );\n }\n);\nBottomSheetClose.displayName = \"BottomSheetClose\";\n","import * as React from \"react\";\nimport {\n Modal,\n View,\n Pressable,\n ScrollView,\n TextInput,\n type ViewProps,\n} from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../text/text\";\n\nconst selectTriggerVariants = cva(\n \"flex-row items-center justify-between rounded-xl border bg-white dark:bg-neutral-900 px-4 py-3 active:opacity-80\",\n {\n variants: {\n variant: {\n default: \"border-neutral-300 dark:border-neutral-700\",\n error: \"border-danger\",\n success: \"border-success\",\n },\n size: {\n sm: \"h-9 px-3 py-1.5\",\n md: \"h-12 px-4 py-3\",\n lg: \"h-14 px-5 py-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n);\n\nexport interface SelectOption {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\ninterface SelectContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n value?: string;\n onSelect: (val: string) => void;\n}\n\nconst SelectContext = React.createContext<SelectContextValue | null>(null);\n\nfunction useSelectContext() {\n const context = React.useContext(SelectContext);\n if (!context) {\n throw new Error(\"Select compound subcomponents must be used within a Select\");\n }\n return context;\n}\n\nexport interface SelectProps extends VariantProps<typeof selectTriggerVariants> {\n options?: SelectOption[];\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n placeholder?: string;\n label?: string;\n helperText?: string;\n error?: string;\n disabled?: boolean;\n searchable?: boolean;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const Select: React.FC<SelectProps> = ({\n options,\n value: controlledValue,\n defaultValue,\n onValueChange,\n placeholder = \"Select an option...\",\n label,\n helperText,\n error,\n disabled = false,\n searchable = false,\n variant,\n size,\n className,\n children,\n}) => {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n const [open, setOpen] = React.useState(false);\n const [searchQuery, setSearchQuery] = React.useState(\"\");\n\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : uncontrolledValue;\n\n const handleSelect = React.useCallback(\n (newVal: string) => {\n if (!isControlled) {\n setUncontrolledValue(newVal);\n }\n onValueChange?.(newVal);\n setOpen(false);\n setSearchQuery(\"\");\n },\n [isControlled, onValueChange]\n );\n\n const selectedOption = options?.find((o) => o.value === currentValue);\n const displayLabel = selectedOption ? selectedOption.label : \"\";\n\n const filteredOptions = React.useMemo(() => {\n if (!options) return [];\n if (!searchQuery) return options;\n return options.filter((o) =>\n o.label.toLowerCase().includes(searchQuery.toLowerCase())\n );\n }, [options, searchQuery]);\n\n const activeVariant = error ? \"error\" : variant;\n\n return (\n <SelectContext.Provider\n value={{\n open,\n setOpen,\n value: currentValue,\n onSelect: handleSelect,\n }}\n >\n <View className={cn(\"w-full gap-1.5\", className)}>\n {label && (\n <Text className=\"text-sm font-medium text-neutral-800 dark:text-neutral-200\">{label}</Text>\n )}\n\n {children ? (\n children\n ) : (\n <Pressable\n disabled={disabled}\n onPress={() => setOpen(true)}\n accessibilityRole=\"combobox\"\n accessibilityState={{ disabled, expanded: open }}\n className={cn(\n selectTriggerVariants({ variant: activeVariant, size }),\n disabled && \"opacity-50\"\n )}\n >\n <Text\n className={cn(\n \"text-base\",\n displayLabel\n ? \"text-neutral-900 dark:text-neutral-100 font-medium\"\n : \"text-neutral-500 dark:text-neutral-400 font-normal\"\n )}\n >\n {displayLabel || placeholder}\n </Text>\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-xs\">▼</Text>\n </Pressable>\n )}\n\n {error ? (\n <Text className=\"text-xs text-danger font-medium\">{error}</Text>\n ) : helperText ? (\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">{helperText}</Text>\n ) : null}\n\n {/* Modal Options Picker if options prop was passed */}\n {options && (\n <Modal\n transparent\n visible={open}\n animationType=\"fade\"\n onRequestClose={() => setOpen(false)}\n statusBarTranslucent\n >\n <View className=\"flex-1 justify-end bg-black/60\">\n <Pressable className=\"flex-1\" onPress={() => setOpen(false)} />\n <View className=\"w-full bg-white dark:bg-neutral-900 rounded-t-3xl border-t border-neutral-200 dark:border-neutral-800 p-6 max-h-[75%]\">\n <View className=\"flex-row items-center justify-between pb-4 border-b border-neutral-200 dark:border-neutral-800 mb-3\">\n <Text className=\"text-lg font-bold text-neutral-900 dark:text-neutral-50\">\n {label || placeholder}\n </Text>\n <Pressable onPress={() => setOpen(false)} className=\"p-1\">\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-lg font-semibold\">✕</Text>\n </Pressable>\n </View>\n\n {searchable && (\n <View className=\"mb-4\">\n <TextInput\n value={searchQuery}\n onChangeText={setSearchQuery}\n placeholder=\"Search options...\"\n placeholderTextColor=\"#9ca3af\"\n className=\"h-11 px-4 rounded-xl border border-neutral-300 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-800 text-neutral-900 dark:text-neutral-100 text-base\"\n />\n </View>\n )}\n\n <ScrollView className=\"max-h-80\" showsVerticalScrollIndicator={false}>\n {filteredOptions.length === 0 ? (\n <View className=\"py-8 items-center\">\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-sm\">No options found</Text>\n </View>\n ) : (\n filteredOptions.map((opt) => {\n const isSelected = opt.value === currentValue;\n return (\n <Pressable\n key={opt.value}\n disabled={opt.disabled}\n onPress={() => handleSelect(opt.value)}\n className={cn(\n \"flex-row items-center justify-between py-3.5 px-3 rounded-xl active:bg-neutral-100 dark:active:bg-neutral-800\",\n isSelected && \"bg-primary-50 dark:bg-primary-950/40\",\n opt.disabled && \"opacity-40\"\n )}\n >\n <Text\n className={cn(\n \"text-base\",\n isSelected\n ? \"text-primary-600 dark:text-primary-400 font-semibold\"\n : \"text-neutral-900 dark:text-neutral-100 font-normal\"\n )}\n >\n {opt.label}\n </Text>\n {isSelected && (\n <Text className=\"text-primary-600 dark:text-primary-400 font-bold text-base\">✓</Text>\n )}\n </Pressable>\n );\n })\n )}\n </ScrollView>\n </View>\n </View>\n </Modal>\n )}\n </View>\n </SelectContext.Provider>\n );\n};\nSelect.displayName = \"Select\";\n\n// --- Compound Subcomponents ---\n\nexport interface SelectTriggerProps extends ViewProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const SelectTrigger: React.FC<SelectTriggerProps> = ({\n className,\n children,\n ...props\n}) => {\n const { setOpen, open } = useSelectContext();\n return (\n <Pressable\n onPress={() => setOpen(true)}\n accessibilityRole=\"combobox\"\n accessibilityState={{ expanded: open }}\n className={cn(\n \"flex-row items-center justify-between rounded-xl border border-neutral-300 dark:border-neutral-700 bg-white dark:bg-neutral-900 px-4 py-3 active:opacity-80\",\n className\n )}\n {...props}\n >\n {children}\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-xs\">▼</Text>\n </Pressable>\n );\n};\nSelectTrigger.displayName = \"SelectTrigger\";\n\nexport interface SelectValueProps {\n placeholder?: string;\n className?: string;\n}\n\nexport const SelectValue: React.FC<SelectValueProps> = ({\n placeholder = \"Select...\",\n className,\n}) => {\n const { value } = useSelectContext();\n return (\n <Text\n className={cn(\n \"text-base\",\n value ? \"text-neutral-900 dark:text-neutral-100 font-medium\" : \"text-neutral-500 dark:text-neutral-400\",\n className\n )}\n >\n {value || placeholder}\n </Text>\n );\n};\nSelectValue.displayName = \"SelectValue\";\n\nexport interface SelectContentProps {\n title?: string;\n children: React.ReactNode;\n}\n\nexport const SelectContent: React.FC<SelectContentProps> = ({ title, children }) => {\n const { open, setOpen } = useSelectContext();\n if (!open) return null;\n\n return (\n <Modal\n transparent\n visible={open}\n animationType=\"fade\"\n onRequestClose={() => setOpen(false)}\n statusBarTranslucent\n >\n <View className=\"flex-1 justify-end bg-black/60\">\n <Pressable className=\"flex-1\" onPress={() => setOpen(false)} />\n <View className=\"w-full bg-white dark:bg-neutral-900 rounded-t-3xl border-t border-neutral-200 dark:border-neutral-800 p-6 max-h-[75%]\">\n <View className=\"flex-row items-center justify-between pb-3 border-b border-neutral-200 dark:border-neutral-800 mb-3\">\n <Text className=\"text-lg font-bold text-neutral-900 dark:text-neutral-100\">{title || \"Select\"}</Text>\n <Pressable onPress={() => setOpen(false)} className=\"p-1\">\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-lg font-semibold\">✕</Text>\n </Pressable>\n </View>\n <ScrollView className=\"max-h-80\">{children}</ScrollView>\n </View>\n </View>\n </Modal>\n );\n};\nSelectContent.displayName = \"SelectContent\";\n\nexport interface SelectItemProps {\n value: string;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const SelectItem: React.FC<SelectItemProps> = ({\n value: itemValue,\n className,\n children,\n}) => {\n const { value: selectedValue, onSelect } = useSelectContext();\n const isSelected = selectedValue === itemValue;\n\n return (\n <Pressable\n onPress={() => onSelect(itemValue)}\n className={cn(\n \"flex-row items-center justify-between py-3.5 px-3 rounded-xl active:bg-neutral-100 dark:active:bg-neutral-800\",\n isSelected && \"bg-primary-50 dark:bg-primary-950/40\",\n className\n )}\n >\n {typeof children === \"string\" ? (\n <Text\n className={cn(\n \"text-base\",\n isSelected ? \"text-primary-600 dark:text-primary-400 font-semibold\" : \"text-neutral-900 dark:text-neutral-100 font-normal\"\n )}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {isSelected && <Text className=\"text-primary-600 dark:text-primary-400 font-bold text-base\">✓</Text>}\n </Pressable>\n );\n};\nSelectItem.displayName = \"SelectItem\";\n","import * as React from \"react\";\nimport {\n View,\n ScrollView,\n Pressable,\n type ViewProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../text/text\";\nimport { Input } from \"../input/input\";\nimport { Button } from \"../button/button\";\nimport { Card, CardContent } from \"../card/card\";\nimport { Skeleton } from \"../skeleton/skeleton\";\n\nexport interface Column<T> {\n key: keyof T | string;\n title: string;\n sortable?: boolean;\n align?: \"left\" | \"center\" | \"right\";\n width?: number;\n render?: (value: any, item: T) => React.ReactNode;\n}\n\nexport interface DataTableProps<T extends Record<string, any>> extends ViewProps {\n columns: Column<T>[];\n data: T[];\n keyExtractor?: (item: T, index: number) => string;\n mode?: \"table\" | \"card\";\n searchable?: boolean;\n searchPlaceholder?: string;\n searchKeys?: (keyof T)[];\n loading?: boolean;\n pageSize?: number;\n emptyText?: string;\n onRowPress?: (item: T) => void;\n className?: string;\n}\n\nexport function DataTable<T extends Record<string, any>>({\n columns,\n data,\n keyExtractor = (_, i) => String(i),\n mode = \"card\",\n searchable = true,\n searchPlaceholder = \"Search records...\",\n searchKeys,\n loading = false,\n pageSize = 5,\n emptyText = \"No records found\",\n onRowPress,\n className,\n ...props\n}: DataTableProps<T>) {\n const [search, setSearch] = React.useState(\"\");\n const [sortKey, setSortKey] = React.useState<string | null>(null);\n const [sortDirection, setSortDirection] = React.useState<\"asc\" | \"desc\">(\"asc\");\n const [currentPage, setCurrentPage] = React.useState(1);\n\n // Filter\n const filteredData = React.useMemo(() => {\n if (!search.trim()) return data;\n const query = search.toLowerCase();\n const keys = searchKeys || (columns.map((c) => c.key) as (keyof T)[]);\n\n return data.filter((item) => {\n return keys.some((k) => {\n const val = item[k];\n if (val == null) return false;\n return String(val).toLowerCase().includes(query);\n });\n });\n }, [data, search, searchKeys, columns]);\n\n // Sort\n const sortedData = React.useMemo(() => {\n if (!sortKey) return filteredData;\n return [...filteredData].sort((a, b) => {\n const valA = a[sortKey];\n const valB = b[sortKey];\n if (valA === valB) return 0;\n if (valA == null) return 1;\n if (valB == null) return -1;\n\n if (typeof valA === \"number\" && typeof valB === \"number\") {\n return sortDirection === \"asc\" ? valA - valB : valB - valA;\n }\n const strA = String(valA).toLowerCase();\n const strB = String(valB).toLowerCase();\n return sortDirection === \"asc\"\n ? strA.localeCompare(strB)\n : strB.localeCompare(strA);\n });\n }, [filteredData, sortKey, sortDirection]);\n\n // Pagination\n const totalPages = Math.max(1, Math.ceil(sortedData.length / pageSize));\n const paginatedData = React.useMemo(() => {\n const start = (currentPage - 1) * pageSize;\n return sortedData.slice(start, start + pageSize);\n }, [sortedData, currentPage, pageSize]);\n\n const handleSort = (colKey: string) => {\n if (sortKey === colKey) {\n if (sortDirection === \"asc\") {\n setSortDirection(\"desc\");\n } else {\n setSortKey(null);\n setSortDirection(\"asc\");\n }\n } else {\n setSortKey(colKey);\n setSortDirection(\"asc\");\n }\n };\n\n return (\n <View className={cn(\"w-full gap-4\", className)} {...props}>\n {/* Search Input */}\n {searchable && (\n <Input\n placeholder={searchPlaceholder}\n value={search}\n onChangeText={(val) => {\n setSearch(val);\n setCurrentPage(1);\n }}\n />\n )}\n\n {/* Loading Skeleton */}\n {loading ? (\n <View className=\"gap-3\">\n {[1, 2, 3].map((idx) => (\n <Skeleton key={idx} className=\"h-20 w-full rounded-2xl\" />\n ))}\n </View>\n ) : paginatedData.length === 0 ? (\n <Card className=\"items-center justify-center p-8\">\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-base\">{emptyText}</Text>\n </Card>\n ) : mode === \"card\" ? (\n /* Mobile Card Mode */\n <View className=\"gap-3\">\n {paginatedData.map((item, idx) => (\n <Pressable\n key={keyExtractor(item, idx)}\n disabled={!onRowPress}\n onPress={() => onRowPress?.(item)}\n className=\"active:opacity-80\"\n >\n <Card className=\"p-4 gap-2\">\n {columns.map((col) => {\n const rawVal = item[col.key as string];\n const renderedVal = col.render ? col.render(rawVal, item) : String(rawVal ?? \"—\");\n\n return (\n <View\n key={String(col.key)}\n className=\"flex-row items-center justify-between py-1 border-b border-neutral-200 dark:border-neutral-800 last:border-b-0\"\n >\n <Text className=\"text-xs font-semibold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider\">\n {col.title}\n </Text>\n <View className=\"shrink\">\n {typeof renderedVal === \"string\" ? (\n <Text className=\"text-sm font-medium text-neutral-900 dark:text-neutral-100\">\n {renderedVal}\n </Text>\n ) : (\n renderedVal\n )}\n </View>\n </View>\n );\n })}\n </Card>\n </Pressable>\n ))}\n </View>\n ) : (\n /* Horizontal Table Mode */\n <ScrollView horizontal showsHorizontalScrollIndicator={false}>\n <View className=\"rounded-2xl border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 overflow-hidden\">\n {/* Header */}\n <View className=\"flex-row bg-neutral-100 dark:bg-neutral-800/60 border-b border-neutral-200 dark:border-neutral-800\">\n {columns.map((col) => (\n <Pressable\n key={String(col.key)}\n disabled={!col.sortable}\n onPress={() => handleSort(String(col.key))}\n style={{ width: col.width || 120 }}\n className=\"px-4 py-3 flex-row items-center justify-between\"\n >\n <Text className=\"text-xs font-bold text-neutral-900 dark:text-neutral-100 uppercase tracking-wider\">\n {col.title}\n </Text>\n {col.sortable && (\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n {sortKey === col.key\n ? sortDirection === \"asc\"\n ? \"▲\"\n : \"▼\"\n : \"⇅\"}\n </Text>\n )}\n </Pressable>\n ))}\n </View>\n\n {/* Rows */}\n {paginatedData.map((item, idx) => (\n <Pressable\n key={keyExtractor(item, idx)}\n disabled={!onRowPress}\n onPress={() => onRowPress?.(item)}\n className=\"flex-row border-b border-neutral-200 dark:border-neutral-800 active:bg-neutral-100 dark:active:bg-neutral-800\"\n >\n {columns.map((col) => {\n const rawVal = item[col.key as string];\n const renderedVal = col.render ? col.render(rawVal, item) : String(rawVal ?? \"—\");\n\n return (\n <View\n key={String(col.key)}\n style={{ width: col.width || 120 }}\n className=\"px-4 py-3 justify-center\"\n >\n {typeof renderedVal === \"string\" ? (\n <Text className=\"text-sm text-neutral-900 dark:text-neutral-100\">{renderedVal}</Text>\n ) : (\n renderedVal\n )}\n </View>\n );\n })}\n </Pressable>\n ))}\n </View>\n </ScrollView>\n )}\n\n {/* Pagination Footer */}\n {totalPages > 1 && (\n <View className=\"flex-row items-center justify-between pt-2\">\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n Showing {(currentPage - 1) * pageSize + 1} -{\" \"}\n {Math.min(currentPage * pageSize, sortedData.length)} of{\" \"}\n {sortedData.length}\n </Text>\n\n <View className=\"flex-row items-center gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n disabled={currentPage <= 1}\n onPress={() => setCurrentPage((p) => Math.max(1, p - 1))}\n >\n Prev\n </Button>\n <Text className=\"text-xs font-medium text-neutral-900 dark:text-neutral-100 px-1\">\n {currentPage} / {totalPages}\n </Text>\n <Button\n variant=\"outline\"\n size=\"sm\"\n disabled={currentPage >= totalPages}\n onPress={() => setCurrentPage((p) => Math.min(totalPages, p + 1))}\n >\n Next\n </Button>\n </View>\n </View>\n )}\n </View>\n );\n}\n","import * as React from \"react\";\nimport {\n View,\n ScrollView,\n KeyboardAvoidingView,\n Platform,\n Pressable,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../../components/text/text\";\nimport { Heading } from \"../../components/text/heading\";\nimport { Input } from \"../../components/input/input\";\nimport { Button } from \"../../components/button/button\";\nimport { Checkbox } from \"../../components/checkbox/checkbox\";\nimport { Alert, AlertDescription } from \"../../components/alert/alert\";\nimport { Separator } from \"../../components/separator/separator\";\n\nexport interface SignInTemplateProps {\n title?: string;\n subtitle?: string;\n logo?: React.ReactNode;\n onSubmit?: (data: { email: string; password: string; rememberMe: boolean }) => void;\n onForgotPassword?: () => void;\n onSignUpPress?: () => void;\n onGooglePress?: () => void;\n onApplePress?: () => void;\n isLoading?: boolean;\n error?: string | null;\n className?: string;\n}\n\nexport const SignInTemplate: React.FC<SignInTemplateProps> = ({\n title = \"Welcome Back\",\n subtitle = \"Sign in to your Beyond account to continue\",\n logo,\n onSubmit,\n onForgotPassword,\n onSignUpPress,\n onGooglePress,\n onApplePress,\n isLoading = false,\n error,\n className,\n}) => {\n const [email, setEmail] = React.useState(\"\");\n const [password, setPassword] = React.useState(\"\");\n const [showPassword, setShowPassword] = React.useState(false);\n const [rememberMe, setRememberMe] = React.useState(false);\n const [emailError, setEmailError] = React.useState<string | undefined>();\n const [passwordError, setPasswordError] = React.useState<string | undefined>();\n\n const handleSubmit = () => {\n let valid = true;\n setEmailError(undefined);\n setPasswordError(undefined);\n\n if (!email || !email.includes(\"@\")) {\n setEmailError(\"Please enter a valid email address\");\n valid = false;\n }\n if (!password || password.length < 6) {\n setPasswordError(\"Password must be at least 6 characters\");\n valid = false;\n }\n\n if (valid) {\n onSubmit?.({ email, password, rememberMe });\n }\n };\n\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === \"ios\" ? \"padding\" : \"height\"}\n style={{ flex: 1 }}\n className={cn(\"flex-1 bg-neutral-50 dark:bg-neutral-950\", className)}\n >\n <ScrollView\n style={{ flex: 1 }}\n contentContainerStyle={{ flexGrow: 1, justifyContent: \"center\" }}\n className=\"px-6 py-8\"\n keyboardShouldPersistTaps=\"handled\"\n showsVerticalScrollIndicator={false}\n >\n <View className=\"w-full max-w-md mx-auto gap-6\">\n {/* Logo & Header */}\n <View className=\"items-center gap-2\">\n {logo && <View className=\"mb-2\">{logo}</View>}\n <Heading level={2} className=\"text-3xl font-extrabold text-neutral-900 dark:text-neutral-50 text-center\">\n {title}\n </Heading>\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-center text-base\">\n {subtitle}\n </Text>\n </View>\n\n {/* Error Banner */}\n {error && (\n <Alert variant=\"danger\">\n <AlertDescription>{error}</AlertDescription>\n </Alert>\n )}\n\n {/* Fields */}\n <View className=\"gap-4\">\n <Input\n label=\"Email Address\"\n placeholder=\"you@company.com\"\n keyboardType=\"email-address\"\n autoCapitalize=\"none\"\n autoCorrect={false}\n value={email}\n onChangeText={(text) => {\n setEmail(text);\n if (emailError) setEmailError(undefined);\n }}\n error={emailError}\n />\n\n <View className=\"gap-1\">\n <Input\n label=\"Password\"\n placeholder=\"••••••••\"\n secureTextEntry={!showPassword}\n value={password}\n onChangeText={(text) => {\n setPassword(text);\n if (passwordError) setPasswordError(undefined);\n }}\n error={passwordError}\n rightElement={\n <Pressable onPress={() => setShowPassword((p) => !p)} className=\"p-1\">\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400 font-semibold\">\n {showPassword ? \"HIDE\" : \"SHOW\"}\n </Text>\n </Pressable>\n }\n />\n </View>\n\n {/* Remember & Forgot */}\n <View className=\"flex-row items-center justify-between py-1\">\n <View className=\"flex-row items-center gap-2\">\n <Checkbox checked={rememberMe} onCheckedChange={setRememberMe} />\n <Text className=\"text-sm text-neutral-900 dark:text-neutral-100\">Remember me</Text>\n </View>\n\n {onForgotPassword && (\n <Pressable onPress={onForgotPassword}>\n <Text className=\"text-sm font-semibold text-primary-600 dark:text-primary-400\">\n Forgot password?\n </Text>\n </Pressable>\n )}\n </View>\n\n {/* Submit */}\n <Button\n variant=\"primary\"\n size=\"lg\"\n loading={isLoading}\n onPress={handleSubmit}\n className=\"mt-2\"\n >\n Sign In\n </Button>\n </View>\n\n {/* Social Logins */}\n {(onGooglePress || onApplePress) && (\n <View className=\"gap-4\">\n <View className=\"flex-row items-center gap-3\">\n <Separator className=\"flex-1\" />\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400 uppercase\">or continue with</Text>\n <Separator className=\"flex-1\" />\n </View>\n\n <View className=\"flex-row gap-3\">\n {onGooglePress && (\n <Button\n variant=\"outline\"\n className=\"flex-1\"\n onPress={onGooglePress}\n >\n Google\n </Button>\n )}\n {onApplePress && (\n <Button\n variant=\"outline\"\n className=\"flex-1\"\n onPress={onApplePress}\n >\n Apple\n </Button>\n )}\n </View>\n </View>\n )}\n\n {/* Switch to SignUp */}\n {onSignUpPress && (\n <View className=\"flex-row justify-center items-center gap-1.5 pt-2\">\n <Text className=\"text-sm text-neutral-500 dark:text-neutral-400\">Don't have an account?</Text>\n <Pressable onPress={onSignUpPress}>\n <Text className=\"text-sm font-bold text-primary-600 dark:text-primary-400\">Sign Up</Text>\n </Pressable>\n </View>\n )}\n </View>\n </ScrollView>\n </KeyboardAvoidingView>\n );\n};\n","import * as React from \"react\";\nimport {\n View,\n ScrollView,\n KeyboardAvoidingView,\n Platform,\n Pressable,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../../components/text/text\";\nimport { Heading } from \"../../components/text/heading\";\nimport { Input } from \"../../components/input/input\";\nimport { Button } from \"../../components/button/button\";\nimport { Checkbox } from \"../../components/checkbox/checkbox\";\nimport { Alert, AlertDescription } from \"../../components/alert/alert\";\nimport { Separator } from \"../../components/separator/separator\";\n\nexport interface SignUpTemplateProps {\n title?: string;\n subtitle?: string;\n logo?: React.ReactNode;\n onSubmit?: (data: {\n fullName: string;\n email: string;\n password: string;\n agreeToTerms: boolean;\n }) => void;\n onSignInPress?: () => void;\n onGooglePress?: () => void;\n onApplePress?: () => void;\n isLoading?: boolean;\n error?: string | null;\n className?: string;\n}\n\nexport const SignUpTemplate: React.FC<SignUpTemplateProps> = ({\n title = \"Create Account\",\n subtitle = \"Get started with your free Beyond account\",\n logo,\n onSubmit,\n onSignInPress,\n onGooglePress,\n onApplePress,\n isLoading = false,\n error,\n className,\n}) => {\n const [fullName, setFullName] = React.useState(\"\");\n const [email, setEmail] = React.useState(\"\");\n const [password, setPassword] = React.useState(\"\");\n const [agreeToTerms, setAgreeToTerms] = React.useState(false);\n\n const [nameError, setNameError] = React.useState<string | undefined>();\n const [emailError, setEmailError] = React.useState<string | undefined>();\n const [passwordError, setPasswordError] = React.useState<string | undefined>();\n const [termsError, setTermsError] = React.useState<string | undefined>();\n\n const handleSubmit = () => {\n let valid = true;\n setNameError(undefined);\n setEmailError(undefined);\n setPasswordError(undefined);\n setTermsError(undefined);\n\n if (!fullName.trim()) {\n setNameError(\"Full name is required\");\n valid = false;\n }\n if (!email || !email.includes(\"@\")) {\n setEmailError(\"Please enter a valid email address\");\n valid = false;\n }\n if (!password || password.length < 8) {\n setPasswordError(\"Password must be at least 8 characters\");\n valid = false;\n }\n if (!agreeToTerms) {\n setTermsError(\"You must agree to the Terms of Service\");\n valid = false;\n }\n\n if (valid) {\n onSubmit?.({ fullName, email, password, agreeToTerms });\n }\n };\n\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === \"ios\" ? \"padding\" : \"height\"}\n style={{ flex: 1 }}\n className={cn(\"flex-1 bg-neutral-50 dark:bg-neutral-950\", className)}\n >\n <ScrollView\n style={{ flex: 1 }}\n contentContainerStyle={{ flexGrow: 1, justifyContent: \"center\" }}\n className=\"px-6 py-8\"\n keyboardShouldPersistTaps=\"handled\"\n showsVerticalScrollIndicator={false}\n >\n <View className=\"w-full max-w-md mx-auto gap-6\">\n {/* Header */}\n <View className=\"items-center gap-2\">\n {logo && <View className=\"mb-2\">{logo}</View>}\n <Heading level={2} className=\"text-3xl font-extrabold text-neutral-900 dark:text-neutral-50 text-center\">\n {title}\n </Heading>\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-center text-base\">\n {subtitle}\n </Text>\n </View>\n\n {/* Error Alert */}\n {error && (\n <Alert variant=\"danger\">\n <AlertDescription>{error}</AlertDescription>\n </Alert>\n )}\n\n {/* Form */}\n <View className=\"gap-4\">\n <Input\n label=\"Full Name\"\n placeholder=\"Mark Otto\"\n value={fullName}\n onChangeText={(text) => {\n setFullName(text);\n if (nameError) setNameError(undefined);\n }}\n error={nameError}\n />\n\n <Input\n label=\"Email Address\"\n placeholder=\"you@company.com\"\n keyboardType=\"email-address\"\n autoCapitalize=\"none\"\n value={email}\n onChangeText={(text) => {\n setEmail(text);\n if (emailError) setEmailError(undefined);\n }}\n error={emailError}\n />\n\n <Input\n label=\"Password\"\n placeholder=\"At least 8 characters\"\n secureTextEntry\n value={password}\n onChangeText={(text) => {\n setPassword(text);\n if (passwordError) setPasswordError(undefined);\n }}\n error={passwordError}\n />\n\n {/* Terms checkbox */}\n <View className=\"gap-1\">\n <View className=\"flex-row items-center gap-2 pt-1\">\n <Checkbox\n checked={agreeToTerms}\n onCheckedChange={(checked) => {\n setAgreeToTerms(checked);\n if (termsError) setTermsError(undefined);\n }}\n />\n <Text className=\"text-sm text-neutral-900 dark:text-neutral-100 flex-1\">\n I agree to the Terms of Service & Privacy Policy\n </Text>\n </View>\n {termsError && (\n <Text className=\"text-xs text-danger font-medium\">{termsError}</Text>\n )}\n </View>\n\n {/* Submit */}\n <Button\n variant=\"primary\"\n size=\"lg\"\n loading={isLoading}\n onPress={handleSubmit}\n className=\"mt-2\"\n >\n Create Account\n </Button>\n </View>\n\n {/* Social Logins */}\n {(onGooglePress || onApplePress) && (\n <View className=\"gap-4\">\n <View className=\"flex-row items-center gap-3\">\n <Separator className=\"flex-1\" />\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400 uppercase\">or continue with</Text>\n <Separator className=\"flex-1\" />\n </View>\n\n <View className=\"flex-row gap-3\">\n {onGooglePress && (\n <Button\n variant=\"outline\"\n className=\"flex-1\"\n onPress={onGooglePress}\n >\n Google\n </Button>\n )}\n {onApplePress && (\n <Button\n variant=\"outline\"\n className=\"flex-1\"\n onPress={onApplePress}\n >\n Apple\n </Button>\n )}\n </View>\n </View>\n )}\n\n {/* Back to SignIn */}\n {onSignInPress && (\n <View className=\"flex-row justify-center items-center gap-1.5 pt-2\">\n <Text className=\"text-sm text-neutral-500 dark:text-neutral-400\">Already have an account?</Text>\n <Pressable onPress={onSignInPress}>\n <Text className=\"text-sm font-bold text-primary-600 dark:text-primary-400\">Sign In</Text>\n </Pressable>\n </View>\n )}\n </View>\n </ScrollView>\n </KeyboardAvoidingView>\n );\n};\n","import * as React from \"react\";\nimport {\n View,\n ScrollView,\n KeyboardAvoidingView,\n Platform,\n Pressable,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../../components/text/text\";\nimport { Heading } from \"../../components/text/heading\";\nimport { Input } from \"../../components/input/input\";\nimport { Button } from \"../../components/button/button\";\nimport { Alert, AlertDescription } from \"../../components/alert/alert\";\n\nexport interface ForgotPasswordTemplateProps {\n title?: string;\n subtitle?: string;\n onSubmit?: (data: { email: string }) => void;\n onBackToSignIn?: () => void;\n isLoading?: boolean;\n isSuccess?: boolean;\n error?: string | null;\n className?: string;\n}\n\nexport const ForgotPasswordTemplate: React.FC<ForgotPasswordTemplateProps> = ({\n title = \"Reset Password\",\n subtitle = \"Enter your email address and we'll send you recovery instructions\",\n onSubmit,\n onBackToSignIn,\n isLoading = false,\n isSuccess = false,\n error,\n className,\n}) => {\n const [email, setEmail] = React.useState(\"\");\n const [emailError, setEmailError] = React.useState<string | undefined>();\n\n const handleSubmit = () => {\n if (!email || !email.includes(\"@\")) {\n setEmailError(\"Please enter a valid email address\");\n return;\n }\n setEmailError(undefined);\n onSubmit?.({ email });\n };\n\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === \"ios\" ? \"padding\" : \"height\"}\n style={{ flex: 1 }}\n className={cn(\"flex-1 bg-neutral-50 dark:bg-neutral-950\", className)}\n >\n <ScrollView\n style={{ flex: 1 }}\n contentContainerStyle={{ flexGrow: 1, justifyContent: \"center\" }}\n className=\"px-6 py-8\"\n keyboardShouldPersistTaps=\"handled\"\n showsVerticalScrollIndicator={false}\n >\n <View className=\"w-full max-w-md mx-auto gap-6\">\n <View className=\"items-center gap-2\">\n <Heading level={2} className=\"text-3xl font-extrabold text-neutral-900 dark:text-neutral-50 text-center\">\n {title}\n </Heading>\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-center text-base\">\n {subtitle}\n </Text>\n </View>\n\n {error && (\n <Alert variant=\"danger\">\n <AlertDescription>{error}</AlertDescription>\n </Alert>\n )}\n\n {isSuccess ? (\n <View className=\"gap-4\">\n <Alert variant=\"success\">\n <AlertDescription>\n Password reset link sent! Check your email inbox.\n </AlertDescription>\n </Alert>\n\n {onBackToSignIn && (\n <Button variant=\"primary\" size=\"lg\" onPress={onBackToSignIn}>\n Back to Sign In\n </Button>\n )}\n </View>\n ) : (\n <View className=\"gap-4\">\n <Input\n label=\"Email Address\"\n placeholder=\"you@company.com\"\n keyboardType=\"email-address\"\n autoCapitalize=\"none\"\n value={email}\n onChangeText={(text) => {\n setEmail(text);\n if (emailError) setEmailError(undefined);\n }}\n error={emailError}\n />\n\n <Button\n variant=\"primary\"\n size=\"lg\"\n loading={isLoading}\n onPress={handleSubmit}\n className=\"mt-2\"\n >\n Send Reset Link\n </Button>\n\n {onBackToSignIn && (\n <View className=\"flex-row justify-center items-center gap-1.5 pt-2\">\n <Pressable onPress={onBackToSignIn}>\n <Text className=\"text-sm font-semibold text-primary-600 dark:text-primary-400\">\n Back to Sign In\n </Text>\n </Pressable>\n </View>\n )}\n </View>\n )}\n </View>\n </ScrollView>\n </KeyboardAvoidingView>\n );\n};\n","import * as React from \"react\";\nimport {\n View,\n ScrollView,\n Pressable,\n type ViewProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../../components/text/text\";\nimport { Heading } from \"../../components/text/heading\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"../../components/avatar/avatar\";\nimport { Badge } from \"../../components/badge/badge\";\nimport { Card, CardHeader, CardTitle, CardContent } from \"../../components/card/card\";\nimport { StatsCard, type StatsCardProps } from \"../../components/stats-card/stats-card\";\nimport { Button } from \"../../components/button/button\";\n\nexport interface DashboardMetric extends StatsCardProps {\n id: string;\n}\n\nexport interface DashboardActivity {\n id: string;\n title: string;\n subtitle: string;\n timestamp: string;\n amount?: string;\n status?: {\n label: string;\n variant: \"primary\" | \"secondary\" | \"success\" | \"warning\" | \"danger\" | \"outline\";\n };\n avatarUrl?: string;\n avatarInitials?: string;\n}\n\nexport interface DashboardQuickAction {\n id: string;\n label: string;\n icon?: string;\n onPress: () => void;\n}\n\nexport interface DashboardTemplateProps extends ViewProps {\n userName: string;\n userRole?: string;\n userAvatarUrl?: string;\n metrics: DashboardMetric[];\n quickActions?: DashboardQuickAction[];\n recentActivities?: DashboardActivity[];\n onViewAllActivities?: () => void;\n onNotificationPress?: () => void;\n unreadNotificationsCount?: number;\n className?: string;\n}\n\nexport const DashboardTemplate: React.FC<DashboardTemplateProps> = ({\n userName,\n userRole = \"Administrator\",\n userAvatarUrl,\n metrics,\n quickActions,\n recentActivities,\n onViewAllActivities,\n onNotificationPress,\n unreadNotificationsCount = 0,\n className,\n ...props\n}) => {\n return (\n <ScrollView\n {...props}\n style={[{ flex: 1 }, (props as any).style]}\n className={cn(\"flex-1 bg-neutral-50 dark:bg-neutral-950\", className)}\n contentContainerStyle={{ paddingBottom: 40 }}\n showsVerticalScrollIndicator={false}\n >\n {/* Top Greeting Header */}\n <View className=\"px-6 pt-6 pb-4 flex-row items-center justify-between border-b border-neutral-200 dark:border-neutral-800\">\n <View className=\"flex-row items-center gap-3\">\n <Avatar size=\"lg\">\n {userAvatarUrl && <AvatarImage source={{ uri: userAvatarUrl }} />}\n <AvatarFallback text={userName.slice(0, 2).toUpperCase()} />\n </Avatar>\n <View>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400 font-medium uppercase tracking-wider\">\n {userRole}\n </Text>\n <Heading level={3} className=\"text-xl font-bold text-neutral-900 dark:text-neutral-50\">\n Hello, {userName} 👋\n </Heading>\n </View>\n </View>\n\n {onNotificationPress && (\n <Pressable\n onPress={onNotificationPress}\n className=\"w-10 h-10 rounded-full border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 items-center justify-center relative active:opacity-70\"\n >\n <Text className=\"text-base text-neutral-900 dark:text-neutral-100\">🔔</Text>\n {unreadNotificationsCount > 0 && (\n <View className=\"absolute -top-1 -right-1 w-5 h-5 rounded-full bg-danger items-center justify-center\">\n <Text className=\"text-[10px] font-bold text-white\">\n {unreadNotificationsCount > 9 ? \"9+\" : unreadNotificationsCount}\n </Text>\n </View>\n )}\n </Pressable>\n )}\n </View>\n\n <View className=\"px-6 pt-6 gap-6\">\n {/* Quick Actions */}\n {quickActions && quickActions.length > 0 && (\n <View className=\"gap-2\">\n <Text className=\"text-xs font-bold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider\">\n Quick Actions\n </Text>\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n className=\"-mx-6 px-6\"\n >\n <View className=\"flex-row gap-3\">\n {quickActions.map((action) => (\n <Button\n key={action.id}\n variant=\"outline\"\n size=\"sm\"\n onPress={action.onPress}\n >\n {action.icon ? `${action.icon} ${action.label}` : action.label}\n </Button>\n ))}\n </View>\n </ScrollView>\n </View>\n )}\n\n {/* Metrics Grid */}\n <View className=\"gap-3\">\n <Text className=\"text-xs font-bold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider\">\n Overview Performance\n </Text>\n <View className=\"gap-3\">\n {metrics.map((metric) => (\n <StatsCard key={metric.id} {...metric} />\n ))}\n </View>\n </View>\n\n {/* Recent Activities */}\n {recentActivities && recentActivities.length > 0 && (\n <Card className=\"gap-2\">\n <CardHeader className=\"flex-row items-center justify-between pb-2\">\n <CardTitle className=\"text-base font-bold\">Recent Activity</CardTitle>\n {onViewAllActivities && (\n <Pressable onPress={onViewAllActivities}>\n <Text className=\"text-xs font-semibold text-primary-600 dark:text-primary-400\">View all</Text>\n </Pressable>\n )}\n </CardHeader>\n <CardContent className=\"gap-3 pt-0\">\n {recentActivities.map((act) => (\n <View\n key={act.id}\n className=\"flex-row items-center justify-between py-2 border-b border-neutral-200 dark:border-neutral-800 last:border-b-0\"\n >\n <View className=\"flex-row items-center gap-3 flex-1 pr-2\">\n <Avatar size=\"sm\">\n {act.avatarUrl && <AvatarImage source={{ uri: act.avatarUrl }} />}\n <AvatarFallback\n text={act.avatarInitials || act.title.slice(0, 2).toUpperCase()}\n />\n </Avatar>\n <View className=\"flex-1\">\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\" numberOfLines={1}>\n {act.title}\n </Text>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\" numberOfLines={1}>\n {act.subtitle} • {act.timestamp}\n </Text>\n </View>\n </View>\n\n <View className=\"items-end gap-1\">\n {act.amount && (\n <Text className=\"text-sm font-bold text-neutral-900 dark:text-neutral-100\">\n {act.amount}\n </Text>\n )}\n {act.status && (\n <Badge variant={act.status.variant} size=\"sm\">\n {act.status.label}\n </Badge>\n )}\n </View>\n </View>\n ))}\n </CardContent>\n </Card>\n )}\n </View>\n </ScrollView>\n );\n};\n","import * as React from \"react\";\nimport {\n View,\n ScrollView,\n Pressable,\n type ViewProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../../components/text/text\";\nimport { Heading } from \"../../components/text/heading\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"../../components/avatar/avatar\";\nimport { Badge } from \"../../components/badge/badge\";\nimport { Card } from \"../../components/card/card\";\nimport { Switch } from \"../../components/switch/switch\";\nimport { Button } from \"../../components/button/button\";\nimport { Separator } from \"../../components/separator/separator\";\n\nexport interface SettingsTemplateProps extends ViewProps {\n user: {\n name: string;\n email: string;\n avatarUrl?: string;\n plan?: string;\n };\n pushNotifications?: boolean;\n onTogglePushNotifications?: (val: boolean) => void;\n emailNotifications?: boolean;\n onToggleEmailNotifications?: (val: boolean) => void;\n isDarkMode?: boolean;\n onToggleDarkMode?: (val: boolean) => void;\n biometricsEnabled?: boolean;\n onToggleBiometrics?: (val: boolean) => void;\n onEditProfile?: () => void;\n onChangePassword?: () => void;\n onViewTerms?: () => void;\n onViewPrivacy?: () => void;\n onLogout?: () => void;\n onDeleteAccount?: () => void;\n className?: string;\n}\n\nexport const SettingsTemplate: React.FC<SettingsTemplateProps> = ({\n user,\n pushNotifications = true,\n onTogglePushNotifications,\n emailNotifications = true,\n onToggleEmailNotifications,\n isDarkMode = false,\n onToggleDarkMode,\n biometricsEnabled = false,\n onToggleBiometrics,\n onEditProfile,\n onChangePassword,\n onViewTerms,\n onViewPrivacy,\n onLogout,\n onDeleteAccount,\n className,\n ...props\n}) => {\n return (\n <ScrollView\n {...props}\n style={[{ flex: 1 }, (props as any).style]}\n className={cn(\"flex-1 bg-neutral-50 dark:bg-neutral-950\", className)}\n contentContainerStyle={{ paddingBottom: 40 }}\n showsVerticalScrollIndicator={false}\n >\n <View className=\"px-6 pt-6 gap-6\">\n <Heading level={2} className=\"text-2xl font-bold text-neutral-900 dark:text-neutral-50\">\n Settings & Profile\n </Heading>\n\n {/* User Card */}\n <Card className=\"p-4 flex-row items-center gap-4\">\n <Avatar size=\"lg\">\n {user.avatarUrl && <AvatarImage source={{ uri: user.avatarUrl }} />}\n <AvatarFallback text={user.name.slice(0, 2).toUpperCase()} />\n </Avatar>\n <View className=\"flex-1\">\n <View className=\"flex-row items-center gap-2\">\n <Text className=\"text-base font-bold text-neutral-900 dark:text-neutral-100\">{user.name}</Text>\n {user.plan && (\n <Badge variant=\"primary\" size=\"sm\">\n {user.plan}\n </Badge>\n )}\n </View>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">{user.email}</Text>\n </View>\n {onEditProfile && (\n <Button variant=\"outline\" size=\"sm\" onPress={onEditProfile}>\n Edit\n </Button>\n )}\n </Card>\n\n {/* Preferences Section */}\n <View className=\"gap-2\">\n <Text className=\"text-xs font-bold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider px-1\">\n Preferences\n </Text>\n <Card className=\"divide-y divide-neutral-200 dark:divide-neutral-800\">\n <View className=\"p-4 flex-row items-center justify-between\">\n <View className=\"pr-4 flex-1\">\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">\n Push Notifications\n </Text>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n Receive real-time alerts on your mobile device\n </Text>\n </View>\n <Switch\n checked={pushNotifications}\n onCheckedChange={onTogglePushNotifications}\n />\n </View>\n\n <View className=\"p-4 flex-row items-center justify-between\">\n <View className=\"pr-4 flex-1\">\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">\n Email Notifications\n </Text>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n Weekly digests and activity summaries\n </Text>\n </View>\n <Switch\n checked={emailNotifications}\n onCheckedChange={onToggleEmailNotifications}\n />\n </View>\n\n <View className=\"p-4 flex-row items-center justify-between\">\n <View className=\"pr-4 flex-1\">\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">Dark Theme</Text>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n Enable high contrast dark mode appearance\n </Text>\n </View>\n <Switch checked={isDarkMode} onCheckedChange={onToggleDarkMode} />\n </View>\n\n <View className=\"p-4 flex-row items-center justify-between\">\n <View className=\"pr-4 flex-1\">\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">\n Biometric Login\n </Text>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n Use Face ID or fingerprint to authenticate\n </Text>\n </View>\n <Switch\n checked={biometricsEnabled}\n onCheckedChange={onToggleBiometrics}\n />\n </View>\n </Card>\n </View>\n\n {/* Security & Account Links */}\n <View className=\"gap-2\">\n <Text className=\"text-xs font-bold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider px-1\">\n Account & Security\n </Text>\n <Card className=\"divide-y divide-neutral-200 dark:divide-neutral-800\">\n {onChangePassword && (\n <Pressable\n onPress={onChangePassword}\n className=\"p-4 flex-row items-center justify-between active:bg-neutral-100 dark:active:bg-neutral-800\"\n >\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">\n Change Password\n </Text>\n <Text className=\"text-neutral-400 dark:text-neutral-500 text-xs\">›</Text>\n </Pressable>\n )}\n\n {onViewTerms && (\n <Pressable\n onPress={onViewTerms}\n className=\"p-4 flex-row items-center justify-between active:bg-neutral-100 dark:active:bg-neutral-800\"\n >\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">\n Terms of Service\n </Text>\n <Text className=\"text-neutral-400 dark:text-neutral-500 text-xs\">›</Text>\n </Pressable>\n )}\n\n {onViewPrivacy && (\n <Pressable\n onPress={onViewPrivacy}\n className=\"p-4 flex-row items-center justify-between active:bg-neutral-100 dark:active:bg-neutral-800\"\n >\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">\n Privacy Policy\n </Text>\n <Text className=\"text-neutral-400 dark:text-neutral-500 text-xs\">›</Text>\n </Pressable>\n )}\n </Card>\n </View>\n\n {/* Danger Zone */}\n <View className=\"gap-3 pt-2\">\n {onLogout && (\n <Button variant=\"outline\" size=\"lg\" onPress={onLogout}>\n Log Out\n </Button>\n )}\n\n {onDeleteAccount && (\n <Button\n variant=\"destructive\"\n size=\"lg\"\n onPress={onDeleteAccount}\n >\n Delete Account\n </Button>\n )}\n </View>\n </View>\n </ScrollView>\n );\n};\n","import * as React from \"react\";\nimport { View, useColorScheme as useRNColorScheme } from \"react-native\";\nimport { colorScheme as nwColorScheme } from \"nativewind\";\nimport { PortalHost } from \"@rn-primitives/portal\";\nimport { ToastContext, ToastItem, ToastContextValue } from \"../components/toast/types\";\nimport { ToastContainer } from \"../components/toast/toast\";\n\nexport type ColorScheme = \"light\" | \"dark\" | \"system\";\n\nexport interface BeyondUIContextValue {\n colorScheme: \"light\" | \"dark\";\n setColorScheme: (scheme: ColorScheme) => void;\n toggleColorScheme: () => void;\n}\n\nexport const BeyondUIContext = React.createContext<BeyondUIContextValue>({\n colorScheme: \"light\",\n setColorScheme: () => {},\n toggleColorScheme: () => {},\n});\n\nexport function useBeyondUI() {\n return React.useContext(BeyondUIContext);\n}\n\nexport interface BeyondUIProviderProps {\n children: React.ReactNode;\n defaultColorScheme?: ColorScheme;\n}\n\nexport function BeyondUIProvider({\n children,\n defaultColorScheme = \"system\",\n}: BeyondUIProviderProps) {\n const systemScheme = useRNColorScheme() ?? \"light\";\n const [selectedScheme, setSelectedScheme] = React.useState<ColorScheme>(defaultColorScheme);\n const [toasts, setToasts] = React.useState<ToastItem[]>([]);\n\n const activeScheme: \"light\" | \"dark\" =\n selectedScheme === \"system\" ? systemScheme : selectedScheme;\n\n // Sync NativeWind colorScheme store with BeyondUIProvider active scheme\n React.useEffect(() => {\n try {\n nwColorScheme.set(selectedScheme === \"system\" ? \"system\" : activeScheme);\n } catch (_) {}\n }, [selectedScheme, activeScheme]);\n\n const handleSetColorScheme = React.useCallback((scheme: ColorScheme) => {\n setSelectedScheme(scheme);\n try {\n nwColorScheme.set(scheme === \"system\" ? \"system\" : scheme);\n } catch (_) {}\n }, []);\n\n const toggleColorScheme = React.useCallback(() => {\n setSelectedScheme((prev) => {\n const current = prev === \"system\" ? systemScheme : prev;\n const next = current === \"dark\" ? \"light\" : \"dark\";\n try {\n nwColorScheme.set(next);\n } catch (_) {}\n return next;\n });\n }, [systemScheme]);\n\n const dismissToast = React.useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, []);\n\n const showToast = React.useCallback((toast: Omit<ToastItem, \"id\">) => {\n const id = Math.random().toString(36).substring(2, 9);\n setToasts((prev) => [...prev, { ...toast, id }]);\n return id;\n }, []);\n\n const toastContextValue: ToastContextValue = React.useMemo(\n () => ({\n toasts,\n show: showToast,\n dismiss: dismissToast,\n success: (title, description) =>\n showToast({ title, description, variant: \"success\" }),\n danger: (title, description) =>\n showToast({ title, description, variant: \"danger\" }),\n error: (title, description) =>\n showToast({ title, description, variant: \"danger\" }),\n warning: (title, description) =>\n showToast({ title, description, variant: \"warning\" }),\n info: (title, description) =>\n showToast({ title, description, variant: \"info\" }),\n }),\n [toasts, showToast, dismissToast]\n );\n\n const contextValue: BeyondUIContextValue = React.useMemo(\n () => ({\n colorScheme: activeScheme,\n setColorScheme: handleSetColorScheme,\n toggleColorScheme,\n }),\n [activeScheme, handleSetColorScheme, toggleColorScheme]\n );\n\n return (\n <BeyondUIContext.Provider value={contextValue}>\n <ToastContext.Provider value={toastContextValue}>\n <View\n style={{ flex: 1 }}\n className={activeScheme === \"dark\" ? \"dark flex-1 bg-neutral-950\" : \"flex-1 bg-white\"}\n >\n {children}\n <PortalHost />\n <ToastContainer toasts={toasts} onDismiss={dismissToast} />\n </View>\n </ToastContext.Provider>\n </BeyondUIContext.Provider>\n );\n}\n","export const tokens = {\n colors: {\n primary: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\",\n 950: \"#172554\",\n DEFAULT: \"#2563eb\",\n },\n secondary: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\",\n 950: \"#020617\",\n DEFAULT: \"#475569\",\n },\n danger: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\",\n 950: \"#450a0a\",\n DEFAULT: \"#dc2626\",\n },\n // Alias for shadcn / React Native convention compatibility\n destructive: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\",\n 950: \"#450a0a\",\n DEFAULT: \"#dc2626\",\n },\n success: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\",\n 950: \"#052e16\",\n DEFAULT: \"#16a34a\",\n },\n warning: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\",\n 950: \"#451a03\",\n DEFAULT: \"#d97706\",\n },\n neutral: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\",\n 950: \"#030712\",\n },\n semantic: {\n light: {\n background: \"#ffffff\",\n foreground: \"#0f172a\",\n card: \"#ffffff\",\n cardForeground: \"#0f172a\",\n muted: \"#f8fafc\",\n mutedForeground: \"#64748b\",\n border: \"#e2e8f0\",\n input: \"#e2e8f0\",\n },\n dark: {\n background: \"#090d16\",\n foreground: \"#f8fafc\",\n card: \"#0f172a\",\n cardForeground: \"#f8fafc\",\n muted: \"#1e293b\",\n mutedForeground: \"#94a3b8\",\n border: \"#334155\",\n input: \"#334155\",\n },\n },\n },\n radius: {\n none: 0,\n sm: 6,\n md: 10,\n lg: 14,\n xl: 20,\n \"2xl\": 28,\n full: 9999,\n },\n spacing: {\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n \"2xl\": 32,\n \"3xl\": 48,\n },\n} as const;\n\nexport type BeyondUITokens = typeof tokens;\n","import { tokens } from \"./tokens\";\n\nexport { tokens };\n\nexport const beyondUIPreset = {\n darkMode: \"class\",\n theme: {\n extend: {\n colors: {\n primary: tokens.colors.primary,\n secondary: tokens.colors.secondary,\n danger: tokens.colors.danger,\n destructive: tokens.colors.destructive,\n success: tokens.colors.success,\n warning: tokens.colors.warning,\n neutral: tokens.colors.neutral,\n background: tokens.colors.semantic.light.background,\n foreground: tokens.colors.semantic.light.foreground,\n card: {\n DEFAULT: tokens.colors.semantic.light.card,\n foreground: tokens.colors.semantic.light.cardForeground,\n },\n cardForeground: tokens.colors.semantic.light.cardForeground,\n muted: {\n DEFAULT: tokens.colors.semantic.light.mutedForeground,\n foreground: tokens.colors.semantic.light.mutedForeground,\n },\n mutedForeground: tokens.colors.semantic.light.mutedForeground,\n border: tokens.colors.semantic.light.border,\n input: tokens.colors.semantic.light.input,\n },\n borderRadius: {\n none: \"0px\",\n sm: `${tokens.radius.sm}px`,\n md: `${tokens.radius.md}px`,\n lg: `${tokens.radius.lg}px`,\n xl: `${tokens.radius.xl}px`,\n \"2xl\": `${tokens.radius[\"2xl\"]}px`,\n full: \"9999px\",\n },\n },\n },\n};\n\nexport default beyondUIPreset;\n","import type { AccessibilityRole, AccessibilityState } from \"react-native\";\n\nexport interface AccessibilityPropsOptions {\n label?: string;\n hint?: string;\n role?: AccessibilityRole;\n disabled?: boolean;\n selected?: boolean;\n checked?: boolean | \"mixed\";\n busy?: boolean;\n expanded?: boolean;\n}\n\n/**\n * Helper to construct accessible props for React Native components.\n */\nexport function getAccessibilityProps(options: AccessibilityPropsOptions = {}) {\n const { label, hint, role, disabled, selected, checked, busy, expanded } = options;\n\n const state: AccessibilityState = {};\n if (disabled !== undefined) state.disabled = disabled;\n if (selected !== undefined) state.selected = selected;\n if (checked !== undefined) state.checked = checked;\n if (busy !== undefined) state.busy = busy;\n if (expanded !== undefined) state.expanded = expanded;\n\n const hasState = Object.keys(state).length > 0;\n\n return {\n accessible: true,\n ...(label ? { accessibilityLabel: label } : {}),\n ...(hint ? { accessibilityHint: hint } : {}),\n ...(role ? { accessibilityRole: role } : {}),\n ...(hasState ? { accessibilityState: state } : {}),\n };\n}\n\n/**\n * Format a visually hidden text string or accessibility label from parts.\n */\nexport function joinA11yLabels(...parts: (string | undefined | null | false)[]): string {\n return parts.filter(Boolean).join(\", \");\n}\n"],"mappings":"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","names":["Text","React","import_react_native","import_jsx_runtime","RNPressable","React","import_react_native","import_jsx_runtime","Button","React","import_react_native","import_class_variance_authority","import_jsx_runtime","Text","NativeText","React","import_react_native","import_class_variance_authority","import_jsx_runtime","Heading","NativeText","React","import_react_native","import_class_variance_authority","import_jsx_runtime","Input","React","import_react_native","import_jsx_runtime","Textarea","React","import_react_native","import_class_variance_authority","import_jsx_runtime","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","import_react_native","import_class_variance_authority","import_jsx_runtime","React","import_react_native","import_class_variance_authority","import_jsx_runtime","NativeImage","React","import_react_native","import_jsx_runtime","Switch","React","import_react_native","import_jsx_runtime","Checkbox","React","import_react_native","import_jsx_runtime","import_react_native","import_jsx_runtime","React","import_react_native","import_jsx_runtime","React","import_react_native","import_class_variance_authority","import_jsx_runtime","import_react_native","import_jsx_runtime","React","import_react_native","import_jsx_runtime","DialogTrigger","DialogOverlay","DialogContent","DialogTitle","DialogDescription","DialogClose","React","import_react_native","import_jsx_runtime","Tabs","TabsList","TabsTrigger","TabsContent","React","import_react_native","import_class_variance_authority","import_jsx_runtime","React","import_react_native","import_jsx_runtime","React","import_react_native","import_jsx_runtime","Text","React","import_react_native","import_jsx_runtime","Text","React","import_react_native","import_class_variance_authority","import_jsx_runtime","Text","React","import_react_native","import_jsx_runtime","Text","React","import_react_native","import_jsx_runtime","Text","React","import_react_native","import_jsx_runtime","Text","React","import_react_native","import_jsx_runtime","Text","import_react_native","import_jsx_runtime","Text","import_react_native","import_jsx_runtime","Text","React","import_react_native","import_jsx_runtime","useRNColorScheme","nwColorScheme"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/primitives/box.tsx","../src/utilities/cn.ts","../src/primitives/pressable.tsx","../src/components/button/button.tsx","../src/components/text/text.tsx","../src/components/text/heading.tsx","../src/components/input/input.tsx","../src/components/textarea/textarea.tsx","../src/components/card/card.tsx","../src/components/badge/badge.tsx","../src/components/avatar/avatar.tsx","../src/components/switch/switch.tsx","../src/components/checkbox/checkbox.tsx","../src/components/radio/radio.tsx","../src/components/spinner/spinner.tsx","../src/components/skeleton/skeleton.tsx","../src/components/alert/alert.tsx","../src/components/separator/separator.tsx","../src/components/dialog/dialog.tsx","../src/components/tabs/tabs.tsx","../src/components/toast/toast.tsx","../src/components/toast/types.ts","../src/components/stats-card/stats-card.tsx","../src/components/accordion/accordion.tsx","../src/components/bottom-sheet/bottom-sheet.tsx","../src/components/select/select.tsx","../src/components/data-table/data-table.tsx","../src/templates/auth/SignInTemplate.tsx","../src/templates/auth/SignUpTemplate.tsx","../src/templates/auth/ForgotPasswordTemplate.tsx","../src/templates/dashboard/DashboardTemplate.tsx","../src/templates/settings/SettingsTemplate.tsx","../src/providers/BeyondUIProvider.tsx","../src/theme/tokens.ts","../src/theme/preset.ts","../src/utilities/accessibility.ts"],"sourcesContent":["/// <reference path=\"./types/nativewind-env.d.ts\" />\n\n// Primitives\nexport * from \"./primitives\";\n\n// Components\nexport * from \"./components/button\";\nexport * from \"./components/text\";\nexport * from \"./components/input\";\nexport * from \"./components/textarea\";\nexport * from \"./components/card\";\nexport * from \"./components/badge\";\nexport * from \"./components/avatar\";\nexport * from \"./components/switch\";\nexport * from \"./components/checkbox\";\nexport * from \"./components/radio\";\nexport * from \"./components/spinner\";\nexport * from \"./components/skeleton\";\nexport * from \"./components/alert\";\nexport * from \"./components/separator\";\nexport * from \"./components/dialog\";\nexport * from \"./components/tabs\";\nexport * from \"./components/toast\";\nexport * from \"./components/stats-card\";\nexport * from \"./components/accordion\";\nexport * from \"./components/bottom-sheet\";\nexport * from \"./components/select\";\nexport * from \"./components/data-table\";\n\n// Screen Templates\nexport * from \"./templates\";\n\n// Providers & Context\nexport * from \"./providers/BeyondUIProvider\";\n\n// Theme & Tokens\nexport * from \"./theme/tokens\";\nexport { default as beyondUIPreset } from \"./theme/preset\";\n\n// Utilities\nexport * from \"./utilities/cn\";\nexport * from \"./utilities/accessibility\";\n","import * as React from \"react\";\nimport { View, type ViewProps } from \"react-native\";\nimport { cn } from \"../utilities/cn\";\n\nexport interface BoxProps extends ViewProps {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const Box = React.forwardRef<View, BoxProps>(\n ({ className, style, children, ...props }, ref) => {\n return (\n <View\n ref={ref}\n className={cn(className)}\n style={style}\n {...props}\n >\n {children}\n </View>\n );\n }\n);\n\nBox.displayName = \"Box\";\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merges class names with tailwind-merge to avoid style collisions in NativeWind.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n","import * as React from \"react\";\nimport {\n Pressable as RNPressable,\n type PressableProps as RNPressableProps,\n type View,\n type GestureResponderEvent,\n} from \"react-native\";\nimport { cn } from \"../utilities/cn\";\n\nexport interface PressableProps extends Omit<RNPressableProps, \"children\"> {\n className?: string;\n children?: React.ReactNode | ((state: { pressed: boolean }) => React.ReactNode);\n feedback?: \"opacity\" | \"scale\" | \"none\";\n}\n\nexport const Pressable = React.forwardRef<View, PressableProps>(\n (\n {\n className,\n style,\n disabled,\n feedback = \"opacity\",\n children,\n ...props\n },\n ref\n ) => {\n return (\n <RNPressable\n ref={ref}\n disabled={disabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!disabled }}\n className={cn(\n feedback === \"opacity\" && \"active:opacity-70\",\n feedback === \"scale\" && \"active:scale-[0.98]\",\n disabled && \"opacity-50\",\n className\n )}\n style={style}\n {...props}\n >\n {typeof children === \"function\" ? children : children}\n </RNPressable>\n );\n }\n);\n\nPressable.displayName = \"Pressable\";\n","import * as React from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n Text,\n View,\n type PressableProps,\n type TextProps,\n} from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const buttonVariants = cva(\n \"flex-row items-center justify-center rounded-xl transition-colors\",\n {\n variants: {\n variant: {\n primary: \"bg-primary-600 active:bg-primary-700 dark:bg-primary-600 dark:active:bg-primary-700\",\n secondary: \"bg-secondary-600 active:bg-secondary-700 dark:bg-secondary-600 dark:active:bg-secondary-700\",\n danger: \"bg-danger-600 active:bg-danger-700 dark:bg-danger-600 dark:active:bg-danger-700\",\n destructive: \"bg-danger-600 active:bg-danger-700 dark:bg-danger-600 dark:active:bg-danger-700\",\n success: \"bg-success-600 active:bg-success-700 dark:bg-success-600 dark:active:bg-success-700\",\n warning: \"bg-warning-600 active:bg-warning-700 dark:bg-warning-600 dark:active:bg-warning-700\",\n outline: \"border border-neutral-300 dark:border-neutral-700 bg-transparent active:bg-neutral-100 dark:active:bg-neutral-800\",\n ghost: \"bg-transparent active:bg-neutral-100 dark:active:bg-neutral-800\",\n link: \"bg-transparent underline\",\n },\n size: {\n sm: \"min-h-8 px-3 py-1.5 rounded-lg\",\n md: \"min-h-10 px-4 py-2 rounded-xl\",\n lg: \"min-h-12 px-6 py-2.5 rounded-xl\",\n xl: \"min-h-14 px-8 py-3 rounded-2xl\",\n icon: \"min-h-10 min-w-10 p-0 rounded-xl\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n }\n);\n\nexport const buttonTextVariants = cva(\"font-semibold text-center select-none\", {\n variants: {\n variant: {\n primary: \"text-white\",\n secondary: \"text-white\",\n danger: \"text-white\",\n destructive: \"text-white\",\n success: \"text-white\",\n warning: \"text-white\",\n outline: \"text-neutral-800 dark:text-neutral-100\",\n ghost: \"text-neutral-800 dark:text-neutral-100\",\n link: \"text-primary-600 dark:text-primary-400 underline\",\n },\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-base font-semibold\",\n xl: \"text-lg font-bold\",\n icon: \"text-sm\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n});\n\ntype ButtonVariantProps = VariantProps<typeof buttonVariants>;\n\nexport interface ButtonProps\n extends Omit<PressableProps, \"children\">,\n ButtonVariantProps {\n children?: React.ReactNode;\n loading?: boolean;\n disabled?: boolean;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n className?: string;\n textClassName?: string;\n}\n\ninterface ButtonContextValue {\n variant: ButtonVariantProps[\"variant\"];\n size: ButtonVariantProps[\"size\"];\n}\n\nconst ButtonContext = React.createContext<ButtonContextValue>({\n variant: \"primary\",\n size: \"md\",\n});\n\nexport const Button = React.forwardRef<View, ButtonProps>(function Button(\n {\n children,\n variant = \"primary\",\n size = \"md\",\n loading = false,\n disabled = false,\n leftIcon,\n rightIcon,\n className,\n textClassName,\n ...props\n },\n ref\n) {\n const isDisabled = disabled || loading;\n const isLightText = variant === \"outline\" || variant === \"ghost\" || variant === \"link\";\n const spinnerColor = isLightText ? \"#2563eb\" : \"#ffffff\";\n\n return (\n <ButtonContext.Provider value={{ variant, size }}>\n <Pressable\n ref={ref}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n disabled={isDisabled}\n className={cn(\n buttonVariants({ variant, size }),\n isDisabled && \"opacity-50\",\n className\n )}\n {...props}\n >\n {loading ? (\n <ActivityIndicator color={spinnerColor} className=\"mr-2\" size=\"small\" />\n ) : leftIcon ? (\n <View className=\"mr-2\">{leftIcon}</View>\n ) : null}\n\n {typeof children === \"string\" || typeof children === \"number\" ? (\n <Text\n className={cn(\n buttonTextVariants({ variant, size }),\n textClassName\n )}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n\n {rightIcon && !loading ? (\n <View className=\"ml-2\">{rightIcon}</View>\n ) : null}\n </Pressable>\n </ButtonContext.Provider>\n );\n});\n\nButton.displayName = \"Button\";\n\nexport function ButtonText({\n children,\n className,\n ...props\n}: TextProps & { className?: string }) {\n const { variant, size } = React.useContext(ButtonContext);\n return (\n <Text\n className={cn(buttonTextVariants({ variant, size }), className)}\n {...props}\n >\n {children}\n </Text>\n );\n}\n\nButtonText.displayName = \"Button.Text\";\n","import * as React from \"react\";\nimport { Text as NativeText, type TextProps as NativeTextProps } from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const textVariants = cva(\"text-neutral-900 dark:text-neutral-100\", {\n variants: {\n variant: {\n body: \"text-base font-normal\",\n caption: \"text-xs font-normal text-neutral-500 dark:text-neutral-400\",\n label: \"text-sm font-medium text-neutral-700 dark:text-neutral-300\",\n muted: \"text-sm font-normal text-neutral-500 dark:text-neutral-400\",\n lead: \"text-lg font-normal text-neutral-600 dark:text-neutral-300\",\n },\n color: {\n default: \"text-neutral-900 dark:text-neutral-100\",\n muted: \"text-neutral-500 dark:text-neutral-400\",\n primary: \"text-primary-600 dark:text-primary-400\",\n secondary: \"text-secondary-600 dark:text-secondary-400\",\n danger: \"text-danger-600 dark:text-danger-400\",\n success: \"text-success-600 dark:text-success-400\",\n warning: \"text-warning-600 dark:text-warning-400\",\n },\n size: {\n xs: \"text-xs\",\n sm: \"text-sm\",\n base: \"text-base\",\n lg: \"text-lg\",\n xl: \"text-xl\",\n },\n weight: {\n normal: \"font-normal\",\n medium: \"font-medium\",\n semibold: \"font-semibold\",\n bold: \"font-bold\",\n },\n },\n defaultVariants: {\n variant: \"body\",\n },\n});\n\nexport interface TextProps\n extends NativeTextProps,\n VariantProps<typeof textVariants> {\n className?: string;\n}\n\nexport const Text = React.forwardRef<NativeText, TextProps>(function Text(\n { className, variant, color, size, weight, ...props },\n ref\n) {\n return (\n <NativeText\n ref={ref}\n className={cn(textVariants({ variant, color, size, weight }), className)}\n {...props}\n />\n );\n});\n\nText.displayName = \"Text\";\n","import * as React from \"react\";\nimport { Text as NativeText, type TextProps as NativeTextProps } from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const headingVariants = cva(\"font-bold text-neutral-900 dark:text-neutral-50 tracking-tight\", {\n variants: {\n level: {\n h1: \"text-3xl font-extrabold\",\n h2: \"text-2xl font-bold\",\n h3: \"text-xl font-bold\",\n h4: \"text-lg font-semibold\",\n h5: \"text-base font-semibold\",\n h6: \"text-sm font-semibold uppercase tracking-wider\",\n },\n },\n defaultVariants: {\n level: \"h2\",\n },\n});\n\nexport type HeadingLevel = \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | 1 | 2 | 3 | 4 | 5 | 6;\n\nexport interface HeadingProps\n extends NativeTextProps,\n Omit<VariantProps<typeof headingVariants>, \"level\"> {\n level?: HeadingLevel;\n className?: string;\n}\n\nexport const Heading = React.forwardRef<NativeText, HeadingProps>(function Heading(\n { className, level = \"h2\", ...props },\n ref\n) {\n const normalizedLevel =\n typeof level === \"number\"\n ? (`h${level}` as \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\")\n : level;\n\n return (\n <NativeText\n ref={ref}\n accessibilityRole=\"header\"\n className={cn(headingVariants({ level: normalizedLevel }), className)}\n {...props}\n />\n );\n});\n\nHeading.displayName = \"Heading\";\n","import * as React from \"react\";\nimport {\n Text,\n TextInput,\n View,\n type TextInputProps,\n} from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const inputVariants = cva(\n \"w-full rounded-xl border bg-white dark:bg-neutral-900 text-neutral-900 dark:text-neutral-100 px-3.5 flex-row items-center\",\n {\n variants: {\n inputSize: {\n sm: \"min-h-9 py-1 text-sm\",\n md: \"min-h-11 py-2 text-base\",\n lg: \"min-h-14 py-3 text-lg\",\n },\n status: {\n default: \"border-neutral-300 dark:border-neutral-700 focus:border-primary-500\",\n error: \"border-danger-500 dark:border-danger-500\",\n success: \"border-success-500 dark:border-success-500\",\n },\n disabled: {\n true: \"opacity-50 bg-neutral-100 dark:bg-neutral-800\",\n false: \"\",\n },\n },\n defaultVariants: {\n inputSize: \"md\",\n status: \"default\",\n disabled: false,\n },\n }\n);\n\nexport interface InputProps\n extends Omit<TextInputProps, \"editable\">,\n VariantProps<typeof inputVariants> {\n label?: string;\n error?: string;\n helperText?: string;\n leftIcon?: React.ReactNode;\n rightIcon?: React.ReactNode;\n leftElement?: React.ReactNode;\n rightElement?: React.ReactNode;\n disabled?: boolean;\n containerClassName?: string;\n className?: string;\n labelClassName?: string;\n}\n\nexport const Input = React.forwardRef<TextInput, InputProps>(function Input(\n {\n label,\n error,\n helperText,\n leftIcon,\n rightIcon,\n leftElement,\n rightElement,\n disabled = false,\n inputSize = \"md\",\n containerClassName,\n className,\n labelClassName,\n placeholderTextColor,\n accessibilityLabel,\n ...props\n },\n ref\n) {\n const status = error ? \"error\" : \"default\";\n\n return (\n <View className={cn(\"w-full gap-1.5\", containerClassName)}>\n {label ? (\n <Text\n className={cn(\n \"text-sm font-medium text-neutral-800 dark:text-neutral-200\",\n labelClassName\n )}\n >\n {label}\n </Text>\n ) : null}\n\n <View\n className={cn(\n inputVariants({ inputSize, status, disabled }),\n className\n )}\n >\n {leftIcon || leftElement ? (\n <View className=\"mr-2\">{leftIcon ?? leftElement}</View>\n ) : null}\n\n <TextInput\n ref={ref}\n editable={!disabled}\n accessibilityLabel={accessibilityLabel ?? label}\n accessibilityHint={error}\n aria-invalid={!!error}\n placeholderTextColor={\n placeholderTextColor ?? \"#9ca3af\" // neutral-400\n }\n className=\"flex-1 py-1 text-neutral-900 dark:text-neutral-100\"\n {...props}\n />\n\n {rightIcon || rightElement ? (\n <View className=\"ml-2\">{rightIcon ?? rightElement}</View>\n ) : null}\n </View>\n\n {error ? (\n <Text accessibilityRole=\"alert\" className=\"text-xs font-medium text-danger-600 dark:text-danger-400\">\n {error}\n </Text>\n ) : helperText ? (\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n {helperText}\n </Text>\n ) : null}\n </View>\n );\n});\n\nInput.displayName = \"Input\";\n","import * as React from \"react\";\nimport {\n Text,\n TextInput,\n View,\n type TextInputProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface TextareaProps\n extends Omit<TextInputProps, \"multiline\"> {\n label?: string;\n error?: string;\n helperText?: string;\n disabled?: boolean;\n rows?: number;\n containerClassName?: string;\n className?: string;\n labelClassName?: string;\n}\n\nexport const Textarea = React.forwardRef<TextInput, TextareaProps>(function Textarea(\n {\n label,\n error,\n helperText,\n disabled = false,\n rows = 4,\n containerClassName,\n className,\n labelClassName,\n placeholderTextColor,\n accessibilityLabel,\n ...props\n },\n ref\n) {\n const minHeight = Math.max(80, rows * 22);\n\n return (\n <View className={cn(\"w-full gap-1.5\", containerClassName)}>\n {label ? (\n <Text\n className={cn(\n \"text-sm font-medium text-neutral-800 dark:text-neutral-200\",\n labelClassName\n )}\n >\n {label}\n </Text>\n ) : null}\n\n <TextInput\n ref={ref}\n multiline\n textAlignVertical=\"top\"\n editable={!disabled}\n accessibilityLabel={accessibilityLabel ?? label}\n accessibilityHint={error}\n aria-invalid={!!error}\n placeholderTextColor={placeholderTextColor ?? \"#9ca3af\"}\n style={{ minHeight }}\n className={cn(\n \"w-full rounded-xl border bg-white dark:bg-neutral-900 text-neutral-900 dark:text-neutral-100 p-3.5 text-base\",\n error\n ? \"border-danger-500 dark:border-danger-500\"\n : \"border-neutral-300 dark:border-neutral-700 focus:border-primary-500\",\n disabled && \"opacity-50 bg-neutral-100 dark:bg-neutral-800\",\n className\n )}\n {...props}\n />\n\n {error ? (\n <Text accessibilityRole=\"alert\" className=\"text-xs font-medium text-danger-600 dark:text-danger-400\">\n {error}\n </Text>\n ) : helperText ? (\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n {helperText}\n </Text>\n ) : null}\n </View>\n );\n});\n\nTextarea.displayName = \"Textarea\";\n","import * as React from \"react\";\nimport { View, Text, type ViewProps, type TextProps } from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const cardVariants = cva(\n \"w-full rounded-2xl border bg-white dark:bg-neutral-900 overflow-hidden\",\n {\n variants: {\n variant: {\n default: \"border-neutral-200 dark:border-neutral-800 shadow-sm\",\n elevated: \"border-neutral-200/80 dark:border-neutral-800 shadow-md\",\n outlined: \"border-2 border-primary-200 dark:border-primary-800\",\n ghost: \"border-transparent bg-transparent shadow-none\",\n },\n padding: {\n none: \"p-0\",\n sm: \"p-3\",\n md: \"p-4\",\n lg: \"p-6\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n padding: \"none\",\n },\n }\n);\n\nexport interface CardProps\n extends ViewProps,\n VariantProps<typeof cardVariants> {\n className?: string;\n}\n\nexport const Card = React.forwardRef<View, CardProps>(function Card(\n { className, variant, padding, ...props },\n ref\n) {\n return (\n <View\n ref={ref}\n className={cn(cardVariants({ variant, padding }), className)}\n {...props}\n />\n );\n});\nCard.displayName = \"Card\";\n\nexport const CardHeader = React.forwardRef<\n View,\n ViewProps & { className?: string }\n>(function CardHeader({ className, ...props }, ref) {\n return (\n <View\n ref={ref}\n className={cn(\"flex-col space-y-1.5 p-4 pb-2\", className)}\n {...props}\n />\n );\n});\nCardHeader.displayName = \"Card.Header\";\n\nexport const CardTitle = React.forwardRef<\n Text,\n TextProps & { className?: string }\n>(function CardTitle({ className, ...props }, ref) {\n return (\n <Text\n ref={ref}\n className={cn(\n \"text-lg font-bold tracking-tight text-neutral-900 dark:text-neutral-50\",\n className\n )}\n {...props}\n />\n );\n});\nCardTitle.displayName = \"Card.Title\";\n\nexport const CardDescription = React.forwardRef<\n Text,\n TextProps & { className?: string }\n>(function CardDescription({ className, ...props }, ref) {\n return (\n <Text\n ref={ref}\n className={cn(\"text-sm text-neutral-500 dark:text-neutral-400\", className)}\n {...props}\n />\n );\n});\nCardDescription.displayName = \"Card.Description\";\n\nexport const CardContent = React.forwardRef<\n View,\n ViewProps & { className?: string }\n>(function CardContent({ className, ...props }, ref) {\n return (\n <View\n ref={ref}\n className={cn(\"p-4 pt-1\", className)}\n {...props}\n />\n );\n});\nCardContent.displayName = \"Card.Content\";\n\nexport const CardFooter = React.forwardRef<\n View,\n ViewProps & { className?: string }\n>(function CardFooter({ className, ...props }, ref) {\n return (\n <View\n ref={ref}\n className={cn(\"flex-row items-center p-4 pt-0\", className)}\n {...props}\n />\n );\n});\nCardFooter.displayName = \"Card.Footer\";\n","import * as React from \"react\";\nimport { View, Text, type ViewProps } from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const badgeVariants = cva(\n \"inline-flex flex-row items-center justify-center rounded-full self-start\",\n {\n variants: {\n variant: {\n primary: \"bg-primary-600 dark:bg-primary-500\",\n secondary: \"bg-secondary-600 dark:bg-secondary-500\",\n danger: \"bg-danger-600 dark:bg-danger-500\",\n destructive: \"bg-danger-600 dark:bg-danger-500\",\n success: \"bg-success-600 dark:bg-success-500\",\n warning: \"bg-warning-600 dark:bg-warning-500\",\n outline: \"border border-neutral-300 dark:border-neutral-700 bg-transparent\",\n },\n size: {\n sm: \"px-2 py-0.5\",\n md: \"px-2.5 py-1\",\n lg: \"px-3.5 py-1.5\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n }\n);\n\nexport const badgeTextVariants = cva(\"font-semibold text-center\", {\n variants: {\n variant: {\n primary: \"text-white\",\n secondary: \"text-white\",\n danger: \"text-white\",\n destructive: \"text-white\",\n success: \"text-white\",\n warning: \"text-white\",\n outline: \"text-neutral-700 dark:text-neutral-300\",\n },\n size: {\n sm: \"text-[10px]\",\n md: \"text-xs\",\n lg: \"text-sm\",\n },\n },\n defaultVariants: {\n variant: \"primary\",\n size: \"md\",\n },\n});\n\nexport interface BadgeProps\n extends ViewProps,\n VariantProps<typeof badgeVariants> {\n children?: React.ReactNode;\n className?: string;\n textClassName?: string;\n}\n\nexport function Badge({\n children,\n variant = \"primary\",\n size = \"md\",\n className,\n textClassName,\n ...props\n}: BadgeProps) {\n return (\n <View\n className={cn(badgeVariants({ variant, size }), className)}\n {...props}\n >\n {typeof children === \"string\" || typeof children === \"number\" ? (\n <Text\n className={cn(badgeTextVariants({ variant, size }), textClassName)}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n </View>\n );\n}\n\nBadge.displayName = \"Badge\";\n","import * as React from \"react\";\nimport { View, Text, Image as NativeImage, type ImageProps, type ViewProps } from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const avatarVariants = cva(\n \"relative flex shrink-0 overflow-hidden rounded-full items-center justify-center bg-neutral-200 dark:bg-neutral-800\",\n {\n variants: {\n size: {\n sm: \"h-8 w-8\",\n md: \"h-10 w-10\",\n lg: \"h-14 w-14\",\n xl: \"h-20 w-20\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n);\n\nexport const avatarTextVariants = cva(\"font-semibold text-neutral-700 dark:text-neutral-300\", {\n variants: {\n size: {\n sm: \"text-xs\",\n md: \"text-sm\",\n lg: \"text-lg\",\n xl: \"text-2xl\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ninterface AvatarContextValue {\n size: \"sm\" | \"md\" | \"lg\" | \"xl\";\n}\n\nconst AvatarContext = React.createContext<AvatarContextValue>({ size: \"md\" });\n\nexport interface AvatarProps\n extends ViewProps,\n VariantProps<typeof avatarVariants> {\n className?: string;\n}\n\nexport function Avatar({\n className,\n size = \"md\",\n children,\n ...props\n}: AvatarProps) {\n const currentSize = size ?? \"md\";\n return (\n <AvatarContext.Provider value={{ size: currentSize }}>\n <View\n className={cn(avatarVariants({ size: currentSize }), className)}\n {...props}\n >\n {children}\n </View>\n </AvatarContext.Provider>\n );\n}\nAvatar.displayName = \"Avatar\";\n\nexport interface AvatarImageProps extends ImageProps {\n className?: string;\n}\n\nexport function AvatarImage({ className, ...props }: AvatarImageProps) {\n const [hasError, setHasError] = React.useState(false);\n\n if (hasError) return null;\n\n return (\n <NativeImage\n onError={() => setHasError(true)}\n className={cn(\"h-full w-full rounded-full object-cover\", className)}\n {...props}\n />\n );\n}\nAvatarImage.displayName = \"Avatar.Image\";\n\nexport interface AvatarFallbackProps extends ViewProps {\n children?: React.ReactNode;\n text?: string;\n className?: string;\n textClassName?: string;\n}\n\nexport function AvatarFallback({\n children,\n text,\n className,\n textClassName,\n ...props\n}: AvatarFallbackProps) {\n const { size } = React.useContext(AvatarContext);\n const content = text ?? children;\n\n return (\n <View\n className={cn(\n \"h-full w-full items-center justify-center rounded-full bg-neutral-200 dark:bg-neutral-800\",\n className\n )}\n {...props}\n >\n {typeof content === \"string\" ? (\n <Text\n className={cn(avatarTextVariants({ size }), textClassName)}\n >\n {content}\n </Text>\n ) : (\n content\n )}\n </View>\n );\n}\nAvatarFallback.displayName = \"Avatar.Fallback\";\n","import * as React from \"react\";\nimport {\n Pressable,\n View,\n type GestureResponderEvent,\n type PressableProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface SwitchProps extends Omit<PressableProps, \"onPress\"> {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n className?: string;\n thumbClassName?: string;\n onPress?: (event: GestureResponderEvent) => void;\n}\n\nexport const Switch = React.forwardRef<\n React.ElementRef<typeof Pressable>,\n SwitchProps\n>(function Switch(\n {\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled = false,\n className,\n thumbClassName,\n onPress,\n ...props\n },\n ref\n) {\n const [uncontrolledChecked, setUncontrolledChecked] = React.useState(defaultChecked);\n const isControlled = controlledChecked !== undefined;\n const isChecked = isControlled ? controlledChecked : uncontrolledChecked;\n\n const handlePress = (e: GestureResponderEvent) => {\n if (disabled) return;\n const nextChecked = !isChecked;\n if (!isControlled) {\n setUncontrolledChecked(nextChecked);\n }\n onCheckedChange?.(nextChecked);\n onPress?.(e);\n };\n\n return (\n <Pressable\n ref={ref}\n role=\"switch\"\n accessibilityRole=\"switch\"\n accessibilityState={{ checked: isChecked, disabled: !!disabled }}\n disabled={disabled}\n onPress={handlePress}\n className={cn(\n \"h-7 w-12 shrink-0 flex-row items-center rounded-full p-0.5 transition-colors\",\n isChecked\n ? \"bg-primary-600 dark:bg-primary-600\"\n : \"bg-neutral-300 dark:bg-neutral-700\",\n disabled && \"opacity-50\",\n className\n )}\n {...props}\n >\n <View\n role=\"presentation\"\n className={cn(\n \"h-6 w-6 rounded-full bg-white shadow-sm transition-transform\",\n isChecked ? \"translate-x-5\" : \"translate-x-0\",\n thumbClassName\n )}\n />\n </Pressable>\n );\n});\n\nSwitch.displayName = \"Switch\";\n","import * as React from \"react\";\nimport {\n View,\n Text,\n Pressable,\n type PressableProps,\n type GestureResponderEvent,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface CheckboxProps extends Omit<PressableProps, \"onPress\"> {\n checked?: boolean;\n defaultChecked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n disabled?: boolean;\n className?: string;\n indicatorClassName?: string;\n label?: string;\n labelClassName?: string;\n onPress?: (e: GestureResponderEvent) => void;\n}\n\nexport const Checkbox = React.forwardRef<\n React.ElementRef<typeof Pressable>,\n CheckboxProps\n>(function Checkbox(\n {\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled = false,\n className,\n indicatorClassName,\n label,\n labelClassName,\n onPress,\n ...props\n },\n ref\n) {\n const [uncontrolledChecked, setUncontrolledChecked] = React.useState(defaultChecked);\n const isControlled = controlledChecked !== undefined;\n const isChecked = isControlled ? controlledChecked : uncontrolledChecked;\n\n const handlePress = (e: GestureResponderEvent) => {\n if (disabled) return;\n const nextChecked = !isChecked;\n if (!isControlled) {\n setUncontrolledChecked(nextChecked);\n }\n onCheckedChange?.(nextChecked);\n onPress?.(e);\n };\n\n const content = (\n <Pressable\n ref={ref}\n role=\"checkbox\"\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked: isChecked, disabled: !!disabled }}\n disabled={disabled}\n onPress={handlePress}\n className={cn(\n \"h-6 w-6 shrink-0 items-center justify-center rounded-md border border-neutral-300 dark:border-neutral-700 bg-white dark:bg-neutral-900\",\n isChecked && \"bg-primary-600 border-primary-600 dark:bg-primary-600 dark:border-primary-600\",\n disabled && \"opacity-50\",\n className\n )}\n {...props}\n >\n {isChecked ? (\n <View className={cn(\"items-center justify-center\", indicatorClassName)}>\n <Text className=\"text-white text-xs font-bold leading-none\">✓</Text>\n </View>\n ) : null}\n </Pressable>\n );\n\n if (!label) {\n return content;\n }\n\n return (\n <View className=\"flex-row items-center gap-2.5\">\n {content}\n <Text\n onPress={!disabled ? handlePress : undefined}\n className={cn(\n \"text-sm font-medium text-neutral-800 dark:text-neutral-200\",\n disabled && \"opacity-50\",\n labelClassName\n )}\n >\n {label}\n </Text>\n </View>\n );\n});\n\nCheckbox.displayName = \"Checkbox\";\n","import * as React from \"react\";\nimport { View, Text, Pressable, type ViewProps } from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\ninterface RadioGroupContextValue {\n value?: string;\n onValueChange?: (value: string) => void;\n disabled?: boolean;\n}\n\nconst RadioGroupContext = React.createContext<RadioGroupContextValue>({});\n\nexport interface RadioGroupProps extends ViewProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n disabled?: boolean;\n className?: string;\n}\n\nexport function RadioGroup({\n value: controlledValue,\n defaultValue,\n onValueChange,\n disabled = false,\n className,\n children,\n ...props\n}: RadioGroupProps) {\n const [internalValue, setInternalValue] = React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : internalValue;\n\n const handleValueChange = (val: string) => {\n if (!isControlled) setInternalValue(val);\n onValueChange?.(val);\n };\n\n return (\n <RadioGroupContext.Provider\n value={{\n value: currentValue,\n onValueChange: handleValueChange,\n disabled,\n }}\n >\n <View className={cn(\"gap-3\", className)} {...props}>\n {children}\n </View>\n </RadioGroupContext.Provider>\n );\n}\n\nexport interface RadioProps {\n value: string;\n label?: string;\n disabled?: boolean;\n className?: string;\n indicatorClassName?: string;\n labelClassName?: string;\n}\n\nexport function Radio({\n value,\n label,\n disabled: itemDisabled,\n className,\n indicatorClassName,\n labelClassName,\n}: RadioProps) {\n const group = React.useContext(RadioGroupContext);\n const isSelected = group.value === value;\n const isDisabled = group.disabled || itemDisabled;\n\n const handlePress = () => {\n if (!isDisabled) {\n group.onValueChange?.(value);\n }\n };\n\n return (\n <Pressable\n onPress={handlePress}\n disabled={isDisabled}\n accessibilityRole=\"radio\"\n accessibilityState={{ selected: isSelected, disabled: isDisabled }}\n className={cn(\"flex-row items-center gap-2.5\", isDisabled && \"opacity-50\")}\n >\n <View\n className={cn(\n \"h-5 w-5 rounded-full border border-neutral-300 dark:border-neutral-700 items-center justify-center bg-white dark:bg-neutral-900\",\n isSelected && \"border-primary-600 dark:border-primary-600\",\n className\n )}\n >\n {isSelected ? (\n <View\n className={cn(\n \"h-2.5 w-2.5 rounded-full bg-primary-600 dark:bg-primary-600\",\n indicatorClassName\n )}\n />\n ) : null}\n </View>\n {label ? (\n <Text\n className={cn(\n \"text-sm font-medium text-neutral-800 dark:text-neutral-200\",\n labelClassName\n )}\n >\n {label}\n </Text>\n ) : null}\n </Pressable>\n );\n}\n","import * as React from \"react\";\nimport { ActivityIndicator, View, type ViewProps } from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport type SpinnerColor =\n | \"primary\"\n | \"secondary\"\n | \"danger\"\n | \"success\"\n | \"warning\"\n | \"white\"\n | \"muted\";\n\nexport interface SpinnerProps extends ViewProps {\n size?: \"sm\" | \"md\" | \"lg\";\n color?: SpinnerColor;\n className?: string;\n}\n\nconst colorMap: Record<SpinnerColor, string> = {\n primary: \"#2563eb\",\n secondary: \"#475569\",\n danger: \"#dc2626\",\n success: \"#16a34a\",\n warning: \"#d97706\",\n white: \"#ffffff\",\n muted: \"#94a3b8\",\n};\n\nexport function Spinner({\n size = \"md\",\n color = \"primary\",\n className,\n ...props\n}: SpinnerProps) {\n const nativeSize = size === \"lg\" ? \"large\" : \"small\";\n const hexColor = colorMap[color] ?? colorMap.primary;\n\n return (\n <View className={cn(\"items-center justify-center\", className)} {...props}>\n <ActivityIndicator size={nativeSize} color={hexColor} />\n </View>\n );\n}\n\nSpinner.displayName = \"Spinner\";\n","import * as React from \"react\";\nimport { Animated, type ViewProps } from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface SkeletonProps extends ViewProps {\n className?: string;\n}\n\nexport function Skeleton({ className, style, ...props }: SkeletonProps) {\n const pulseAnim = React.useRef(new Animated.Value(0.4)).current;\n\n React.useEffect(() => {\n const animation = Animated.loop(\n Animated.sequence([\n Animated.timing(pulseAnim, {\n toValue: 1,\n duration: 900,\n useNativeDriver: true,\n }),\n Animated.timing(pulseAnim, {\n toValue: 0.4,\n duration: 900,\n useNativeDriver: true,\n }),\n ])\n );\n animation.start();\n return () => animation.stop();\n }, [pulseAnim]);\n\n return (\n <Animated.View\n style={[{ opacity: pulseAnim }, style]}\n className={cn(\n \"rounded-xl bg-neutral-200 dark:bg-neutral-800\",\n className\n )}\n {...props}\n />\n );\n}\n\nSkeleton.displayName = \"Skeleton\";\n","import * as React from \"react\";\nimport { View, Text, type ViewProps, type TextProps } from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\n\nexport const alertVariants = cva(\n \"w-full rounded-2xl border p-4 flex-col gap-1\",\n {\n variants: {\n variant: {\n info: \"bg-primary-50 border-primary-200 dark:bg-primary-950/40 dark:border-primary-800\",\n success: \"bg-success-50 border-success-200 dark:bg-success-950/40 dark:border-success-800\",\n warning: \"bg-warning-50 border-warning-200 dark:bg-warning-950/40 dark:border-warning-800\",\n danger: \"bg-danger-50 border-danger-200 dark:bg-danger-950/40 dark:border-danger-800\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n }\n);\n\nexport const alertTitleVariants = cva(\"text-base font-bold tracking-tight\", {\n variants: {\n variant: {\n info: \"text-primary-800 dark:text-primary-300\",\n success: \"text-success-800 dark:text-success-300\",\n warning: \"text-warning-800 dark:text-warning-300\",\n danger: \"text-danger-800 dark:text-danger-300\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n});\n\nexport const alertDescriptionVariants = cva(\"text-sm\", {\n variants: {\n variant: {\n info: \"text-primary-700 dark:text-primary-400\",\n success: \"text-success-700 dark:text-success-400\",\n warning: \"text-warning-700 dark:text-warning-400\",\n danger: \"text-danger-700 dark:text-danger-400\",\n },\n },\n defaultVariants: {\n variant: \"info\",\n },\n});\n\ntype AlertVariantProps = VariantProps<typeof alertVariants>;\n\ninterface AlertContextValue {\n variant: AlertVariantProps[\"variant\"];\n}\n\nconst AlertContext = React.createContext<AlertContextValue>({ variant: \"info\" });\n\nexport interface AlertProps extends ViewProps, AlertVariantProps {\n className?: string;\n}\n\nexport function Alert({\n variant = \"info\",\n className,\n children,\n ...props\n}: AlertProps) {\n return (\n <AlertContext.Provider value={{ variant }}>\n <View\n accessibilityRole=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n >\n {children}\n </View>\n </AlertContext.Provider>\n );\n}\n\nAlert.displayName = \"Alert\";\n\nexport function AlertTitle({\n className,\n children,\n ...props\n}: TextProps & { className?: string }) {\n const { variant } = React.useContext(AlertContext);\n return (\n <Text\n className={cn(alertTitleVariants({ variant }), className)}\n {...props}\n >\n {children}\n </Text>\n );\n}\n\nAlertTitle.displayName = \"Alert.Title\";\n\nexport function AlertDescription({\n className,\n children,\n ...props\n}: TextProps & { className?: string }) {\n const { variant } = React.useContext(AlertContext);\n return (\n <Text\n className={cn(alertDescriptionVariants({ variant }), className)}\n {...props}\n >\n {children}\n </Text>\n );\n}\n\nAlertDescription.displayName = \"Alert.Description\";\n","import * as React from \"react\";\nimport { View, type ViewProps } from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface SeparatorProps extends ViewProps {\n orientation?: \"horizontal\" | \"vertical\";\n className?: string;\n}\n\nexport function Separator({\n orientation = \"horizontal\",\n className,\n ...props\n}: SeparatorProps) {\n return (\n <View\n accessibilityRole=\"none\"\n className={cn(\n \"bg-neutral-200 dark:bg-neutral-800\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n );\n}\n\nSeparator.displayName = \"Separator\";\n","import * as React from \"react\";\nimport {\n Modal,\n View,\n Text,\n Pressable,\n StyleSheet,\n type ViewProps,\n type TextProps,\n type PressableProps,\n type GestureResponderEvent,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface DialogContextValue {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}\n\nexport const DialogContext = React.createContext<DialogContextValue | null>(null);\n\nexport function useDialogContext(): DialogContextValue {\n const context = React.useContext(DialogContext);\n if (!context) {\n throw new Error(\"Dialog compound components must be used within a Dialog component\");\n }\n return context;\n}\n\nexport interface DialogProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nexport function Dialog({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n children,\n}: DialogProps) {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : uncontrolledOpen;\n\n const handleOpenChange = React.useCallback(\n (nextOpen: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n },\n [isControlled, onOpenChange]\n );\n\n return (\n <DialogContext.Provider value={{ open, onOpenChange: handleOpenChange }}>\n {children}\n </DialogContext.Provider>\n );\n}\nDialog.displayName = \"Dialog\";\n\nexport interface DialogTriggerProps extends PressableProps {\n asChild?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const DialogTrigger = React.forwardRef<View, DialogTriggerProps>(\n function DialogTrigger({ asChild, children, onPress, ...props }, ref) {\n const { open, onOpenChange } = useDialogContext();\n\n const handlePress = (e: GestureResponderEvent) => {\n onOpenChange(!open);\n onPress?.(e);\n };\n\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children as React.ReactElement<any>, {\n ref,\n onPress: (e: GestureResponderEvent) => {\n (children.props as any)?.onPress?.(e);\n handlePress(e);\n },\n });\n }\n\n return (\n <Pressable ref={ref} onPress={handlePress} role=\"button\" {...props}>\n {children}\n </Pressable>\n );\n }\n);\nDialogTrigger.displayName = \"DialogTrigger\";\n\nexport interface DialogPortalProps {\n children: React.ReactNode;\n forceMount?: boolean;\n}\n\nexport function DialogPortal({ children, forceMount }: DialogPortalProps) {\n const { open, onOpenChange } = useDialogContext();\n\n if (!open && !forceMount) {\n return null;\n }\n\n return (\n <Modal\n transparent\n visible={open}\n animationType=\"fade\"\n onRequestClose={() => onOpenChange(false)}\n statusBarTranslucent\n >\n {children}\n </Modal>\n );\n}\nDialogPortal.displayName = \"DialogPortal\";\n\nexport interface DialogOverlayProps extends ViewProps {\n className?: string;\n closeOnPress?: boolean;\n}\n\nexport const DialogOverlay = React.forwardRef<View, DialogOverlayProps>(\n function DialogOverlay({ className, closeOnPress = true, ...props }, ref) {\n const { onOpenChange } = useDialogContext();\n\n return (\n <Pressable\n ref={ref}\n style={StyleSheet.absoluteFill}\n className={cn(\"z-50 bg-black/60\", className)}\n onPress={() => {\n if (closeOnPress) {\n onOpenChange(false);\n }\n }}\n {...props}\n />\n );\n }\n);\nDialogOverlay.displayName = \"DialogOverlay\";\n\nexport interface DialogContentProps extends ViewProps {\n className?: string;\n overlayClassName?: string;\n children: React.ReactNode;\n}\n\nexport const DialogContent = React.forwardRef<View, DialogContentProps>(\n function DialogContent({ className, overlayClassName, children, ...props }, ref) {\n return (\n <DialogPortal>\n <View\n pointerEvents=\"box-none\"\n style={StyleSheet.absoluteFill}\n className=\"z-50 items-center justify-center p-4\"\n >\n <DialogOverlay className={overlayClassName} />\n <View\n ref={ref}\n role=\"dialog\"\n aria-modal={true}\n className={cn(\n \"z-50 w-full max-w-lg rounded-2xl border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 p-6 shadow-2xl\",\n className\n )}\n {...props}\n >\n {children}\n </View>\n </View>\n </DialogPortal>\n );\n }\n);\nDialogContent.displayName = \"DialogContent\";\n\nexport function DialogHeader({\n className,\n ...props\n}: ViewProps & { className?: string }) {\n return (\n <View\n className={cn(\"flex-col space-y-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\nDialogHeader.displayName = \"DialogHeader\";\n\nexport const DialogTitle = React.forwardRef<Text, TextProps & { className?: string }>(\n function DialogTitle({ className, ...props }, ref) {\n return (\n <Text\n ref={ref}\n role=\"heading\"\n aria-level={2}\n className={cn(\n \"text-xl font-bold tracking-tight text-neutral-900 dark:text-neutral-50\",\n className\n )}\n {...props}\n />\n );\n }\n);\nDialogTitle.displayName = \"DialogTitle\";\n\nexport const DialogDescription = React.forwardRef<Text, TextProps & { className?: string }>(\n function DialogDescription({ className, ...props }, ref) {\n return (\n <Text\n ref={ref}\n className={cn(\n \"text-sm text-neutral-500 dark:text-neutral-400 mt-1\",\n className\n )}\n {...props}\n />\n );\n }\n);\nDialogDescription.displayName = \"DialogDescription\";\n\nexport function DialogFooter({\n className,\n ...props\n}: ViewProps & { className?: string }) {\n return (\n <View\n className={cn(\"flex-row justify-end space-x-2 mt-6\", className)}\n {...props}\n />\n );\n}\nDialogFooter.displayName = \"DialogFooter\";\n\nexport interface DialogCloseProps extends PressableProps {\n asChild?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const DialogClose = React.forwardRef<View, DialogCloseProps>(\n function DialogClose({ asChild, children, onPress, ...props }, ref) {\n const { onOpenChange } = useDialogContext();\n\n const handlePress = (e: GestureResponderEvent) => {\n onOpenChange(false);\n onPress?.(e);\n };\n\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children as React.ReactElement<any>, {\n ref,\n onPress: (e: GestureResponderEvent) => {\n (children.props as any)?.onPress?.(e);\n handlePress(e);\n },\n });\n }\n\n return (\n <Pressable ref={ref} onPress={handlePress} role=\"button\" {...props}>\n {children}\n </Pressable>\n );\n }\n);\nDialogClose.displayName = \"DialogClose\";\n","import * as React from \"react\";\nimport {\n View,\n Text,\n Pressable,\n type ViewProps,\n type PressableProps,\n type GestureResponderEvent,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\n\nexport interface TabsContextValue {\n value: string;\n onValueChange: (value: string) => void;\n}\n\nexport const TabsContext = React.createContext<TabsContextValue | null>(null);\n\nexport function useTabsContext(): TabsContextValue {\n const context = React.useContext(TabsContext);\n if (!context) {\n throw new Error(\"Tabs compound components must be rendered inside a Tabs component\");\n }\n return context;\n}\n\nexport interface TabsProps extends ViewProps {\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n className?: string;\n}\n\nexport const Tabs = React.forwardRef<View, TabsProps>(function Tabs(\n { value: controlledValue, defaultValue = \"\", onValueChange, className, children, ...props },\n ref\n) {\n const [internalValue, setInternalValue] = React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : internalValue;\n\n const handleValueChange = React.useCallback(\n (val: string) => {\n if (!isControlled) {\n setInternalValue(val);\n }\n onValueChange?.(val);\n },\n [isControlled, onValueChange]\n );\n\n return (\n <TabsContext.Provider value={{ value: currentValue, onValueChange: handleValueChange }}>\n <View ref={ref} className={className} {...props}>\n {children}\n </View>\n </TabsContext.Provider>\n );\n});\nTabs.displayName = \"Tabs\";\n\nexport interface TabsListProps extends ViewProps {\n className?: string;\n}\n\nexport const TabsList = React.forwardRef<View, TabsListProps>(function TabsList(\n { className, ...props },\n ref\n) {\n return (\n <View\n ref={ref}\n role=\"tablist\"\n className={cn(\n \"flex-row items-center justify-center rounded-xl bg-neutral-100 dark:bg-neutral-800 p-1\",\n className\n )}\n {...props}\n />\n );\n});\nTabsList.displayName = \"TabsList\";\n\nexport interface TabsTriggerProps extends Omit<PressableProps, \"onPress\"> {\n value: string;\n className?: string;\n textClassName?: string;\n children?: React.ReactNode;\n onPress?: (e: GestureResponderEvent) => void;\n}\n\nexport const TabsTrigger = React.forwardRef<\n React.ElementRef<typeof Pressable>,\n TabsTriggerProps\n>(function TabsTrigger({ value, className, textClassName, children, onPress, disabled, ...props }, ref) {\n const { value: selectedValue, onValueChange } = useTabsContext();\n const isSelected = selectedValue === value;\n\n const handlePress = (e: GestureResponderEvent) => {\n if (disabled) return;\n onValueChange(value);\n onPress?.(e);\n };\n\n return (\n <Pressable\n ref={ref}\n role=\"tab\"\n accessibilityRole=\"tab\"\n accessibilityState={{ selected: isSelected, disabled: !!disabled }}\n disabled={disabled}\n onPress={handlePress}\n className={cn(\n \"flex-1 items-center justify-center rounded-lg py-2 px-3 transition-all\",\n isSelected\n ? \"bg-white dark:bg-neutral-900 shadow-sm\"\n : \"bg-transparent opacity-70\",\n disabled && \"opacity-40\",\n className\n )}\n {...props}\n >\n {typeof children === \"string\" ? (\n <Text\n className={cn(\n \"text-sm font-semibold\",\n isSelected\n ? \"text-neutral-900 dark:text-neutral-50\"\n : \"text-neutral-600 dark:text-neutral-400\",\n textClassName\n )}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n </Pressable>\n );\n});\nTabsTrigger.displayName = \"TabsTrigger\";\n\nexport interface TabsContentProps extends ViewProps {\n value: string;\n className?: string;\n forceMount?: boolean;\n}\n\nexport const TabsContent = React.forwardRef<View, TabsContentProps>(function TabsContent(\n { value, className, forceMount, children, ...props },\n ref\n) {\n const { value: selectedValue } = useTabsContext();\n const isSelected = selectedValue === value;\n\n if (!isSelected && !forceMount) {\n return null;\n }\n\n return (\n <View\n ref={ref}\n role=\"tabpanel\"\n accessibilityElementsHidden={!isSelected}\n className={cn(\"mt-3\", className)}\n {...props}\n >\n {children}\n </View>\n );\n});\nTabsContent.displayName = \"TabsContent\";\n","import * as React from \"react\";\nimport { View, Text, Pressable, Animated } from \"react-native\";\nimport { cva } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\nimport { ToastItem, ToastVariant } from \"./types\";\n\nconst toastVariants = cva(\n \"w-full max-w-sm rounded-xl p-4 shadow-lg border flex-row items-center justify-between mb-2\",\n {\n variants: {\n variant: {\n default: \"bg-white border-neutral-200 dark:bg-neutral-900 dark:border-neutral-800\",\n success: \"bg-success-50 border-success-200 dark:bg-success-950/80 dark:border-success-800\",\n danger: \"bg-danger-50 border-danger-200 dark:bg-danger-950/80 dark:border-danger-800\",\n warning: \"bg-warning-50 border-warning-200 dark:bg-warning-950/80 dark:border-warning-800\",\n info: \"bg-primary-50 border-primary-200 dark:bg-primary-950/80 dark:border-primary-800\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst toastTitleVariants = cva(\"text-sm font-semibold\", {\n variants: {\n variant: {\n default: \"text-neutral-900 dark:text-white\",\n success: \"text-success-700 dark:text-success-300\",\n danger: \"text-danger-700 dark:text-danger-300\",\n warning: \"text-warning-800 dark:text-warning-300\",\n info: \"text-primary-700 dark:text-primary-300\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n});\n\ninterface ToastBannerProps {\n toast: ToastItem;\n onDismiss: (id: string) => void;\n}\n\nexport function ToastBanner({ toast, onDismiss }: ToastBannerProps) {\n const opacity = React.useRef(new Animated.Value(0)).current;\n const translateY = React.useRef(new Animated.Value(-16)).current;\n\n React.useEffect(() => {\n Animated.parallel([\n Animated.timing(opacity, {\n toValue: 1,\n duration: 200,\n useNativeDriver: true,\n }),\n Animated.timing(translateY, {\n toValue: 0,\n duration: 200,\n useNativeDriver: true,\n }),\n ]).start();\n\n const timer = setTimeout(() => {\n handleDismiss();\n }, toast.duration || 4000);\n\n return () => clearTimeout(timer);\n }, []);\n\n const handleDismiss = () => {\n Animated.parallel([\n Animated.timing(opacity, {\n toValue: 0,\n duration: 200,\n useNativeDriver: true,\n }),\n Animated.timing(translateY, {\n toValue: -16,\n duration: 200,\n useNativeDriver: true,\n }),\n ]).start(() => {\n onDismiss(toast.id);\n });\n };\n\n const variant: ToastVariant = toast.variant || \"default\";\n\n return (\n <Animated.View\n style={{\n opacity,\n transform: [{ translateY }],\n }}\n className=\"w-full items-center px-4\"\n >\n <Pressable\n onPress={handleDismiss}\n className={cn(toastVariants({ variant }))}\n >\n <View className=\"flex-1 pr-2\">\n <Text className={cn(toastTitleVariants({ variant }))}>\n {toast.title}\n </Text>\n {toast.description ? (\n <Text className=\"text-xs text-neutral-600 dark:text-neutral-400 mt-0.5\">\n {toast.description}\n </Text>\n ) : null}\n </View>\n <Text className=\"text-xs text-neutral-400\">✕</Text>\n </Pressable>\n </Animated.View>\n );\n}\n\nexport function ToastContainer({\n toasts,\n onDismiss,\n}: {\n toasts: ToastItem[];\n onDismiss: (id: string) => void;\n}) {\n if (toasts.length === 0) return null;\n\n return (\n <View\n pointerEvents=\"box-none\"\n className=\"absolute top-12 left-0 right-0 z-50 items-center\"\n >\n {toasts.map((toast) => (\n <ToastBanner key={toast.id} toast={toast} onDismiss={onDismiss} />\n ))}\n </View>\n );\n}\n","import * as React from \"react\";\n\nexport type ToastVariant = \"default\" | \"success\" | \"danger\" | \"warning\" | \"info\";\n\nexport interface ToastItem {\n id: string;\n title: string;\n description?: string;\n variant?: ToastVariant;\n duration?: number;\n}\n\nexport interface ToastContextValue {\n toasts: ToastItem[];\n show: (toast: Omit<ToastItem, \"id\">) => string;\n dismiss: (id: string) => void;\n success: (title: string, description?: string) => string;\n danger: (title: string, description?: string) => string;\n error: (title: string, description?: string) => string;\n warning: (title: string, description?: string) => string;\n info: (title: string, description?: string) => string;\n}\n\nexport const ToastContext = React.createContext<ToastContextValue | null>(null);\n\nexport function useToast(): ToastContextValue {\n const context = React.useContext(ToastContext);\n if (!context) {\n throw new Error(\"useToast must be used within a BeyondUIProvider\");\n }\n return context;\n}\n","import * as React from \"react\";\nimport { View, Text, type ViewProps } from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Card, CardContent } from \"../card/card\";\n\nexport type TrendDirection = \"up\" | \"down\" | \"neutral\";\n\nexport interface StatsCardProps extends ViewProps {\n title: string;\n value: string | number;\n trend?: {\n direction: TrendDirection;\n value: string | number;\n label?: string;\n };\n icon?: React.ReactNode;\n className?: string;\n}\n\nexport function StatsCard({\n title,\n value,\n trend,\n icon,\n className,\n ...props\n}: StatsCardProps) {\n const isUp = trend?.direction === \"up\";\n const isDown = trend?.direction === \"down\";\n\n return (\n <Card className={cn(\"w-full shadow-sm\", className)} {...props}>\n <CardContent className=\"p-4\">\n <View className=\"flex-row items-center justify-between mb-2\">\n <Text className=\"text-sm font-medium text-neutral-500 dark:text-neutral-400\">\n {title}\n </Text>\n {icon ? (\n <View className=\"h-9 w-9 rounded-xl bg-neutral-100 dark:bg-neutral-800 items-center justify-center\">\n {icon}\n </View>\n ) : null}\n </View>\n\n <Text className=\"text-2xl font-extrabold tracking-tight text-neutral-900 dark:text-neutral-50 mb-2\">\n {value}\n </Text>\n\n {trend ? (\n <View className=\"flex-row items-center gap-1.5 flex-wrap\">\n <View\n className={cn(\n \"flex-row items-center rounded-md px-1.5 py-0.5\",\n isUp && \"bg-success-100 dark:bg-success-950/60\",\n isDown && \"bg-danger-100 dark:bg-danger-950/60\",\n !isUp && !isDown && \"bg-neutral-100 dark:bg-neutral-800\"\n )}\n >\n <Text\n className={cn(\n \"text-xs font-bold mr-1\",\n isUp && \"text-success-700 dark:text-success-300\",\n isDown && \"text-danger-700 dark:text-danger-300\",\n !isUp && !isDown && \"text-neutral-600 dark:text-neutral-400\"\n )}\n >\n {isUp ? \"↑\" : isDown ? \"↓\" : \"—\"}\n </Text>\n <Text\n className={cn(\n \"text-xs font-semibold\",\n isUp && \"text-success-700 dark:text-success-300\",\n isDown && \"text-danger-700 dark:text-danger-300\",\n !isUp && !isDown && \"text-neutral-600 dark:text-neutral-400\"\n )}\n >\n {trend.value}\n </Text>\n </View>\n {trend.label ? (\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n {trend.label}\n </Text>\n ) : null}\n </View>\n ) : null}\n </CardContent>\n </Card>\n );\n}\n\nStatsCard.displayName = \"StatsCard\";\n","import * as React from \"react\";\nimport {\n View,\n Pressable,\n Animated,\n type ViewProps,\n type PressableProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../text/text\";\n\ntype AccordionType = \"single\" | \"multiple\";\n\ninterface AccordionContextValue {\n type: AccordionType;\n value: string[];\n toggleItem: (itemValue: string) => void;\n collapsible: boolean;\n}\n\nconst AccordionContext = React.createContext<AccordionContextValue | null>(null);\n\nfunction useAccordionContext() {\n const context = React.useContext(AccordionContext);\n if (!context) {\n throw new Error(\"Accordion components must be used within an Accordion\");\n }\n return context;\n}\n\nexport interface AccordionProps extends ViewProps {\n type?: AccordionType;\n value?: string | string[];\n defaultValue?: string | string[];\n onValueChange?: (value: string | string[]) => void;\n collapsible?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const Accordion = React.forwardRef<View, AccordionProps>(\n (\n {\n type = \"single\",\n value: controlledValue,\n defaultValue,\n onValueChange,\n collapsible = true,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const toArray = (v?: string | string[]): string[] => {\n if (!v) return [];\n return Array.isArray(v) ? v : [v];\n };\n\n const [uncontrolledValue, setUncontrolledValue] = React.useState<string[]>(\n toArray(defaultValue)\n );\n\n const isControlled = controlledValue !== undefined;\n const currentValues = isControlled ? toArray(controlledValue) : uncontrolledValue;\n\n const toggleItem = React.useCallback(\n (itemValue: string) => {\n let nextValues: string[];\n const isCurrentOpen = currentValues.includes(itemValue);\n\n if (type === \"single\") {\n if (isCurrentOpen) {\n nextValues = collapsible ? [] : [itemValue];\n } else {\n nextValues = [itemValue];\n }\n } else {\n if (isCurrentOpen) {\n nextValues = currentValues.filter((v) => v !== itemValue);\n } else {\n nextValues = [...currentValues, itemValue];\n }\n }\n\n if (!isControlled) {\n setUncontrolledValue(nextValues);\n }\n\n if (onValueChange) {\n onValueChange(type === \"single\" ? nextValues[0] ?? \"\" : nextValues);\n }\n },\n [currentValues, type, collapsible, isControlled, onValueChange]\n );\n\n return (\n <AccordionContext.Provider\n value={{\n type,\n value: currentValues,\n toggleItem,\n collapsible,\n }}\n >\n <View\n ref={ref}\n className={cn(\"w-full divide-y divide-border\", className)}\n {...props}\n >\n {children}\n </View>\n </AccordionContext.Provider>\n );\n }\n);\nAccordion.displayName = \"Accordion\";\n\n// --- Accordion Item ---\n\ninterface AccordionItemContextValue {\n value: string;\n isOpen: boolean;\n}\n\nconst AccordionItemContext = React.createContext<AccordionItemContextValue | null>(null);\n\nfunction useAccordionItemContext() {\n const context = React.useContext(AccordionItemContext);\n if (!context) {\n throw new Error(\"AccordionItem subcomponents must be used within an AccordionItem\");\n }\n return context;\n}\n\nexport interface AccordionItemProps extends ViewProps {\n value: string;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const AccordionItem = React.forwardRef<View, AccordionItemProps>(\n ({ value, className, children, ...props }, ref) => {\n const { value: selectedValues } = useAccordionContext();\n const isOpen = selectedValues.includes(value);\n\n return (\n <AccordionItemContext.Provider value={{ value, isOpen }}>\n <View\n ref={ref}\n className={cn(\"border-b border-neutral-200 dark:border-neutral-800 py-1\", className)}\n {...props}\n >\n {children}\n </View>\n </AccordionItemContext.Provider>\n );\n }\n);\nAccordionItem.displayName = \"AccordionItem\";\n\n// --- Accordion Trigger ---\n\nexport interface AccordionTriggerProps extends PressableProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const AccordionTrigger = React.forwardRef<View, AccordionTriggerProps>(\n ({ className, children, ...props }, ref) => {\n const { toggleItem } = useAccordionContext();\n const { value, isOpen } = useAccordionItemContext();\n\n const rotationAnim = React.useRef(new Animated.Value(isOpen ? 1 : 0)).current;\n\n React.useEffect(() => {\n Animated.timing(rotationAnim, {\n toValue: isOpen ? 1 : 0,\n duration: 200,\n useNativeDriver: true,\n }).start();\n }, [isOpen, rotationAnim]);\n\n const rotate = rotationAnim.interpolate({\n inputRange: [0, 1],\n outputRange: [\"0deg\", \"180deg\"],\n });\n\n return (\n <Pressable\n ref={ref}\n onPress={() => toggleItem(value)}\n accessibilityRole=\"button\"\n accessibilityState={{ expanded: isOpen }}\n className={cn(\n \"flex-row items-center justify-between py-3 px-1 active:opacity-70\",\n className\n )}\n {...props}\n >\n <View className=\"flex-1 pr-2\">\n {typeof children === \"string\" ? (\n <Text className=\"text-base font-medium text-neutral-900 dark:text-neutral-100\">{children}</Text>\n ) : (\n children\n )}\n </View>\n <Animated.View style={{ transform: [{ rotate }] }}>\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-base font-semibold\">▼</Text>\n </Animated.View>\n </Pressable>\n );\n }\n);\nAccordionTrigger.displayName = \"AccordionTrigger\";\n\n// --- Accordion Content ---\n\nexport interface AccordionContentProps extends ViewProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const AccordionContent = React.forwardRef<View, AccordionContentProps>(\n ({ className, children, ...props }, ref) => {\n const { isOpen } = useAccordionItemContext();\n\n if (!isOpen) return null;\n\n return (\n <View\n ref={ref}\n className={cn(\"pt-1 pb-3 px-1\", className)}\n {...props}\n >\n {typeof children === \"string\" ? (\n <Text className=\"text-sm text-neutral-600 dark:text-neutral-400 leading-relaxed\">{children}</Text>\n ) : (\n children\n )}\n </View>\n );\n }\n);\nAccordionContent.displayName = \"AccordionContent\";\n","import * as React from \"react\";\nimport {\n Modal,\n View,\n Pressable,\n Animated,\n PanResponder,\n Dimensions,\n type ViewProps,\n type PressableProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../text/text\";\nimport { Heading } from \"../text/heading\";\n\ninterface BottomSheetContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n closeSheet: () => void;\n}\n\nconst BottomSheetContext = React.createContext<BottomSheetContextValue | null>(null);\n\nfunction useBottomSheetContext() {\n const context = React.useContext(BottomSheetContext);\n if (!context) {\n throw new Error(\"BottomSheet components must be used within a BottomSheet\");\n }\n return context;\n}\n\nexport interface BottomSheetProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n children: React.ReactNode;\n}\n\nexport const BottomSheet: React.FC<BottomSheetProps> = ({\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n children,\n}) => {\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const isOpen = isControlled ? controlledOpen : uncontrolledOpen;\n\n const setOpen = React.useCallback(\n (nextOpen: boolean) => {\n if (!isControlled) {\n setUncontrolledOpen(nextOpen);\n }\n onOpenChange?.(nextOpen);\n },\n [isControlled, onOpenChange]\n );\n\n const closeSheet = React.useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n\n return (\n <BottomSheetContext.Provider value={{ open: isOpen, setOpen, closeSheet }}>\n {children}\n </BottomSheetContext.Provider>\n );\n};\n\n// --- BottomSheetTrigger ---\n\nexport interface BottomSheetTriggerProps extends PressableProps {\n asChild?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetTrigger = React.forwardRef<View, BottomSheetTriggerProps>(\n ({ asChild, children, onPress, ...props }, ref) => {\n const { setOpen } = useBottomSheetContext();\n\n const handlePress = (e: any) => {\n setOpen(true);\n onPress?.(e);\n };\n\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children as React.ReactElement<any>, {\n ref,\n onPress: handlePress,\n });\n }\n\n return (\n <Pressable ref={ref} onPress={handlePress} {...props}>\n {children}\n </Pressable>\n );\n }\n);\nBottomSheetTrigger.displayName = \"BottomSheetTrigger\";\n\n// --- BottomSheetContent ---\n\nexport interface BottomSheetContentProps extends ViewProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetContent = React.forwardRef<View, BottomSheetContentProps>(\n ({ className, children, ...props }, ref) => {\n const { open, closeSheet } = useBottomSheetContext();\n const screenHeight = Dimensions.get(\"window\").height;\n\n const translateY = React.useRef(new Animated.Value(screenHeight)).current;\n const backdropOpacity = React.useRef(new Animated.Value(0)).current;\n\n React.useEffect(() => {\n if (open) {\n Animated.parallel([\n Animated.spring(translateY, {\n toValue: 0,\n useNativeDriver: true,\n bounciness: 4,\n }),\n Animated.timing(backdropOpacity, {\n toValue: 1,\n duration: 250,\n useNativeDriver: true,\n }),\n ]).start();\n } else {\n Animated.parallel([\n Animated.timing(translateY, {\n toValue: screenHeight,\n duration: 200,\n useNativeDriver: true,\n }),\n Animated.timing(backdropOpacity, {\n toValue: 0,\n duration: 200,\n useNativeDriver: true,\n }),\n ]).start();\n }\n }, [open, translateY, backdropOpacity, screenHeight]);\n\n // PanResponder for drag down to dismiss\n const panResponder = React.useRef(\n PanResponder.create({\n onStartShouldSetPanResponder: () => true,\n onMoveShouldSetPanResponder: (_, gestureState) => gestureState.dy > 5,\n onPanResponderMove: (_, gestureState) => {\n if (gestureState.dy > 0) {\n translateY.setValue(gestureState.dy);\n }\n },\n onPanResponderRelease: (_, gestureState) => {\n if (gestureState.dy > 120 || gestureState.vy > 0.8) {\n closeSheet();\n } else {\n Animated.spring(translateY, {\n toValue: 0,\n useNativeDriver: true,\n bounciness: 4,\n }).start();\n }\n },\n })\n ).current;\n\n if (!open) return null;\n\n return (\n <Modal\n transparent\n visible={open}\n animationType=\"none\"\n onRequestClose={closeSheet}\n statusBarTranslucent\n >\n <View className=\"flex-1 justify-end\">\n {/* Backdrop */}\n <Animated.View\n style={{ opacity: backdropOpacity }}\n className=\"absolute inset-0 bg-black/60\"\n >\n <Pressable className=\"flex-1\" onPress={closeSheet} />\n </Animated.View>\n\n {/* Sheet Container */}\n <Animated.View\n ref={ref}\n style={{ transform: [{ translateY }] }}\n className={cn(\n \"w-full bg-white dark:bg-neutral-900 rounded-t-3xl border-t border-neutral-200 dark:border-neutral-800 shadow-2xl pt-2 pb-8 px-6 max-h-[85%]\",\n className\n )}\n {...props}\n >\n {/* Drag Handle Bar */}\n <View {...panResponder.panHandlers} className=\"w-full py-2 items-center\">\n <View className=\"w-12 h-1.5 rounded-full bg-neutral-300 dark:bg-neutral-700\" />\n </View>\n\n {children}\n </Animated.View>\n </View>\n </Modal>\n );\n }\n);\nBottomSheetContent.displayName = \"BottomSheetContent\";\n\n// --- BottomSheetHeader ---\n\nexport interface BottomSheetHeaderProps extends ViewProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetHeader = React.forwardRef<View, BottomSheetHeaderProps>(\n ({ className, children, ...props }, ref) => (\n <View ref={ref} className={cn(\"mb-4 gap-1\", className)} {...props}>\n {children}\n </View>\n )\n);\nBottomSheetHeader.displayName = \"BottomSheetHeader\";\n\n// --- BottomSheetTitle ---\n\nexport interface BottomSheetTitleProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetTitle: React.FC<BottomSheetTitleProps> = ({\n className,\n children,\n}) => {\n return (\n <Heading level={4} className={cn(\"text-xl font-bold text-neutral-900 dark:text-neutral-50\", className)}>\n {children}\n </Heading>\n );\n};\nBottomSheetTitle.displayName = \"BottomSheetTitle\";\n\n// --- BottomSheetDescription ---\n\nexport interface BottomSheetDescriptionProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetDescription: React.FC<BottomSheetDescriptionProps> = ({\n className,\n children,\n}) => {\n return (\n <Text className={cn(\"text-sm text-neutral-500 dark:text-neutral-400\", className)}>\n {children}\n </Text>\n );\n};\nBottomSheetDescription.displayName = \"BottomSheetDescription\";\n\n// --- BottomSheetBody ---\n\nexport interface BottomSheetBodyProps extends ViewProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetBody = React.forwardRef<View, BottomSheetBodyProps>(\n ({ className, children, ...props }, ref) => (\n <View ref={ref} className={cn(\"py-2\", className)} {...props}>\n {children}\n </View>\n )\n);\nBottomSheetBody.displayName = \"BottomSheetBody\";\n\n// --- BottomSheetFooter ---\n\nexport interface BottomSheetFooterProps extends ViewProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetFooter = React.forwardRef<View, BottomSheetFooterProps>(\n ({ className, children, ...props }, ref) => (\n <View\n ref={ref}\n className={cn(\"mt-6 flex-row items-center justify-end gap-3\", className)}\n {...props}\n >\n {children}\n </View>\n )\n);\nBottomSheetFooter.displayName = \"BottomSheetFooter\";\n\n// --- BottomSheetClose ---\n\nexport interface BottomSheetCloseProps extends PressableProps {\n asChild?: boolean;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const BottomSheetClose = React.forwardRef<View, BottomSheetCloseProps>(\n ({ asChild, children, onPress, ...props }, ref) => {\n const { closeSheet } = useBottomSheetContext();\n\n const handlePress = (e: any) => {\n closeSheet();\n onPress?.(e);\n };\n\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(children as React.ReactElement<any>, {\n ref,\n onPress: handlePress,\n });\n }\n\n return (\n <Pressable ref={ref} onPress={handlePress} {...props}>\n {children}\n </Pressable>\n );\n }\n);\nBottomSheetClose.displayName = \"BottomSheetClose\";\n","import * as React from \"react\";\nimport {\n Modal,\n View,\n Pressable,\n ScrollView,\n TextInput,\n type ViewProps,\n} from \"react-native\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../text/text\";\n\nconst selectTriggerVariants = cva(\n \"flex-row items-center justify-between rounded-xl border bg-white dark:bg-neutral-900 px-4 py-3 active:opacity-80\",\n {\n variants: {\n variant: {\n default: \"border-neutral-300 dark:border-neutral-700\",\n error: \"border-danger\",\n success: \"border-success\",\n },\n size: {\n sm: \"h-9 px-3 py-1.5\",\n md: \"h-12 px-4 py-3\",\n lg: \"h-14 px-5 py-4\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"md\",\n },\n }\n);\n\nexport interface SelectOption {\n label: string;\n value: string;\n disabled?: boolean;\n}\n\ninterface SelectContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n value?: string;\n onSelect: (val: string) => void;\n}\n\nconst SelectContext = React.createContext<SelectContextValue | null>(null);\n\nfunction useSelectContext() {\n const context = React.useContext(SelectContext);\n if (!context) {\n throw new Error(\"Select compound subcomponents must be used within a Select\");\n }\n return context;\n}\n\nexport interface SelectProps extends VariantProps<typeof selectTriggerVariants> {\n options?: SelectOption[];\n value?: string;\n defaultValue?: string;\n onValueChange?: (value: string) => void;\n placeholder?: string;\n label?: string;\n helperText?: string;\n error?: string;\n disabled?: boolean;\n searchable?: boolean;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const Select: React.FC<SelectProps> = ({\n options,\n value: controlledValue,\n defaultValue,\n onValueChange,\n placeholder = \"Select an option...\",\n label,\n helperText,\n error,\n disabled = false,\n searchable = false,\n variant,\n size,\n className,\n children,\n}) => {\n const [uncontrolledValue, setUncontrolledValue] = React.useState(defaultValue);\n const [open, setOpen] = React.useState(false);\n const [searchQuery, setSearchQuery] = React.useState(\"\");\n\n const isControlled = controlledValue !== undefined;\n const currentValue = isControlled ? controlledValue : uncontrolledValue;\n\n const handleSelect = React.useCallback(\n (newVal: string) => {\n if (!isControlled) {\n setUncontrolledValue(newVal);\n }\n onValueChange?.(newVal);\n setOpen(false);\n setSearchQuery(\"\");\n },\n [isControlled, onValueChange]\n );\n\n const selectedOption = options?.find((o) => o.value === currentValue);\n const displayLabel = selectedOption ? selectedOption.label : \"\";\n\n const filteredOptions = React.useMemo(() => {\n if (!options) return [];\n if (!searchQuery) return options;\n return options.filter((o) =>\n o.label.toLowerCase().includes(searchQuery.toLowerCase())\n );\n }, [options, searchQuery]);\n\n const activeVariant = error ? \"error\" : variant;\n\n return (\n <SelectContext.Provider\n value={{\n open,\n setOpen,\n value: currentValue,\n onSelect: handleSelect,\n }}\n >\n <View className={cn(\"w-full gap-1.5\", className)}>\n {label && (\n <Text className=\"text-sm font-medium text-neutral-800 dark:text-neutral-200\">{label}</Text>\n )}\n\n {children ? (\n children\n ) : (\n <Pressable\n disabled={disabled}\n onPress={() => setOpen(true)}\n accessibilityRole=\"combobox\"\n accessibilityState={{ disabled, expanded: open }}\n className={cn(\n selectTriggerVariants({ variant: activeVariant, size }),\n disabled && \"opacity-50\"\n )}\n >\n <Text\n className={cn(\n \"text-base\",\n displayLabel\n ? \"text-neutral-900 dark:text-neutral-100 font-medium\"\n : \"text-neutral-500 dark:text-neutral-400 font-normal\"\n )}\n >\n {displayLabel || placeholder}\n </Text>\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-xs\">▼</Text>\n </Pressable>\n )}\n\n {error ? (\n <Text className=\"text-xs text-danger font-medium\">{error}</Text>\n ) : helperText ? (\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">{helperText}</Text>\n ) : null}\n\n {/* Modal Options Picker if options prop was passed */}\n {options && (\n <Modal\n transparent\n visible={open}\n animationType=\"fade\"\n onRequestClose={() => setOpen(false)}\n statusBarTranslucent\n >\n <View className=\"flex-1 justify-end bg-black/60\">\n <Pressable className=\"flex-1\" onPress={() => setOpen(false)} />\n <View className=\"w-full bg-white dark:bg-neutral-900 rounded-t-3xl border-t border-neutral-200 dark:border-neutral-800 p-6 max-h-[75%]\">\n <View className=\"flex-row items-center justify-between pb-4 border-b border-neutral-200 dark:border-neutral-800 mb-3\">\n <Text className=\"text-lg font-bold text-neutral-900 dark:text-neutral-50\">\n {label || placeholder}\n </Text>\n <Pressable onPress={() => setOpen(false)} className=\"p-1\">\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-lg font-semibold\">✕</Text>\n </Pressable>\n </View>\n\n {searchable && (\n <View className=\"mb-4\">\n <TextInput\n value={searchQuery}\n onChangeText={setSearchQuery}\n placeholder=\"Search options...\"\n placeholderTextColor=\"#9ca3af\"\n className=\"h-11 px-4 rounded-xl border border-neutral-300 dark:border-neutral-700 bg-neutral-50 dark:bg-neutral-800 text-neutral-900 dark:text-neutral-100 text-base\"\n />\n </View>\n )}\n\n <ScrollView className=\"max-h-80\" showsVerticalScrollIndicator={false}>\n {filteredOptions.length === 0 ? (\n <View className=\"py-8 items-center\">\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-sm\">No options found</Text>\n </View>\n ) : (\n filteredOptions.map((opt) => {\n const isSelected = opt.value === currentValue;\n return (\n <Pressable\n key={opt.value}\n disabled={opt.disabled}\n onPress={() => handleSelect(opt.value)}\n className={cn(\n \"flex-row items-center justify-between py-3.5 px-3 rounded-xl active:bg-neutral-100 dark:active:bg-neutral-800\",\n isSelected && \"bg-primary-50 dark:bg-primary-950/40\",\n opt.disabled && \"opacity-40\"\n )}\n >\n <Text\n className={cn(\n \"text-base\",\n isSelected\n ? \"text-primary-600 dark:text-primary-400 font-semibold\"\n : \"text-neutral-900 dark:text-neutral-100 font-normal\"\n )}\n >\n {opt.label}\n </Text>\n {isSelected && (\n <Text className=\"text-primary-600 dark:text-primary-400 font-bold text-base\">✓</Text>\n )}\n </Pressable>\n );\n })\n )}\n </ScrollView>\n </View>\n </View>\n </Modal>\n )}\n </View>\n </SelectContext.Provider>\n );\n};\nSelect.displayName = \"Select\";\n\n// --- Compound Subcomponents ---\n\nexport interface SelectTriggerProps extends ViewProps {\n className?: string;\n children: React.ReactNode;\n}\n\nexport const SelectTrigger: React.FC<SelectTriggerProps> = ({\n className,\n children,\n ...props\n}) => {\n const { setOpen, open } = useSelectContext();\n return (\n <Pressable\n onPress={() => setOpen(true)}\n accessibilityRole=\"combobox\"\n accessibilityState={{ expanded: open }}\n className={cn(\n \"flex-row items-center justify-between rounded-xl border border-neutral-300 dark:border-neutral-700 bg-white dark:bg-neutral-900 px-4 py-3 active:opacity-80\",\n className\n )}\n {...props}\n >\n {children}\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-xs\">▼</Text>\n </Pressable>\n );\n};\nSelectTrigger.displayName = \"SelectTrigger\";\n\nexport interface SelectValueProps {\n placeholder?: string;\n className?: string;\n}\n\nexport const SelectValue: React.FC<SelectValueProps> = ({\n placeholder = \"Select...\",\n className,\n}) => {\n const { value } = useSelectContext();\n return (\n <Text\n className={cn(\n \"text-base\",\n value ? \"text-neutral-900 dark:text-neutral-100 font-medium\" : \"text-neutral-500 dark:text-neutral-400\",\n className\n )}\n >\n {value || placeholder}\n </Text>\n );\n};\nSelectValue.displayName = \"SelectValue\";\n\nexport interface SelectContentProps {\n title?: string;\n children: React.ReactNode;\n}\n\nexport const SelectContent: React.FC<SelectContentProps> = ({ title, children }) => {\n const { open, setOpen } = useSelectContext();\n if (!open) return null;\n\n return (\n <Modal\n transparent\n visible={open}\n animationType=\"fade\"\n onRequestClose={() => setOpen(false)}\n statusBarTranslucent\n >\n <View className=\"flex-1 justify-end bg-black/60\">\n <Pressable className=\"flex-1\" onPress={() => setOpen(false)} />\n <View className=\"w-full bg-white dark:bg-neutral-900 rounded-t-3xl border-t border-neutral-200 dark:border-neutral-800 p-6 max-h-[75%]\">\n <View className=\"flex-row items-center justify-between pb-3 border-b border-neutral-200 dark:border-neutral-800 mb-3\">\n <Text className=\"text-lg font-bold text-neutral-900 dark:text-neutral-100\">{title || \"Select\"}</Text>\n <Pressable onPress={() => setOpen(false)} className=\"p-1\">\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-lg font-semibold\">✕</Text>\n </Pressable>\n </View>\n <ScrollView className=\"max-h-80\">{children}</ScrollView>\n </View>\n </View>\n </Modal>\n );\n};\nSelectContent.displayName = \"SelectContent\";\n\nexport interface SelectItemProps {\n value: string;\n className?: string;\n children: React.ReactNode;\n}\n\nexport const SelectItem: React.FC<SelectItemProps> = ({\n value: itemValue,\n className,\n children,\n}) => {\n const { value: selectedValue, onSelect } = useSelectContext();\n const isSelected = selectedValue === itemValue;\n\n return (\n <Pressable\n onPress={() => onSelect(itemValue)}\n className={cn(\n \"flex-row items-center justify-between py-3.5 px-3 rounded-xl active:bg-neutral-100 dark:active:bg-neutral-800\",\n isSelected && \"bg-primary-50 dark:bg-primary-950/40\",\n className\n )}\n >\n {typeof children === \"string\" ? (\n <Text\n className={cn(\n \"text-base\",\n isSelected ? \"text-primary-600 dark:text-primary-400 font-semibold\" : \"text-neutral-900 dark:text-neutral-100 font-normal\"\n )}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {isSelected && <Text className=\"text-primary-600 dark:text-primary-400 font-bold text-base\">✓</Text>}\n </Pressable>\n );\n};\nSelectItem.displayName = \"SelectItem\";\n","import * as React from \"react\";\nimport {\n View,\n ScrollView,\n Pressable,\n type ViewProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../text/text\";\nimport { Input } from \"../input/input\";\nimport { Button } from \"../button/button\";\nimport { Card, CardContent } from \"../card/card\";\nimport { Skeleton } from \"../skeleton/skeleton\";\n\nexport interface Column<T> {\n key: keyof T | string;\n title: string;\n sortable?: boolean;\n align?: \"left\" | \"center\" | \"right\";\n width?: number;\n render?: (value: any, item: T) => React.ReactNode;\n}\n\nexport interface DataTableProps<T extends Record<string, any>> extends ViewProps {\n columns: Column<T>[];\n data: T[];\n keyExtractor?: (item: T, index: number) => string;\n mode?: \"table\" | \"card\";\n searchable?: boolean;\n searchPlaceholder?: string;\n searchKeys?: (keyof T)[];\n loading?: boolean;\n pageSize?: number;\n emptyText?: string;\n onRowPress?: (item: T) => void;\n className?: string;\n}\n\nexport function DataTable<T extends Record<string, any>>({\n columns,\n data,\n keyExtractor = (_, i) => String(i),\n mode = \"card\",\n searchable = true,\n searchPlaceholder = \"Search records...\",\n searchKeys,\n loading = false,\n pageSize = 5,\n emptyText = \"No records found\",\n onRowPress,\n className,\n ...props\n}: DataTableProps<T>) {\n const [search, setSearch] = React.useState(\"\");\n const [sortKey, setSortKey] = React.useState<string | null>(null);\n const [sortDirection, setSortDirection] = React.useState<\"asc\" | \"desc\">(\"asc\");\n const [currentPage, setCurrentPage] = React.useState(1);\n\n // Filter\n const filteredData = React.useMemo(() => {\n if (!search.trim()) return data;\n const query = search.toLowerCase();\n const keys = searchKeys || (columns.map((c) => c.key) as (keyof T)[]);\n\n return data.filter((item) => {\n return keys.some((k) => {\n const val = item[k];\n if (val == null) return false;\n return String(val).toLowerCase().includes(query);\n });\n });\n }, [data, search, searchKeys, columns]);\n\n // Sort\n const sortedData = React.useMemo(() => {\n if (!sortKey) return filteredData;\n return [...filteredData].sort((a, b) => {\n const valA = a[sortKey];\n const valB = b[sortKey];\n if (valA === valB) return 0;\n if (valA == null) return 1;\n if (valB == null) return -1;\n\n if (typeof valA === \"number\" && typeof valB === \"number\") {\n return sortDirection === \"asc\" ? valA - valB : valB - valA;\n }\n const strA = String(valA).toLowerCase();\n const strB = String(valB).toLowerCase();\n return sortDirection === \"asc\"\n ? strA.localeCompare(strB)\n : strB.localeCompare(strA);\n });\n }, [filteredData, sortKey, sortDirection]);\n\n // Pagination\n const totalPages = Math.max(1, Math.ceil(sortedData.length / pageSize));\n const paginatedData = React.useMemo(() => {\n const start = (currentPage - 1) * pageSize;\n return sortedData.slice(start, start + pageSize);\n }, [sortedData, currentPage, pageSize]);\n\n const handleSort = (colKey: string) => {\n if (sortKey === colKey) {\n if (sortDirection === \"asc\") {\n setSortDirection(\"desc\");\n } else {\n setSortKey(null);\n setSortDirection(\"asc\");\n }\n } else {\n setSortKey(colKey);\n setSortDirection(\"asc\");\n }\n };\n\n return (\n <View className={cn(\"w-full gap-4\", className)} {...props}>\n {/* Search Input */}\n {searchable && (\n <Input\n placeholder={searchPlaceholder}\n value={search}\n onChangeText={(val) => {\n setSearch(val);\n setCurrentPage(1);\n }}\n />\n )}\n\n {/* Loading Skeleton */}\n {loading ? (\n <View className=\"gap-3\">\n {[1, 2, 3].map((idx) => (\n <Skeleton key={idx} className=\"h-20 w-full rounded-2xl\" />\n ))}\n </View>\n ) : paginatedData.length === 0 ? (\n <Card className=\"items-center justify-center p-8\">\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-base\">{emptyText}</Text>\n </Card>\n ) : mode === \"card\" ? (\n /* Mobile Card Mode */\n <View className=\"gap-3\">\n {paginatedData.map((item, idx) => (\n <Pressable\n key={keyExtractor(item, idx)}\n disabled={!onRowPress}\n onPress={() => onRowPress?.(item)}\n className=\"active:opacity-80\"\n >\n <Card className=\"p-4 gap-2\">\n {columns.map((col) => {\n const rawVal = item[col.key as string];\n const renderedVal = col.render ? col.render(rawVal, item) : String(rawVal ?? \"—\");\n\n return (\n <View\n key={String(col.key)}\n className=\"flex-row items-center justify-between py-1 border-b border-neutral-200 dark:border-neutral-800 last:border-b-0\"\n >\n <Text className=\"text-xs font-semibold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider\">\n {col.title}\n </Text>\n <View className=\"shrink\">\n {typeof renderedVal === \"string\" ? (\n <Text className=\"text-sm font-medium text-neutral-900 dark:text-neutral-100\">\n {renderedVal}\n </Text>\n ) : (\n renderedVal\n )}\n </View>\n </View>\n );\n })}\n </Card>\n </Pressable>\n ))}\n </View>\n ) : (\n /* Horizontal Table Mode */\n <ScrollView horizontal showsHorizontalScrollIndicator={false}>\n <View className=\"rounded-2xl border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 overflow-hidden\">\n {/* Header */}\n <View className=\"flex-row bg-neutral-100 dark:bg-neutral-800/60 border-b border-neutral-200 dark:border-neutral-800\">\n {columns.map((col) => (\n <Pressable\n key={String(col.key)}\n disabled={!col.sortable}\n onPress={() => handleSort(String(col.key))}\n style={{ width: col.width || 120 }}\n className=\"px-4 py-3 flex-row items-center justify-between\"\n >\n <Text className=\"text-xs font-bold text-neutral-900 dark:text-neutral-100 uppercase tracking-wider\">\n {col.title}\n </Text>\n {col.sortable && (\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n {sortKey === col.key\n ? sortDirection === \"asc\"\n ? \"▲\"\n : \"▼\"\n : \"⇅\"}\n </Text>\n )}\n </Pressable>\n ))}\n </View>\n\n {/* Rows */}\n {paginatedData.map((item, idx) => (\n <Pressable\n key={keyExtractor(item, idx)}\n disabled={!onRowPress}\n onPress={() => onRowPress?.(item)}\n className=\"flex-row border-b border-neutral-200 dark:border-neutral-800 active:bg-neutral-100 dark:active:bg-neutral-800\"\n >\n {columns.map((col) => {\n const rawVal = item[col.key as string];\n const renderedVal = col.render ? col.render(rawVal, item) : String(rawVal ?? \"—\");\n\n return (\n <View\n key={String(col.key)}\n style={{ width: col.width || 120 }}\n className=\"px-4 py-3 justify-center\"\n >\n {typeof renderedVal === \"string\" ? (\n <Text className=\"text-sm text-neutral-900 dark:text-neutral-100\">{renderedVal}</Text>\n ) : (\n renderedVal\n )}\n </View>\n );\n })}\n </Pressable>\n ))}\n </View>\n </ScrollView>\n )}\n\n {/* Pagination Footer */}\n {totalPages > 1 && (\n <View className=\"flex-row items-center justify-between pt-2\">\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n Showing {(currentPage - 1) * pageSize + 1} -{\" \"}\n {Math.min(currentPage * pageSize, sortedData.length)} of{\" \"}\n {sortedData.length}\n </Text>\n\n <View className=\"flex-row items-center gap-2\">\n <Button\n variant=\"outline\"\n size=\"sm\"\n disabled={currentPage <= 1}\n onPress={() => setCurrentPage((p) => Math.max(1, p - 1))}\n >\n Prev\n </Button>\n <Text className=\"text-xs font-medium text-neutral-900 dark:text-neutral-100 px-1\">\n {currentPage} / {totalPages}\n </Text>\n <Button\n variant=\"outline\"\n size=\"sm\"\n disabled={currentPage >= totalPages}\n onPress={() => setCurrentPage((p) => Math.min(totalPages, p + 1))}\n >\n Next\n </Button>\n </View>\n </View>\n )}\n </View>\n );\n}\n","import * as React from \"react\";\nimport {\n View,\n ScrollView,\n KeyboardAvoidingView,\n Platform,\n Pressable,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../../components/text/text\";\nimport { Heading } from \"../../components/text/heading\";\nimport { Input } from \"../../components/input/input\";\nimport { Button } from \"../../components/button/button\";\nimport { Checkbox } from \"../../components/checkbox/checkbox\";\nimport { Alert, AlertDescription } from \"../../components/alert/alert\";\nimport { Separator } from \"../../components/separator/separator\";\n\nexport interface SignInTemplateProps {\n title?: string;\n subtitle?: string;\n logo?: React.ReactNode;\n onSubmit?: (data: { email: string; password: string; rememberMe: boolean }) => void;\n onForgotPassword?: () => void;\n onSignUpPress?: () => void;\n onGooglePress?: () => void;\n onApplePress?: () => void;\n isLoading?: boolean;\n error?: string | null;\n className?: string;\n}\n\nexport const SignInTemplate: React.FC<SignInTemplateProps> = ({\n title = \"Welcome Back\",\n subtitle = \"Sign in to your Beyond account to continue\",\n logo,\n onSubmit,\n onForgotPassword,\n onSignUpPress,\n onGooglePress,\n onApplePress,\n isLoading = false,\n error,\n className,\n}) => {\n const [email, setEmail] = React.useState(\"\");\n const [password, setPassword] = React.useState(\"\");\n const [showPassword, setShowPassword] = React.useState(false);\n const [rememberMe, setRememberMe] = React.useState(false);\n const [emailError, setEmailError] = React.useState<string | undefined>();\n const [passwordError, setPasswordError] = React.useState<string | undefined>();\n\n const handleSubmit = () => {\n let valid = true;\n setEmailError(undefined);\n setPasswordError(undefined);\n\n if (!email || !email.includes(\"@\")) {\n setEmailError(\"Please enter a valid email address\");\n valid = false;\n }\n if (!password || password.length < 6) {\n setPasswordError(\"Password must be at least 6 characters\");\n valid = false;\n }\n\n if (valid) {\n onSubmit?.({ email, password, rememberMe });\n }\n };\n\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === \"ios\" ? \"padding\" : \"height\"}\n style={{ flex: 1 }}\n className={cn(\"flex-1 bg-neutral-50 dark:bg-neutral-950\", className)}\n >\n <ScrollView\n style={{ flex: 1 }}\n contentContainerStyle={{ flexGrow: 1, justifyContent: \"center\" }}\n className=\"px-6 py-8\"\n keyboardShouldPersistTaps=\"handled\"\n showsVerticalScrollIndicator={false}\n >\n <View className=\"w-full max-w-md mx-auto gap-6\">\n {/* Logo & Header */}\n <View className=\"items-center gap-2\">\n {logo && <View className=\"mb-2\">{logo}</View>}\n <Heading level={2} className=\"text-3xl font-extrabold text-neutral-900 dark:text-neutral-50 text-center\">\n {title}\n </Heading>\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-center text-base\">\n {subtitle}\n </Text>\n </View>\n\n {/* Error Banner */}\n {error && (\n <Alert variant=\"danger\">\n <AlertDescription>{error}</AlertDescription>\n </Alert>\n )}\n\n {/* Fields */}\n <View className=\"gap-4\">\n <Input\n label=\"Email Address\"\n placeholder=\"you@company.com\"\n keyboardType=\"email-address\"\n autoCapitalize=\"none\"\n autoCorrect={false}\n value={email}\n onChangeText={(text) => {\n setEmail(text);\n if (emailError) setEmailError(undefined);\n }}\n error={emailError}\n />\n\n <View className=\"gap-1\">\n <Input\n label=\"Password\"\n placeholder=\"••••••••\"\n secureTextEntry={!showPassword}\n value={password}\n onChangeText={(text) => {\n setPassword(text);\n if (passwordError) setPasswordError(undefined);\n }}\n error={passwordError}\n rightElement={\n <Pressable onPress={() => setShowPassword((p) => !p)} className=\"p-1\">\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400 font-semibold\">\n {showPassword ? \"HIDE\" : \"SHOW\"}\n </Text>\n </Pressable>\n }\n />\n </View>\n\n {/* Remember & Forgot */}\n <View className=\"flex-row items-center justify-between py-1\">\n <View className=\"flex-row items-center gap-2\">\n <Checkbox checked={rememberMe} onCheckedChange={setRememberMe} />\n <Text className=\"text-sm text-neutral-900 dark:text-neutral-100\">Remember me</Text>\n </View>\n\n {onForgotPassword && (\n <Pressable onPress={onForgotPassword}>\n <Text className=\"text-sm font-semibold text-primary-600 dark:text-primary-400\">\n Forgot password?\n </Text>\n </Pressable>\n )}\n </View>\n\n {/* Submit */}\n <Button\n variant=\"primary\"\n size=\"lg\"\n loading={isLoading}\n onPress={handleSubmit}\n className=\"mt-2\"\n >\n Sign In\n </Button>\n </View>\n\n {/* Social Logins */}\n {(onGooglePress || onApplePress) && (\n <View className=\"gap-4\">\n <View className=\"flex-row items-center gap-3\">\n <Separator className=\"flex-1\" />\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400 uppercase\">or continue with</Text>\n <Separator className=\"flex-1\" />\n </View>\n\n <View className=\"flex-row gap-3\">\n {onGooglePress && (\n <Button\n variant=\"outline\"\n className=\"flex-1\"\n onPress={onGooglePress}\n >\n Google\n </Button>\n )}\n {onApplePress && (\n <Button\n variant=\"outline\"\n className=\"flex-1\"\n onPress={onApplePress}\n >\n Apple\n </Button>\n )}\n </View>\n </View>\n )}\n\n {/* Switch to SignUp */}\n {onSignUpPress && (\n <View className=\"flex-row justify-center items-center gap-1.5 pt-2\">\n <Text className=\"text-sm text-neutral-500 dark:text-neutral-400\">Don't have an account?</Text>\n <Pressable onPress={onSignUpPress}>\n <Text className=\"text-sm font-bold text-primary-600 dark:text-primary-400\">Sign Up</Text>\n </Pressable>\n </View>\n )}\n </View>\n </ScrollView>\n </KeyboardAvoidingView>\n );\n};\n","import * as React from \"react\";\nimport {\n View,\n ScrollView,\n KeyboardAvoidingView,\n Platform,\n Pressable,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../../components/text/text\";\nimport { Heading } from \"../../components/text/heading\";\nimport { Input } from \"../../components/input/input\";\nimport { Button } from \"../../components/button/button\";\nimport { Checkbox } from \"../../components/checkbox/checkbox\";\nimport { Alert, AlertDescription } from \"../../components/alert/alert\";\nimport { Separator } from \"../../components/separator/separator\";\n\nexport interface SignUpTemplateProps {\n title?: string;\n subtitle?: string;\n logo?: React.ReactNode;\n onSubmit?: (data: {\n fullName: string;\n email: string;\n password: string;\n agreeToTerms: boolean;\n }) => void;\n onSignInPress?: () => void;\n onGooglePress?: () => void;\n onApplePress?: () => void;\n isLoading?: boolean;\n error?: string | null;\n className?: string;\n}\n\nexport const SignUpTemplate: React.FC<SignUpTemplateProps> = ({\n title = \"Create Account\",\n subtitle = \"Get started with your free Beyond account\",\n logo,\n onSubmit,\n onSignInPress,\n onGooglePress,\n onApplePress,\n isLoading = false,\n error,\n className,\n}) => {\n const [fullName, setFullName] = React.useState(\"\");\n const [email, setEmail] = React.useState(\"\");\n const [password, setPassword] = React.useState(\"\");\n const [agreeToTerms, setAgreeToTerms] = React.useState(false);\n\n const [nameError, setNameError] = React.useState<string | undefined>();\n const [emailError, setEmailError] = React.useState<string | undefined>();\n const [passwordError, setPasswordError] = React.useState<string | undefined>();\n const [termsError, setTermsError] = React.useState<string | undefined>();\n\n const handleSubmit = () => {\n let valid = true;\n setNameError(undefined);\n setEmailError(undefined);\n setPasswordError(undefined);\n setTermsError(undefined);\n\n if (!fullName.trim()) {\n setNameError(\"Full name is required\");\n valid = false;\n }\n if (!email || !email.includes(\"@\")) {\n setEmailError(\"Please enter a valid email address\");\n valid = false;\n }\n if (!password || password.length < 8) {\n setPasswordError(\"Password must be at least 8 characters\");\n valid = false;\n }\n if (!agreeToTerms) {\n setTermsError(\"You must agree to the Terms of Service\");\n valid = false;\n }\n\n if (valid) {\n onSubmit?.({ fullName, email, password, agreeToTerms });\n }\n };\n\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === \"ios\" ? \"padding\" : \"height\"}\n style={{ flex: 1 }}\n className={cn(\"flex-1 bg-neutral-50 dark:bg-neutral-950\", className)}\n >\n <ScrollView\n style={{ flex: 1 }}\n contentContainerStyle={{ flexGrow: 1, justifyContent: \"center\" }}\n className=\"px-6 py-8\"\n keyboardShouldPersistTaps=\"handled\"\n showsVerticalScrollIndicator={false}\n >\n <View className=\"w-full max-w-md mx-auto gap-6\">\n {/* Header */}\n <View className=\"items-center gap-2\">\n {logo && <View className=\"mb-2\">{logo}</View>}\n <Heading level={2} className=\"text-3xl font-extrabold text-neutral-900 dark:text-neutral-50 text-center\">\n {title}\n </Heading>\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-center text-base\">\n {subtitle}\n </Text>\n </View>\n\n {/* Error Alert */}\n {error && (\n <Alert variant=\"danger\">\n <AlertDescription>{error}</AlertDescription>\n </Alert>\n )}\n\n {/* Form */}\n <View className=\"gap-4\">\n <Input\n label=\"Full Name\"\n placeholder=\"Mark Otto\"\n value={fullName}\n onChangeText={(text) => {\n setFullName(text);\n if (nameError) setNameError(undefined);\n }}\n error={nameError}\n />\n\n <Input\n label=\"Email Address\"\n placeholder=\"you@company.com\"\n keyboardType=\"email-address\"\n autoCapitalize=\"none\"\n value={email}\n onChangeText={(text) => {\n setEmail(text);\n if (emailError) setEmailError(undefined);\n }}\n error={emailError}\n />\n\n <Input\n label=\"Password\"\n placeholder=\"At least 8 characters\"\n secureTextEntry\n value={password}\n onChangeText={(text) => {\n setPassword(text);\n if (passwordError) setPasswordError(undefined);\n }}\n error={passwordError}\n />\n\n {/* Terms checkbox */}\n <View className=\"gap-1\">\n <View className=\"flex-row items-center gap-2 pt-1\">\n <Checkbox\n checked={agreeToTerms}\n onCheckedChange={(checked) => {\n setAgreeToTerms(checked);\n if (termsError) setTermsError(undefined);\n }}\n />\n <Text className=\"text-sm text-neutral-900 dark:text-neutral-100 flex-1\">\n I agree to the Terms of Service & Privacy Policy\n </Text>\n </View>\n {termsError && (\n <Text className=\"text-xs text-danger font-medium\">{termsError}</Text>\n )}\n </View>\n\n {/* Submit */}\n <Button\n variant=\"primary\"\n size=\"lg\"\n loading={isLoading}\n onPress={handleSubmit}\n className=\"mt-2\"\n >\n Create Account\n </Button>\n </View>\n\n {/* Social Logins */}\n {(onGooglePress || onApplePress) && (\n <View className=\"gap-4\">\n <View className=\"flex-row items-center gap-3\">\n <Separator className=\"flex-1\" />\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400 uppercase\">or continue with</Text>\n <Separator className=\"flex-1\" />\n </View>\n\n <View className=\"flex-row gap-3\">\n {onGooglePress && (\n <Button\n variant=\"outline\"\n className=\"flex-1\"\n onPress={onGooglePress}\n >\n Google\n </Button>\n )}\n {onApplePress && (\n <Button\n variant=\"outline\"\n className=\"flex-1\"\n onPress={onApplePress}\n >\n Apple\n </Button>\n )}\n </View>\n </View>\n )}\n\n {/* Back to SignIn */}\n {onSignInPress && (\n <View className=\"flex-row justify-center items-center gap-1.5 pt-2\">\n <Text className=\"text-sm text-neutral-500 dark:text-neutral-400\">Already have an account?</Text>\n <Pressable onPress={onSignInPress}>\n <Text className=\"text-sm font-bold text-primary-600 dark:text-primary-400\">Sign In</Text>\n </Pressable>\n </View>\n )}\n </View>\n </ScrollView>\n </KeyboardAvoidingView>\n );\n};\n","import * as React from \"react\";\nimport {\n View,\n ScrollView,\n KeyboardAvoidingView,\n Platform,\n Pressable,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../../components/text/text\";\nimport { Heading } from \"../../components/text/heading\";\nimport { Input } from \"../../components/input/input\";\nimport { Button } from \"../../components/button/button\";\nimport { Alert, AlertDescription } from \"../../components/alert/alert\";\n\nexport interface ForgotPasswordTemplateProps {\n title?: string;\n subtitle?: string;\n onSubmit?: (data: { email: string }) => void;\n onBackToSignIn?: () => void;\n isLoading?: boolean;\n isSuccess?: boolean;\n error?: string | null;\n className?: string;\n}\n\nexport const ForgotPasswordTemplate: React.FC<ForgotPasswordTemplateProps> = ({\n title = \"Reset Password\",\n subtitle = \"Enter your email address and we'll send you recovery instructions\",\n onSubmit,\n onBackToSignIn,\n isLoading = false,\n isSuccess = false,\n error,\n className,\n}) => {\n const [email, setEmail] = React.useState(\"\");\n const [emailError, setEmailError] = React.useState<string | undefined>();\n\n const handleSubmit = () => {\n if (!email || !email.includes(\"@\")) {\n setEmailError(\"Please enter a valid email address\");\n return;\n }\n setEmailError(undefined);\n onSubmit?.({ email });\n };\n\n return (\n <KeyboardAvoidingView\n behavior={Platform.OS === \"ios\" ? \"padding\" : \"height\"}\n style={{ flex: 1 }}\n className={cn(\"flex-1 bg-neutral-50 dark:bg-neutral-950\", className)}\n >\n <ScrollView\n style={{ flex: 1 }}\n contentContainerStyle={{ flexGrow: 1, justifyContent: \"center\" }}\n className=\"px-6 py-8\"\n keyboardShouldPersistTaps=\"handled\"\n showsVerticalScrollIndicator={false}\n >\n <View className=\"w-full max-w-md mx-auto gap-6\">\n <View className=\"items-center gap-2\">\n <Heading level={2} className=\"text-3xl font-extrabold text-neutral-900 dark:text-neutral-50 text-center\">\n {title}\n </Heading>\n <Text className=\"text-neutral-500 dark:text-neutral-400 text-center text-base\">\n {subtitle}\n </Text>\n </View>\n\n {error && (\n <Alert variant=\"danger\">\n <AlertDescription>{error}</AlertDescription>\n </Alert>\n )}\n\n {isSuccess ? (\n <View className=\"gap-4\">\n <Alert variant=\"success\">\n <AlertDescription>\n Password reset link sent! Check your email inbox.\n </AlertDescription>\n </Alert>\n\n {onBackToSignIn && (\n <Button variant=\"primary\" size=\"lg\" onPress={onBackToSignIn}>\n Back to Sign In\n </Button>\n )}\n </View>\n ) : (\n <View className=\"gap-4\">\n <Input\n label=\"Email Address\"\n placeholder=\"you@company.com\"\n keyboardType=\"email-address\"\n autoCapitalize=\"none\"\n value={email}\n onChangeText={(text) => {\n setEmail(text);\n if (emailError) setEmailError(undefined);\n }}\n error={emailError}\n />\n\n <Button\n variant=\"primary\"\n size=\"lg\"\n loading={isLoading}\n onPress={handleSubmit}\n className=\"mt-2\"\n >\n Send Reset Link\n </Button>\n\n {onBackToSignIn && (\n <View className=\"flex-row justify-center items-center gap-1.5 pt-2\">\n <Pressable onPress={onBackToSignIn}>\n <Text className=\"text-sm font-semibold text-primary-600 dark:text-primary-400\">\n Back to Sign In\n </Text>\n </Pressable>\n </View>\n )}\n </View>\n )}\n </View>\n </ScrollView>\n </KeyboardAvoidingView>\n );\n};\n","import * as React from \"react\";\nimport {\n View,\n ScrollView,\n Pressable,\n type ViewProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../../components/text/text\";\nimport { Heading } from \"../../components/text/heading\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"../../components/avatar/avatar\";\nimport { Badge } from \"../../components/badge/badge\";\nimport { Card, CardHeader, CardTitle, CardContent } from \"../../components/card/card\";\nimport { StatsCard, type StatsCardProps } from \"../../components/stats-card/stats-card\";\nimport { Button } from \"../../components/button/button\";\n\nexport interface DashboardMetric extends StatsCardProps {\n id: string;\n}\n\nexport interface DashboardActivity {\n id: string;\n title: string;\n subtitle: string;\n timestamp: string;\n amount?: string;\n status?: {\n label: string;\n variant: \"primary\" | \"secondary\" | \"success\" | \"warning\" | \"danger\" | \"outline\";\n };\n avatarUrl?: string;\n avatarInitials?: string;\n}\n\nexport interface DashboardQuickAction {\n id: string;\n label: string;\n icon?: string;\n onPress: () => void;\n}\n\nexport interface DashboardTemplateProps extends ViewProps {\n userName: string;\n userRole?: string;\n userAvatarUrl?: string;\n metrics: DashboardMetric[];\n quickActions?: DashboardQuickAction[];\n recentActivities?: DashboardActivity[];\n onViewAllActivities?: () => void;\n onNotificationPress?: () => void;\n unreadNotificationsCount?: number;\n className?: string;\n}\n\nexport const DashboardTemplate: React.FC<DashboardTemplateProps> = ({\n userName,\n userRole = \"Administrator\",\n userAvatarUrl,\n metrics,\n quickActions,\n recentActivities,\n onViewAllActivities,\n onNotificationPress,\n unreadNotificationsCount = 0,\n className,\n ...props\n}) => {\n return (\n <ScrollView\n {...props}\n style={[{ flex: 1 }, (props as any).style]}\n className={cn(\"flex-1 bg-neutral-50 dark:bg-neutral-950\", className)}\n contentContainerStyle={{ paddingBottom: 40 }}\n showsVerticalScrollIndicator={false}\n >\n {/* Top Greeting Header */}\n <View className=\"px-6 pt-6 pb-4 flex-row items-center justify-between border-b border-neutral-200 dark:border-neutral-800\">\n <View className=\"flex-row items-center gap-3\">\n <Avatar size=\"lg\">\n {userAvatarUrl && <AvatarImage source={{ uri: userAvatarUrl }} />}\n <AvatarFallback text={userName.slice(0, 2).toUpperCase()} />\n </Avatar>\n <View>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400 font-medium uppercase tracking-wider\">\n {userRole}\n </Text>\n <Heading level={3} className=\"text-xl font-bold text-neutral-900 dark:text-neutral-50\">\n Hello, {userName} 👋\n </Heading>\n </View>\n </View>\n\n {onNotificationPress && (\n <Pressable\n onPress={onNotificationPress}\n className=\"w-10 h-10 rounded-full border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 items-center justify-center relative active:opacity-70\"\n >\n <Text className=\"text-base text-neutral-900 dark:text-neutral-100\">🔔</Text>\n {unreadNotificationsCount > 0 && (\n <View className=\"absolute -top-1 -right-1 w-5 h-5 rounded-full bg-danger items-center justify-center\">\n <Text className=\"text-[10px] font-bold text-white\">\n {unreadNotificationsCount > 9 ? \"9+\" : unreadNotificationsCount}\n </Text>\n </View>\n )}\n </Pressable>\n )}\n </View>\n\n <View className=\"px-6 pt-6 gap-6\">\n {/* Quick Actions */}\n {quickActions && quickActions.length > 0 && (\n <View className=\"gap-2\">\n <Text className=\"text-xs font-bold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider\">\n Quick Actions\n </Text>\n <ScrollView\n horizontal\n showsHorizontalScrollIndicator={false}\n className=\"-mx-6 px-6\"\n >\n <View className=\"flex-row gap-3\">\n {quickActions.map((action) => (\n <Button\n key={action.id}\n variant=\"outline\"\n size=\"sm\"\n onPress={action.onPress}\n >\n {action.icon ? `${action.icon} ${action.label}` : action.label}\n </Button>\n ))}\n </View>\n </ScrollView>\n </View>\n )}\n\n {/* Metrics Grid */}\n <View className=\"gap-3\">\n <Text className=\"text-xs font-bold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider\">\n Overview Performance\n </Text>\n <View className=\"gap-3\">\n {metrics.map((metric) => (\n <StatsCard key={metric.id} {...metric} />\n ))}\n </View>\n </View>\n\n {/* Recent Activities */}\n {recentActivities && recentActivities.length > 0 && (\n <Card className=\"gap-2\">\n <CardHeader className=\"flex-row items-center justify-between pb-2\">\n <CardTitle className=\"text-base font-bold\">Recent Activity</CardTitle>\n {onViewAllActivities && (\n <Pressable onPress={onViewAllActivities}>\n <Text className=\"text-xs font-semibold text-primary-600 dark:text-primary-400\">View all</Text>\n </Pressable>\n )}\n </CardHeader>\n <CardContent className=\"gap-3 pt-0\">\n {recentActivities.map((act) => (\n <View\n key={act.id}\n className=\"flex-row items-center justify-between py-2 border-b border-neutral-200 dark:border-neutral-800 last:border-b-0\"\n >\n <View className=\"flex-row items-center gap-3 flex-1 pr-2\">\n <Avatar size=\"sm\">\n {act.avatarUrl && <AvatarImage source={{ uri: act.avatarUrl }} />}\n <AvatarFallback\n text={act.avatarInitials || act.title.slice(0, 2).toUpperCase()}\n />\n </Avatar>\n <View className=\"flex-1\">\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\" numberOfLines={1}>\n {act.title}\n </Text>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\" numberOfLines={1}>\n {act.subtitle} • {act.timestamp}\n </Text>\n </View>\n </View>\n\n <View className=\"items-end gap-1\">\n {act.amount && (\n <Text className=\"text-sm font-bold text-neutral-900 dark:text-neutral-100\">\n {act.amount}\n </Text>\n )}\n {act.status && (\n <Badge variant={act.status.variant} size=\"sm\">\n {act.status.label}\n </Badge>\n )}\n </View>\n </View>\n ))}\n </CardContent>\n </Card>\n )}\n </View>\n </ScrollView>\n );\n};\n","import * as React from \"react\";\nimport {\n View,\n ScrollView,\n Pressable,\n type ViewProps,\n} from \"react-native\";\nimport { cn } from \"../../utilities/cn\";\nimport { Text } from \"../../components/text/text\";\nimport { Heading } from \"../../components/text/heading\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"../../components/avatar/avatar\";\nimport { Badge } from \"../../components/badge/badge\";\nimport { Card } from \"../../components/card/card\";\nimport { Switch } from \"../../components/switch/switch\";\nimport { Button } from \"../../components/button/button\";\nimport { Separator } from \"../../components/separator/separator\";\n\nexport interface SettingsTemplateProps extends ViewProps {\n user: {\n name: string;\n email: string;\n avatarUrl?: string;\n plan?: string;\n };\n pushNotifications?: boolean;\n onTogglePushNotifications?: (val: boolean) => void;\n emailNotifications?: boolean;\n onToggleEmailNotifications?: (val: boolean) => void;\n isDarkMode?: boolean;\n onToggleDarkMode?: (val: boolean) => void;\n biometricsEnabled?: boolean;\n onToggleBiometrics?: (val: boolean) => void;\n onEditProfile?: () => void;\n onChangePassword?: () => void;\n onViewTerms?: () => void;\n onViewPrivacy?: () => void;\n onLogout?: () => void;\n onDeleteAccount?: () => void;\n className?: string;\n}\n\nexport const SettingsTemplate: React.FC<SettingsTemplateProps> = ({\n user,\n pushNotifications = true,\n onTogglePushNotifications,\n emailNotifications = true,\n onToggleEmailNotifications,\n isDarkMode = false,\n onToggleDarkMode,\n biometricsEnabled = false,\n onToggleBiometrics,\n onEditProfile,\n onChangePassword,\n onViewTerms,\n onViewPrivacy,\n onLogout,\n onDeleteAccount,\n className,\n ...props\n}) => {\n return (\n <ScrollView\n {...props}\n style={[{ flex: 1 }, (props as any).style]}\n className={cn(\"flex-1 bg-neutral-50 dark:bg-neutral-950\", className)}\n contentContainerStyle={{ paddingBottom: 40 }}\n showsVerticalScrollIndicator={false}\n >\n <View className=\"px-6 pt-6 gap-6\">\n <Heading level={2} className=\"text-2xl font-bold text-neutral-900 dark:text-neutral-50\">\n Settings & Profile\n </Heading>\n\n {/* User Card */}\n <Card className=\"p-4 flex-row items-center gap-4\">\n <Avatar size=\"lg\">\n {user.avatarUrl && <AvatarImage source={{ uri: user.avatarUrl }} />}\n <AvatarFallback text={user.name.slice(0, 2).toUpperCase()} />\n </Avatar>\n <View className=\"flex-1\">\n <View className=\"flex-row items-center gap-2\">\n <Text className=\"text-base font-bold text-neutral-900 dark:text-neutral-100\">{user.name}</Text>\n {user.plan && (\n <Badge variant=\"primary\" size=\"sm\">\n {user.plan}\n </Badge>\n )}\n </View>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">{user.email}</Text>\n </View>\n {onEditProfile && (\n <Button variant=\"outline\" size=\"sm\" onPress={onEditProfile}>\n Edit\n </Button>\n )}\n </Card>\n\n {/* Preferences Section */}\n <View className=\"gap-2\">\n <Text className=\"text-xs font-bold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider px-1\">\n Preferences\n </Text>\n <Card className=\"divide-y divide-neutral-200 dark:divide-neutral-800\">\n <View className=\"p-4 flex-row items-center justify-between\">\n <View className=\"pr-4 flex-1\">\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">\n Push Notifications\n </Text>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n Receive real-time alerts on your mobile device\n </Text>\n </View>\n <Switch\n checked={pushNotifications}\n onCheckedChange={onTogglePushNotifications}\n />\n </View>\n\n <View className=\"p-4 flex-row items-center justify-between\">\n <View className=\"pr-4 flex-1\">\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">\n Email Notifications\n </Text>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n Weekly digests and activity summaries\n </Text>\n </View>\n <Switch\n checked={emailNotifications}\n onCheckedChange={onToggleEmailNotifications}\n />\n </View>\n\n <View className=\"p-4 flex-row items-center justify-between\">\n <View className=\"pr-4 flex-1\">\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">Dark Theme</Text>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n Enable high contrast dark mode appearance\n </Text>\n </View>\n <Switch checked={isDarkMode} onCheckedChange={onToggleDarkMode} />\n </View>\n\n <View className=\"p-4 flex-row items-center justify-between\">\n <View className=\"pr-4 flex-1\">\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">\n Biometric Login\n </Text>\n <Text className=\"text-xs text-neutral-500 dark:text-neutral-400\">\n Use Face ID or fingerprint to authenticate\n </Text>\n </View>\n <Switch\n checked={biometricsEnabled}\n onCheckedChange={onToggleBiometrics}\n />\n </View>\n </Card>\n </View>\n\n {/* Security & Account Links */}\n <View className=\"gap-2\">\n <Text className=\"text-xs font-bold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider px-1\">\n Account & Security\n </Text>\n <Card className=\"divide-y divide-neutral-200 dark:divide-neutral-800\">\n {onChangePassword && (\n <Pressable\n onPress={onChangePassword}\n className=\"p-4 flex-row items-center justify-between active:bg-neutral-100 dark:active:bg-neutral-800\"\n >\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">\n Change Password\n </Text>\n <Text className=\"text-neutral-400 dark:text-neutral-500 text-xs\">›</Text>\n </Pressable>\n )}\n\n {onViewTerms && (\n <Pressable\n onPress={onViewTerms}\n className=\"p-4 flex-row items-center justify-between active:bg-neutral-100 dark:active:bg-neutral-800\"\n >\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">\n Terms of Service\n </Text>\n <Text className=\"text-neutral-400 dark:text-neutral-500 text-xs\">›</Text>\n </Pressable>\n )}\n\n {onViewPrivacy && (\n <Pressable\n onPress={onViewPrivacy}\n className=\"p-4 flex-row items-center justify-between active:bg-neutral-100 dark:active:bg-neutral-800\"\n >\n <Text className=\"text-sm font-semibold text-neutral-900 dark:text-neutral-100\">\n Privacy Policy\n </Text>\n <Text className=\"text-neutral-400 dark:text-neutral-500 text-xs\">›</Text>\n </Pressable>\n )}\n </Card>\n </View>\n\n {/* Danger Zone */}\n <View className=\"gap-3 pt-2\">\n {onLogout && (\n <Button variant=\"outline\" size=\"lg\" onPress={onLogout}>\n Log Out\n </Button>\n )}\n\n {onDeleteAccount && (\n <Button\n variant=\"destructive\"\n size=\"lg\"\n onPress={onDeleteAccount}\n >\n Delete Account\n </Button>\n )}\n </View>\n </View>\n </ScrollView>\n );\n};\n","import * as React from \"react\";\nimport { View, useColorScheme as useRNColorScheme } from \"react-native\";\nimport { colorScheme as nwColorScheme } from \"nativewind\";\nimport { PortalHost } from \"@rn-primitives/portal\";\nimport { ToastContext, ToastItem, ToastContextValue } from \"../components/toast/types\";\nimport { ToastContainer } from \"../components/toast/toast\";\n\nif (typeof __DEV__ !== \"undefined\" && __DEV__) {\n try {\n const { LogBox } = require(\"react-native\");\n LogBox?.ignoreLogs?.([\n \"You are setting the style `{ shadowOffset: ... }` as a prop\",\n \"You are setting the style\",\n ]);\n\n if (!Boolean((console.error as any)?.__beyond_ui_filtered)) {\n const originalError = console.error;\n const filteredError = (...args: any[]) => {\n const fullMessage = args\n .map((arg) => (typeof arg === \"string\" ? arg : \"\"))\n .join(\" \");\n\n if (\n fullMessage.includes(\"shadowOffset\") ||\n fullMessage.includes(\"You are setting the style\")\n ) {\n return;\n }\n originalError(...args);\n };\n (filteredError as any).__beyond_ui_filtered = true;\n console.error = filteredError;\n }\n } catch (_) {}\n}\n\nexport type ColorScheme = \"light\" | \"dark\" | \"system\";\n\nexport interface BeyondUIContextValue {\n colorScheme: \"light\" | \"dark\";\n setColorScheme: (scheme: ColorScheme) => void;\n toggleColorScheme: () => void;\n}\n\nexport const BeyondUIContext = React.createContext<BeyondUIContextValue>({\n colorScheme: \"light\",\n setColorScheme: () => {},\n toggleColorScheme: () => {},\n});\n\nexport function useBeyondUI() {\n return React.useContext(BeyondUIContext);\n}\n\nexport interface BeyondUIProviderProps {\n children: React.ReactNode;\n defaultColorScheme?: ColorScheme;\n}\n\nexport function BeyondUIProvider({\n children,\n defaultColorScheme = \"system\",\n}: BeyondUIProviderProps) {\n const systemScheme = useRNColorScheme() ?? \"light\";\n const [selectedScheme, setSelectedScheme] = React.useState<ColorScheme>(defaultColorScheme);\n const [toasts, setToasts] = React.useState<ToastItem[]>([]);\n\n const activeScheme: \"light\" | \"dark\" =\n selectedScheme === \"system\" ? systemScheme : selectedScheme;\n\n // Sync NativeWind colorScheme store with BeyondUIProvider active scheme\n React.useEffect(() => {\n try {\n nwColorScheme.set(selectedScheme === \"system\" ? \"system\" : activeScheme);\n } catch (_) {}\n }, [selectedScheme, activeScheme]);\n\n const handleSetColorScheme = React.useCallback((scheme: ColorScheme) => {\n setSelectedScheme(scheme);\n try {\n nwColorScheme.set(scheme === \"system\" ? \"system\" : scheme);\n } catch (_) {}\n }, []);\n\n const toggleColorScheme = React.useCallback(() => {\n setSelectedScheme((prev) => {\n const current = prev === \"system\" ? systemScheme : prev;\n const next = current === \"dark\" ? \"light\" : \"dark\";\n try {\n nwColorScheme.set(next);\n } catch (_) {}\n return next;\n });\n }, [systemScheme]);\n\n const dismissToast = React.useCallback((id: string) => {\n setToasts((prev) => prev.filter((t) => t.id !== id));\n }, []);\n\n const showToast = React.useCallback((toast: Omit<ToastItem, \"id\">) => {\n const id = Math.random().toString(36).substring(2, 9);\n setToasts((prev) => [...prev, { ...toast, id }]);\n return id;\n }, []);\n\n const toastContextValue: ToastContextValue = React.useMemo(\n () => ({\n toasts,\n show: showToast,\n dismiss: dismissToast,\n success: (title, description) =>\n showToast({ title, description, variant: \"success\" }),\n danger: (title, description) =>\n showToast({ title, description, variant: \"danger\" }),\n error: (title, description) =>\n showToast({ title, description, variant: \"danger\" }),\n warning: (title, description) =>\n showToast({ title, description, variant: \"warning\" }),\n info: (title, description) =>\n showToast({ title, description, variant: \"info\" }),\n }),\n [toasts, showToast, dismissToast]\n );\n\n const contextValue: BeyondUIContextValue = React.useMemo(\n () => ({\n colorScheme: activeScheme,\n setColorScheme: handleSetColorScheme,\n toggleColorScheme,\n }),\n [activeScheme, handleSetColorScheme, toggleColorScheme]\n );\n\n return (\n <BeyondUIContext.Provider value={contextValue}>\n <ToastContext.Provider value={toastContextValue}>\n <View\n style={{ flex: 1 }}\n className={activeScheme === \"dark\" ? \"dark flex-1 bg-neutral-950\" : \"flex-1 bg-white\"}\n >\n {children}\n <PortalHost />\n <ToastContainer toasts={toasts} onDismiss={dismissToast} />\n </View>\n </ToastContext.Provider>\n </BeyondUIContext.Provider>\n );\n}\n","export const tokens = {\n colors: {\n primary: {\n 50: \"#eff6ff\",\n 100: \"#dbeafe\",\n 200: \"#bfdbfe\",\n 300: \"#93c5fd\",\n 400: \"#60a5fa\",\n 500: \"#3b82f6\",\n 600: \"#2563eb\",\n 700: \"#1d4ed8\",\n 800: \"#1e40af\",\n 900: \"#1e3a8a\",\n 950: \"#172554\",\n DEFAULT: \"#2563eb\",\n },\n secondary: {\n 50: \"#f8fafc\",\n 100: \"#f1f5f9\",\n 200: \"#e2e8f0\",\n 300: \"#cbd5e1\",\n 400: \"#94a3b8\",\n 500: \"#64748b\",\n 600: \"#475569\",\n 700: \"#334155\",\n 800: \"#1e293b\",\n 900: \"#0f172a\",\n 950: \"#020617\",\n DEFAULT: \"#475569\",\n },\n danger: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\",\n 950: \"#450a0a\",\n DEFAULT: \"#dc2626\",\n },\n // Alias for shadcn / React Native convention compatibility\n destructive: {\n 50: \"#fef2f2\",\n 100: \"#fee2e2\",\n 200: \"#fecaca\",\n 300: \"#fca5a5\",\n 400: \"#f87171\",\n 500: \"#ef4444\",\n 600: \"#dc2626\",\n 700: \"#b91c1c\",\n 800: \"#991b1b\",\n 900: \"#7f1d1d\",\n 950: \"#450a0a\",\n DEFAULT: \"#dc2626\",\n },\n success: {\n 50: \"#f0fdf4\",\n 100: \"#dcfce7\",\n 200: \"#bbf7d0\",\n 300: \"#86efac\",\n 400: \"#4ade80\",\n 500: \"#22c55e\",\n 600: \"#16a34a\",\n 700: \"#15803d\",\n 800: \"#166534\",\n 900: \"#14532d\",\n 950: \"#052e16\",\n DEFAULT: \"#16a34a\",\n },\n warning: {\n 50: \"#fffbeb\",\n 100: \"#fef3c7\",\n 200: \"#fde68a\",\n 300: \"#fcd34d\",\n 400: \"#fbbf24\",\n 500: \"#f59e0b\",\n 600: \"#d97706\",\n 700: \"#b45309\",\n 800: \"#92400e\",\n 900: \"#78350f\",\n 950: \"#451a03\",\n DEFAULT: \"#d97706\",\n },\n neutral: {\n 50: \"#f9fafb\",\n 100: \"#f3f4f6\",\n 200: \"#e5e7eb\",\n 300: \"#d1d5db\",\n 400: \"#9ca3af\",\n 500: \"#6b7280\",\n 600: \"#4b5563\",\n 700: \"#374151\",\n 800: \"#1f2937\",\n 900: \"#111827\",\n 950: \"#030712\",\n },\n semantic: {\n light: {\n background: \"#ffffff\",\n foreground: \"#0f172a\",\n card: \"#ffffff\",\n cardForeground: \"#0f172a\",\n muted: \"#f8fafc\",\n mutedForeground: \"#64748b\",\n border: \"#e2e8f0\",\n input: \"#e2e8f0\",\n },\n dark: {\n background: \"#090d16\",\n foreground: \"#f8fafc\",\n card: \"#0f172a\",\n cardForeground: \"#f8fafc\",\n muted: \"#1e293b\",\n mutedForeground: \"#94a3b8\",\n border: \"#334155\",\n input: \"#334155\",\n },\n },\n },\n radius: {\n none: 0,\n sm: 6,\n md: 10,\n lg: 14,\n xl: 20,\n \"2xl\": 28,\n full: 9999,\n },\n spacing: {\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n \"2xl\": 32,\n \"3xl\": 48,\n },\n} as const;\n\nexport type BeyondUITokens = typeof tokens;\n","import { tokens } from \"./tokens\";\n\nexport { tokens };\n\nexport const beyondUIPreset = {\n darkMode: \"class\",\n theme: {\n extend: {\n colors: {\n primary: tokens.colors.primary,\n secondary: tokens.colors.secondary,\n danger: tokens.colors.danger,\n destructive: tokens.colors.destructive,\n success: tokens.colors.success,\n warning: tokens.colors.warning,\n neutral: tokens.colors.neutral,\n background: tokens.colors.semantic.light.background,\n foreground: tokens.colors.semantic.light.foreground,\n card: {\n DEFAULT: tokens.colors.semantic.light.card,\n foreground: tokens.colors.semantic.light.cardForeground,\n },\n cardForeground: tokens.colors.semantic.light.cardForeground,\n muted: {\n DEFAULT: tokens.colors.semantic.light.mutedForeground,\n foreground: tokens.colors.semantic.light.mutedForeground,\n },\n mutedForeground: tokens.colors.semantic.light.mutedForeground,\n border: tokens.colors.semantic.light.border,\n input: tokens.colors.semantic.light.input,\n },\n borderRadius: {\n none: \"0px\",\n sm: `${tokens.radius.sm}px`,\n md: `${tokens.radius.md}px`,\n lg: `${tokens.radius.lg}px`,\n xl: `${tokens.radius.xl}px`,\n \"2xl\": `${tokens.radius[\"2xl\"]}px`,\n full: \"9999px\",\n },\n },\n },\n};\n\nexport default beyondUIPreset;\n","import type { AccessibilityRole, AccessibilityState } from \"react-native\";\n\nexport interface AccessibilityPropsOptions {\n label?: string;\n hint?: string;\n role?: AccessibilityRole;\n disabled?: boolean;\n selected?: boolean;\n checked?: boolean | \"mixed\";\n busy?: boolean;\n expanded?: boolean;\n}\n\n/**\n * Helper to construct accessible props for React Native components.\n */\nexport function getAccessibilityProps(options: AccessibilityPropsOptions = {}) {\n const { label, hint, role, disabled, selected, checked, busy, expanded } = options;\n\n const state: AccessibilityState = {};\n if (disabled !== undefined) state.disabled = disabled;\n if (selected !== undefined) state.selected = selected;\n if (checked !== undefined) state.checked = checked;\n if (busy !== undefined) state.busy = busy;\n if (expanded !== undefined) state.expanded = expanded;\n\n const hasState = Object.keys(state).length > 0;\n\n return {\n accessible: true,\n ...(label ? { accessibilityLabel: label } : {}),\n ...(hint ? { accessibilityHint: hint } : {}),\n ...(role ? { accessibilityRole: role } : {}),\n ...(hasState ? { accessibilityState: state } : {}),\n };\n}\n\n/**\n * Format a visually hidden text string or accessibility label from parts.\n */\nexport function joinA11yLabels(...parts: (string | undefined | null | false)[]): string {\n return parts.filter(Boolean).join(\", \");\n}\n"],"mappings":"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","names":["Text","React","import_react_native","import_jsx_runtime","RNPressable","React","import_react_native","import_jsx_runtime","Button","React","import_react_native","import_class_variance_authority","import_jsx_runtime","Text","NativeText","React","import_react_native","import_class_variance_authority","import_jsx_runtime","Heading","NativeText","React","import_react_native","import_class_variance_authority","import_jsx_runtime","Input","React","import_react_native","import_jsx_runtime","Textarea","React","import_react_native","import_class_variance_authority","import_jsx_runtime","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","import_react_native","import_class_variance_authority","import_jsx_runtime","React","import_react_native","import_class_variance_authority","import_jsx_runtime","NativeImage","React","import_react_native","import_jsx_runtime","Switch","React","import_react_native","import_jsx_runtime","Checkbox","React","import_react_native","import_jsx_runtime","import_react_native","import_jsx_runtime","React","import_react_native","import_jsx_runtime","React","import_react_native","import_class_variance_authority","import_jsx_runtime","import_react_native","import_jsx_runtime","React","import_react_native","import_jsx_runtime","DialogTrigger","DialogOverlay","DialogContent","DialogTitle","DialogDescription","DialogClose","React","import_react_native","import_jsx_runtime","Tabs","TabsList","TabsTrigger","TabsContent","React","import_react_native","import_class_variance_authority","import_jsx_runtime","React","import_react_native","import_jsx_runtime","React","import_react_native","import_jsx_runtime","Text","React","import_react_native","import_jsx_runtime","Text","React","import_react_native","import_class_variance_authority","import_jsx_runtime","Text","React","import_react_native","import_jsx_runtime","Text","React","import_react_native","import_jsx_runtime","Text","React","import_react_native","import_jsx_runtime","Text","React","import_react_native","import_jsx_runtime","Text","import_react_native","import_jsx_runtime","Text","import_react_native","import_jsx_runtime","Text","React","import_react_native","import_jsx_runtime","useRNColorScheme","nwColorScheme"]}
|