@nextsparkjs/ui 0.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +195 -0
- package/dist/index.js +754 -0
- package/dist/index.js.map +1 -0
- package/dist/index.native.d.ts +456 -0
- package/dist/index.native.js +2371 -0
- package/dist/index.native.js.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/native/ThemeContext.tsx","../src/native/defaultColors.ts","../src/components/Button.native.tsx","../src/components/Input.native.tsx","../src/components/Textarea.native.tsx","../src/components/Checkbox.native.tsx","../src/components/Switch.native.tsx","../src/components/Select.native.tsx","../src/components/Label.native.tsx","../src/components/Badge.native.tsx","../src/components/Avatar.native.tsx","../src/components/Card.native.tsx","../src/components/Separator.native.tsx","../src/components/Skeleton.native.tsx","../src/components/Dialog.native.tsx","../src/components/Progress.native.tsx","../src/components/Tabs.native.tsx","../src/components/Accordion.native.tsx","../src/components/Slider.native.tsx"],"sourcesContent":["/**\n * Theme Provider for React Native\n * Allows apps to customize colors by wrapping their root with ThemeProvider\n */\nimport { createContext, useContext, useMemo, type ReactNode } from \"react\";\nimport { defaultColors } from \"./defaultColors\";\nimport type { ThemeColors } from \"./types\";\n\ninterface ThemeContextValue {\n colors: ThemeColors;\n}\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\nexport interface ThemeProviderProps {\n colors?: Partial<ThemeColors>;\n children: ReactNode;\n}\n\n/**\n * ThemeProvider - Wrap your app to customize component colors\n *\n * @example\n * ```tsx\n * import { ThemeProvider } from \"@nextsparkjs/ui\";\n *\n * const myColors = {\n * primary: \"#3B82F6\",\n * primaryForeground: \"#FFFFFF\",\n * };\n *\n * export default function RootLayout() {\n * return (\n * <ThemeProvider colors={myColors}>\n * <Stack />\n * </ThemeProvider>\n * );\n * }\n * ```\n */\nexport function ThemeProvider({ colors: customColors, children }: ThemeProviderProps) {\n const value = useMemo(\n () => ({\n colors: { ...defaultColors, ...customColors },\n }),\n [customColors]\n );\n\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\n/**\n * useTheme - Access theme colors in components\n * Falls back to defaultColors if no ThemeProvider is present\n */\nexport function useTheme(): ThemeContextValue {\n const context = useContext(ThemeContext);\n // Graceful fallback if no provider - components work without wrapping\n if (!context) {\n return { colors: defaultColors };\n }\n return context;\n}\n","/**\n * Default colors for React Native components\n * These are used when no ThemeProvider is present or as fallback values\n */\nimport type { ThemeColors } from \"./types\";\n\nexport const defaultColors: ThemeColors = {\n // Base\n background: \"#FFFFFF\",\n foreground: \"#1a1a1a\",\n card: \"#FFFFFF\",\n cardForeground: \"#1a1a1a\",\n\n // Interactive\n primary: \"#171717\",\n primaryForeground: \"#fafafa\",\n secondary: \"#f5f5f5\",\n secondaryForeground: \"#1a1a1a\",\n\n // States\n muted: \"#f5f5f5\",\n mutedForeground: \"#737373\",\n accent: \"#f5f5f5\",\n accentForeground: \"#1a1a1a\",\n\n // Alerts\n destructive: \"#ef4444\",\n destructiveForeground: \"#FFFFFF\",\n success: \"#22c55e\",\n successForeground: \"#FFFFFF\",\n\n // UI\n border: \"#e5e5e5\",\n input: \"#e5e5e5\",\n ring: \"#a3a3a3\",\n placeholder: \"#a3a3a3\",\n\n // Status colors\n statusTodo: \"rgba(107, 114, 128, 0.2)\", // gray-500/20\n statusInProgress: \"rgba(59, 130, 246, 0.2)\", // blue-500/20\n statusReview: \"rgba(245, 158, 11, 0.2)\", // amber-500/20\n statusDone: \"rgba(34, 197, 94, 0.2)\", // green-500/20\n statusBlocked: \"rgba(239, 68, 68, 0.2)\", // red-500/20\n\n // Status text colors\n statusTodoText: \"#4b5563\", // gray-600\n statusInProgressText: \"#2563eb\", // blue-600\n statusReviewText: \"#d97706\", // amber-600\n statusDoneText: \"#16a34a\", // green-600\n statusBlockedText: \"#dc2626\", // red-600\n\n // Dot colors\n dotTodo: \"#6b7280\", // gray-500\n dotInProgress: \"#3b82f6\", // blue-500\n dotReview: \"#f59e0b\", // amber-500\n dotDone: \"#22c55e\", // green-500\n dotBlocked: \"#ef4444\", // red-500\n};\n","import React, { useMemo } from \"react\";\nimport {\n Pressable,\n Text,\n View,\n StyleSheet,\n ActivityIndicator,\n type PressableProps,\n type ViewStyle,\n type TextStyle,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\n\nexport type ButtonVariant =\n | \"default\"\n | \"destructive\"\n | \"outline\"\n | \"secondary\"\n | \"ghost\"\n | \"link\"\n | \"outline-destructive\";\n\nexport type ButtonSize = \"default\" | \"sm\" | \"lg\" | \"icon\";\n\nexport interface ButtonProps extends Omit<PressableProps, \"children\"> {\n variant?: ButtonVariant;\n size?: ButtonSize;\n children?: React.ReactNode;\n style?: ViewStyle;\n textStyle?: TextStyle;\n isLoading?: boolean;\n // API compatibility props (accepted but may not be used)\n asChild?: boolean;\n className?: string;\n textClassName?: string;\n}\n\nexport const Button = React.forwardRef<View, ButtonProps>(\n (\n {\n variant = \"default\",\n size = \"default\",\n children,\n disabled,\n style,\n textStyle,\n isLoading,\n asChild, // Ignored in RN\n className, // Ignored in RN (NativeWind doesn't work for external packages)\n textClassName, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n const isDisabled = disabled || isLoading;\n\n // Compute variant styles with theme colors\n const variantStyles = useMemo(\n () => ({\n default: {\n container: { backgroundColor: colors.primary } as ViewStyle,\n text: { color: colors.primaryForeground } as TextStyle,\n },\n destructive: {\n container: { backgroundColor: colors.destructive } as ViewStyle,\n text: { color: colors.destructiveForeground } as TextStyle,\n },\n outline: {\n container: {\n backgroundColor: colors.background,\n borderWidth: 1,\n borderColor: colors.input,\n } as ViewStyle,\n text: { color: colors.foreground } as TextStyle,\n },\n secondary: {\n container: { backgroundColor: colors.secondary } as ViewStyle,\n text: { color: colors.secondaryForeground } as TextStyle,\n },\n ghost: {\n container: { backgroundColor: \"transparent\" } as ViewStyle,\n text: { color: colors.foreground } as TextStyle,\n },\n link: {\n container: { backgroundColor: \"transparent\" } as ViewStyle,\n text: { color: colors.primary, textDecorationLine: \"underline\" } as TextStyle,\n },\n \"outline-destructive\": {\n container: {\n backgroundColor: colors.background,\n borderWidth: 1,\n borderColor: colors.destructive,\n } as ViewStyle,\n text: { color: colors.destructive } as TextStyle,\n },\n }),\n [colors]\n );\n\n const variantStyle = variantStyles[variant] || variantStyles.default;\n const sizeStyle = sizeStyles[size] || sizeStyles.default;\n\n // Determine spinner color based on variant\n const getSpinnerColor = () => {\n if (\n variant === \"outline\" ||\n variant === \"ghost\" ||\n variant === \"outline-destructive\"\n ) {\n return colors.foreground;\n }\n return colors.primaryForeground;\n };\n\n return (\n <Pressable\n ref={ref}\n disabled={isDisabled}\n style={({ pressed }) => [\n styles.base,\n variantStyle.container,\n sizeStyle.container,\n pressed && styles.pressed,\n isDisabled && styles.disabled,\n style,\n ]}\n {...props}\n >\n {isLoading ? (\n <ActivityIndicator color={getSpinnerColor()} size=\"small\" />\n ) : typeof children === \"string\" ? (\n <Text\n style={[styles.text, variantStyle.text, sizeStyle.text, textStyle]}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n </Pressable>\n );\n }\n);\n\nButton.displayName = \"Button\";\n\n// buttonVariants export for API compatibility with web version\nexport const buttonVariants = (options: {\n variant?: ButtonVariant;\n size?: ButtonSize;\n className?: string;\n}) => {\n // No-op for RN - styles are applied via StyleSheet\n return \"\";\n};\n\nconst styles = StyleSheet.create({\n base: {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: 8, // rounded-lg equivalent\n gap: 8,\n },\n text: {\n fontSize: 16,\n fontWeight: \"600\", // font-semibold\n },\n pressed: {\n opacity: 0.8,\n },\n disabled: {\n opacity: 0.5,\n },\n});\n\nconst sizeStyles: Record<\n ButtonSize,\n { container: ViewStyle; text: TextStyle }\n> = {\n default: {\n container: { height: 44, paddingHorizontal: 16 }, // h-11\n text: { fontSize: 16 }, // text-base\n },\n sm: {\n container: { height: 36, paddingHorizontal: 12 }, // h-9\n text: { fontSize: 14 }, // text-sm\n },\n lg: {\n container: { height: 48, paddingHorizontal: 24 }, // h-12\n text: { fontSize: 18 }, // text-lg\n },\n icon: {\n container: { height: 40, width: 40, paddingHorizontal: 0 }, // h-10 w-10\n text: { fontSize: 16 },\n },\n};\n","import React, { useMemo } from \"react\";\nimport {\n TextInput,\n View,\n Text,\n StyleSheet,\n type TextInputProps,\n type ViewStyle,\n type TextStyle,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\n\nexport interface InputProps extends Omit<TextInputProps, \"style\"> {\n label?: string;\n error?: string;\n required?: boolean;\n containerStyle?: ViewStyle;\n inputStyle?: TextStyle;\n // API compatibility (ignored in RN - NativeWind doesn't work for external packages)\n className?: string;\n containerClassName?: string;\n}\n\nexport const Input = React.forwardRef<TextInput, InputProps>(\n (\n {\n label,\n error,\n required,\n containerStyle,\n inputStyle,\n className,\n containerClassName,\n editable = true,\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n label: { color: colors.foreground } as TextStyle,\n required: { color: colors.destructive } as TextStyle,\n input: {\n borderColor: colors.border,\n color: colors.foreground,\n backgroundColor: colors.card,\n } as TextStyle,\n inputError: { borderColor: colors.destructive } as TextStyle,\n error: { color: colors.destructive } as TextStyle,\n }),\n [colors]\n );\n\n return (\n <View style={[styles.container, containerStyle]}>\n {label && (\n <View style={styles.labelRow}>\n <Text style={[styles.label, colorStyles.label]}>{label}</Text>\n {required && <Text style={[styles.required, colorStyles.required]}> *</Text>}\n </View>\n )}\n <TextInput\n ref={ref}\n style={[\n styles.input,\n colorStyles.input,\n error && colorStyles.inputError,\n !editable && styles.inputDisabled,\n inputStyle,\n ]}\n editable={editable}\n placeholderTextColor={colors.placeholder}\n {...props}\n />\n {error && <Text style={[styles.error, colorStyles.error]}>{error}</Text>}\n </View>\n );\n }\n);\n\nInput.displayName = \"Input\";\n\nconst styles = StyleSheet.create({\n container: {\n gap: 8,\n },\n labelRow: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n label: {\n fontSize: 14,\n fontWeight: \"500\",\n },\n required: {\n fontSize: 14,\n },\n input: {\n height: 44,\n borderWidth: 1,\n borderRadius: 8,\n paddingHorizontal: 12,\n fontSize: 16,\n },\n inputDisabled: {\n opacity: 0.5,\n },\n error: {\n fontSize: 14,\n },\n});\n","import React, { useMemo } from \"react\";\nimport {\n TextInput,\n View,\n Text,\n StyleSheet,\n type TextInputProps,\n type ViewStyle,\n type TextStyle,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\n\nexport interface TextareaProps extends Omit<TextInputProps, \"style\"> {\n label?: string;\n error?: string;\n required?: boolean;\n containerStyle?: ViewStyle;\n inputStyle?: TextStyle;\n // API compatibility (ignored in RN - NativeWind doesn't work for external packages)\n className?: string;\n containerClassName?: string;\n}\n\nexport const Textarea = React.forwardRef<TextInput, TextareaProps>(\n (\n {\n label,\n error,\n required,\n containerStyle,\n inputStyle,\n className,\n containerClassName,\n editable = true,\n numberOfLines = 4,\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n label: { color: colors.foreground } as TextStyle,\n required: { color: colors.destructive } as TextStyle,\n input: {\n borderColor: colors.border,\n color: colors.foreground,\n backgroundColor: colors.card,\n } as TextStyle,\n inputError: { borderColor: colors.destructive } as TextStyle,\n error: { color: colors.destructive } as TextStyle,\n }),\n [colors]\n );\n\n return (\n <View style={[styles.container, containerStyle]}>\n {label && (\n <View style={styles.labelRow}>\n <Text style={[styles.label, colorStyles.label]}>{label}</Text>\n {required && <Text style={[styles.required, colorStyles.required]}> *</Text>}\n </View>\n )}\n <TextInput\n ref={ref}\n style={[\n styles.input,\n colorStyles.input,\n error && colorStyles.inputError,\n !editable && styles.inputDisabled,\n inputStyle,\n ]}\n editable={editable}\n multiline\n numberOfLines={numberOfLines}\n textAlignVertical=\"top\"\n placeholderTextColor={colors.placeholder}\n {...props}\n />\n {error && <Text style={[styles.error, colorStyles.error]}>{error}</Text>}\n </View>\n );\n }\n);\n\nTextarea.displayName = \"Textarea\";\n\nconst styles = StyleSheet.create({\n container: {\n gap: 8,\n },\n labelRow: {\n flexDirection: \"row\",\n alignItems: \"center\",\n },\n label: {\n fontSize: 14,\n fontWeight: \"500\",\n },\n required: {\n fontSize: 14,\n },\n input: {\n minHeight: 100,\n borderWidth: 1,\n borderRadius: 8,\n paddingHorizontal: 12,\n paddingVertical: 12,\n fontSize: 16,\n },\n inputDisabled: {\n opacity: 0.5,\n },\n error: {\n fontSize: 14,\n },\n});\n","/**\n * Checkbox Component - React Native version\n * Custom checkbox using Pressable with StyleSheet\n */\nimport React, { useMemo } from \"react\";\nimport {\n View,\n Text,\n Pressable,\n StyleSheet,\n type PressableProps,\n type ViewStyle,\n type TextStyle,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\n\nexport interface CheckboxProps extends Omit<PressableProps, \"onPress\"> {\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n label?: string;\n textStyle?: TextStyle;\n // API compatibility props\n className?: string;\n}\n\nexport const Checkbox = React.forwardRef<View, CheckboxProps>(\n (\n {\n checked = false,\n onCheckedChange,\n disabled,\n label,\n style,\n textStyle,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n checkboxChecked: {\n backgroundColor: colors.primary,\n borderColor: colors.primary,\n } as ViewStyle,\n checkboxUnchecked: {\n backgroundColor: colors.background,\n borderColor: colors.input,\n } as ViewStyle,\n checkmark: { color: colors.primaryForeground } as TextStyle,\n label: { color: colors.foreground } as TextStyle,\n }),\n [colors]\n );\n\n return (\n <Pressable\n ref={ref}\n style={[styles.container, disabled && styles.disabled, style as ViewStyle]}\n onPress={() => onCheckedChange?.(!checked)}\n disabled={disabled}\n {...props}\n >\n <View\n style={[\n styles.checkbox,\n checked ? colorStyles.checkboxChecked : colorStyles.checkboxUnchecked,\n ]}\n >\n {checked && <Text style={[styles.checkmark, colorStyles.checkmark]}>✓</Text>}\n </View>\n {label && <Text style={[styles.label, colorStyles.label, textStyle]}>{label}</Text>}\n </Pressable>\n );\n }\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 8,\n },\n checkbox: {\n width: 20,\n height: 20,\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: 4,\n borderWidth: 2,\n },\n checkmark: {\n fontSize: 12,\n fontWeight: \"bold\",\n },\n label: {\n fontSize: 14,\n },\n disabled: {\n opacity: 0.5,\n },\n});\n","/**\n * Switch Component - React Native version\n * Toggle switch with Reanimated animations\n */\nimport React, { useEffect, useMemo } from \"react\";\nimport {\n Pressable,\n View,\n StyleSheet,\n type PressableProps,\n type ViewStyle,\n} from \"react-native\";\nimport Animated, {\n useAnimatedStyle,\n useSharedValue,\n withTiming,\n} from \"react-native-reanimated\";\nimport { useTheme } from \"../native/ThemeContext\";\n\nexport interface SwitchProps extends Omit<PressableProps, \"onPress\"> {\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n // API compatibility props\n className?: string;\n}\n\n// Wrapper to avoid React version type conflicts\nconst AnimatedThumb = Animated.View as unknown as typeof View;\n\nexport const Switch = React.forwardRef<View, SwitchProps>(\n (\n {\n checked = false,\n onCheckedChange,\n disabled,\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n const translateX = useSharedValue(checked ? 20 : 0);\n\n useEffect(() => {\n translateX.value = withTiming(checked ? 20 : 0, { duration: 200 });\n }, [checked, translateX]);\n\n const thumbStyle = useAnimatedStyle(() => ({\n transform: [{ translateX: translateX.value }],\n }));\n\n const colorStyles = useMemo(\n () => ({\n trackChecked: { backgroundColor: colors.primary } as ViewStyle,\n trackUnchecked: { backgroundColor: colors.input } as ViewStyle,\n thumb: { backgroundColor: colors.background } as ViewStyle,\n }),\n [colors]\n );\n\n return (\n <Pressable\n ref={ref}\n style={[\n styles.track,\n checked ? colorStyles.trackChecked : colorStyles.trackUnchecked,\n disabled && styles.disabled,\n style as ViewStyle,\n ]}\n onPress={() => onCheckedChange?.(!checked)}\n disabled={disabled}\n {...props}\n >\n <AnimatedThumb style={[styles.thumb, colorStyles.thumb, thumbStyle]} />\n </Pressable>\n );\n }\n);\n\nSwitch.displayName = \"Switch\";\n\nconst styles = StyleSheet.create({\n track: {\n width: 44,\n height: 24,\n borderRadius: 12,\n padding: 2,\n justifyContent: \"center\",\n },\n thumb: {\n width: 20,\n height: 20,\n borderRadius: 10,\n shadowColor: \"#000\",\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 0.2,\n shadowRadius: 2,\n elevation: 2,\n },\n disabled: {\n opacity: 0.5,\n },\n});\n","/**\n * Select Component - React Native version\n * Dropdown select using Modal + FlatList\n */\nimport React, { useState, useMemo } from \"react\";\nimport {\n View,\n Text,\n Pressable,\n Modal,\n FlatList,\n StyleSheet,\n type ViewProps,\n type ViewStyle,\n type TextStyle,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\n\nexport interface SelectOption {\n label: string;\n value: string;\n}\n\nexport interface SelectProps extends ViewProps {\n options: SelectOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n placeholder?: string;\n label?: string;\n error?: string;\n required?: boolean;\n disabled?: boolean;\n // API compatibility props\n className?: string;\n}\n\nexport const Select = React.forwardRef<View, SelectProps>(\n (\n {\n options,\n value,\n onValueChange,\n placeholder = \"Select...\",\n label,\n error,\n required,\n disabled,\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n const [isOpen, setIsOpen] = useState(false);\n\n const selectedOption = options.find((opt) => opt.value === value);\n\n const colorStyles = useMemo(\n () => ({\n label: { color: colors.foreground } as TextStyle,\n required: { color: colors.destructive } as TextStyle,\n trigger: {\n borderColor: colors.input,\n backgroundColor: colors.card,\n } as ViewStyle,\n triggerError: { borderColor: colors.destructive } as ViewStyle,\n triggerText: { color: colors.foreground } as TextStyle,\n placeholder: { color: colors.mutedForeground } as TextStyle,\n chevron: { color: colors.mutedForeground } as TextStyle,\n error: { color: colors.destructive } as TextStyle,\n modalContent: { backgroundColor: colors.card } as ViewStyle,\n modalHeader: { borderBottomColor: colors.border } as ViewStyle,\n modalTitle: { color: colors.cardForeground } as TextStyle,\n option: { borderBottomColor: colors.border } as ViewStyle,\n optionSelected: { backgroundColor: colors.secondary } as ViewStyle,\n optionText: { color: colors.foreground } as TextStyle,\n }),\n [colors]\n );\n\n return (\n <View ref={ref} style={[styles.container, style as ViewStyle]} {...props}>\n {label && (\n <Text style={[styles.label, colorStyles.label]}>\n {label}\n {required && <Text style={colorStyles.required}> *</Text>}\n </Text>\n )}\n\n <Pressable\n style={[\n styles.trigger,\n colorStyles.trigger,\n error && colorStyles.triggerError,\n disabled && styles.disabled,\n ]}\n onPress={() => !disabled && setIsOpen(true)}\n >\n <Text\n style={[\n styles.triggerText,\n colorStyles.triggerText,\n !selectedOption && colorStyles.placeholder,\n ]}\n >\n {selectedOption?.label || placeholder}\n </Text>\n <Text style={[styles.chevron, colorStyles.chevron]}>▼</Text>\n </Pressable>\n\n {error && <Text style={[styles.error, colorStyles.error]}>{error}</Text>}\n\n <Modal\n visible={isOpen}\n transparent\n animationType=\"fade\"\n onRequestClose={() => setIsOpen(false)}\n >\n <Pressable\n style={styles.backdrop}\n onPress={() => setIsOpen(false)}\n >\n <View style={[styles.modalContent, colorStyles.modalContent]}>\n <View style={[styles.modalHeader, colorStyles.modalHeader]}>\n <Text style={[styles.modalTitle, colorStyles.modalTitle]}>\n {label || \"Select an option\"}\n </Text>\n </View>\n <FlatList\n data={options}\n keyExtractor={(item) => item.value}\n renderItem={({ item }) => (\n <Pressable\n style={[\n styles.option,\n colorStyles.option,\n value === item.value && colorStyles.optionSelected,\n ]}\n onPress={() => {\n onValueChange?.(item.value);\n setIsOpen(false);\n }}\n >\n <Text\n style={[\n styles.optionText,\n colorStyles.optionText,\n value === item.value && styles.optionTextSelected,\n ]}\n >\n {item.label}\n </Text>\n </Pressable>\n )}\n />\n </View>\n </Pressable>\n </Modal>\n </View>\n );\n }\n);\n\nSelect.displayName = \"Select\";\n\nconst styles = StyleSheet.create({\n container: {\n gap: 8,\n },\n label: {\n fontSize: 14,\n fontWeight: \"600\",\n },\n trigger: {\n height: 44,\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingHorizontal: 12,\n borderRadius: 8,\n borderWidth: 1,\n },\n disabled: {\n opacity: 0.5,\n },\n triggerText: {\n fontSize: 14,\n },\n chevron: {\n fontSize: 10,\n },\n error: {\n fontSize: 12,\n },\n backdrop: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: \"rgba(0, 0, 0, 0.5)\",\n },\n modalContent: {\n margin: 16,\n maxHeight: \"60%\",\n width: \"90%\",\n borderRadius: 12,\n overflow: \"hidden\",\n },\n modalHeader: {\n padding: 16,\n borderBottomWidth: 1,\n },\n modalTitle: {\n fontSize: 18,\n fontWeight: \"600\",\n },\n option: {\n padding: 16,\n borderBottomWidth: 1,\n },\n optionText: {\n fontSize: 14,\n },\n optionTextSelected: {\n fontWeight: \"600\",\n },\n});\n","/**\n * Label Component - React Native version\n * Form label using Text with StyleSheet\n */\nimport React, { useMemo } from \"react\";\nimport {\n Text,\n StyleSheet,\n type TextProps,\n type TextStyle,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\n\nexport interface LabelProps extends TextProps {\n required?: boolean;\n // API compatibility props\n className?: string;\n htmlFor?: string; // Ignored in RN\n}\n\nexport const Label = React.forwardRef<Text, LabelProps>(\n (\n {\n children,\n required,\n style,\n className, // Ignored in RN\n htmlFor, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n label: { color: colors.foreground } as TextStyle,\n required: { color: colors.destructive } as TextStyle,\n }),\n [colors]\n );\n\n return (\n <Text ref={ref} style={[styles.label, colorStyles.label, style as TextStyle]} {...props}>\n {children}\n {required && <Text style={colorStyles.required}> *</Text>}\n </Text>\n );\n }\n);\n\nLabel.displayName = \"Label\";\n\nconst styles = StyleSheet.create({\n label: {\n fontSize: 14,\n fontWeight: \"600\",\n lineHeight: 14,\n },\n});\n","/**\n * Badge Component - React Native version\n * Status and label indicators using StyleSheet\n */\nimport React, { useMemo } from \"react\";\nimport {\n View,\n Text,\n Pressable,\n StyleSheet,\n type ViewProps,\n type ViewStyle,\n type TextStyle,\n type PressableProps,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\nimport type { ThemeColors } from \"../native/types\";\n\nexport type BadgeVariant =\n | \"default\"\n | \"secondary\"\n | \"destructive\"\n | \"outline\"\n | \"success\"\n | \"todo\"\n | \"in-progress\"\n | \"review\"\n | \"done\"\n | \"blocked\"\n | \"low\"\n | \"medium\"\n | \"high\"\n | \"urgent\";\n\nexport interface BadgeProps extends ViewProps {\n variant?: BadgeVariant;\n children?: React.ReactNode;\n showDot?: boolean;\n textStyle?: TextStyle;\n // API compatibility props\n className?: string;\n textClassName?: string;\n}\n\n// Helper to get badge variant styles\nfunction getBadgeVariants(colors: ThemeColors) {\n return {\n default: { bg: colors.primary, text: colors.primaryForeground },\n secondary: { bg: colors.secondary, text: colors.secondaryForeground },\n destructive: { bg: colors.destructive, text: colors.destructiveForeground },\n outline: { bg: \"transparent\", text: colors.foreground, border: colors.border },\n success: { bg: colors.success, text: colors.successForeground },\n // Status variants\n todo: { bg: colors.statusTodo || \"rgba(107, 114, 128, 0.2)\", text: colors.statusTodoText || \"#4b5563\" },\n \"in-progress\": { bg: colors.statusInProgress || \"rgba(59, 130, 246, 0.2)\", text: colors.statusInProgressText || \"#2563eb\" },\n review: { bg: colors.statusReview || \"rgba(245, 158, 11, 0.2)\", text: colors.statusReviewText || \"#d97706\" },\n done: { bg: colors.statusDone || \"rgba(34, 197, 94, 0.2)\", text: colors.statusDoneText || \"#16a34a\" },\n blocked: { bg: colors.statusBlocked || \"rgba(239, 68, 68, 0.2)\", text: colors.statusBlockedText || \"#dc2626\" },\n // Priority variants\n low: { bg: colors.statusTodo || \"rgba(107, 114, 128, 0.2)\", text: colors.statusTodoText || \"#4b5563\" },\n medium: { bg: colors.statusInProgress || \"rgba(59, 130, 246, 0.2)\", text: colors.statusInProgressText || \"#2563eb\" },\n high: { bg: colors.statusReview || \"rgba(245, 158, 11, 0.2)\", text: colors.statusReviewText || \"#d97706\" },\n urgent: { bg: colors.statusBlocked || \"rgba(239, 68, 68, 0.2)\", text: colors.statusBlockedText || \"#dc2626\" },\n } as const;\n}\n\n// Helper to get dot colors\nfunction getDotColors(colors: ThemeColors) {\n return {\n todo: colors.dotTodo || \"#6b7280\",\n \"in-progress\": colors.dotInProgress || \"#3b82f6\",\n review: colors.dotReview || \"#f59e0b\",\n done: colors.dotDone || \"#22c55e\",\n blocked: colors.dotBlocked || \"#ef4444\",\n } as const;\n}\n\nexport const Badge = React.forwardRef<View, BadgeProps>(\n (\n {\n variant = \"default\",\n children,\n showDot,\n style,\n textStyle,\n className, // Ignored in RN\n textClassName, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const badgeVariants = useMemo(() => getBadgeVariants(colors), [colors]);\n const badgeDotColors = useMemo(() => getDotColors(colors), [colors]);\n\n const variantStyle = badgeVariants[variant] || badgeVariants.default;\n const hasBorder = \"border\" in variantStyle;\n\n const containerStyle: ViewStyle = {\n backgroundColor: variantStyle.bg,\n ...(hasBorder && {\n borderWidth: 1,\n borderColor: variantStyle.border,\n }),\n };\n\n const dotColor = showDot && variant && badgeDotColors[variant as keyof typeof badgeDotColors];\n\n return (\n <View ref={ref} style={[styles.container, containerStyle, style]} {...props}>\n {dotColor && <View style={[styles.dot, { backgroundColor: dotColor }]} />}\n {typeof children === \"string\" ? (\n <Text style={[styles.text, { color: variantStyle.text }, textStyle]}>\n {children}\n </Text>\n ) : (\n children\n )}\n </View>\n );\n }\n);\n\nBadge.displayName = \"Badge\";\n\n// Pressable Badge variant\nexport interface PressableBadgeProps extends Omit<PressableProps, \"children\"> {\n variant?: BadgeVariant;\n selectedVariant?: BadgeVariant;\n children?: React.ReactNode;\n selected?: boolean;\n textStyle?: TextStyle;\n // API compatibility props\n className?: string;\n textClassName?: string;\n}\n\nexport const PressableBadge = React.forwardRef<View, PressableBadgeProps>(\n (\n {\n variant = \"outline\",\n selectedVariant,\n children,\n selected,\n style,\n textStyle,\n className, // Ignored in RN\n textClassName, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n const badgeVariants = useMemo(() => getBadgeVariants(colors), [colors]);\n\n const currentVariant = selected && selectedVariant ? selectedVariant : variant;\n const variantStyle = badgeVariants[currentVariant] || badgeVariants.default;\n const hasBorder = \"border\" in variantStyle;\n\n const containerStyle: ViewStyle = {\n backgroundColor: variantStyle.bg,\n ...(hasBorder && {\n borderWidth: selected ? 2 : 1,\n borderColor: variantStyle.border,\n }),\n };\n\n return (\n <Pressable\n ref={ref}\n style={({ pressed }) => [\n styles.container,\n containerStyle,\n pressed && styles.pressed,\n style as ViewStyle,\n ]}\n {...props}\n >\n {typeof children === \"string\" ? (\n <Text style={[styles.text, { color: variantStyle.text }, textStyle]}>\n {children}\n </Text>\n ) : (\n children\n )}\n </Pressable>\n );\n }\n);\n\nPressableBadge.displayName = \"PressableBadge\";\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: \"row\",\n alignItems: \"center\",\n borderRadius: 9999,\n paddingHorizontal: 12,\n paddingVertical: 4,\n },\n text: {\n fontSize: 12,\n fontWeight: \"500\",\n },\n dot: {\n width: 6,\n height: 6,\n borderRadius: 3,\n marginRight: 6,\n },\n pressed: {\n opacity: 0.8,\n },\n});\n","/**\n * Avatar Component - React Native version\n * User avatar with fallback using StyleSheet\n */\nimport React, { useState, useMemo } from \"react\";\nimport {\n View,\n Image,\n Text,\n StyleSheet,\n type ViewProps,\n type ImageProps,\n type ViewStyle,\n type TextStyle,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\n\nexport type AvatarSize = \"sm\" | \"default\" | \"lg\" | \"xl\";\n\nconst sizeStyles: Record<AvatarSize, { container: ViewStyle; text: TextStyle }> = {\n sm: {\n container: { width: 32, height: 32 },\n text: { fontSize: 12 },\n },\n default: {\n container: { width: 40, height: 40 },\n text: { fontSize: 14 },\n },\n lg: {\n container: { width: 48, height: 48 },\n text: { fontSize: 16 },\n },\n xl: {\n container: { width: 64, height: 64 },\n text: { fontSize: 18 },\n },\n};\n\nexport interface AvatarProps extends ViewProps {\n size?: AvatarSize;\n // API compatibility props\n className?: string;\n}\n\nexport const Avatar = React.forwardRef<View, AvatarProps>(\n (\n {\n size = \"default\",\n children,\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n return (\n <View\n ref={ref}\n style={[styles.avatar, sizeStyles[size].container, style as ViewStyle]}\n {...props}\n >\n {children}\n </View>\n );\n }\n);\n\nAvatar.displayName = \"Avatar\";\n\n// Avatar Image\nexport interface AvatarImageProps extends Omit<ImageProps, \"source\" | \"src\"> {\n src?: string | null;\n // API compatibility props\n className?: string;\n}\n\nexport const AvatarImage = React.forwardRef<Image, AvatarImageProps>(\n (\n {\n src,\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const [hasError, setHasError] = useState(false);\n\n if (!src || hasError) return null;\n\n return (\n <Image\n ref={ref}\n source={{ uri: src }}\n style={[styles.image, style]}\n onError={() => setHasError(true)}\n {...props}\n />\n );\n }\n);\n\nAvatarImage.displayName = \"AvatarImage\";\n\n// Avatar Fallback\nexport interface AvatarFallbackProps extends ViewProps {\n size?: AvatarSize;\n // API compatibility props\n className?: string;\n}\n\nexport const AvatarFallback = React.forwardRef<View, AvatarFallbackProps>(\n (\n {\n size = \"default\",\n children,\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n fallback: { backgroundColor: colors.accent } as ViewStyle,\n fallbackText: { color: colors.accentForeground } as TextStyle,\n }),\n [colors]\n );\n\n return (\n <View ref={ref} style={[styles.fallback, colorStyles.fallback, style as ViewStyle]} {...props}>\n {typeof children === \"string\" ? (\n <Text style={[styles.fallbackText, colorStyles.fallbackText, sizeStyles[size].text]}>\n {children}\n </Text>\n ) : (\n children\n )}\n </View>\n );\n }\n);\n\nAvatarFallback.displayName = \"AvatarFallback\";\n\n// Convenience function to get initials\nexport function getInitials(name?: string | null): string {\n if (!name) return \"U\";\n const parts = name.trim().split(\" \");\n if (parts.length >= 2) {\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase();\n }\n return name.substring(0, 2).toUpperCase();\n}\n\nconst styles = StyleSheet.create({\n avatar: {\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n borderRadius: 9999,\n },\n image: {\n width: \"100%\",\n height: \"100%\",\n },\n fallback: {\n width: \"100%\",\n height: \"100%\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n fallbackText: {\n fontWeight: \"600\",\n },\n});\n","/**\n * Card Component - React Native version\n * Compound component for content containers using StyleSheet\n */\nimport React, { useMemo } from \"react\";\nimport {\n View,\n Text,\n Pressable,\n StyleSheet,\n type ViewProps,\n type PressableProps,\n type ViewStyle,\n type TextStyle,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\n\n// Card Root\nexport interface CardProps extends ViewProps {\n // API compatibility props\n className?: string;\n}\n\nexport const Card = React.forwardRef<View, CardProps>(\n (\n {\n children,\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n card: {\n borderColor: colors.border,\n backgroundColor: colors.card,\n } as ViewStyle,\n }),\n [colors]\n );\n\n return (\n <View ref={ref} style={[styles.card, colorStyles.card, style as ViewStyle]} {...props}>\n {children}\n </View>\n );\n }\n);\n\nCard.displayName = \"Card\";\n\n// Pressable Card (for clickable cards)\nexport interface PressableCardProps extends PressableProps {\n children?: React.ReactNode;\n // API compatibility props\n className?: string;\n}\n\nexport const PressableCard = React.forwardRef<View, PressableCardProps>(\n (\n {\n children,\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n card: {\n borderColor: colors.border,\n backgroundColor: colors.card,\n } as ViewStyle,\n }),\n [colors]\n );\n\n return (\n <Pressable\n ref={ref}\n style={({ pressed }) => [\n styles.card,\n colorStyles.card,\n pressed && styles.pressed,\n style as ViewStyle,\n ]}\n {...props}\n >\n {children}\n </Pressable>\n );\n }\n);\n\nPressableCard.displayName = \"PressableCard\";\n\n// Card Header\nexport interface CardHeaderProps extends ViewProps {\n // API compatibility props\n className?: string;\n}\n\nexport const CardHeader = React.forwardRef<View, CardHeaderProps>(\n (\n {\n children,\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n return (\n <View ref={ref} style={[styles.header, style as ViewStyle]} {...props}>\n {children}\n </View>\n );\n }\n);\n\nCardHeader.displayName = \"CardHeader\";\n\n// Card Title\nexport interface CardTitleProps extends ViewProps {\n children?: React.ReactNode;\n textStyle?: TextStyle;\n // API compatibility props\n className?: string;\n}\n\nexport const CardTitle = React.forwardRef<View, CardTitleProps>(\n (\n {\n children,\n style,\n textStyle,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n titleText: { color: colors.cardForeground } as TextStyle,\n }),\n [colors]\n );\n\n return (\n <View ref={ref} style={[style as ViewStyle]} {...props}>\n {typeof children === \"string\" ? (\n <Text style={[styles.titleText, colorStyles.titleText, textStyle]}>{children}</Text>\n ) : (\n children\n )}\n </View>\n );\n }\n);\n\nCardTitle.displayName = \"CardTitle\";\n\n// Card Description\nexport interface CardDescriptionProps extends ViewProps {\n children?: React.ReactNode;\n textStyle?: TextStyle;\n // API compatibility props\n className?: string;\n}\n\nexport const CardDescription = React.forwardRef<View, CardDescriptionProps>(\n (\n {\n children,\n style,\n textStyle,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n descriptionText: { color: colors.mutedForeground } as TextStyle,\n }),\n [colors]\n );\n\n return (\n <View ref={ref} style={[styles.description, style as ViewStyle]} {...props}>\n {typeof children === \"string\" ? (\n <Text style={[styles.descriptionText, colorStyles.descriptionText, textStyle]}>{children}</Text>\n ) : (\n children\n )}\n </View>\n );\n }\n);\n\nCardDescription.displayName = \"CardDescription\";\n\n// Card Content\nexport interface CardContentProps extends ViewProps {\n // API compatibility props\n className?: string;\n}\n\nexport const CardContent = React.forwardRef<View, CardContentProps>(\n (\n {\n children,\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n return (\n <View ref={ref} style={[style as ViewStyle]} {...props}>\n {children}\n </View>\n );\n }\n);\n\nCardContent.displayName = \"CardContent\";\n\n// Card Footer\nexport interface CardFooterProps extends ViewProps {\n // API compatibility props\n className?: string;\n}\n\nexport const CardFooter = React.forwardRef<View, CardFooterProps>(\n (\n {\n children,\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n footer: { borderTopColor: colors.border } as ViewStyle,\n }),\n [colors]\n );\n\n return (\n <View ref={ref} style={[styles.footer, colorStyles.footer, style as ViewStyle]} {...props}>\n {children}\n </View>\n );\n }\n);\n\nCardFooter.displayName = \"CardFooter\";\n\nconst styles = StyleSheet.create({\n card: {\n borderRadius: 12,\n borderWidth: 1,\n padding: 16,\n },\n pressed: {\n opacity: 0.8,\n },\n header: {\n marginBottom: 12,\n },\n titleText: {\n fontSize: 18,\n fontWeight: \"600\",\n },\n description: {\n marginTop: 4,\n },\n descriptionText: {\n fontSize: 14,\n },\n footer: {\n marginTop: 12,\n paddingTop: 12,\n borderTopWidth: 1,\n },\n});\n","/**\n * Separator Component - React Native version\n * Divider line using View with StyleSheet\n */\nimport React, { useMemo } from \"react\";\nimport {\n View,\n StyleSheet,\n type ViewProps,\n type ViewStyle,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\n\nexport interface SeparatorProps extends ViewProps {\n orientation?: \"horizontal\" | \"vertical\";\n // API compatibility props\n className?: string;\n}\n\nexport const Separator = React.forwardRef<View, SeparatorProps>(\n (\n {\n orientation = \"horizontal\",\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n base: { backgroundColor: colors.border } as ViewStyle,\n }),\n [colors]\n );\n\n return (\n <View\n ref={ref}\n style={[\n colorStyles.base,\n orientation === \"horizontal\" ? styles.horizontal : styles.vertical,\n style as ViewStyle,\n ]}\n {...props}\n />\n );\n }\n);\n\nSeparator.displayName = \"Separator\";\n\nconst styles = StyleSheet.create({\n horizontal: {\n height: 1,\n width: \"100%\",\n },\n vertical: {\n width: 1,\n height: \"100%\",\n },\n});\n","/**\n * Skeleton Component - React Native version\n * Loading placeholder with Reanimated pulse animation\n */\nimport React, { useEffect, useMemo } from \"react\";\nimport {\n View,\n StyleSheet,\n type ViewProps,\n type ViewStyle,\n} from \"react-native\";\nimport Animated, {\n useAnimatedStyle,\n useSharedValue,\n withRepeat,\n withTiming,\n withSequence,\n} from \"react-native-reanimated\";\nimport { useTheme } from \"../native/ThemeContext\";\n\nexport interface SkeletonProps extends ViewProps {\n // API compatibility props\n className?: string;\n}\n\n// Wrapper to avoid React version type conflicts\nconst AnimatedBox = Animated.View as unknown as typeof View;\n\nexport const Skeleton = React.forwardRef<View, SkeletonProps>(\n (\n {\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n const opacity = useSharedValue(1);\n\n useEffect(() => {\n opacity.value = withRepeat(\n withSequence(\n withTiming(0.5, { duration: 1000 }),\n withTiming(1, { duration: 1000 })\n ),\n -1,\n false\n );\n }, [opacity]);\n\n const animatedStyle = useAnimatedStyle(() => ({\n opacity: opacity.value,\n }));\n\n const colorStyles = useMemo(\n () => ({\n base: { backgroundColor: colors.muted } as ViewStyle,\n }),\n [colors]\n );\n\n return (\n <AnimatedBox\n ref={ref}\n style={[styles.base, colorStyles.base, animatedStyle, style as ViewStyle]}\n {...props}\n />\n );\n }\n);\n\nSkeleton.displayName = \"Skeleton\";\n\n// Common skeleton patterns\nexport const SkeletonText = React.forwardRef<View, SkeletonProps>(\n (\n {\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n text: { backgroundColor: colors.muted } as ViewStyle,\n }),\n [colors]\n );\n\n return <Skeleton ref={ref} style={[styles.text, colorStyles.text, style as ViewStyle]} {...props} />;\n }\n);\n\nSkeletonText.displayName = \"SkeletonText\";\n\nexport const SkeletonTitle = React.forwardRef<View, SkeletonProps>(\n (\n {\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n title: { backgroundColor: colors.muted } as ViewStyle,\n }),\n [colors]\n );\n\n return <Skeleton ref={ref} style={[styles.title, colorStyles.title, style as ViewStyle]} {...props} />;\n }\n);\n\nSkeletonTitle.displayName = \"SkeletonTitle\";\n\nexport const SkeletonAvatar = React.forwardRef<View, SkeletonProps>(\n (\n {\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n avatar: { backgroundColor: colors.muted } as ViewStyle,\n }),\n [colors]\n );\n\n return <Skeleton ref={ref} style={[styles.avatar, colorStyles.avatar, style as ViewStyle]} {...props} />;\n }\n);\n\nSkeletonAvatar.displayName = \"SkeletonAvatar\";\n\nexport const SkeletonCard = React.forwardRef<View, SkeletonProps>(\n (\n {\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n card: {\n borderColor: colors.border,\n backgroundColor: colors.card,\n } as ViewStyle,\n skeleton: { backgroundColor: colors.muted } as ViewStyle,\n }),\n [colors]\n );\n\n return (\n <View ref={ref} style={[styles.card, colorStyles.card, style as ViewStyle]} {...props}>\n <Skeleton style={[styles.cardTitle, colorStyles.skeleton]} />\n <Skeleton style={[styles.cardLine1, colorStyles.skeleton]} />\n <Skeleton style={[styles.cardLine2, colorStyles.skeleton]} />\n <View style={styles.cardBadges}>\n <Skeleton style={[styles.cardBadge, colorStyles.skeleton]} />\n <Skeleton style={[styles.cardBadge, colorStyles.skeleton]} />\n </View>\n </View>\n );\n }\n);\n\nSkeletonCard.displayName = \"SkeletonCard\";\n\nconst styles = StyleSheet.create({\n base: {\n borderRadius: 6,\n },\n text: {\n height: 16,\n width: \"75%\",\n borderRadius: 6,\n },\n title: {\n height: 24,\n width: \"50%\",\n borderRadius: 6,\n },\n avatar: {\n height: 40,\n width: 40,\n borderRadius: 20,\n },\n card: {\n gap: 12,\n borderRadius: 12,\n borderWidth: 1,\n padding: 16,\n },\n cardTitle: {\n height: 20,\n width: \"66%\",\n borderRadius: 6,\n },\n cardLine1: {\n height: 16,\n width: \"100%\",\n borderRadius: 6,\n },\n cardLine2: {\n height: 16,\n width: \"80%\",\n borderRadius: 6,\n },\n cardBadges: {\n flexDirection: \"row\",\n gap: 8,\n paddingTop: 8,\n },\n cardBadge: {\n height: 24,\n width: 64,\n borderRadius: 12,\n },\n});\n","/**\n * Dialog Component - React Native version\n * Modal dialog using RN Modal component\n */\nimport React, { useMemo } from \"react\";\nimport {\n View,\n Text,\n Modal,\n Pressable,\n StyleSheet,\n type ModalProps,\n type ViewProps,\n type ViewStyle,\n type TextStyle,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\n\n// Dialog Root\nexport interface DialogProps extends Omit<ModalProps, \"visible\"> {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n children?: React.ReactNode;\n}\n\nexport function Dialog({\n open = false,\n onOpenChange,\n children,\n ...props\n}: DialogProps) {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n content: { backgroundColor: colors.card } as ViewStyle,\n }),\n [colors]\n );\n\n return (\n <Modal\n visible={open}\n transparent\n animationType=\"fade\"\n onRequestClose={() => onOpenChange?.(false)}\n {...props}\n >\n <Pressable\n style={styles.backdrop}\n onPress={() => onOpenChange?.(false)}\n >\n <Pressable\n style={[styles.content, colorStyles.content]}\n onPress={(e) => e.stopPropagation()}\n >\n {children}\n </Pressable>\n </Pressable>\n </Modal>\n );\n}\n\nDialog.displayName = \"Dialog\";\n\n// Dialog Header\nexport interface DialogHeaderProps extends ViewProps {\n // API compatibility props\n className?: string;\n}\n\nexport const DialogHeader = React.forwardRef<View, DialogHeaderProps>(\n (\n {\n children,\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n header: { borderBottomColor: colors.border } as ViewStyle,\n }),\n [colors]\n );\n\n return (\n <View ref={ref} style={[styles.header, colorStyles.header, style as ViewStyle]} {...props}>\n {children}\n </View>\n );\n }\n);\n\nDialogHeader.displayName = \"DialogHeader\";\n\n// Dialog Title\nexport interface DialogTitleProps extends ViewProps {\n children?: React.ReactNode;\n textStyle?: TextStyle;\n // API compatibility props\n className?: string;\n}\n\nexport const DialogTitle = React.forwardRef<View, DialogTitleProps>(\n (\n {\n children,\n style,\n textStyle,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n titleText: { color: colors.cardForeground } as TextStyle,\n }),\n [colors]\n );\n\n return (\n <View ref={ref} style={[style as ViewStyle]} {...props}>\n {typeof children === \"string\" ? (\n <Text style={[styles.titleText, colorStyles.titleText, textStyle]}>{children}</Text>\n ) : (\n children\n )}\n </View>\n );\n }\n);\n\nDialogTitle.displayName = \"DialogTitle\";\n\n// Dialog Description\nexport interface DialogDescriptionProps extends ViewProps {\n children?: React.ReactNode;\n textStyle?: TextStyle;\n // API compatibility props\n className?: string;\n}\n\nexport const DialogDescription = React.forwardRef<View, DialogDescriptionProps>(\n (\n {\n children,\n style,\n textStyle,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n descriptionText: { color: colors.mutedForeground } as TextStyle,\n }),\n [colors]\n );\n\n return (\n <View ref={ref} style={[styles.description, style as ViewStyle]} {...props}>\n {typeof children === \"string\" ? (\n <Text style={[styles.descriptionText, colorStyles.descriptionText, textStyle]}>{children}</Text>\n ) : (\n children\n )}\n </View>\n );\n }\n);\n\nDialogDescription.displayName = \"DialogDescription\";\n\n// Dialog Body/Content area\nexport interface DialogContentProps extends ViewProps {\n // API compatibility props\n className?: string;\n}\n\nexport const DialogContent = React.forwardRef<View, DialogContentProps>(\n (\n {\n children,\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n return (\n <View ref={ref} style={[styles.body, style as ViewStyle]} {...props}>\n {children}\n </View>\n );\n }\n);\n\nDialogContent.displayName = \"DialogContent\";\n\n// Dialog Footer\nexport interface DialogFooterProps extends ViewProps {\n // API compatibility props\n className?: string;\n}\n\nexport const DialogFooter = React.forwardRef<View, DialogFooterProps>(\n (\n {\n children,\n style,\n className, // Ignored in RN\n ...props\n },\n ref\n ) => {\n const { colors } = useTheme();\n\n const colorStyles = useMemo(\n () => ({\n footer: { borderTopColor: colors.border } as ViewStyle,\n }),\n [colors]\n );\n\n return (\n <View ref={ref} style={[styles.footer, colorStyles.footer, style as ViewStyle]} {...props}>\n {children}\n </View>\n );\n }\n);\n\nDialogFooter.displayName = \"DialogFooter\";\n\n// Dialog Close (trigger to close)\nexport interface DialogCloseProps {\n children?: React.ReactNode;\n onClose?: () => void;\n // API compatibility props\n className?: string;\n}\n\nexport const DialogClose = React.forwardRef<View, DialogCloseProps>(\n (\n {\n children,\n onClose,\n className, // Ignored in RN\n },\n ref\n ) => {\n return (\n <Pressable ref={ref} onPress={onClose}>\n {children}\n </Pressable>\n );\n }\n);\n\nDialogClose.displayName = \"DialogClose\";\n\nconst styles = StyleSheet.create({\n backdrop: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n backgroundColor: \"rgba(0, 0, 0, 0.5)\",\n padding: 16,\n },\n content: {\n width: \"100%\",\n maxWidth: 512,\n borderRadius: 12,\n maxHeight: \"85%\",\n overflow: \"hidden\",\n },\n header: {\n padding: 16,\n borderBottomWidth: 1,\n },\n titleText: {\n fontSize: 18,\n fontWeight: \"600\",\n },\n description: {\n marginTop: 4,\n },\n descriptionText: {\n fontSize: 14,\n },\n body: {\n padding: 16,\n },\n footer: {\n flexDirection: \"row\",\n justifyContent: \"flex-end\",\n gap: 8,\n padding: 16,\n borderTopWidth: 1,\n },\n});\n","import React, { useEffect, useRef } from \"react\";\nimport {\n View,\n Animated,\n StyleSheet,\n type ViewStyle,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\n\nexport interface ProgressProps {\n /** Progress value from 0 to 100 */\n value?: number;\n /** Custom styles for the track */\n style?: ViewStyle;\n /** API compatibility - ignored in native */\n className?: string;\n}\n\nconst Progress = React.forwardRef<View, ProgressProps>(\n ({ value = 0, style, className }, ref) => {\n const { colors } = useTheme();\n const animatedWidth = useRef(new Animated.Value(value)).current;\n\n useEffect(() => {\n Animated.timing(animatedWidth, {\n toValue: value,\n duration: 200,\n useNativeDriver: false,\n }).start();\n }, [value, animatedWidth]);\n\n return (\n <View\n ref={ref}\n style={[\n styles.track,\n { backgroundColor: colors.secondary },\n style,\n ]}\n >\n <Animated.View\n style={[\n styles.indicator,\n {\n backgroundColor: colors.primary,\n width: animatedWidth.interpolate({\n inputRange: [0, 100],\n outputRange: [\"0%\", \"100%\"],\n extrapolate: \"clamp\",\n }),\n },\n ]}\n />\n </View>\n );\n }\n);\n\nProgress.displayName = \"Progress\";\n\nconst styles = StyleSheet.create({\n track: {\n height: 16,\n width: \"100%\",\n overflow: \"hidden\",\n borderRadius: 9999, // rounded-full\n },\n indicator: {\n height: \"100%\",\n },\n});\n\nexport { Progress };\n","import React, { createContext, useContext, useMemo } from \"react\";\nimport {\n View,\n Text,\n Pressable,\n StyleSheet,\n type ViewStyle,\n type TextStyle,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\n\n// Context for Tabs state\ninterface TabsContextValue {\n value: string;\n onValueChange: (value: string) => void;\n}\n\nconst TabsContext = createContext<TabsContextValue | null>(null);\n\nfunction useTabsContext() {\n const context = useContext(TabsContext);\n if (!context) {\n throw new Error(\"Tabs components must be used within a Tabs provider\");\n }\n return context;\n}\n\n// Tabs Root\nexport interface TabsProps {\n value: string;\n onValueChange: (value: string) => void;\n children: React.ReactNode;\n style?: ViewStyle;\n /** API compatibility - ignored in native */\n className?: string;\n /** API compatibility - ignored in native */\n defaultValue?: string;\n}\n\nconst Tabs = React.forwardRef<View, TabsProps>(\n ({ value, onValueChange, children, style, className, defaultValue }, ref) => {\n const contextValue = useMemo(\n () => ({ value, onValueChange }),\n [value, onValueChange]\n );\n\n return (\n <TabsContext.Provider value={contextValue}>\n <View ref={ref} style={style}>\n {children}\n </View>\n </TabsContext.Provider>\n );\n }\n);\nTabs.displayName = \"Tabs\";\n\n// TabsList\nexport interface TabsListProps {\n children: React.ReactNode;\n style?: ViewStyle;\n /** API compatibility - ignored in native */\n className?: string;\n}\n\nconst TabsList = React.forwardRef<View, TabsListProps>(\n ({ children, style, className }, ref) => {\n const { colors } = useTheme();\n\n return (\n <View\n ref={ref}\n style={[\n styles.list,\n { backgroundColor: colors.muted },\n style,\n ]}\n >\n {children}\n </View>\n );\n }\n);\nTabsList.displayName = \"TabsList\";\n\n// TabsTrigger\nexport interface TabsTriggerProps {\n value: string;\n children: React.ReactNode;\n disabled?: boolean;\n style?: ViewStyle;\n textStyle?: TextStyle;\n /** API compatibility - ignored in native */\n className?: string;\n}\n\nconst TabsTrigger = React.forwardRef<View, TabsTriggerProps>(\n ({ value, children, disabled, style, textStyle, className }, ref) => {\n const { colors } = useTheme();\n const { value: activeValue, onValueChange } = useTabsContext();\n const isActive = activeValue === value;\n\n return (\n <Pressable\n ref={ref}\n disabled={disabled}\n onPress={() => onValueChange(value)}\n style={({ pressed }) => [\n styles.trigger,\n isActive && [styles.triggerActive, { backgroundColor: colors.background }],\n pressed && styles.pressed,\n disabled && styles.disabled,\n style,\n ]}\n >\n {typeof children === \"string\" ? (\n <Text\n style={[\n styles.triggerText,\n { color: colors.mutedForeground },\n isActive && { color: colors.foreground },\n textStyle,\n ]}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n </Pressable>\n );\n }\n);\nTabsTrigger.displayName = \"TabsTrigger\";\n\n// TabsContent\nexport interface TabsContentProps {\n value: string;\n children: React.ReactNode;\n style?: ViewStyle;\n /** API compatibility - ignored in native */\n className?: string;\n}\n\nconst TabsContent = React.forwardRef<View, TabsContentProps>(\n ({ value, children, style, className }, ref) => {\n const { value: activeValue } = useTabsContext();\n\n if (activeValue !== value) {\n return null;\n }\n\n return (\n <View ref={ref} style={[styles.content, style]}>\n {children}\n </View>\n );\n }\n);\nTabsContent.displayName = \"TabsContent\";\n\nconst styles = StyleSheet.create({\n list: {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderRadius: 8,\n padding: 4,\n gap: 4,\n },\n trigger: {\n flex: 1,\n alignItems: \"center\",\n justifyContent: \"center\",\n paddingHorizontal: 12,\n paddingVertical: 6,\n borderRadius: 6,\n },\n triggerActive: {\n shadowColor: \"#000\",\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 0.1,\n shadowRadius: 2,\n elevation: 2,\n },\n triggerText: {\n fontSize: 14,\n fontWeight: \"500\",\n },\n pressed: {\n opacity: 0.8,\n },\n disabled: {\n opacity: 0.5,\n },\n content: {\n marginTop: 8,\n },\n});\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","import React, {\n createContext,\n useContext,\n useMemo,\n useRef,\n useEffect,\n useState,\n} from \"react\";\nimport {\n View,\n Text,\n Pressable,\n Animated,\n StyleSheet,\n LayoutAnimation,\n Platform,\n UIManager,\n type ViewStyle,\n type TextStyle,\n} from \"react-native\";\nimport { useTheme } from \"../native/ThemeContext\";\n\n// Enable LayoutAnimation on Android\nif (\n Platform.OS === \"android\" &&\n UIManager.setLayoutAnimationEnabledExperimental\n) {\n UIManager.setLayoutAnimationEnabledExperimental(true);\n}\n\n// Accordion Context\ninterface AccordionContextValue {\n type: \"single\" | \"multiple\";\n expandedItems: string[];\n toggleItem: (value: string) => void;\n collapsible?: boolean;\n}\n\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\n\nfunction useAccordionContext() {\n const context = useContext(AccordionContext);\n if (!context) {\n throw new Error(\"Accordion components must be used within an Accordion provider\");\n }\n return context;\n}\n\n// AccordionItem Context\ninterface AccordionItemContextValue {\n value: string;\n isExpanded: boolean;\n}\n\nconst AccordionItemContext = createContext<AccordionItemContextValue | null>(null);\n\nfunction useAccordionItemContext() {\n const context = useContext(AccordionItemContext);\n if (!context) {\n throw new Error(\"AccordionItem components must be used within an AccordionItem\");\n }\n return context;\n}\n\n// Accordion Root\nexport interface AccordionProps {\n type?: \"single\" | \"multiple\";\n value?: string | string[];\n defaultValue?: string | string[];\n onValueChange?: (value: string | string[]) => void;\n collapsible?: boolean;\n children: React.ReactNode;\n style?: ViewStyle;\n /** API compatibility - ignored in native */\n className?: string;\n}\n\nconst Accordion = React.forwardRef<View, AccordionProps>(\n (\n {\n type = \"single\",\n value,\n defaultValue,\n onValueChange,\n collapsible = false,\n children,\n style,\n className,\n },\n ref\n ) => {\n // Internal state for uncontrolled mode\n const [internalValue, setInternalValue] = useState<string[]>(() => {\n if (value !== undefined) {\n return Array.isArray(value) ? value : value ? [value] : [];\n }\n if (defaultValue !== undefined) {\n return Array.isArray(defaultValue) ? defaultValue : defaultValue ? [defaultValue] : [];\n }\n return [];\n });\n\n // Use controlled value if provided\n const expandedItems = value !== undefined\n ? (Array.isArray(value) ? value : value ? [value] : [])\n : internalValue;\n\n const toggleItem = (itemValue: string) => {\n LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInEaseOut);\n\n let newItems: string[];\n\n if (type === \"single\") {\n if (expandedItems.includes(itemValue)) {\n newItems = collapsible ? [] : [itemValue];\n } else {\n newItems = [itemValue];\n }\n } else {\n if (expandedItems.includes(itemValue)) {\n newItems = expandedItems.filter((v) => v !== itemValue);\n } else {\n newItems = [...expandedItems, itemValue];\n }\n }\n\n if (value === undefined) {\n setInternalValue(newItems);\n }\n\n if (onValueChange) {\n onValueChange(type === \"single\" ? (newItems[0] || \"\") : newItems);\n }\n };\n\n const contextValue = useMemo(\n () => ({ type, expandedItems, toggleItem, collapsible }),\n [type, expandedItems, collapsible]\n );\n\n return (\n <AccordionContext.Provider value={contextValue}>\n <View ref={ref} style={style}>\n {children}\n </View>\n </AccordionContext.Provider>\n );\n }\n);\nAccordion.displayName = \"Accordion\";\n\n// AccordionItem\nexport interface AccordionItemProps {\n value: string;\n children: React.ReactNode;\n style?: ViewStyle;\n /** API compatibility - ignored in native */\n className?: string;\n}\n\nconst AccordionItem = React.forwardRef<View, AccordionItemProps>(\n ({ value, children, style, className }, ref) => {\n const { colors } = useTheme();\n const { expandedItems } = useAccordionContext();\n const isExpanded = expandedItems.includes(value);\n\n const contextValue = useMemo(\n () => ({ value, isExpanded }),\n [value, isExpanded]\n );\n\n return (\n <AccordionItemContext.Provider value={contextValue}>\n <View\n ref={ref}\n style={[\n styles.item,\n { borderBottomColor: colors.border },\n style,\n ]}\n >\n {children}\n </View>\n </AccordionItemContext.Provider>\n );\n }\n);\nAccordionItem.displayName = \"AccordionItem\";\n\n// AccordionTrigger\nexport interface AccordionTriggerProps {\n children: React.ReactNode;\n style?: ViewStyle;\n textStyle?: TextStyle;\n /** API compatibility - ignored in native */\n className?: string;\n}\n\nconst AccordionTrigger = React.forwardRef<View, AccordionTriggerProps>(\n ({ children, style, textStyle, className }, ref) => {\n const { colors } = useTheme();\n const { toggleItem } = useAccordionContext();\n const { value, isExpanded } = useAccordionItemContext();\n const rotateAnim = useRef(new Animated.Value(isExpanded ? 1 : 0)).current;\n\n useEffect(() => {\n Animated.timing(rotateAnim, {\n toValue: isExpanded ? 1 : 0,\n duration: 200,\n useNativeDriver: true,\n }).start();\n }, [isExpanded, rotateAnim]);\n\n const rotation = rotateAnim.interpolate({\n inputRange: [0, 1],\n outputRange: [\"0deg\", \"180deg\"],\n });\n\n return (\n <Pressable\n ref={ref}\n onPress={() => toggleItem(value)}\n style={({ pressed }) => [\n styles.trigger,\n pressed && styles.pressed,\n style,\n ]}\n >\n {typeof children === \"string\" ? (\n <Text style={[styles.triggerText, { color: colors.foreground }, textStyle]}>\n {children}\n </Text>\n ) : (\n <View style={styles.triggerContent}>{children}</View>\n )}\n <Animated.View style={{ transform: [{ rotate: rotation }] }}>\n <ChevronIcon color={colors.mutedForeground} />\n </Animated.View>\n </Pressable>\n );\n }\n);\nAccordionTrigger.displayName = \"AccordionTrigger\";\n\n// AccordionContent\nexport interface AccordionContentProps {\n children: React.ReactNode;\n style?: ViewStyle;\n /** API compatibility - ignored in native */\n className?: string;\n}\n\nconst AccordionContent = React.forwardRef<View, AccordionContentProps>(\n ({ children, style, className }, ref) => {\n const { isExpanded } = useAccordionItemContext();\n\n if (!isExpanded) {\n return null;\n }\n\n return (\n <View ref={ref} style={[styles.content, style]}>\n {children}\n </View>\n );\n }\n);\nAccordionContent.displayName = \"AccordionContent\";\n\n// Simple Chevron Icon component (no external dependency)\ninterface ChevronIconProps {\n color?: string;\n size?: number;\n}\n\nfunction ChevronIcon({ color = \"#666\", size = 16 }: ChevronIconProps) {\n return (\n <View style={{ width: size, height: size, justifyContent: \"center\", alignItems: \"center\" }}>\n <View\n style={{\n width: size * 0.5,\n height: size * 0.5,\n borderRightWidth: 2,\n borderBottomWidth: 2,\n borderColor: color,\n transform: [{ rotate: \"45deg\" }, { translateY: -2 }],\n }}\n />\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n item: {\n borderBottomWidth: 1,\n },\n trigger: {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingVertical: 16,\n },\n triggerContent: {\n flex: 1,\n },\n triggerText: {\n flex: 1,\n fontSize: 14,\n fontWeight: \"500\",\n },\n pressed: {\n opacity: 0.7,\n },\n content: {\n paddingBottom: 16,\n },\n});\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent };\n","/**\n * Slider Component - React Native version\n * Custom slider using Animated + PanResponder\n */\n\nimport React, { useRef, useState, useCallback, useEffect } from \"react\"\nimport {\n View,\n Animated,\n PanResponder,\n StyleSheet,\n LayoutChangeEvent,\n type ViewStyle,\n type GestureResponderEvent,\n type PanResponderGestureState,\n} from \"react-native\"\nimport { useTheme } from \"../native/ThemeContext\"\n\nexport interface SliderProps {\n /** Current value (0-100 by default, or use min/max) */\n value?: number[]\n /** Default value if uncontrolled */\n defaultValue?: number[]\n /** Callback when value changes */\n onValueChange?: (value: number[]) => void\n /** Callback when sliding ends */\n onValueCommit?: (value: number[]) => void\n /** Minimum value */\n min?: number\n /** Maximum value */\n max?: number\n /** Step increment */\n step?: number\n /** Whether the slider is disabled */\n disabled?: boolean\n /** Custom styles for the container */\n style?: ViewStyle\n /** API compatibility - ignored in native */\n className?: string\n}\n\nconst Slider = React.forwardRef<View, SliderProps>(\n (\n {\n value: controlledValue,\n defaultValue = [0],\n onValueChange,\n onValueCommit,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n style,\n },\n ref\n ) => {\n const { colors } = useTheme()\n const [trackWidth, setTrackWidth] = useState(0)\n\n // Use controlled or uncontrolled value\n const isControlled = controlledValue !== undefined\n const [internalValue, setInternalValue] = useState(defaultValue[0])\n const currentValue = isControlled ? (controlledValue[0] ?? 0) : internalValue\n\n // Animated value for thumb position\n const pan = useRef(new Animated.Value(0)).current\n\n // Refs to access current values in PanResponder without recreating it\n const stateRef = useRef({\n trackWidth: 0,\n currentValue: 0,\n isControlled: false,\n disabled: false,\n min: 0,\n max: 100,\n step: 1,\n onValueChange: undefined as ((value: number[]) => void) | undefined,\n onValueCommit: undefined as ((value: number[]) => void) | undefined,\n setInternalValue: (() => {}) as React.Dispatch<React.SetStateAction<number>>,\n })\n\n // Track starting position for drag gestures\n const startPosition = useRef(0)\n\n // Keep refs in sync with props/state\n useEffect(() => {\n stateRef.current = {\n trackWidth,\n currentValue,\n isControlled,\n disabled,\n min,\n max,\n step,\n onValueChange,\n onValueCommit,\n setInternalValue,\n }\n })\n\n // Calculate position from value\n const valueToPosition = useCallback(\n (val: number, width: number = trackWidth) => {\n if (width === 0) return 0\n const percentage = (val - min) / (max - min)\n return percentage * width\n },\n [trackWidth, min, max]\n )\n\n // Calculate value from position (using ref values for PanResponder)\n const positionToValueRef = (pos: number) => {\n const { trackWidth: w, min: minVal, max: maxVal, step: stepVal } = stateRef.current\n if (w === 0) return minVal\n const percentage = Math.max(0, Math.min(1, pos / w))\n let val = minVal + percentage * (maxVal - minVal)\n // Apply step\n val = Math.round(val / stepVal) * stepVal\n return Math.max(minVal, Math.min(maxVal, val))\n }\n\n // Calculate position from value (using ref values for PanResponder)\n const valueToPositionRef = (val: number) => {\n const { trackWidth: w, min: minVal, max: maxVal } = stateRef.current\n if (w === 0) return 0\n const percentage = (val - minVal) / (maxVal - minVal)\n return percentage * w\n }\n\n // Update animated position when value changes (not during drag)\n useEffect(() => {\n const position = valueToPosition(currentValue)\n pan.setValue(position)\n }, [currentValue, valueToPosition, pan])\n\n // Create PanResponder ONCE - use refs to access current values\n const panResponder = useRef(\n PanResponder.create({\n onStartShouldSetPanResponder: () => !stateRef.current.disabled,\n onMoveShouldSetPanResponder: () => !stateRef.current.disabled,\n onPanResponderGrant: () => {\n // Store current position when drag starts\n pan.stopAnimation()\n startPosition.current = valueToPositionRef(stateRef.current.currentValue)\n },\n onPanResponderMove: (\n _: GestureResponderEvent,\n gestureState: PanResponderGestureState\n ) => {\n const { trackWidth: w, isControlled: controlled, onValueChange: onChange, setInternalValue: setVal } = stateRef.current\n\n // Calculate new position based on start position + drag delta\n const newPosition = Math.max(\n 0,\n Math.min(w, startPosition.current + gestureState.dx)\n )\n pan.setValue(newPosition)\n\n const newValue = positionToValueRef(newPosition)\n if (!controlled) {\n setVal(newValue)\n }\n onChange?.([newValue])\n },\n onPanResponderRelease: () => {\n const { onValueCommit: onCommit } = stateRef.current\n const newValue = positionToValueRef((pan as any)._value)\n onCommit?.([newValue])\n },\n })\n ).current\n\n const handleTrackLayout = (event: LayoutChangeEvent) => {\n const { width } = event.nativeEvent.layout\n // Account for thumb width (16px)\n setTrackWidth(width - 16)\n }\n\n const handleTrackPress = (event: any) => {\n if (disabled) return\n const { locationX } = event.nativeEvent\n const positionToValue = (pos: number) => {\n if (trackWidth === 0) return min\n const percentage = Math.max(0, Math.min(1, pos / trackWidth))\n let val = min + percentage * (max - min)\n val = Math.round(val / step) * step\n return Math.max(min, Math.min(max, val))\n }\n\n const newValue = positionToValue(locationX - 8) // Offset for thumb center\n\n if (!isControlled) {\n setInternalValue(newValue)\n }\n onValueChange?.([newValue])\n onValueCommit?.([newValue])\n\n // Animate to new position\n Animated.spring(pan, {\n toValue: valueToPosition(newValue),\n useNativeDriver: false,\n friction: 7,\n }).start()\n }\n\n // Calculate fill width percentage\n const fillPercentage = ((currentValue - min) / (max - min)) * 100\n\n return (\n <View\n ref={ref}\n style={[styles.container, style]}\n onLayout={handleTrackLayout}\n onStartShouldSetResponder={() => !disabled}\n onResponderRelease={handleTrackPress}\n >\n {/* Track */}\n <View\n style={[\n styles.track,\n { backgroundColor: colors.secondary },\n disabled && styles.trackDisabled,\n ]}\n >\n {/* Filled Range */}\n <View\n style={[\n styles.range,\n {\n backgroundColor: disabled ? colors.muted : colors.primary,\n width: `${fillPercentage}%`,\n },\n ]}\n />\n </View>\n\n {/* Thumb */}\n <Animated.View\n {...panResponder.panHandlers}\n style={[\n styles.thumb,\n {\n backgroundColor: colors.background,\n borderColor: disabled ? colors.muted : colors.primary,\n transform: [{ translateX: pan }],\n },\n disabled && styles.thumbDisabled,\n ]}\n />\n </View>\n )\n }\n)\n\nSlider.displayName = \"Slider\"\n\nconst styles = StyleSheet.create({\n container: {\n height: 20,\n justifyContent: \"center\",\n position: \"relative\",\n },\n track: {\n height: 6,\n borderRadius: 3,\n width: \"100%\",\n overflow: \"hidden\",\n },\n trackDisabled: {\n opacity: 0.5,\n },\n range: {\n height: \"100%\",\n borderRadius: 3,\n },\n thumb: {\n position: \"absolute\",\n width: 16,\n height: 16,\n borderRadius: 8,\n borderWidth: 2,\n shadowColor: \"#000\",\n shadowOffset: { width: 0, height: 1 },\n shadowOpacity: 0.2,\n shadowRadius: 1,\n elevation: 2,\n },\n thumbDisabled: {\n opacity: 0.5,\n },\n})\n\nexport { Slider }\n"],"mappings":"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","names":["useMemo","jsx","useMemo","React","useMemo","View","Text","StyleSheet","jsx","React","useMemo","View","styles","Text","StyleSheet","React","useMemo","TextInput","View","Text","StyleSheet","jsx","jsxs","React","useMemo","View","styles","Text","TextInput","StyleSheet","React","useMemo","View","Text","Pressable","StyleSheet","jsx","jsxs","React","useMemo","Pressable","styles","View","Text","StyleSheet","React","useMemo","Pressable","StyleSheet","jsx","React","useMemo","Pressable","styles","StyleSheet","React","useMemo","View","Text","Pressable","StyleSheet","jsx","jsxs","React","useMemo","View","styles","Text","Pressable","StyleSheet","React","useMemo","Text","StyleSheet","jsx","jsxs","React","useMemo","Text","styles","StyleSheet","React","useMemo","View","Text","Pressable","StyleSheet","jsx","jsxs","React","useMemo","View","styles","Text","Pressable","StyleSheet","React","useState","useMemo","View","Text","StyleSheet","jsx","sizeStyles","React","View","styles","useState","useMemo","Text","StyleSheet","React","useMemo","View","Text","Pressable","StyleSheet","jsx","React","useMemo","View","styles","Pressable","Text","StyleSheet","React","useMemo","View","StyleSheet","jsx","React","useMemo","View","styles","StyleSheet","React","useEffect","useMemo","View","StyleSheet","Animated","useAnimatedStyle","useSharedValue","withTiming","jsx","jsxs","Animated","React","useSharedValue","useEffect","withTiming","useAnimatedStyle","useMemo","styles","View","StyleSheet","React","useMemo","View","Text","Modal","Pressable","StyleSheet","jsx","useMemo","Modal","Pressable","styles","React","View","Text","StyleSheet","React","useEffect","View","Animated","StyleSheet","jsx","React","Animated","useEffect","View","styles","StyleSheet","React","createContext","useContext","useMemo","View","Text","Pressable","StyleSheet","jsx","createContext","useContext","React","useMemo","View","styles","Pressable","Text","StyleSheet","React","createContext","useContext","useMemo","useRef","useEffect","useState","View","Text","Pressable","Animated","StyleSheet","jsx","jsxs","createContext","useContext","React","useState","useMemo","View","styles","useRef","Animated","useEffect","Pressable","Text","StyleSheet","React","useRef","useState","useEffect","View","Animated","StyleSheet","jsx","jsxs","React","useState","useRef","Animated","useEffect","View","styles","StyleSheet"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nextsparkjs/ui",
|
|
3
|
+
"version": "0.1.0-beta.1",
|
|
4
|
+
"description": "Shared UI components for NextSpark",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"react-native": {
|
|
11
|
+
"types": "./dist/index.native.d.ts",
|
|
12
|
+
"import": "./dist/index.native.js"
|
|
13
|
+
},
|
|
14
|
+
"default": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"import": "./dist/index.js"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"./variants/*": {
|
|
20
|
+
"types": "./dist/variants/*.d.ts",
|
|
21
|
+
"import": "./dist/variants/*.js"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"files": [
|
|
25
|
+
"dist"
|
|
26
|
+
],
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsup",
|
|
29
|
+
"dev": "tsup --watch"
|
|
30
|
+
},
|
|
31
|
+
"peerDependencies": {
|
|
32
|
+
"react": ">=18.0.0",
|
|
33
|
+
"react-native": ">=0.75.0",
|
|
34
|
+
"react-native-reanimated": ">=4.0.0"
|
|
35
|
+
},
|
|
36
|
+
"peerDependenciesMeta": {
|
|
37
|
+
"react-native": {
|
|
38
|
+
"optional": true
|
|
39
|
+
},
|
|
40
|
+
"react-native-reanimated": {
|
|
41
|
+
"optional": true
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@radix-ui/react-accordion": "^1.2.11",
|
|
46
|
+
"@radix-ui/react-avatar": "^1.1.10",
|
|
47
|
+
"@radix-ui/react-checkbox": "^1.3.3",
|
|
48
|
+
"@radix-ui/react-icons": "^1.3.2",
|
|
49
|
+
"@radix-ui/react-label": "^2.1.7",
|
|
50
|
+
"@radix-ui/react-progress": "^1.1.7",
|
|
51
|
+
"@radix-ui/react-separator": "^1.1.7",
|
|
52
|
+
"@radix-ui/react-slider": "^1.3.5",
|
|
53
|
+
"@radix-ui/react-slot": "^1.2.3",
|
|
54
|
+
"@radix-ui/react-switch": "^1.2.6",
|
|
55
|
+
"@radix-ui/react-tabs": "^1.1.12",
|
|
56
|
+
"class-variance-authority": "^0.7.1",
|
|
57
|
+
"clsx": "^2.1.1",
|
|
58
|
+
"tailwind-merge": "^3.3.0"
|
|
59
|
+
},
|
|
60
|
+
"devDependencies": {
|
|
61
|
+
"@types/react": "^19",
|
|
62
|
+
"tsup": "^8.5.1",
|
|
63
|
+
"typescript": "^5"
|
|
64
|
+
}
|
|
65
|
+
}
|