@rehagro/ui 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/native.js CHANGED
@@ -304,7 +304,8 @@ var TextInput = react.forwardRef(function TextInput2({
304
304
  xl: theme.radiusXl,
305
305
  full: 9999
306
306
  };
307
- const borderColor = status === "error" ? theme.danger : focused ? theme.primary : theme.border;
307
+ const hasError = status === "error" || !!helperText;
308
+ const borderColor = hasError ? theme.danger : focused ? theme.primary : theme.border;
308
309
  const containerStyle = {
309
310
  height: heightMap[size],
310
311
  paddingHorizontal: paddingMap[size],
@@ -357,7 +358,7 @@ var TextInput = react.forwardRef(function TextInput2({
357
358
  {
358
359
  style: {
359
360
  fontSize: 12,
360
- color: status === "error" ? theme.danger : theme.textMuted
361
+ color: hasError ? theme.danger : theme.textMuted
361
362
  },
362
363
  children: helperText
363
364
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/provider/theme.native.ts","../src/provider/RehagroNativeContext.ts","../src/provider/RehagroNativeProvider.tsx","../src/components/Button/Button.native.tsx","../src/components/IconButton/IconButton.native.tsx","../src/components/TextInput/TextInput.native.tsx","../src/components/Checkbox/Checkbox.native.tsx","../src/components/Avatar/Avatar.native.tsx","../src/components/ActivityIndicator/ActivityIndicator.native.tsx","../src/components/Text/Text.native.tsx","../src/components/Tag/Tag.native.tsx"],"names":["createContext","useContext","useMemo","forwardRef","Button","jsx","Pressable","jsxs","Fragment","ActivityIndicator","View","Text","PRESET_COLORS","isPresetColor","IconButton","TextInput","useState","RNTextInput","Checkbox","useCallback","Avatar","Image","RNActivityIndicator","RNText","Tag"],"mappings":"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","file":"native.js","sourcesContent":["import type { RehagroTheme } from \"./theme\";\n\n/** React Native theme — reuses the same token names as the web theme.\n * Color values are plain CSS hex strings (e.g. \"#16a34a\").\n * Spacing/radius/border values are numbers (device-independent pixels).\n */\nexport type RehagroNativeTheme = {\n // Brand colors\n primary?: string;\n primaryHover?: string;\n secondary?: string;\n secondaryHover?: string;\n danger?: string;\n dangerHover?: string;\n warning?: string;\n success?: string;\n info?: string;\n infoHover?: string;\n\n // Semantic colors\n text?: string;\n textMuted?: string;\n surface?: string;\n background?: string;\n border?: string;\n\n // Border radius (numbers = dp)\n radiusXxs?: number;\n radiusXs?: number;\n radiusSm?: number;\n radiusMd?: number;\n radiusLg?: number;\n radiusXl?: number;\n\n // Border width\n borderWidthSm?: number;\n borderWidthMd?: number;\n borderWidthLg?: number;\n\n // Input sizes\n inputHeightSm?: number;\n inputHeightMd?: number;\n inputHeightLg?: number;\n};\n\nexport type RehagroNativeProviderProps = {\n /** Theme overrides — any token not provided keeps the default value */\n theme?: RehagroNativeTheme;\n children: React.ReactNode;\n};\n\nexport const DEFAULT_NATIVE_THEME: Required<RehagroNativeTheme> = {\n primary: \"#16a34a\",\n primaryHover: \"#15803d\",\n secondary: \"#6b7280\",\n secondaryHover: \"#4b5563\",\n danger: \"#dc2626\",\n dangerHover: \"#b91c1c\",\n warning: \"#d97706\",\n success: \"#16a34a\",\n info: \"#0284c7\",\n infoHover: \"#0369a1\",\n\n text: \"#111827\",\n textMuted: \"#6b7280\",\n surface: \"#ffffff\",\n background: \"#f9fafb\",\n border: \"#d1d5db\",\n\n radiusXxs: 4,\n radiusXs: 8,\n radiusSm: 12,\n radiusMd: 16,\n radiusLg: 24,\n radiusXl: 32,\n\n borderWidthSm: 1,\n borderWidthMd: 2,\n borderWidthLg: 3,\n\n inputHeightSm: 36,\n inputHeightMd: 44,\n inputHeightLg: 52,\n};\n\n// Ensures RehagroNativeTheme color keys stay in sync with RehagroTheme\ntype _ColorKeysMatch = Pick<\n RehagroTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"info\" | \"infoHover\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\ntype _NativeColorKeys = Pick<\n RehagroNativeTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"info\" | \"infoHover\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\n// This line will error at compile time if the color keys diverge:\ntype _ColorKeysCheck = _ColorKeysMatch extends _NativeColorKeys ? true : never;\n","import { createContext, useContext } from \"react\";\nimport type { RehagroNativeTheme } from \"./theme.native\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\n\nexport const RehagroNativeContext = createContext<Required<RehagroNativeTheme>>(DEFAULT_NATIVE_THEME);\n\nexport function useRehagroTheme(): Required<RehagroNativeTheme> {\n return useContext(RehagroNativeContext);\n}\n","import React, { useMemo } from \"react\";\nimport { RehagroNativeContext } from \"./RehagroNativeContext\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\nimport type { RehagroNativeProviderProps, RehagroNativeTheme } from \"./theme.native\";\n\nexport function RehagroNativeProvider({ theme, children }: RehagroNativeProviderProps) {\n const resolvedTheme = useMemo<Required<RehagroNativeTheme>>(\n () => ({ ...DEFAULT_NATIVE_THEME, ...theme }),\n [theme],\n );\n\n return (\n <RehagroNativeContext.Provider value={resolvedTheme}>\n {children}\n </RehagroNativeContext.Provider>\n );\n}\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\nimport type { ButtonColor, PresetColor } from \"../../types/colors.types\";\n\nexport type { ButtonColor };\nexport type ButtonVariant = \"solid\" | \"outline\" | \"ghost\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\nexport type ButtonRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type ButtonProps = Omit<PressableProps, \"style\"> & {\n /** Visual style variant */\n variant?: ButtonVariant;\n /** Button size */\n size?: ButtonSize;\n /** Border radius */\n radius?: ButtonRadius;\n /** Color scheme — preset name or any CSS color (e.g., \"#c3c3c3\", \"red\", \"rgb(...)\") */\n color?: ButtonColor;\n /** Shows loading state and disables interaction */\n loading?: boolean;\n /** Icon rendered to the left of children (hidden when loading) */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of children (hidden when loading) */\n rightIcon?: React.ReactNode;\n /** Label text */\n children?: React.ReactNode;\n /** Custom style for the outer Pressable */\n style?: StyleProp<ViewStyle>;\n};\n\nconst PRESET_COLORS = new Set<string>([\n \"primary\",\n \"secondary\",\n \"danger\",\n \"warning\",\n \"success\",\n \"info\",\n]);\n\nconst isPresetColor = (c: string): c is PresetColor => PRESET_COLORS.has(c);\n\nexport const Button = forwardRef<View, ButtonProps>(function Button(\n {\n variant = \"solid\",\n size = \"md\",\n radius = \"sm\",\n color = \"primary\",\n loading = false,\n disabled,\n leftIcon,\n rightIcon,\n children,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isDisabled = disabled || loading;\n const preset = isPresetColor(color);\n\n const presetBase: Record<PresetColor, string> = {\n primary: theme.primary,\n secondary: theme.secondary,\n danger: theme.danger,\n warning: theme.warning,\n success: theme.success,\n info: theme.info,\n };\n\n const presetHover: Record<PresetColor, string> = {\n primary: theme.primaryHover,\n secondary: theme.secondaryHover,\n danger: theme.dangerHover,\n warning: theme.warning,\n success: theme.success,\n info: theme.infoHover,\n };\n\n const colorBase = preset ? presetBase[color as PresetColor] : color;\n const colorHover = preset ? presetHover[color as PresetColor] : color;\n\n const sizeStyleMap: Record<ButtonSize, ViewStyle> = {\n sm: { paddingHorizontal: 12, paddingVertical: 6 },\n md: { paddingHorizontal: 16, paddingVertical: 8 },\n lg: { paddingHorizontal: 20, paddingVertical: 10 },\n };\n\n const fontSizeMap: Record<ButtonSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const radiusStyleMap: Record<ButtonRadius, number> = {\n none: 0,\n xxs: 2,\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n full: 9999,\n };\n\n const baseStyle: ViewStyle = {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 8,\n borderWidth: 1,\n opacity: isDisabled ? 0.5 : 1,\n borderRadius: radiusStyleMap[radius],\n ...sizeStyleMap[size],\n };\n\n const variantStyle = (pressed: boolean): ViewStyle => {\n if (variant === \"solid\") {\n return {\n backgroundColor: pressed ? colorHover : colorBase,\n borderColor: pressed ? colorHover : colorBase,\n };\n }\n if (variant === \"outline\") {\n return {\n borderColor: colorBase,\n backgroundColor: pressed ? colorBase : \"transparent\",\n };\n }\n return { borderColor: \"transparent\", backgroundColor: \"transparent\" };\n };\n\n const textColor = (pressed: boolean): string => {\n if (variant === \"solid\") return theme.surface;\n if (variant === \"outline\") return pressed ? theme.surface : colorBase;\n return colorBase;\n };\n\n return (\n <Pressable\n ref={ref}\n disabled={isDisabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n accessibilityLabel={\n accessibilityLabel ?? (typeof children === \"string\" ? children : undefined)\n }\n style={({ pressed }) => [baseStyle, variantStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) => (\n <>\n {loading && (\n <ActivityIndicator\n size=\"small\"\n color={variant === \"solid\" ? theme.surface : colorBase}\n />\n )}\n {!loading && leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n {typeof children === \"string\" ? (\n <Text\n style={{ color: textColor(pressed), fontSize: fontSizeMap[size], fontWeight: \"500\" }}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {!loading && rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\nimport type { ButtonColor, PresetColor } from \"../../types/colors.types\";\n\nexport type IconButtonVariant = \"solid\" | \"outline\" | \"ghost\";\nexport type IconButtonSize = \"sm\" | \"md\" | \"lg\";\nexport type IconButtonRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\nexport type IconButtonColor = ButtonColor;\n\nconst PRESET_COLORS = new Set<string>([\n \"primary\",\n \"secondary\",\n \"danger\",\n \"warning\",\n \"success\",\n \"info\",\n]);\n\nconst isPresetColor = (c: string): c is PresetColor => PRESET_COLORS.has(c);\n\nexport type IconButtonProps = Omit<PressableProps, \"style\"> & {\n /** Visual style variant */\n variant?: IconButtonVariant;\n /** Button size */\n size?: IconButtonSize;\n /** Border radius */\n radius?: IconButtonRadius;\n /** Color scheme — preset name or any CSS color (e.g., \"#c3c3c3\", \"red\", \"rgb(...)\") */\n color?: IconButtonColor;\n /** Shows loading state and disables interaction */\n loading?: boolean;\n /** Icon content */\n children?: React.ReactNode;\n /** Custom style for the outer Pressable */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const IconButton = forwardRef<View, IconButtonProps>(function IconButton(\n {\n variant = \"ghost\",\n size = \"md\",\n radius = \"full\",\n color = \"primary\",\n loading = false,\n disabled,\n children,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isDisabled = disabled || loading;\n\n const sizePxMap: Record<IconButtonSize, number> = {\n sm: 32,\n md: 40,\n lg: 48,\n };\n\n const radiusPxMap: Record<IconButtonRadius, number> = {\n none: 0,\n xxs: 2,\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n full: 9999,\n };\n\n const presetTokens: Record<PresetColor, { main: string; hover: string }> = {\n primary: { main: theme.primary, hover: theme.primaryHover },\n secondary: { main: theme.secondary, hover: theme.secondaryHover },\n danger: { main: theme.danger, hover: theme.dangerHover },\n warning: { main: theme.warning, hover: theme.warning },\n success: { main: theme.success, hover: theme.success },\n info: { main: theme.info, hover: theme.infoHover },\n };\n\n const preset = isPresetColor(color);\n const main = preset ? presetTokens[color as PresetColor].main : color;\n const hover = preset ? presetTokens[color as PresetColor].hover : color;\n const boxSize = sizePxMap[size];\n\n const baseStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: radiusPxMap[radius],\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 1,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const variantStyle = (pressed: boolean): ViewStyle => {\n if (variant === \"solid\") {\n return { backgroundColor: pressed ? hover : main, borderColor: pressed ? hover : main };\n }\n if (variant === \"outline\") {\n return { borderColor: main, backgroundColor: pressed ? main : \"transparent\" };\n }\n return { borderColor: \"transparent\", backgroundColor: pressed ? `${main}1a` : \"transparent\" };\n };\n\n const iconColor = (pressed: boolean): string => {\n if (variant === \"solid\") return theme.surface;\n if (variant === \"outline\") return pressed ? theme.surface : main;\n return main;\n };\n\n return (\n <Pressable\n ref={ref}\n disabled={isDisabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n accessibilityLabel={accessibilityLabel}\n style={({ pressed }) => [baseStyle, variantStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) =>\n loading ? (\n <ActivityIndicator size=\"small\" color={variant === \"solid\" ? theme.surface : main} />\n ) : (\n <View style={{ tintColor: iconColor(pressed) } as ViewStyle}>\n {children}\n </View>\n )\n }\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport {\n TextInput as RNTextInput,\n Text,\n View,\n type TextInputProps as RNTextInputProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextInputStatus = \"default\" | \"error\";\nexport type TextInputSize = \"sm\" | \"md\" | \"lg\";\nexport type TextInputRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type TextInputProps = Omit<RNTextInputProps, \"style\"> & {\n /** Label text displayed above the input */\n label?: string;\n /** Subtitle displayed next to the label */\n subtitle?: string;\n /** Validation status */\n status?: TextInputStatus;\n /** Input size */\n size?: TextInputSize;\n /** Border radius */\n radius?: TextInputRadius;\n /** Icon rendered to the left of the input */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of the input */\n rightIcon?: React.ReactNode;\n /** Helper/error message displayed below the input */\n helperText?: React.ReactNode;\n /** Custom style for the outermost wrapper */\n wrapperStyle?: StyleProp<ViewStyle>;\n /** Custom style for the input container */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const TextInput = forwardRef<RNTextInput, TextInputProps>(function TextInput(\n {\n label,\n subtitle,\n status = \"default\",\n size = \"md\",\n radius = \"xs\",\n leftIcon,\n rightIcon,\n helperText,\n editable = true,\n wrapperStyle,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const [focused, setFocused] = useState(false);\n\n const isDisabled = editable === false;\n\n const heightMap: Record<TextInputSize, number> = {\n sm: theme.inputHeightSm,\n md: theme.inputHeightMd,\n lg: theme.inputHeightLg,\n };\n\n const paddingMap: Record<TextInputSize, number> = {\n sm: 12,\n md: 14,\n lg: 16,\n };\n\n const fontSizeMap: Record<TextInputSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const radiusMap: Record<TextInputRadius, number> = {\n none: 0,\n xxs: theme.radiusXxs,\n xs: theme.radiusXs,\n sm: theme.radiusSm,\n md: theme.radiusMd,\n lg: theme.radiusLg,\n xl: theme.radiusXl,\n full: 9999,\n };\n\n const borderColor =\n status === \"error\"\n ? theme.danger\n : focused\n ? theme.primary\n : theme.border;\n\n const containerStyle: ViewStyle = {\n height: heightMap[size],\n paddingHorizontal: paddingMap[size],\n borderRadius: radiusMap[radius],\n borderWidth: theme.borderWidthSm,\n borderColor,\n backgroundColor: isDisabled ? theme.background : theme.surface,\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 8,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const inputId = accessibilityLabel ?? label;\n\n return (\n <View style={[{ gap: 4 }, wrapperStyle]}>\n {/* Label + Subtitle */}\n {label && (\n <View style={{ flexDirection: \"row\", alignItems: \"baseline\", gap: 4 }}>\n <Text style={{ fontSize: 14, fontWeight: \"500\", color: theme.text }}>\n {label}\n </Text>\n {subtitle && (\n <Text style={{ fontSize: 14, color: theme.textMuted }}>{subtitle}</Text>\n )}\n </View>\n )}\n\n {/* Input container */}\n <View style={[containerStyle, style]}>\n {leftIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {leftIcon}\n </View>\n )}\n\n <RNTextInput\n ref={ref}\n editable={editable}\n accessibilityLabel={inputId}\n accessibilityState={{ disabled: isDisabled }}\n aria-invalid={status === \"error\"}\n onFocus={(e) => {\n setFocused(true);\n rest.onFocus?.(e);\n }}\n onBlur={(e) => {\n setFocused(false);\n rest.onBlur?.(e);\n }}\n style={{\n flex: 1,\n fontSize: fontSizeMap[size],\n color: theme.text,\n }}\n placeholderTextColor={theme.textMuted}\n {...rest}\n />\n\n {rightIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {rightIcon}\n </View>\n )}\n </View>\n\n {/* Helper text */}\n {helperText && (\n <Text\n style={{\n fontSize: 12,\n color: status === \"error\" ? theme.danger : theme.textMuted,\n }}\n >\n {helperText}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef, useCallback, useState } from \"react\";\nimport {\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type CheckboxSize = \"sm\" | \"md\" | \"lg\";\n\nexport type CheckboxProps = Omit<PressableProps, \"style\" | \"onPress\"> & {\n /** Checkbox size */\n size?: CheckboxSize;\n /** Label text displayed next to the checkbox */\n label?: string;\n /** Controlled checked state */\n checked?: boolean;\n /** Default checked state (uncontrolled) */\n defaultChecked?: boolean;\n /** Indeterminate state (partially checked) */\n indeterminate?: boolean;\n /** Callback fired when the value changes */\n onChange?: (checked: boolean) => void;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst CheckIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size,\n height: size,\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n {/* Simple checkmark drawn with two Views rotated — no SVG dep needed */}\n <View\n style={{\n position: \"absolute\",\n width: size * 0.55,\n height: size * 0.3,\n borderLeftWidth: 2,\n borderBottomWidth: 2,\n borderColor: color,\n transform: [{ rotate: \"-45deg\" }, { translateY: -size * 0.05 }],\n }}\n />\n </View>\n);\n\nconst MinusIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size * 0.7,\n height: 2,\n backgroundColor: color,\n }}\n />\n);\n\nexport const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox(\n {\n size = \"md\",\n label,\n checked: controlledChecked,\n defaultChecked = false,\n indeterminate = false,\n disabled,\n onChange,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n\n const isChecked = isControlled ? controlledChecked : internalChecked;\n const isActive = isChecked || indeterminate;\n\n const handlePress = useCallback(() => {\n if (disabled) return;\n const next = !isChecked;\n if (!isControlled) setInternalChecked(next);\n onChange?.(next);\n }, [disabled, isChecked, isControlled, onChange]);\n\n const boxSizeMap: Record<CheckboxSize, number> = {\n sm: 16,\n md: 20,\n lg: 24,\n };\n\n const iconSizeMap: Record<CheckboxSize, number> = {\n sm: 10,\n md: 12,\n lg: 14,\n };\n\n const fontSizeMap: Record<CheckboxSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const boxSize = boxSizeMap[size];\n const iconSize = iconSizeMap[size];\n\n const boxStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: theme.radiusXxs,\n borderWidth: theme.borderWidthSm,\n borderColor: isActive ? theme.primary : theme.border,\n backgroundColor: isActive ? theme.primary : theme.surface,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n return (\n <Pressable\n ref={ref}\n onPress={handlePress}\n disabled={disabled}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked: indeterminate ? \"mixed\" : isChecked, disabled: !!disabled }}\n accessibilityLabel={accessibilityLabel ?? label}\n style={[{ flexDirection: \"row\", alignItems: \"center\", gap: 8, opacity: disabled ? 0.5 : 1 }, style]}\n {...rest}\n >\n <View style={boxStyle}>\n {indeterminate ? (\n <MinusIcon size={iconSize} color={theme.surface} />\n ) : isChecked ? (\n <CheckIcon size={iconSize} color={theme.surface} />\n ) : null}\n </View>\n\n {label && (\n <Text style={{ fontSize: fontSizeMap[size], color: theme.text }}>\n {label}\n </Text>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport { Image, Text, View, type StyleProp, type ViewStyle, type ViewProps } from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type AvatarVariant = \"circle\" | \"square\";\n\nexport type AvatarProps = Omit<ViewProps, \"style\"> & {\n /** Image source URL */\n src?: string;\n /** Alt text (used as accessibility label and initials fallback) */\n alt?: string;\n /** Fallback initials shown when image is unavailable */\n initials?: string;\n /** Avatar size */\n size?: AvatarSize;\n /** Shape variant */\n variant?: AvatarVariant;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const Avatar = forwardRef<View, AvatarProps>(function Avatar(\n { src, alt = \"\", initials, size = \"md\", variant = \"circle\", style, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n const [imgError, setImgError] = useState(false);\n const showImage = !!src && !imgError;\n\n const fallbackLabel = initials\n ? initials.slice(0, 2).toUpperCase()\n : alt\n ? alt\n .split(\" \")\n .slice(0, 2)\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()\n : \"?\";\n\n const sizePxMap: Record<AvatarSize, number> = {\n sm: 32,\n md: 40,\n lg: 48,\n xl: 64,\n };\n\n const fontSizeMap: Record<AvatarSize, number> = {\n sm: 12,\n md: 14,\n lg: 18,\n xl: 20,\n };\n\n const boxSize = sizePxMap[size];\n const borderRadius = variant === \"circle\" ? boxSize / 2 : theme.radiusSm;\n\n const containerStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius,\n backgroundColor: theme.primary,\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n };\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"image\"\n accessibilityLabel={alt || initials || fallbackLabel}\n style={[containerStyle, style]}\n {...rest}\n >\n {showImage ? (\n <Image\n source={{ uri: src }}\n style={{ width: boxSize, height: boxSize, borderRadius }}\n onError={() => setImgError(true)}\n accessibilityLabel={alt}\n />\n ) : (\n <Text\n style={{\n fontSize: fontSizeMap[size],\n fontWeight: \"500\",\n color: theme.surface,\n }}\n accessibilityElementsHidden\n >\n {fallbackLabel}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator as RNActivityIndicator,\n View,\n type StyleProp,\n type ViewStyle,\n type ViewProps,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type ActivityIndicatorSize = \"sm\" | \"md\" | \"lg\";\nexport type ActivityIndicatorColor = \"primary\" | \"surface\" | \"custom\";\n\nexport type ActivityIndicatorProps = Omit<ViewProps, \"style\"> & {\n /** Spinner size */\n size?: ActivityIndicatorSize;\n /** Color preset — use \"custom\" to provide a raw color via `color` prop */\n colorVariant?: ActivityIndicatorColor;\n /** Raw color value (used when colorVariant is \"custom\") */\n color?: string;\n /** Whether the indicator is visible */\n animating?: boolean;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst sizeMap: Record<ActivityIndicatorSize, number | \"small\" | \"large\"> = {\n sm: \"small\",\n md: \"large\",\n lg: 48,\n};\n\nexport const ActivityIndicator = forwardRef<View, ActivityIndicatorProps>(\n function ActivityIndicator(\n {\n size = \"md\",\n colorVariant = \"primary\",\n color,\n animating = true,\n style,\n accessibilityLabel = \"Carregando\",\n ...rest\n },\n ref,\n ) {\n const theme = useRehagroTheme();\n\n const resolvedColor =\n colorVariant === \"custom\" && color\n ? color\n : colorVariant === \"surface\"\n ? theme.surface\n : theme.primary;\n\n const spinnerSize = sizeMap[size];\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"progressbar\"\n accessibilityLabel={accessibilityLabel}\n accessibilityState={{ busy: animating }}\n style={style}\n {...rest}\n >\n <RNActivityIndicator\n animating={animating}\n size={spinnerSize as \"small\" | \"large\"}\n color={resolvedColor}\n />\n </View>\n );\n },\n);\n","import React, { forwardRef } from \"react\";\nimport {\n Text as RNText,\n type TextProps as RNTextProps,\n type StyleProp,\n type TextStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextVariant =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"body\"\n | \"bodyLg\"\n | \"caption\"\n | \"label\";\n\nexport type TextColor = \"default\" | \"muted\" | \"primary\" | \"danger\" | \"success\" | \"warning\";\n\nexport type TextProps = Omit<RNTextProps, \"style\"> & {\n /** Typographic variant */\n variant?: TextVariant;\n /** Color preset */\n color?: TextColor;\n /** Bold weight */\n bold?: boolean;\n /** Custom style */\n style?: StyleProp<TextStyle>;\n};\n\nconst variantStyles: Record<TextVariant, TextStyle> = {\n h1: { fontSize: 32, lineHeight: 40, fontWeight: \"700\" },\n h2: { fontSize: 24, lineHeight: 32, fontWeight: \"700\" },\n h3: { fontSize: 20, lineHeight: 28, fontWeight: \"600\" },\n h4: { fontSize: 18, lineHeight: 26, fontWeight: \"600\" },\n bodyLg: { fontSize: 16, lineHeight: 24, fontWeight: \"400\" },\n body: { fontSize: 14, lineHeight: 20, fontWeight: \"400\" },\n label: { fontSize: 14, lineHeight: 20, fontWeight: \"500\" },\n caption: { fontSize: 12, lineHeight: 16, fontWeight: \"400\" },\n};\n\nexport const Text = forwardRef<RNText, TextProps>(function Text(\n { variant = \"body\", color = \"default\", bold = false, style, children, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n\n const colorMap: Record<TextColor, string> = {\n default: theme.text,\n muted: theme.textMuted,\n primary: theme.primary,\n danger: theme.danger,\n success: theme.success,\n warning: theme.warning,\n };\n\n const resolvedStyle: TextStyle = {\n ...variantStyles[variant],\n color: colorMap[color],\n ...(bold ? { fontWeight: \"700\" } : {}),\n };\n\n return (\n <RNText ref={ref} style={[resolvedStyle, style]} {...rest}>\n {children}\n </RNText>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type TextStyle,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\nimport type { PresetColor } from \"../../types/colors.types\";\n\nexport type TagColor = PresetColor | (string & {});\nexport type TagSize = \"sm\" | \"md\" | \"lg\";\n\nexport type TagProps = Omit<PressableProps, \"style\"> & {\n /** Tag color — preset name or any CSS color (e.g., \"#c3c3c3\", \"red\") */\n color?: TagColor;\n /** Tag size */\n size?: TagSize;\n /** Active (selected) state */\n active?: boolean;\n /** Disabled state */\n disabled?: boolean;\n /** Tag label text */\n title: string;\n /** Optional icon rendered on the left side */\n leftIcon?: React.ReactNode;\n /** Optional icon rendered on the right side */\n rightIcon?: React.ReactNode;\n /** Custom style for the outer container */\n style?: StyleProp<ViewStyle>;\n};\n\nconst PRESET_COLORS = new Set<string>([\n \"primary\",\n \"secondary\",\n \"danger\",\n \"warning\",\n \"success\",\n \"info\",\n]);\n\nconst isPresetColor = (c: string): c is PresetColor => PRESET_COLORS.has(c);\n\n/** Appends a two-digit hex alpha to a 6-digit hex color string. */\nfunction hexAlpha(hex: string, alpha: string): string {\n return `${hex}${alpha}`;\n}\n\nexport const Tag = forwardRef<View, TagProps>(function Tag(\n {\n color = \"primary\",\n size = \"md\",\n active = false,\n disabled = false,\n title,\n leftIcon,\n rightIcon,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const clickable = !!rest.onPress && !disabled;\n\n const presetTokens: Record<PresetColor, { main: string; hover: string }> = {\n primary: { main: theme.primary, hover: theme.primaryHover },\n secondary: { main: theme.secondary, hover: theme.secondaryHover },\n danger: { main: theme.danger, hover: theme.dangerHover },\n warning: { main: theme.warning, hover: theme.warning },\n success: { main: theme.success, hover: theme.success },\n info: { main: theme.info, hover: theme.infoHover },\n };\n\n const preset = isPresetColor(color);\n const mainColor = preset ? presetTokens[color as PresetColor].main : color;\n const hoverColor = preset ? presetTokens[color as PresetColor].hover : color;\n\n const sizeStyleMap: Record<TagSize, ViewStyle> = {\n sm: { paddingHorizontal: 8, paddingVertical: 2, gap: 4 },\n md: { paddingHorizontal: 10, paddingVertical: 4, gap: 6 },\n lg: { paddingHorizontal: 12, paddingVertical: 6, gap: 6 },\n };\n\n const fontSizeMap: Record<TagSize, number> = {\n sm: 11,\n md: 12,\n lg: 13,\n };\n\n const baseStyle: ViewStyle = {\n flexDirection: \"row\",\n alignItems: \"center\",\n alignSelf: \"flex-start\",\n borderRadius: 9999,\n borderWidth: 1,\n opacity: disabled ? 0.5 : 1,\n ...sizeStyleMap[size],\n };\n\n function containerStyle(pressed: boolean): ViewStyle {\n const resolvedColor = pressed && clickable ? hoverColor : mainColor;\n\n if (active) {\n return {\n backgroundColor: resolvedColor,\n borderColor: resolvedColor,\n };\n }\n\n // inactive\n const bg = pressed && clickable\n ? hexAlpha(mainColor, \"33\") // ~20% on press\n : hexAlpha(mainColor, \"1a\"); // ~10% resting\n const border = hexAlpha(mainColor, \"4d\"); // ~30%\n\n return { backgroundColor: bg, borderColor: border };\n }\n\n function resolvedTextColor(pressed: boolean): string {\n if (active) return theme.surface;\n return pressed && clickable ? hoverColor : mainColor;\n }\n\n const textStyle = (pressed: boolean): TextStyle => ({\n color: resolvedTextColor(pressed),\n fontSize: fontSizeMap[size],\n fontWeight: \"500\",\n });\n\n if (!clickable) {\n return (\n <View\n ref={ref}\n accessibilityRole=\"text\"\n accessibilityLabel={accessibilityLabel ?? title}\n accessibilityState={{ disabled }}\n style={[baseStyle, containerStyle(false), style]}\n >\n {leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n <Text style={textStyle(false)}>{title}</Text>\n {rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </View>\n );\n }\n\n return (\n <Pressable\n ref={ref}\n disabled={disabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled, selected: active }}\n accessibilityLabel={accessibilityLabel ?? title}\n style={({ pressed }) => [baseStyle, containerStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) => (\n <>\n {leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n <Text style={textStyle(pressed)}>{title}</Text>\n {rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </>\n )}\n </Pressable>\n );\n});\n"]}
1
+ {"version":3,"sources":["../src/provider/theme.native.ts","../src/provider/RehagroNativeContext.ts","../src/provider/RehagroNativeProvider.tsx","../src/components/Button/Button.native.tsx","../src/components/IconButton/IconButton.native.tsx","../src/components/TextInput/TextInput.native.tsx","../src/components/Checkbox/Checkbox.native.tsx","../src/components/Avatar/Avatar.native.tsx","../src/components/ActivityIndicator/ActivityIndicator.native.tsx","../src/components/Text/Text.native.tsx","../src/components/Tag/Tag.native.tsx"],"names":["createContext","useContext","useMemo","forwardRef","Button","jsx","Pressable","jsxs","Fragment","ActivityIndicator","View","Text","PRESET_COLORS","isPresetColor","IconButton","TextInput","useState","RNTextInput","Checkbox","useCallback","Avatar","Image","RNActivityIndicator","RNText","Tag"],"mappings":"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","file":"native.js","sourcesContent":["import type { RehagroTheme } from \"./theme\";\n\n/** React Native theme — reuses the same token names as the web theme.\n * Color values are plain CSS hex strings (e.g. \"#16a34a\").\n * Spacing/radius/border values are numbers (device-independent pixels).\n */\nexport type RehagroNativeTheme = {\n // Brand colors\n primary?: string;\n primaryHover?: string;\n secondary?: string;\n secondaryHover?: string;\n danger?: string;\n dangerHover?: string;\n warning?: string;\n success?: string;\n info?: string;\n infoHover?: string;\n\n // Semantic colors\n text?: string;\n textMuted?: string;\n surface?: string;\n background?: string;\n border?: string;\n\n // Border radius (numbers = dp)\n radiusXxs?: number;\n radiusXs?: number;\n radiusSm?: number;\n radiusMd?: number;\n radiusLg?: number;\n radiusXl?: number;\n\n // Border width\n borderWidthSm?: number;\n borderWidthMd?: number;\n borderWidthLg?: number;\n\n // Input sizes\n inputHeightSm?: number;\n inputHeightMd?: number;\n inputHeightLg?: number;\n};\n\nexport type RehagroNativeProviderProps = {\n /** Theme overrides — any token not provided keeps the default value */\n theme?: RehagroNativeTheme;\n children: React.ReactNode;\n};\n\nexport const DEFAULT_NATIVE_THEME: Required<RehagroNativeTheme> = {\n primary: \"#16a34a\",\n primaryHover: \"#15803d\",\n secondary: \"#6b7280\",\n secondaryHover: \"#4b5563\",\n danger: \"#dc2626\",\n dangerHover: \"#b91c1c\",\n warning: \"#d97706\",\n success: \"#16a34a\",\n info: \"#0284c7\",\n infoHover: \"#0369a1\",\n\n text: \"#111827\",\n textMuted: \"#6b7280\",\n surface: \"#ffffff\",\n background: \"#f9fafb\",\n border: \"#d1d5db\",\n\n radiusXxs: 4,\n radiusXs: 8,\n radiusSm: 12,\n radiusMd: 16,\n radiusLg: 24,\n radiusXl: 32,\n\n borderWidthSm: 1,\n borderWidthMd: 2,\n borderWidthLg: 3,\n\n inputHeightSm: 36,\n inputHeightMd: 44,\n inputHeightLg: 52,\n};\n\n// Ensures RehagroNativeTheme color keys stay in sync with RehagroTheme\ntype _ColorKeysMatch = Pick<\n RehagroTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"info\" | \"infoHover\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\ntype _NativeColorKeys = Pick<\n RehagroNativeTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"info\" | \"infoHover\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\n// This line will error at compile time if the color keys diverge:\ntype _ColorKeysCheck = _ColorKeysMatch extends _NativeColorKeys ? true : never;\n","import { createContext, useContext } from \"react\";\nimport type { RehagroNativeTheme } from \"./theme.native\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\n\nexport const RehagroNativeContext = createContext<Required<RehagroNativeTheme>>(DEFAULT_NATIVE_THEME);\n\nexport function useRehagroTheme(): Required<RehagroNativeTheme> {\n return useContext(RehagroNativeContext);\n}\n","import React, { useMemo } from \"react\";\nimport { RehagroNativeContext } from \"./RehagroNativeContext\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\nimport type { RehagroNativeProviderProps, RehagroNativeTheme } from \"./theme.native\";\n\nexport function RehagroNativeProvider({ theme, children }: RehagroNativeProviderProps) {\n const resolvedTheme = useMemo<Required<RehagroNativeTheme>>(\n () => ({ ...DEFAULT_NATIVE_THEME, ...theme }),\n [theme],\n );\n\n return (\n <RehagroNativeContext.Provider value={resolvedTheme}>\n {children}\n </RehagroNativeContext.Provider>\n );\n}\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\nimport type { ButtonColor, PresetColor } from \"../../types/colors.types\";\n\nexport type { ButtonColor };\nexport type ButtonVariant = \"solid\" | \"outline\" | \"ghost\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\nexport type ButtonRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type ButtonProps = Omit<PressableProps, \"style\"> & {\n /** Visual style variant */\n variant?: ButtonVariant;\n /** Button size */\n size?: ButtonSize;\n /** Border radius */\n radius?: ButtonRadius;\n /** Color scheme — preset name or any CSS color (e.g., \"#c3c3c3\", \"red\", \"rgb(...)\") */\n color?: ButtonColor;\n /** Shows loading state and disables interaction */\n loading?: boolean;\n /** Icon rendered to the left of children (hidden when loading) */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of children (hidden when loading) */\n rightIcon?: React.ReactNode;\n /** Label text */\n children?: React.ReactNode;\n /** Custom style for the outer Pressable */\n style?: StyleProp<ViewStyle>;\n};\n\nconst PRESET_COLORS = new Set<string>([\n \"primary\",\n \"secondary\",\n \"danger\",\n \"warning\",\n \"success\",\n \"info\",\n]);\n\nconst isPresetColor = (c: string): c is PresetColor => PRESET_COLORS.has(c);\n\nexport const Button = forwardRef<View, ButtonProps>(function Button(\n {\n variant = \"solid\",\n size = \"md\",\n radius = \"sm\",\n color = \"primary\",\n loading = false,\n disabled,\n leftIcon,\n rightIcon,\n children,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isDisabled = disabled || loading;\n const preset = isPresetColor(color);\n\n const presetBase: Record<PresetColor, string> = {\n primary: theme.primary,\n secondary: theme.secondary,\n danger: theme.danger,\n warning: theme.warning,\n success: theme.success,\n info: theme.info,\n };\n\n const presetHover: Record<PresetColor, string> = {\n primary: theme.primaryHover,\n secondary: theme.secondaryHover,\n danger: theme.dangerHover,\n warning: theme.warning,\n success: theme.success,\n info: theme.infoHover,\n };\n\n const colorBase = preset ? presetBase[color as PresetColor] : color;\n const colorHover = preset ? presetHover[color as PresetColor] : color;\n\n const sizeStyleMap: Record<ButtonSize, ViewStyle> = {\n sm: { paddingHorizontal: 12, paddingVertical: 6 },\n md: { paddingHorizontal: 16, paddingVertical: 8 },\n lg: { paddingHorizontal: 20, paddingVertical: 10 },\n };\n\n const fontSizeMap: Record<ButtonSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const radiusStyleMap: Record<ButtonRadius, number> = {\n none: 0,\n xxs: 2,\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n full: 9999,\n };\n\n const baseStyle: ViewStyle = {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 8,\n borderWidth: 1,\n opacity: isDisabled ? 0.5 : 1,\n borderRadius: radiusStyleMap[radius],\n ...sizeStyleMap[size],\n };\n\n const variantStyle = (pressed: boolean): ViewStyle => {\n if (variant === \"solid\") {\n return {\n backgroundColor: pressed ? colorHover : colorBase,\n borderColor: pressed ? colorHover : colorBase,\n };\n }\n if (variant === \"outline\") {\n return {\n borderColor: colorBase,\n backgroundColor: pressed ? colorBase : \"transparent\",\n };\n }\n return { borderColor: \"transparent\", backgroundColor: \"transparent\" };\n };\n\n const textColor = (pressed: boolean): string => {\n if (variant === \"solid\") return theme.surface;\n if (variant === \"outline\") return pressed ? theme.surface : colorBase;\n return colorBase;\n };\n\n return (\n <Pressable\n ref={ref}\n disabled={isDisabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n accessibilityLabel={\n accessibilityLabel ?? (typeof children === \"string\" ? children : undefined)\n }\n style={({ pressed }) => [baseStyle, variantStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) => (\n <>\n {loading && (\n <ActivityIndicator\n size=\"small\"\n color={variant === \"solid\" ? theme.surface : colorBase}\n />\n )}\n {!loading && leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n {typeof children === \"string\" ? (\n <Text\n style={{ color: textColor(pressed), fontSize: fontSizeMap[size], fontWeight: \"500\" }}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {!loading && rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\nimport type { ButtonColor, PresetColor } from \"../../types/colors.types\";\n\nexport type IconButtonVariant = \"solid\" | \"outline\" | \"ghost\";\nexport type IconButtonSize = \"sm\" | \"md\" | \"lg\";\nexport type IconButtonRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\nexport type IconButtonColor = ButtonColor;\n\nconst PRESET_COLORS = new Set<string>([\n \"primary\",\n \"secondary\",\n \"danger\",\n \"warning\",\n \"success\",\n \"info\",\n]);\n\nconst isPresetColor = (c: string): c is PresetColor => PRESET_COLORS.has(c);\n\nexport type IconButtonProps = Omit<PressableProps, \"style\"> & {\n /** Visual style variant */\n variant?: IconButtonVariant;\n /** Button size */\n size?: IconButtonSize;\n /** Border radius */\n radius?: IconButtonRadius;\n /** Color scheme — preset name or any CSS color (e.g., \"#c3c3c3\", \"red\", \"rgb(...)\") */\n color?: IconButtonColor;\n /** Shows loading state and disables interaction */\n loading?: boolean;\n /** Icon content */\n children?: React.ReactNode;\n /** Custom style for the outer Pressable */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const IconButton = forwardRef<View, IconButtonProps>(function IconButton(\n {\n variant = \"ghost\",\n size = \"md\",\n radius = \"full\",\n color = \"primary\",\n loading = false,\n disabled,\n children,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isDisabled = disabled || loading;\n\n const sizePxMap: Record<IconButtonSize, number> = {\n sm: 32,\n md: 40,\n lg: 48,\n };\n\n const radiusPxMap: Record<IconButtonRadius, number> = {\n none: 0,\n xxs: 2,\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n full: 9999,\n };\n\n const presetTokens: Record<PresetColor, { main: string; hover: string }> = {\n primary: { main: theme.primary, hover: theme.primaryHover },\n secondary: { main: theme.secondary, hover: theme.secondaryHover },\n danger: { main: theme.danger, hover: theme.dangerHover },\n warning: { main: theme.warning, hover: theme.warning },\n success: { main: theme.success, hover: theme.success },\n info: { main: theme.info, hover: theme.infoHover },\n };\n\n const preset = isPresetColor(color);\n const main = preset ? presetTokens[color as PresetColor].main : color;\n const hover = preset ? presetTokens[color as PresetColor].hover : color;\n const boxSize = sizePxMap[size];\n\n const baseStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: radiusPxMap[radius],\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 1,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const variantStyle = (pressed: boolean): ViewStyle => {\n if (variant === \"solid\") {\n return { backgroundColor: pressed ? hover : main, borderColor: pressed ? hover : main };\n }\n if (variant === \"outline\") {\n return { borderColor: main, backgroundColor: pressed ? main : \"transparent\" };\n }\n return { borderColor: \"transparent\", backgroundColor: pressed ? `${main}1a` : \"transparent\" };\n };\n\n const iconColor = (pressed: boolean): string => {\n if (variant === \"solid\") return theme.surface;\n if (variant === \"outline\") return pressed ? theme.surface : main;\n return main;\n };\n\n return (\n <Pressable\n ref={ref}\n disabled={isDisabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n accessibilityLabel={accessibilityLabel}\n style={({ pressed }) => [baseStyle, variantStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) =>\n loading ? (\n <ActivityIndicator size=\"small\" color={variant === \"solid\" ? theme.surface : main} />\n ) : (\n <View style={{ tintColor: iconColor(pressed) } as ViewStyle}>\n {children}\n </View>\n )\n }\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport {\n TextInput as RNTextInput,\n Text,\n View,\n type TextInputProps as RNTextInputProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextInputStatus = \"default\" | \"error\";\nexport type TextInputSize = \"sm\" | \"md\" | \"lg\";\nexport type TextInputRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type TextInputProps = Omit<RNTextInputProps, \"style\"> & {\n /** Label text displayed above the input */\n label?: string;\n /** Subtitle displayed next to the label */\n subtitle?: string;\n /** Validation status */\n status?: TextInputStatus;\n /** Input size */\n size?: TextInputSize;\n /** Border radius */\n radius?: TextInputRadius;\n /** Icon rendered to the left of the input */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of the input */\n rightIcon?: React.ReactNode;\n /** Helper/error message displayed below the input */\n helperText?: React.ReactNode;\n /** Custom style for the outermost wrapper */\n wrapperStyle?: StyleProp<ViewStyle>;\n /** Custom style for the input container */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const TextInput = forwardRef<RNTextInput, TextInputProps>(function TextInput(\n {\n label,\n subtitle,\n status = \"default\",\n size = \"md\",\n radius = \"xs\",\n leftIcon,\n rightIcon,\n helperText,\n editable = true,\n wrapperStyle,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const [focused, setFocused] = useState(false);\n\n const isDisabled = editable === false;\n\n const heightMap: Record<TextInputSize, number> = {\n sm: theme.inputHeightSm,\n md: theme.inputHeightMd,\n lg: theme.inputHeightLg,\n };\n\n const paddingMap: Record<TextInputSize, number> = {\n sm: 12,\n md: 14,\n lg: 16,\n };\n\n const fontSizeMap: Record<TextInputSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const radiusMap: Record<TextInputRadius, number> = {\n none: 0,\n xxs: theme.radiusXxs,\n xs: theme.radiusXs,\n sm: theme.radiusSm,\n md: theme.radiusMd,\n lg: theme.radiusLg,\n xl: theme.radiusXl,\n full: 9999,\n };\n\n const hasError = status === \"error\" || !!helperText;\n\n const borderColor = hasError\n ? theme.danger\n : focused\n ? theme.primary\n : theme.border;\n\n const containerStyle: ViewStyle = {\n height: heightMap[size],\n paddingHorizontal: paddingMap[size],\n borderRadius: radiusMap[radius],\n borderWidth: theme.borderWidthSm,\n borderColor,\n backgroundColor: isDisabled ? theme.background : theme.surface,\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 8,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const inputId = accessibilityLabel ?? label;\n\n return (\n <View style={[{ gap: 4 }, wrapperStyle]}>\n {/* Label + Subtitle */}\n {label && (\n <View style={{ flexDirection: \"row\", alignItems: \"baseline\", gap: 4 }}>\n <Text style={{ fontSize: 14, fontWeight: \"500\", color: theme.text }}>\n {label}\n </Text>\n {subtitle && (\n <Text style={{ fontSize: 14, color: theme.textMuted }}>{subtitle}</Text>\n )}\n </View>\n )}\n\n {/* Input container */}\n <View style={[containerStyle, style]}>\n {leftIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {leftIcon}\n </View>\n )}\n\n <RNTextInput\n ref={ref}\n editable={editable}\n accessibilityLabel={inputId}\n accessibilityState={{ disabled: isDisabled }}\n aria-invalid={status === \"error\"}\n onFocus={(e) => {\n setFocused(true);\n rest.onFocus?.(e);\n }}\n onBlur={(e) => {\n setFocused(false);\n rest.onBlur?.(e);\n }}\n style={{\n flex: 1,\n fontSize: fontSizeMap[size],\n color: theme.text,\n }}\n placeholderTextColor={theme.textMuted}\n {...rest}\n />\n\n {rightIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {rightIcon}\n </View>\n )}\n </View>\n\n {/* Helper text */}\n {helperText && (\n <Text\n style={{\n fontSize: 12,\n color: hasError ? theme.danger : theme.textMuted,\n }}\n >\n {helperText}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef, useCallback, useState } from \"react\";\nimport {\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type CheckboxSize = \"sm\" | \"md\" | \"lg\";\n\nexport type CheckboxProps = Omit<PressableProps, \"style\" | \"onPress\"> & {\n /** Checkbox size */\n size?: CheckboxSize;\n /** Label text displayed next to the checkbox */\n label?: string;\n /** Controlled checked state */\n checked?: boolean;\n /** Default checked state (uncontrolled) */\n defaultChecked?: boolean;\n /** Indeterminate state (partially checked) */\n indeterminate?: boolean;\n /** Callback fired when the value changes */\n onChange?: (checked: boolean) => void;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst CheckIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size,\n height: size,\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n {/* Simple checkmark drawn with two Views rotated — no SVG dep needed */}\n <View\n style={{\n position: \"absolute\",\n width: size * 0.55,\n height: size * 0.3,\n borderLeftWidth: 2,\n borderBottomWidth: 2,\n borderColor: color,\n transform: [{ rotate: \"-45deg\" }, { translateY: -size * 0.05 }],\n }}\n />\n </View>\n);\n\nconst MinusIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size * 0.7,\n height: 2,\n backgroundColor: color,\n }}\n />\n);\n\nexport const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox(\n {\n size = \"md\",\n label,\n checked: controlledChecked,\n defaultChecked = false,\n indeterminate = false,\n disabled,\n onChange,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n\n const isChecked = isControlled ? controlledChecked : internalChecked;\n const isActive = isChecked || indeterminate;\n\n const handlePress = useCallback(() => {\n if (disabled) return;\n const next = !isChecked;\n if (!isControlled) setInternalChecked(next);\n onChange?.(next);\n }, [disabled, isChecked, isControlled, onChange]);\n\n const boxSizeMap: Record<CheckboxSize, number> = {\n sm: 16,\n md: 20,\n lg: 24,\n };\n\n const iconSizeMap: Record<CheckboxSize, number> = {\n sm: 10,\n md: 12,\n lg: 14,\n };\n\n const fontSizeMap: Record<CheckboxSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const boxSize = boxSizeMap[size];\n const iconSize = iconSizeMap[size];\n\n const boxStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: theme.radiusXxs,\n borderWidth: theme.borderWidthSm,\n borderColor: isActive ? theme.primary : theme.border,\n backgroundColor: isActive ? theme.primary : theme.surface,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n return (\n <Pressable\n ref={ref}\n onPress={handlePress}\n disabled={disabled}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked: indeterminate ? \"mixed\" : isChecked, disabled: !!disabled }}\n accessibilityLabel={accessibilityLabel ?? label}\n style={[{ flexDirection: \"row\", alignItems: \"center\", gap: 8, opacity: disabled ? 0.5 : 1 }, style]}\n {...rest}\n >\n <View style={boxStyle}>\n {indeterminate ? (\n <MinusIcon size={iconSize} color={theme.surface} />\n ) : isChecked ? (\n <CheckIcon size={iconSize} color={theme.surface} />\n ) : null}\n </View>\n\n {label && (\n <Text style={{ fontSize: fontSizeMap[size], color: theme.text }}>\n {label}\n </Text>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport { Image, Text, View, type StyleProp, type ViewStyle, type ViewProps } from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type AvatarVariant = \"circle\" | \"square\";\n\nexport type AvatarProps = Omit<ViewProps, \"style\"> & {\n /** Image source URL */\n src?: string;\n /** Alt text (used as accessibility label and initials fallback) */\n alt?: string;\n /** Fallback initials shown when image is unavailable */\n initials?: string;\n /** Avatar size */\n size?: AvatarSize;\n /** Shape variant */\n variant?: AvatarVariant;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const Avatar = forwardRef<View, AvatarProps>(function Avatar(\n { src, alt = \"\", initials, size = \"md\", variant = \"circle\", style, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n const [imgError, setImgError] = useState(false);\n const showImage = !!src && !imgError;\n\n const fallbackLabel = initials\n ? initials.slice(0, 2).toUpperCase()\n : alt\n ? alt\n .split(\" \")\n .slice(0, 2)\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()\n : \"?\";\n\n const sizePxMap: Record<AvatarSize, number> = {\n sm: 32,\n md: 40,\n lg: 48,\n xl: 64,\n };\n\n const fontSizeMap: Record<AvatarSize, number> = {\n sm: 12,\n md: 14,\n lg: 18,\n xl: 20,\n };\n\n const boxSize = sizePxMap[size];\n const borderRadius = variant === \"circle\" ? boxSize / 2 : theme.radiusSm;\n\n const containerStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius,\n backgroundColor: theme.primary,\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n };\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"image\"\n accessibilityLabel={alt || initials || fallbackLabel}\n style={[containerStyle, style]}\n {...rest}\n >\n {showImage ? (\n <Image\n source={{ uri: src }}\n style={{ width: boxSize, height: boxSize, borderRadius }}\n onError={() => setImgError(true)}\n accessibilityLabel={alt}\n />\n ) : (\n <Text\n style={{\n fontSize: fontSizeMap[size],\n fontWeight: \"500\",\n color: theme.surface,\n }}\n accessibilityElementsHidden\n >\n {fallbackLabel}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator as RNActivityIndicator,\n View,\n type StyleProp,\n type ViewStyle,\n type ViewProps,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type ActivityIndicatorSize = \"sm\" | \"md\" | \"lg\";\nexport type ActivityIndicatorColor = \"primary\" | \"surface\" | \"custom\";\n\nexport type ActivityIndicatorProps = Omit<ViewProps, \"style\"> & {\n /** Spinner size */\n size?: ActivityIndicatorSize;\n /** Color preset — use \"custom\" to provide a raw color via `color` prop */\n colorVariant?: ActivityIndicatorColor;\n /** Raw color value (used when colorVariant is \"custom\") */\n color?: string;\n /** Whether the indicator is visible */\n animating?: boolean;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst sizeMap: Record<ActivityIndicatorSize, number | \"small\" | \"large\"> = {\n sm: \"small\",\n md: \"large\",\n lg: 48,\n};\n\nexport const ActivityIndicator = forwardRef<View, ActivityIndicatorProps>(\n function ActivityIndicator(\n {\n size = \"md\",\n colorVariant = \"primary\",\n color,\n animating = true,\n style,\n accessibilityLabel = \"Carregando\",\n ...rest\n },\n ref,\n ) {\n const theme = useRehagroTheme();\n\n const resolvedColor =\n colorVariant === \"custom\" && color\n ? color\n : colorVariant === \"surface\"\n ? theme.surface\n : theme.primary;\n\n const spinnerSize = sizeMap[size];\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"progressbar\"\n accessibilityLabel={accessibilityLabel}\n accessibilityState={{ busy: animating }}\n style={style}\n {...rest}\n >\n <RNActivityIndicator\n animating={animating}\n size={spinnerSize as \"small\" | \"large\"}\n color={resolvedColor}\n />\n </View>\n );\n },\n);\n","import React, { forwardRef } from \"react\";\nimport {\n Text as RNText,\n type TextProps as RNTextProps,\n type StyleProp,\n type TextStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextVariant =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"body\"\n | \"bodyLg\"\n | \"caption\"\n | \"label\";\n\nexport type TextColor = \"default\" | \"muted\" | \"primary\" | \"danger\" | \"success\" | \"warning\";\n\nexport type TextProps = Omit<RNTextProps, \"style\"> & {\n /** Typographic variant */\n variant?: TextVariant;\n /** Color preset */\n color?: TextColor;\n /** Bold weight */\n bold?: boolean;\n /** Custom style */\n style?: StyleProp<TextStyle>;\n};\n\nconst variantStyles: Record<TextVariant, TextStyle> = {\n h1: { fontSize: 32, lineHeight: 40, fontWeight: \"700\" },\n h2: { fontSize: 24, lineHeight: 32, fontWeight: \"700\" },\n h3: { fontSize: 20, lineHeight: 28, fontWeight: \"600\" },\n h4: { fontSize: 18, lineHeight: 26, fontWeight: \"600\" },\n bodyLg: { fontSize: 16, lineHeight: 24, fontWeight: \"400\" },\n body: { fontSize: 14, lineHeight: 20, fontWeight: \"400\" },\n label: { fontSize: 14, lineHeight: 20, fontWeight: \"500\" },\n caption: { fontSize: 12, lineHeight: 16, fontWeight: \"400\" },\n};\n\nexport const Text = forwardRef<RNText, TextProps>(function Text(\n { variant = \"body\", color = \"default\", bold = false, style, children, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n\n const colorMap: Record<TextColor, string> = {\n default: theme.text,\n muted: theme.textMuted,\n primary: theme.primary,\n danger: theme.danger,\n success: theme.success,\n warning: theme.warning,\n };\n\n const resolvedStyle: TextStyle = {\n ...variantStyles[variant],\n color: colorMap[color],\n ...(bold ? { fontWeight: \"700\" } : {}),\n };\n\n return (\n <RNText ref={ref} style={[resolvedStyle, style]} {...rest}>\n {children}\n </RNText>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type TextStyle,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\nimport type { PresetColor } from \"../../types/colors.types\";\n\nexport type TagColor = PresetColor | (string & {});\nexport type TagSize = \"sm\" | \"md\" | \"lg\";\n\nexport type TagProps = Omit<PressableProps, \"style\"> & {\n /** Tag color — preset name or any CSS color (e.g., \"#c3c3c3\", \"red\") */\n color?: TagColor;\n /** Tag size */\n size?: TagSize;\n /** Active (selected) state */\n active?: boolean;\n /** Disabled state */\n disabled?: boolean;\n /** Tag label text */\n title: string;\n /** Optional icon rendered on the left side */\n leftIcon?: React.ReactNode;\n /** Optional icon rendered on the right side */\n rightIcon?: React.ReactNode;\n /** Custom style for the outer container */\n style?: StyleProp<ViewStyle>;\n};\n\nconst PRESET_COLORS = new Set<string>([\n \"primary\",\n \"secondary\",\n \"danger\",\n \"warning\",\n \"success\",\n \"info\",\n]);\n\nconst isPresetColor = (c: string): c is PresetColor => PRESET_COLORS.has(c);\n\n/** Appends a two-digit hex alpha to a 6-digit hex color string. */\nfunction hexAlpha(hex: string, alpha: string): string {\n return `${hex}${alpha}`;\n}\n\nexport const Tag = forwardRef<View, TagProps>(function Tag(\n {\n color = \"primary\",\n size = \"md\",\n active = false,\n disabled = false,\n title,\n leftIcon,\n rightIcon,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const clickable = !!rest.onPress && !disabled;\n\n const presetTokens: Record<PresetColor, { main: string; hover: string }> = {\n primary: { main: theme.primary, hover: theme.primaryHover },\n secondary: { main: theme.secondary, hover: theme.secondaryHover },\n danger: { main: theme.danger, hover: theme.dangerHover },\n warning: { main: theme.warning, hover: theme.warning },\n success: { main: theme.success, hover: theme.success },\n info: { main: theme.info, hover: theme.infoHover },\n };\n\n const preset = isPresetColor(color);\n const mainColor = preset ? presetTokens[color as PresetColor].main : color;\n const hoverColor = preset ? presetTokens[color as PresetColor].hover : color;\n\n const sizeStyleMap: Record<TagSize, ViewStyle> = {\n sm: { paddingHorizontal: 8, paddingVertical: 2, gap: 4 },\n md: { paddingHorizontal: 10, paddingVertical: 4, gap: 6 },\n lg: { paddingHorizontal: 12, paddingVertical: 6, gap: 6 },\n };\n\n const fontSizeMap: Record<TagSize, number> = {\n sm: 11,\n md: 12,\n lg: 13,\n };\n\n const baseStyle: ViewStyle = {\n flexDirection: \"row\",\n alignItems: \"center\",\n alignSelf: \"flex-start\",\n borderRadius: 9999,\n borderWidth: 1,\n opacity: disabled ? 0.5 : 1,\n ...sizeStyleMap[size],\n };\n\n function containerStyle(pressed: boolean): ViewStyle {\n const resolvedColor = pressed && clickable ? hoverColor : mainColor;\n\n if (active) {\n return {\n backgroundColor: resolvedColor,\n borderColor: resolvedColor,\n };\n }\n\n // inactive\n const bg = pressed && clickable\n ? hexAlpha(mainColor, \"33\") // ~20% on press\n : hexAlpha(mainColor, \"1a\"); // ~10% resting\n const border = hexAlpha(mainColor, \"4d\"); // ~30%\n\n return { backgroundColor: bg, borderColor: border };\n }\n\n function resolvedTextColor(pressed: boolean): string {\n if (active) return theme.surface;\n return pressed && clickable ? hoverColor : mainColor;\n }\n\n const textStyle = (pressed: boolean): TextStyle => ({\n color: resolvedTextColor(pressed),\n fontSize: fontSizeMap[size],\n fontWeight: \"500\",\n });\n\n if (!clickable) {\n return (\n <View\n ref={ref}\n accessibilityRole=\"text\"\n accessibilityLabel={accessibilityLabel ?? title}\n accessibilityState={{ disabled }}\n style={[baseStyle, containerStyle(false), style]}\n >\n {leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n <Text style={textStyle(false)}>{title}</Text>\n {rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </View>\n );\n }\n\n return (\n <Pressable\n ref={ref}\n disabled={disabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled, selected: active }}\n accessibilityLabel={accessibilityLabel ?? title}\n style={({ pressed }) => [baseStyle, containerStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) => (\n <>\n {leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n <Text style={textStyle(pressed)}>{title}</Text>\n {rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </>\n )}\n </Pressable>\n );\n});\n"]}
package/dist/native.mjs CHANGED
@@ -302,7 +302,8 @@ var TextInput = forwardRef(function TextInput2({
302
302
  xl: theme.radiusXl,
303
303
  full: 9999
304
304
  };
305
- const borderColor = status === "error" ? theme.danger : focused ? theme.primary : theme.border;
305
+ const hasError = status === "error" || !!helperText;
306
+ const borderColor = hasError ? theme.danger : focused ? theme.primary : theme.border;
306
307
  const containerStyle = {
307
308
  height: heightMap[size],
308
309
  paddingHorizontal: paddingMap[size],
@@ -355,7 +356,7 @@ var TextInput = forwardRef(function TextInput2({
355
356
  {
356
357
  style: {
357
358
  fontSize: 12,
358
- color: status === "error" ? theme.danger : theme.textMuted
359
+ color: hasError ? theme.danger : theme.textMuted
359
360
  },
360
361
  children: helperText
361
362
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/provider/theme.native.ts","../src/provider/RehagroNativeContext.ts","../src/provider/RehagroNativeProvider.tsx","../src/components/Button/Button.native.tsx","../src/components/IconButton/IconButton.native.tsx","../src/components/TextInput/TextInput.native.tsx","../src/components/Checkbox/Checkbox.native.tsx","../src/components/Avatar/Avatar.native.tsx","../src/components/ActivityIndicator/ActivityIndicator.native.tsx","../src/components/Text/Text.native.tsx","../src/components/Tag/Tag.native.tsx"],"names":["Button","jsx","PRESET_COLORS","isPresetColor","forwardRef","IconButton","Pressable","ActivityIndicator","View","TextInput","jsxs","Text","RNTextInput","Checkbox","useState","Avatar","RNActivityIndicator","RNText","Tag","Fragment"],"mappings":"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","file":"native.mjs","sourcesContent":["import type { RehagroTheme } from \"./theme\";\n\n/** React Native theme — reuses the same token names as the web theme.\n * Color values are plain CSS hex strings (e.g. \"#16a34a\").\n * Spacing/radius/border values are numbers (device-independent pixels).\n */\nexport type RehagroNativeTheme = {\n // Brand colors\n primary?: string;\n primaryHover?: string;\n secondary?: string;\n secondaryHover?: string;\n danger?: string;\n dangerHover?: string;\n warning?: string;\n success?: string;\n info?: string;\n infoHover?: string;\n\n // Semantic colors\n text?: string;\n textMuted?: string;\n surface?: string;\n background?: string;\n border?: string;\n\n // Border radius (numbers = dp)\n radiusXxs?: number;\n radiusXs?: number;\n radiusSm?: number;\n radiusMd?: number;\n radiusLg?: number;\n radiusXl?: number;\n\n // Border width\n borderWidthSm?: number;\n borderWidthMd?: number;\n borderWidthLg?: number;\n\n // Input sizes\n inputHeightSm?: number;\n inputHeightMd?: number;\n inputHeightLg?: number;\n};\n\nexport type RehagroNativeProviderProps = {\n /** Theme overrides — any token not provided keeps the default value */\n theme?: RehagroNativeTheme;\n children: React.ReactNode;\n};\n\nexport const DEFAULT_NATIVE_THEME: Required<RehagroNativeTheme> = {\n primary: \"#16a34a\",\n primaryHover: \"#15803d\",\n secondary: \"#6b7280\",\n secondaryHover: \"#4b5563\",\n danger: \"#dc2626\",\n dangerHover: \"#b91c1c\",\n warning: \"#d97706\",\n success: \"#16a34a\",\n info: \"#0284c7\",\n infoHover: \"#0369a1\",\n\n text: \"#111827\",\n textMuted: \"#6b7280\",\n surface: \"#ffffff\",\n background: \"#f9fafb\",\n border: \"#d1d5db\",\n\n radiusXxs: 4,\n radiusXs: 8,\n radiusSm: 12,\n radiusMd: 16,\n radiusLg: 24,\n radiusXl: 32,\n\n borderWidthSm: 1,\n borderWidthMd: 2,\n borderWidthLg: 3,\n\n inputHeightSm: 36,\n inputHeightMd: 44,\n inputHeightLg: 52,\n};\n\n// Ensures RehagroNativeTheme color keys stay in sync with RehagroTheme\ntype _ColorKeysMatch = Pick<\n RehagroTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"info\" | \"infoHover\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\ntype _NativeColorKeys = Pick<\n RehagroNativeTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"info\" | \"infoHover\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\n// This line will error at compile time if the color keys diverge:\ntype _ColorKeysCheck = _ColorKeysMatch extends _NativeColorKeys ? true : never;\n","import { createContext, useContext } from \"react\";\nimport type { RehagroNativeTheme } from \"./theme.native\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\n\nexport const RehagroNativeContext = createContext<Required<RehagroNativeTheme>>(DEFAULT_NATIVE_THEME);\n\nexport function useRehagroTheme(): Required<RehagroNativeTheme> {\n return useContext(RehagroNativeContext);\n}\n","import React, { useMemo } from \"react\";\nimport { RehagroNativeContext } from \"./RehagroNativeContext\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\nimport type { RehagroNativeProviderProps, RehagroNativeTheme } from \"./theme.native\";\n\nexport function RehagroNativeProvider({ theme, children }: RehagroNativeProviderProps) {\n const resolvedTheme = useMemo<Required<RehagroNativeTheme>>(\n () => ({ ...DEFAULT_NATIVE_THEME, ...theme }),\n [theme],\n );\n\n return (\n <RehagroNativeContext.Provider value={resolvedTheme}>\n {children}\n </RehagroNativeContext.Provider>\n );\n}\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\nimport type { ButtonColor, PresetColor } from \"../../types/colors.types\";\n\nexport type { ButtonColor };\nexport type ButtonVariant = \"solid\" | \"outline\" | \"ghost\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\nexport type ButtonRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type ButtonProps = Omit<PressableProps, \"style\"> & {\n /** Visual style variant */\n variant?: ButtonVariant;\n /** Button size */\n size?: ButtonSize;\n /** Border radius */\n radius?: ButtonRadius;\n /** Color scheme — preset name or any CSS color (e.g., \"#c3c3c3\", \"red\", \"rgb(...)\") */\n color?: ButtonColor;\n /** Shows loading state and disables interaction */\n loading?: boolean;\n /** Icon rendered to the left of children (hidden when loading) */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of children (hidden when loading) */\n rightIcon?: React.ReactNode;\n /** Label text */\n children?: React.ReactNode;\n /** Custom style for the outer Pressable */\n style?: StyleProp<ViewStyle>;\n};\n\nconst PRESET_COLORS = new Set<string>([\n \"primary\",\n \"secondary\",\n \"danger\",\n \"warning\",\n \"success\",\n \"info\",\n]);\n\nconst isPresetColor = (c: string): c is PresetColor => PRESET_COLORS.has(c);\n\nexport const Button = forwardRef<View, ButtonProps>(function Button(\n {\n variant = \"solid\",\n size = \"md\",\n radius = \"sm\",\n color = \"primary\",\n loading = false,\n disabled,\n leftIcon,\n rightIcon,\n children,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isDisabled = disabled || loading;\n const preset = isPresetColor(color);\n\n const presetBase: Record<PresetColor, string> = {\n primary: theme.primary,\n secondary: theme.secondary,\n danger: theme.danger,\n warning: theme.warning,\n success: theme.success,\n info: theme.info,\n };\n\n const presetHover: Record<PresetColor, string> = {\n primary: theme.primaryHover,\n secondary: theme.secondaryHover,\n danger: theme.dangerHover,\n warning: theme.warning,\n success: theme.success,\n info: theme.infoHover,\n };\n\n const colorBase = preset ? presetBase[color as PresetColor] : color;\n const colorHover = preset ? presetHover[color as PresetColor] : color;\n\n const sizeStyleMap: Record<ButtonSize, ViewStyle> = {\n sm: { paddingHorizontal: 12, paddingVertical: 6 },\n md: { paddingHorizontal: 16, paddingVertical: 8 },\n lg: { paddingHorizontal: 20, paddingVertical: 10 },\n };\n\n const fontSizeMap: Record<ButtonSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const radiusStyleMap: Record<ButtonRadius, number> = {\n none: 0,\n xxs: 2,\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n full: 9999,\n };\n\n const baseStyle: ViewStyle = {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 8,\n borderWidth: 1,\n opacity: isDisabled ? 0.5 : 1,\n borderRadius: radiusStyleMap[radius],\n ...sizeStyleMap[size],\n };\n\n const variantStyle = (pressed: boolean): ViewStyle => {\n if (variant === \"solid\") {\n return {\n backgroundColor: pressed ? colorHover : colorBase,\n borderColor: pressed ? colorHover : colorBase,\n };\n }\n if (variant === \"outline\") {\n return {\n borderColor: colorBase,\n backgroundColor: pressed ? colorBase : \"transparent\",\n };\n }\n return { borderColor: \"transparent\", backgroundColor: \"transparent\" };\n };\n\n const textColor = (pressed: boolean): string => {\n if (variant === \"solid\") return theme.surface;\n if (variant === \"outline\") return pressed ? theme.surface : colorBase;\n return colorBase;\n };\n\n return (\n <Pressable\n ref={ref}\n disabled={isDisabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n accessibilityLabel={\n accessibilityLabel ?? (typeof children === \"string\" ? children : undefined)\n }\n style={({ pressed }) => [baseStyle, variantStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) => (\n <>\n {loading && (\n <ActivityIndicator\n size=\"small\"\n color={variant === \"solid\" ? theme.surface : colorBase}\n />\n )}\n {!loading && leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n {typeof children === \"string\" ? (\n <Text\n style={{ color: textColor(pressed), fontSize: fontSizeMap[size], fontWeight: \"500\" }}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {!loading && rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\nimport type { ButtonColor, PresetColor } from \"../../types/colors.types\";\n\nexport type IconButtonVariant = \"solid\" | \"outline\" | \"ghost\";\nexport type IconButtonSize = \"sm\" | \"md\" | \"lg\";\nexport type IconButtonRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\nexport type IconButtonColor = ButtonColor;\n\nconst PRESET_COLORS = new Set<string>([\n \"primary\",\n \"secondary\",\n \"danger\",\n \"warning\",\n \"success\",\n \"info\",\n]);\n\nconst isPresetColor = (c: string): c is PresetColor => PRESET_COLORS.has(c);\n\nexport type IconButtonProps = Omit<PressableProps, \"style\"> & {\n /** Visual style variant */\n variant?: IconButtonVariant;\n /** Button size */\n size?: IconButtonSize;\n /** Border radius */\n radius?: IconButtonRadius;\n /** Color scheme — preset name or any CSS color (e.g., \"#c3c3c3\", \"red\", \"rgb(...)\") */\n color?: IconButtonColor;\n /** Shows loading state and disables interaction */\n loading?: boolean;\n /** Icon content */\n children?: React.ReactNode;\n /** Custom style for the outer Pressable */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const IconButton = forwardRef<View, IconButtonProps>(function IconButton(\n {\n variant = \"ghost\",\n size = \"md\",\n radius = \"full\",\n color = \"primary\",\n loading = false,\n disabled,\n children,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isDisabled = disabled || loading;\n\n const sizePxMap: Record<IconButtonSize, number> = {\n sm: 32,\n md: 40,\n lg: 48,\n };\n\n const radiusPxMap: Record<IconButtonRadius, number> = {\n none: 0,\n xxs: 2,\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n full: 9999,\n };\n\n const presetTokens: Record<PresetColor, { main: string; hover: string }> = {\n primary: { main: theme.primary, hover: theme.primaryHover },\n secondary: { main: theme.secondary, hover: theme.secondaryHover },\n danger: { main: theme.danger, hover: theme.dangerHover },\n warning: { main: theme.warning, hover: theme.warning },\n success: { main: theme.success, hover: theme.success },\n info: { main: theme.info, hover: theme.infoHover },\n };\n\n const preset = isPresetColor(color);\n const main = preset ? presetTokens[color as PresetColor].main : color;\n const hover = preset ? presetTokens[color as PresetColor].hover : color;\n const boxSize = sizePxMap[size];\n\n const baseStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: radiusPxMap[radius],\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 1,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const variantStyle = (pressed: boolean): ViewStyle => {\n if (variant === \"solid\") {\n return { backgroundColor: pressed ? hover : main, borderColor: pressed ? hover : main };\n }\n if (variant === \"outline\") {\n return { borderColor: main, backgroundColor: pressed ? main : \"transparent\" };\n }\n return { borderColor: \"transparent\", backgroundColor: pressed ? `${main}1a` : \"transparent\" };\n };\n\n const iconColor = (pressed: boolean): string => {\n if (variant === \"solid\") return theme.surface;\n if (variant === \"outline\") return pressed ? theme.surface : main;\n return main;\n };\n\n return (\n <Pressable\n ref={ref}\n disabled={isDisabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n accessibilityLabel={accessibilityLabel}\n style={({ pressed }) => [baseStyle, variantStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) =>\n loading ? (\n <ActivityIndicator size=\"small\" color={variant === \"solid\" ? theme.surface : main} />\n ) : (\n <View style={{ tintColor: iconColor(pressed) } as ViewStyle}>\n {children}\n </View>\n )\n }\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport {\n TextInput as RNTextInput,\n Text,\n View,\n type TextInputProps as RNTextInputProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextInputStatus = \"default\" | \"error\";\nexport type TextInputSize = \"sm\" | \"md\" | \"lg\";\nexport type TextInputRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type TextInputProps = Omit<RNTextInputProps, \"style\"> & {\n /** Label text displayed above the input */\n label?: string;\n /** Subtitle displayed next to the label */\n subtitle?: string;\n /** Validation status */\n status?: TextInputStatus;\n /** Input size */\n size?: TextInputSize;\n /** Border radius */\n radius?: TextInputRadius;\n /** Icon rendered to the left of the input */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of the input */\n rightIcon?: React.ReactNode;\n /** Helper/error message displayed below the input */\n helperText?: React.ReactNode;\n /** Custom style for the outermost wrapper */\n wrapperStyle?: StyleProp<ViewStyle>;\n /** Custom style for the input container */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const TextInput = forwardRef<RNTextInput, TextInputProps>(function TextInput(\n {\n label,\n subtitle,\n status = \"default\",\n size = \"md\",\n radius = \"xs\",\n leftIcon,\n rightIcon,\n helperText,\n editable = true,\n wrapperStyle,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const [focused, setFocused] = useState(false);\n\n const isDisabled = editable === false;\n\n const heightMap: Record<TextInputSize, number> = {\n sm: theme.inputHeightSm,\n md: theme.inputHeightMd,\n lg: theme.inputHeightLg,\n };\n\n const paddingMap: Record<TextInputSize, number> = {\n sm: 12,\n md: 14,\n lg: 16,\n };\n\n const fontSizeMap: Record<TextInputSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const radiusMap: Record<TextInputRadius, number> = {\n none: 0,\n xxs: theme.radiusXxs,\n xs: theme.radiusXs,\n sm: theme.radiusSm,\n md: theme.radiusMd,\n lg: theme.radiusLg,\n xl: theme.radiusXl,\n full: 9999,\n };\n\n const borderColor =\n status === \"error\"\n ? theme.danger\n : focused\n ? theme.primary\n : theme.border;\n\n const containerStyle: ViewStyle = {\n height: heightMap[size],\n paddingHorizontal: paddingMap[size],\n borderRadius: radiusMap[radius],\n borderWidth: theme.borderWidthSm,\n borderColor,\n backgroundColor: isDisabled ? theme.background : theme.surface,\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 8,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const inputId = accessibilityLabel ?? label;\n\n return (\n <View style={[{ gap: 4 }, wrapperStyle]}>\n {/* Label + Subtitle */}\n {label && (\n <View style={{ flexDirection: \"row\", alignItems: \"baseline\", gap: 4 }}>\n <Text style={{ fontSize: 14, fontWeight: \"500\", color: theme.text }}>\n {label}\n </Text>\n {subtitle && (\n <Text style={{ fontSize: 14, color: theme.textMuted }}>{subtitle}</Text>\n )}\n </View>\n )}\n\n {/* Input container */}\n <View style={[containerStyle, style]}>\n {leftIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {leftIcon}\n </View>\n )}\n\n <RNTextInput\n ref={ref}\n editable={editable}\n accessibilityLabel={inputId}\n accessibilityState={{ disabled: isDisabled }}\n aria-invalid={status === \"error\"}\n onFocus={(e) => {\n setFocused(true);\n rest.onFocus?.(e);\n }}\n onBlur={(e) => {\n setFocused(false);\n rest.onBlur?.(e);\n }}\n style={{\n flex: 1,\n fontSize: fontSizeMap[size],\n color: theme.text,\n }}\n placeholderTextColor={theme.textMuted}\n {...rest}\n />\n\n {rightIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {rightIcon}\n </View>\n )}\n </View>\n\n {/* Helper text */}\n {helperText && (\n <Text\n style={{\n fontSize: 12,\n color: status === \"error\" ? theme.danger : theme.textMuted,\n }}\n >\n {helperText}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef, useCallback, useState } from \"react\";\nimport {\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type CheckboxSize = \"sm\" | \"md\" | \"lg\";\n\nexport type CheckboxProps = Omit<PressableProps, \"style\" | \"onPress\"> & {\n /** Checkbox size */\n size?: CheckboxSize;\n /** Label text displayed next to the checkbox */\n label?: string;\n /** Controlled checked state */\n checked?: boolean;\n /** Default checked state (uncontrolled) */\n defaultChecked?: boolean;\n /** Indeterminate state (partially checked) */\n indeterminate?: boolean;\n /** Callback fired when the value changes */\n onChange?: (checked: boolean) => void;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst CheckIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size,\n height: size,\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n {/* Simple checkmark drawn with two Views rotated — no SVG dep needed */}\n <View\n style={{\n position: \"absolute\",\n width: size * 0.55,\n height: size * 0.3,\n borderLeftWidth: 2,\n borderBottomWidth: 2,\n borderColor: color,\n transform: [{ rotate: \"-45deg\" }, { translateY: -size * 0.05 }],\n }}\n />\n </View>\n);\n\nconst MinusIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size * 0.7,\n height: 2,\n backgroundColor: color,\n }}\n />\n);\n\nexport const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox(\n {\n size = \"md\",\n label,\n checked: controlledChecked,\n defaultChecked = false,\n indeterminate = false,\n disabled,\n onChange,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n\n const isChecked = isControlled ? controlledChecked : internalChecked;\n const isActive = isChecked || indeterminate;\n\n const handlePress = useCallback(() => {\n if (disabled) return;\n const next = !isChecked;\n if (!isControlled) setInternalChecked(next);\n onChange?.(next);\n }, [disabled, isChecked, isControlled, onChange]);\n\n const boxSizeMap: Record<CheckboxSize, number> = {\n sm: 16,\n md: 20,\n lg: 24,\n };\n\n const iconSizeMap: Record<CheckboxSize, number> = {\n sm: 10,\n md: 12,\n lg: 14,\n };\n\n const fontSizeMap: Record<CheckboxSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const boxSize = boxSizeMap[size];\n const iconSize = iconSizeMap[size];\n\n const boxStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: theme.radiusXxs,\n borderWidth: theme.borderWidthSm,\n borderColor: isActive ? theme.primary : theme.border,\n backgroundColor: isActive ? theme.primary : theme.surface,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n return (\n <Pressable\n ref={ref}\n onPress={handlePress}\n disabled={disabled}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked: indeterminate ? \"mixed\" : isChecked, disabled: !!disabled }}\n accessibilityLabel={accessibilityLabel ?? label}\n style={[{ flexDirection: \"row\", alignItems: \"center\", gap: 8, opacity: disabled ? 0.5 : 1 }, style]}\n {...rest}\n >\n <View style={boxStyle}>\n {indeterminate ? (\n <MinusIcon size={iconSize} color={theme.surface} />\n ) : isChecked ? (\n <CheckIcon size={iconSize} color={theme.surface} />\n ) : null}\n </View>\n\n {label && (\n <Text style={{ fontSize: fontSizeMap[size], color: theme.text }}>\n {label}\n </Text>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport { Image, Text, View, type StyleProp, type ViewStyle, type ViewProps } from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type AvatarVariant = \"circle\" | \"square\";\n\nexport type AvatarProps = Omit<ViewProps, \"style\"> & {\n /** Image source URL */\n src?: string;\n /** Alt text (used as accessibility label and initials fallback) */\n alt?: string;\n /** Fallback initials shown when image is unavailable */\n initials?: string;\n /** Avatar size */\n size?: AvatarSize;\n /** Shape variant */\n variant?: AvatarVariant;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const Avatar = forwardRef<View, AvatarProps>(function Avatar(\n { src, alt = \"\", initials, size = \"md\", variant = \"circle\", style, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n const [imgError, setImgError] = useState(false);\n const showImage = !!src && !imgError;\n\n const fallbackLabel = initials\n ? initials.slice(0, 2).toUpperCase()\n : alt\n ? alt\n .split(\" \")\n .slice(0, 2)\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()\n : \"?\";\n\n const sizePxMap: Record<AvatarSize, number> = {\n sm: 32,\n md: 40,\n lg: 48,\n xl: 64,\n };\n\n const fontSizeMap: Record<AvatarSize, number> = {\n sm: 12,\n md: 14,\n lg: 18,\n xl: 20,\n };\n\n const boxSize = sizePxMap[size];\n const borderRadius = variant === \"circle\" ? boxSize / 2 : theme.radiusSm;\n\n const containerStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius,\n backgroundColor: theme.primary,\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n };\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"image\"\n accessibilityLabel={alt || initials || fallbackLabel}\n style={[containerStyle, style]}\n {...rest}\n >\n {showImage ? (\n <Image\n source={{ uri: src }}\n style={{ width: boxSize, height: boxSize, borderRadius }}\n onError={() => setImgError(true)}\n accessibilityLabel={alt}\n />\n ) : (\n <Text\n style={{\n fontSize: fontSizeMap[size],\n fontWeight: \"500\",\n color: theme.surface,\n }}\n accessibilityElementsHidden\n >\n {fallbackLabel}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator as RNActivityIndicator,\n View,\n type StyleProp,\n type ViewStyle,\n type ViewProps,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type ActivityIndicatorSize = \"sm\" | \"md\" | \"lg\";\nexport type ActivityIndicatorColor = \"primary\" | \"surface\" | \"custom\";\n\nexport type ActivityIndicatorProps = Omit<ViewProps, \"style\"> & {\n /** Spinner size */\n size?: ActivityIndicatorSize;\n /** Color preset — use \"custom\" to provide a raw color via `color` prop */\n colorVariant?: ActivityIndicatorColor;\n /** Raw color value (used when colorVariant is \"custom\") */\n color?: string;\n /** Whether the indicator is visible */\n animating?: boolean;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst sizeMap: Record<ActivityIndicatorSize, number | \"small\" | \"large\"> = {\n sm: \"small\",\n md: \"large\",\n lg: 48,\n};\n\nexport const ActivityIndicator = forwardRef<View, ActivityIndicatorProps>(\n function ActivityIndicator(\n {\n size = \"md\",\n colorVariant = \"primary\",\n color,\n animating = true,\n style,\n accessibilityLabel = \"Carregando\",\n ...rest\n },\n ref,\n ) {\n const theme = useRehagroTheme();\n\n const resolvedColor =\n colorVariant === \"custom\" && color\n ? color\n : colorVariant === \"surface\"\n ? theme.surface\n : theme.primary;\n\n const spinnerSize = sizeMap[size];\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"progressbar\"\n accessibilityLabel={accessibilityLabel}\n accessibilityState={{ busy: animating }}\n style={style}\n {...rest}\n >\n <RNActivityIndicator\n animating={animating}\n size={spinnerSize as \"small\" | \"large\"}\n color={resolvedColor}\n />\n </View>\n );\n },\n);\n","import React, { forwardRef } from \"react\";\nimport {\n Text as RNText,\n type TextProps as RNTextProps,\n type StyleProp,\n type TextStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextVariant =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"body\"\n | \"bodyLg\"\n | \"caption\"\n | \"label\";\n\nexport type TextColor = \"default\" | \"muted\" | \"primary\" | \"danger\" | \"success\" | \"warning\";\n\nexport type TextProps = Omit<RNTextProps, \"style\"> & {\n /** Typographic variant */\n variant?: TextVariant;\n /** Color preset */\n color?: TextColor;\n /** Bold weight */\n bold?: boolean;\n /** Custom style */\n style?: StyleProp<TextStyle>;\n};\n\nconst variantStyles: Record<TextVariant, TextStyle> = {\n h1: { fontSize: 32, lineHeight: 40, fontWeight: \"700\" },\n h2: { fontSize: 24, lineHeight: 32, fontWeight: \"700\" },\n h3: { fontSize: 20, lineHeight: 28, fontWeight: \"600\" },\n h4: { fontSize: 18, lineHeight: 26, fontWeight: \"600\" },\n bodyLg: { fontSize: 16, lineHeight: 24, fontWeight: \"400\" },\n body: { fontSize: 14, lineHeight: 20, fontWeight: \"400\" },\n label: { fontSize: 14, lineHeight: 20, fontWeight: \"500\" },\n caption: { fontSize: 12, lineHeight: 16, fontWeight: \"400\" },\n};\n\nexport const Text = forwardRef<RNText, TextProps>(function Text(\n { variant = \"body\", color = \"default\", bold = false, style, children, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n\n const colorMap: Record<TextColor, string> = {\n default: theme.text,\n muted: theme.textMuted,\n primary: theme.primary,\n danger: theme.danger,\n success: theme.success,\n warning: theme.warning,\n };\n\n const resolvedStyle: TextStyle = {\n ...variantStyles[variant],\n color: colorMap[color],\n ...(bold ? { fontWeight: \"700\" } : {}),\n };\n\n return (\n <RNText ref={ref} style={[resolvedStyle, style]} {...rest}>\n {children}\n </RNText>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type TextStyle,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\nimport type { PresetColor } from \"../../types/colors.types\";\n\nexport type TagColor = PresetColor | (string & {});\nexport type TagSize = \"sm\" | \"md\" | \"lg\";\n\nexport type TagProps = Omit<PressableProps, \"style\"> & {\n /** Tag color — preset name or any CSS color (e.g., \"#c3c3c3\", \"red\") */\n color?: TagColor;\n /** Tag size */\n size?: TagSize;\n /** Active (selected) state */\n active?: boolean;\n /** Disabled state */\n disabled?: boolean;\n /** Tag label text */\n title: string;\n /** Optional icon rendered on the left side */\n leftIcon?: React.ReactNode;\n /** Optional icon rendered on the right side */\n rightIcon?: React.ReactNode;\n /** Custom style for the outer container */\n style?: StyleProp<ViewStyle>;\n};\n\nconst PRESET_COLORS = new Set<string>([\n \"primary\",\n \"secondary\",\n \"danger\",\n \"warning\",\n \"success\",\n \"info\",\n]);\n\nconst isPresetColor = (c: string): c is PresetColor => PRESET_COLORS.has(c);\n\n/** Appends a two-digit hex alpha to a 6-digit hex color string. */\nfunction hexAlpha(hex: string, alpha: string): string {\n return `${hex}${alpha}`;\n}\n\nexport const Tag = forwardRef<View, TagProps>(function Tag(\n {\n color = \"primary\",\n size = \"md\",\n active = false,\n disabled = false,\n title,\n leftIcon,\n rightIcon,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const clickable = !!rest.onPress && !disabled;\n\n const presetTokens: Record<PresetColor, { main: string; hover: string }> = {\n primary: { main: theme.primary, hover: theme.primaryHover },\n secondary: { main: theme.secondary, hover: theme.secondaryHover },\n danger: { main: theme.danger, hover: theme.dangerHover },\n warning: { main: theme.warning, hover: theme.warning },\n success: { main: theme.success, hover: theme.success },\n info: { main: theme.info, hover: theme.infoHover },\n };\n\n const preset = isPresetColor(color);\n const mainColor = preset ? presetTokens[color as PresetColor].main : color;\n const hoverColor = preset ? presetTokens[color as PresetColor].hover : color;\n\n const sizeStyleMap: Record<TagSize, ViewStyle> = {\n sm: { paddingHorizontal: 8, paddingVertical: 2, gap: 4 },\n md: { paddingHorizontal: 10, paddingVertical: 4, gap: 6 },\n lg: { paddingHorizontal: 12, paddingVertical: 6, gap: 6 },\n };\n\n const fontSizeMap: Record<TagSize, number> = {\n sm: 11,\n md: 12,\n lg: 13,\n };\n\n const baseStyle: ViewStyle = {\n flexDirection: \"row\",\n alignItems: \"center\",\n alignSelf: \"flex-start\",\n borderRadius: 9999,\n borderWidth: 1,\n opacity: disabled ? 0.5 : 1,\n ...sizeStyleMap[size],\n };\n\n function containerStyle(pressed: boolean): ViewStyle {\n const resolvedColor = pressed && clickable ? hoverColor : mainColor;\n\n if (active) {\n return {\n backgroundColor: resolvedColor,\n borderColor: resolvedColor,\n };\n }\n\n // inactive\n const bg = pressed && clickable\n ? hexAlpha(mainColor, \"33\") // ~20% on press\n : hexAlpha(mainColor, \"1a\"); // ~10% resting\n const border = hexAlpha(mainColor, \"4d\"); // ~30%\n\n return { backgroundColor: bg, borderColor: border };\n }\n\n function resolvedTextColor(pressed: boolean): string {\n if (active) return theme.surface;\n return pressed && clickable ? hoverColor : mainColor;\n }\n\n const textStyle = (pressed: boolean): TextStyle => ({\n color: resolvedTextColor(pressed),\n fontSize: fontSizeMap[size],\n fontWeight: \"500\",\n });\n\n if (!clickable) {\n return (\n <View\n ref={ref}\n accessibilityRole=\"text\"\n accessibilityLabel={accessibilityLabel ?? title}\n accessibilityState={{ disabled }}\n style={[baseStyle, containerStyle(false), style]}\n >\n {leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n <Text style={textStyle(false)}>{title}</Text>\n {rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </View>\n );\n }\n\n return (\n <Pressable\n ref={ref}\n disabled={disabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled, selected: active }}\n accessibilityLabel={accessibilityLabel ?? title}\n style={({ pressed }) => [baseStyle, containerStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) => (\n <>\n {leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n <Text style={textStyle(pressed)}>{title}</Text>\n {rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </>\n )}\n </Pressable>\n );\n});\n"]}
1
+ {"version":3,"sources":["../src/provider/theme.native.ts","../src/provider/RehagroNativeContext.ts","../src/provider/RehagroNativeProvider.tsx","../src/components/Button/Button.native.tsx","../src/components/IconButton/IconButton.native.tsx","../src/components/TextInput/TextInput.native.tsx","../src/components/Checkbox/Checkbox.native.tsx","../src/components/Avatar/Avatar.native.tsx","../src/components/ActivityIndicator/ActivityIndicator.native.tsx","../src/components/Text/Text.native.tsx","../src/components/Tag/Tag.native.tsx"],"names":["Button","jsx","PRESET_COLORS","isPresetColor","forwardRef","IconButton","Pressable","ActivityIndicator","View","TextInput","jsxs","Text","RNTextInput","Checkbox","useState","Avatar","RNActivityIndicator","RNText","Tag","Fragment"],"mappings":"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","file":"native.mjs","sourcesContent":["import type { RehagroTheme } from \"./theme\";\n\n/** React Native theme — reuses the same token names as the web theme.\n * Color values are plain CSS hex strings (e.g. \"#16a34a\").\n * Spacing/radius/border values are numbers (device-independent pixels).\n */\nexport type RehagroNativeTheme = {\n // Brand colors\n primary?: string;\n primaryHover?: string;\n secondary?: string;\n secondaryHover?: string;\n danger?: string;\n dangerHover?: string;\n warning?: string;\n success?: string;\n info?: string;\n infoHover?: string;\n\n // Semantic colors\n text?: string;\n textMuted?: string;\n surface?: string;\n background?: string;\n border?: string;\n\n // Border radius (numbers = dp)\n radiusXxs?: number;\n radiusXs?: number;\n radiusSm?: number;\n radiusMd?: number;\n radiusLg?: number;\n radiusXl?: number;\n\n // Border width\n borderWidthSm?: number;\n borderWidthMd?: number;\n borderWidthLg?: number;\n\n // Input sizes\n inputHeightSm?: number;\n inputHeightMd?: number;\n inputHeightLg?: number;\n};\n\nexport type RehagroNativeProviderProps = {\n /** Theme overrides — any token not provided keeps the default value */\n theme?: RehagroNativeTheme;\n children: React.ReactNode;\n};\n\nexport const DEFAULT_NATIVE_THEME: Required<RehagroNativeTheme> = {\n primary: \"#16a34a\",\n primaryHover: \"#15803d\",\n secondary: \"#6b7280\",\n secondaryHover: \"#4b5563\",\n danger: \"#dc2626\",\n dangerHover: \"#b91c1c\",\n warning: \"#d97706\",\n success: \"#16a34a\",\n info: \"#0284c7\",\n infoHover: \"#0369a1\",\n\n text: \"#111827\",\n textMuted: \"#6b7280\",\n surface: \"#ffffff\",\n background: \"#f9fafb\",\n border: \"#d1d5db\",\n\n radiusXxs: 4,\n radiusXs: 8,\n radiusSm: 12,\n radiusMd: 16,\n radiusLg: 24,\n radiusXl: 32,\n\n borderWidthSm: 1,\n borderWidthMd: 2,\n borderWidthLg: 3,\n\n inputHeightSm: 36,\n inputHeightMd: 44,\n inputHeightLg: 52,\n};\n\n// Ensures RehagroNativeTheme color keys stay in sync with RehagroTheme\ntype _ColorKeysMatch = Pick<\n RehagroTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"info\" | \"infoHover\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\ntype _NativeColorKeys = Pick<\n RehagroNativeTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"info\" | \"infoHover\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\n// This line will error at compile time if the color keys diverge:\ntype _ColorKeysCheck = _ColorKeysMatch extends _NativeColorKeys ? true : never;\n","import { createContext, useContext } from \"react\";\nimport type { RehagroNativeTheme } from \"./theme.native\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\n\nexport const RehagroNativeContext = createContext<Required<RehagroNativeTheme>>(DEFAULT_NATIVE_THEME);\n\nexport function useRehagroTheme(): Required<RehagroNativeTheme> {\n return useContext(RehagroNativeContext);\n}\n","import React, { useMemo } from \"react\";\nimport { RehagroNativeContext } from \"./RehagroNativeContext\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\nimport type { RehagroNativeProviderProps, RehagroNativeTheme } from \"./theme.native\";\n\nexport function RehagroNativeProvider({ theme, children }: RehagroNativeProviderProps) {\n const resolvedTheme = useMemo<Required<RehagroNativeTheme>>(\n () => ({ ...DEFAULT_NATIVE_THEME, ...theme }),\n [theme],\n );\n\n return (\n <RehagroNativeContext.Provider value={resolvedTheme}>\n {children}\n </RehagroNativeContext.Provider>\n );\n}\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\nimport type { ButtonColor, PresetColor } from \"../../types/colors.types\";\n\nexport type { ButtonColor };\nexport type ButtonVariant = \"solid\" | \"outline\" | \"ghost\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\nexport type ButtonRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type ButtonProps = Omit<PressableProps, \"style\"> & {\n /** Visual style variant */\n variant?: ButtonVariant;\n /** Button size */\n size?: ButtonSize;\n /** Border radius */\n radius?: ButtonRadius;\n /** Color scheme — preset name or any CSS color (e.g., \"#c3c3c3\", \"red\", \"rgb(...)\") */\n color?: ButtonColor;\n /** Shows loading state and disables interaction */\n loading?: boolean;\n /** Icon rendered to the left of children (hidden when loading) */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of children (hidden when loading) */\n rightIcon?: React.ReactNode;\n /** Label text */\n children?: React.ReactNode;\n /** Custom style for the outer Pressable */\n style?: StyleProp<ViewStyle>;\n};\n\nconst PRESET_COLORS = new Set<string>([\n \"primary\",\n \"secondary\",\n \"danger\",\n \"warning\",\n \"success\",\n \"info\",\n]);\n\nconst isPresetColor = (c: string): c is PresetColor => PRESET_COLORS.has(c);\n\nexport const Button = forwardRef<View, ButtonProps>(function Button(\n {\n variant = \"solid\",\n size = \"md\",\n radius = \"sm\",\n color = \"primary\",\n loading = false,\n disabled,\n leftIcon,\n rightIcon,\n children,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isDisabled = disabled || loading;\n const preset = isPresetColor(color);\n\n const presetBase: Record<PresetColor, string> = {\n primary: theme.primary,\n secondary: theme.secondary,\n danger: theme.danger,\n warning: theme.warning,\n success: theme.success,\n info: theme.info,\n };\n\n const presetHover: Record<PresetColor, string> = {\n primary: theme.primaryHover,\n secondary: theme.secondaryHover,\n danger: theme.dangerHover,\n warning: theme.warning,\n success: theme.success,\n info: theme.infoHover,\n };\n\n const colorBase = preset ? presetBase[color as PresetColor] : color;\n const colorHover = preset ? presetHover[color as PresetColor] : color;\n\n const sizeStyleMap: Record<ButtonSize, ViewStyle> = {\n sm: { paddingHorizontal: 12, paddingVertical: 6 },\n md: { paddingHorizontal: 16, paddingVertical: 8 },\n lg: { paddingHorizontal: 20, paddingVertical: 10 },\n };\n\n const fontSizeMap: Record<ButtonSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const radiusStyleMap: Record<ButtonRadius, number> = {\n none: 0,\n xxs: 2,\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n full: 9999,\n };\n\n const baseStyle: ViewStyle = {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n gap: 8,\n borderWidth: 1,\n opacity: isDisabled ? 0.5 : 1,\n borderRadius: radiusStyleMap[radius],\n ...sizeStyleMap[size],\n };\n\n const variantStyle = (pressed: boolean): ViewStyle => {\n if (variant === \"solid\") {\n return {\n backgroundColor: pressed ? colorHover : colorBase,\n borderColor: pressed ? colorHover : colorBase,\n };\n }\n if (variant === \"outline\") {\n return {\n borderColor: colorBase,\n backgroundColor: pressed ? colorBase : \"transparent\",\n };\n }\n return { borderColor: \"transparent\", backgroundColor: \"transparent\" };\n };\n\n const textColor = (pressed: boolean): string => {\n if (variant === \"solid\") return theme.surface;\n if (variant === \"outline\") return pressed ? theme.surface : colorBase;\n return colorBase;\n };\n\n return (\n <Pressable\n ref={ref}\n disabled={isDisabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n accessibilityLabel={\n accessibilityLabel ?? (typeof children === \"string\" ? children : undefined)\n }\n style={({ pressed }) => [baseStyle, variantStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) => (\n <>\n {loading && (\n <ActivityIndicator\n size=\"small\"\n color={variant === \"solid\" ? theme.surface : colorBase}\n />\n )}\n {!loading && leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n {typeof children === \"string\" ? (\n <Text\n style={{ color: textColor(pressed), fontSize: fontSizeMap[size], fontWeight: \"500\" }}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {!loading && rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\nimport type { ButtonColor, PresetColor } from \"../../types/colors.types\";\n\nexport type IconButtonVariant = \"solid\" | \"outline\" | \"ghost\";\nexport type IconButtonSize = \"sm\" | \"md\" | \"lg\";\nexport type IconButtonRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\nexport type IconButtonColor = ButtonColor;\n\nconst PRESET_COLORS = new Set<string>([\n \"primary\",\n \"secondary\",\n \"danger\",\n \"warning\",\n \"success\",\n \"info\",\n]);\n\nconst isPresetColor = (c: string): c is PresetColor => PRESET_COLORS.has(c);\n\nexport type IconButtonProps = Omit<PressableProps, \"style\"> & {\n /** Visual style variant */\n variant?: IconButtonVariant;\n /** Button size */\n size?: IconButtonSize;\n /** Border radius */\n radius?: IconButtonRadius;\n /** Color scheme — preset name or any CSS color (e.g., \"#c3c3c3\", \"red\", \"rgb(...)\") */\n color?: IconButtonColor;\n /** Shows loading state and disables interaction */\n loading?: boolean;\n /** Icon content */\n children?: React.ReactNode;\n /** Custom style for the outer Pressable */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const IconButton = forwardRef<View, IconButtonProps>(function IconButton(\n {\n variant = \"ghost\",\n size = \"md\",\n radius = \"full\",\n color = \"primary\",\n loading = false,\n disabled,\n children,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isDisabled = disabled || loading;\n\n const sizePxMap: Record<IconButtonSize, number> = {\n sm: 32,\n md: 40,\n lg: 48,\n };\n\n const radiusPxMap: Record<IconButtonRadius, number> = {\n none: 0,\n xxs: 2,\n xs: 4,\n sm: 8,\n md: 12,\n lg: 16,\n xl: 24,\n full: 9999,\n };\n\n const presetTokens: Record<PresetColor, { main: string; hover: string }> = {\n primary: { main: theme.primary, hover: theme.primaryHover },\n secondary: { main: theme.secondary, hover: theme.secondaryHover },\n danger: { main: theme.danger, hover: theme.dangerHover },\n warning: { main: theme.warning, hover: theme.warning },\n success: { main: theme.success, hover: theme.success },\n info: { main: theme.info, hover: theme.infoHover },\n };\n\n const preset = isPresetColor(color);\n const main = preset ? presetTokens[color as PresetColor].main : color;\n const hover = preset ? presetTokens[color as PresetColor].hover : color;\n const boxSize = sizePxMap[size];\n\n const baseStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: radiusPxMap[radius],\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 1,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const variantStyle = (pressed: boolean): ViewStyle => {\n if (variant === \"solid\") {\n return { backgroundColor: pressed ? hover : main, borderColor: pressed ? hover : main };\n }\n if (variant === \"outline\") {\n return { borderColor: main, backgroundColor: pressed ? main : \"transparent\" };\n }\n return { borderColor: \"transparent\", backgroundColor: pressed ? `${main}1a` : \"transparent\" };\n };\n\n const iconColor = (pressed: boolean): string => {\n if (variant === \"solid\") return theme.surface;\n if (variant === \"outline\") return pressed ? theme.surface : main;\n return main;\n };\n\n return (\n <Pressable\n ref={ref}\n disabled={isDisabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n accessibilityLabel={accessibilityLabel}\n style={({ pressed }) => [baseStyle, variantStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) =>\n loading ? (\n <ActivityIndicator size=\"small\" color={variant === \"solid\" ? theme.surface : main} />\n ) : (\n <View style={{ tintColor: iconColor(pressed) } as ViewStyle}>\n {children}\n </View>\n )\n }\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport {\n TextInput as RNTextInput,\n Text,\n View,\n type TextInputProps as RNTextInputProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextInputStatus = \"default\" | \"error\";\nexport type TextInputSize = \"sm\" | \"md\" | \"lg\";\nexport type TextInputRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type TextInputProps = Omit<RNTextInputProps, \"style\"> & {\n /** Label text displayed above the input */\n label?: string;\n /** Subtitle displayed next to the label */\n subtitle?: string;\n /** Validation status */\n status?: TextInputStatus;\n /** Input size */\n size?: TextInputSize;\n /** Border radius */\n radius?: TextInputRadius;\n /** Icon rendered to the left of the input */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of the input */\n rightIcon?: React.ReactNode;\n /** Helper/error message displayed below the input */\n helperText?: React.ReactNode;\n /** Custom style for the outermost wrapper */\n wrapperStyle?: StyleProp<ViewStyle>;\n /** Custom style for the input container */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const TextInput = forwardRef<RNTextInput, TextInputProps>(function TextInput(\n {\n label,\n subtitle,\n status = \"default\",\n size = \"md\",\n radius = \"xs\",\n leftIcon,\n rightIcon,\n helperText,\n editable = true,\n wrapperStyle,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const [focused, setFocused] = useState(false);\n\n const isDisabled = editable === false;\n\n const heightMap: Record<TextInputSize, number> = {\n sm: theme.inputHeightSm,\n md: theme.inputHeightMd,\n lg: theme.inputHeightLg,\n };\n\n const paddingMap: Record<TextInputSize, number> = {\n sm: 12,\n md: 14,\n lg: 16,\n };\n\n const fontSizeMap: Record<TextInputSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const radiusMap: Record<TextInputRadius, number> = {\n none: 0,\n xxs: theme.radiusXxs,\n xs: theme.radiusXs,\n sm: theme.radiusSm,\n md: theme.radiusMd,\n lg: theme.radiusLg,\n xl: theme.radiusXl,\n full: 9999,\n };\n\n const hasError = status === \"error\" || !!helperText;\n\n const borderColor = hasError\n ? theme.danger\n : focused\n ? theme.primary\n : theme.border;\n\n const containerStyle: ViewStyle = {\n height: heightMap[size],\n paddingHorizontal: paddingMap[size],\n borderRadius: radiusMap[radius],\n borderWidth: theme.borderWidthSm,\n borderColor,\n backgroundColor: isDisabled ? theme.background : theme.surface,\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 8,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const inputId = accessibilityLabel ?? label;\n\n return (\n <View style={[{ gap: 4 }, wrapperStyle]}>\n {/* Label + Subtitle */}\n {label && (\n <View style={{ flexDirection: \"row\", alignItems: \"baseline\", gap: 4 }}>\n <Text style={{ fontSize: 14, fontWeight: \"500\", color: theme.text }}>\n {label}\n </Text>\n {subtitle && (\n <Text style={{ fontSize: 14, color: theme.textMuted }}>{subtitle}</Text>\n )}\n </View>\n )}\n\n {/* Input container */}\n <View style={[containerStyle, style]}>\n {leftIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {leftIcon}\n </View>\n )}\n\n <RNTextInput\n ref={ref}\n editable={editable}\n accessibilityLabel={inputId}\n accessibilityState={{ disabled: isDisabled }}\n aria-invalid={status === \"error\"}\n onFocus={(e) => {\n setFocused(true);\n rest.onFocus?.(e);\n }}\n onBlur={(e) => {\n setFocused(false);\n rest.onBlur?.(e);\n }}\n style={{\n flex: 1,\n fontSize: fontSizeMap[size],\n color: theme.text,\n }}\n placeholderTextColor={theme.textMuted}\n {...rest}\n />\n\n {rightIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {rightIcon}\n </View>\n )}\n </View>\n\n {/* Helper text */}\n {helperText && (\n <Text\n style={{\n fontSize: 12,\n color: hasError ? theme.danger : theme.textMuted,\n }}\n >\n {helperText}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef, useCallback, useState } from \"react\";\nimport {\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type CheckboxSize = \"sm\" | \"md\" | \"lg\";\n\nexport type CheckboxProps = Omit<PressableProps, \"style\" | \"onPress\"> & {\n /** Checkbox size */\n size?: CheckboxSize;\n /** Label text displayed next to the checkbox */\n label?: string;\n /** Controlled checked state */\n checked?: boolean;\n /** Default checked state (uncontrolled) */\n defaultChecked?: boolean;\n /** Indeterminate state (partially checked) */\n indeterminate?: boolean;\n /** Callback fired when the value changes */\n onChange?: (checked: boolean) => void;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst CheckIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size,\n height: size,\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n {/* Simple checkmark drawn with two Views rotated — no SVG dep needed */}\n <View\n style={{\n position: \"absolute\",\n width: size * 0.55,\n height: size * 0.3,\n borderLeftWidth: 2,\n borderBottomWidth: 2,\n borderColor: color,\n transform: [{ rotate: \"-45deg\" }, { translateY: -size * 0.05 }],\n }}\n />\n </View>\n);\n\nconst MinusIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size * 0.7,\n height: 2,\n backgroundColor: color,\n }}\n />\n);\n\nexport const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox(\n {\n size = \"md\",\n label,\n checked: controlledChecked,\n defaultChecked = false,\n indeterminate = false,\n disabled,\n onChange,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n\n const isChecked = isControlled ? controlledChecked : internalChecked;\n const isActive = isChecked || indeterminate;\n\n const handlePress = useCallback(() => {\n if (disabled) return;\n const next = !isChecked;\n if (!isControlled) setInternalChecked(next);\n onChange?.(next);\n }, [disabled, isChecked, isControlled, onChange]);\n\n const boxSizeMap: Record<CheckboxSize, number> = {\n sm: 16,\n md: 20,\n lg: 24,\n };\n\n const iconSizeMap: Record<CheckboxSize, number> = {\n sm: 10,\n md: 12,\n lg: 14,\n };\n\n const fontSizeMap: Record<CheckboxSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const boxSize = boxSizeMap[size];\n const iconSize = iconSizeMap[size];\n\n const boxStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: theme.radiusXxs,\n borderWidth: theme.borderWidthSm,\n borderColor: isActive ? theme.primary : theme.border,\n backgroundColor: isActive ? theme.primary : theme.surface,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n return (\n <Pressable\n ref={ref}\n onPress={handlePress}\n disabled={disabled}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked: indeterminate ? \"mixed\" : isChecked, disabled: !!disabled }}\n accessibilityLabel={accessibilityLabel ?? label}\n style={[{ flexDirection: \"row\", alignItems: \"center\", gap: 8, opacity: disabled ? 0.5 : 1 }, style]}\n {...rest}\n >\n <View style={boxStyle}>\n {indeterminate ? (\n <MinusIcon size={iconSize} color={theme.surface} />\n ) : isChecked ? (\n <CheckIcon size={iconSize} color={theme.surface} />\n ) : null}\n </View>\n\n {label && (\n <Text style={{ fontSize: fontSizeMap[size], color: theme.text }}>\n {label}\n </Text>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport { Image, Text, View, type StyleProp, type ViewStyle, type ViewProps } from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type AvatarVariant = \"circle\" | \"square\";\n\nexport type AvatarProps = Omit<ViewProps, \"style\"> & {\n /** Image source URL */\n src?: string;\n /** Alt text (used as accessibility label and initials fallback) */\n alt?: string;\n /** Fallback initials shown when image is unavailable */\n initials?: string;\n /** Avatar size */\n size?: AvatarSize;\n /** Shape variant */\n variant?: AvatarVariant;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const Avatar = forwardRef<View, AvatarProps>(function Avatar(\n { src, alt = \"\", initials, size = \"md\", variant = \"circle\", style, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n const [imgError, setImgError] = useState(false);\n const showImage = !!src && !imgError;\n\n const fallbackLabel = initials\n ? initials.slice(0, 2).toUpperCase()\n : alt\n ? alt\n .split(\" \")\n .slice(0, 2)\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()\n : \"?\";\n\n const sizePxMap: Record<AvatarSize, number> = {\n sm: 32,\n md: 40,\n lg: 48,\n xl: 64,\n };\n\n const fontSizeMap: Record<AvatarSize, number> = {\n sm: 12,\n md: 14,\n lg: 18,\n xl: 20,\n };\n\n const boxSize = sizePxMap[size];\n const borderRadius = variant === \"circle\" ? boxSize / 2 : theme.radiusSm;\n\n const containerStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius,\n backgroundColor: theme.primary,\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n };\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"image\"\n accessibilityLabel={alt || initials || fallbackLabel}\n style={[containerStyle, style]}\n {...rest}\n >\n {showImage ? (\n <Image\n source={{ uri: src }}\n style={{ width: boxSize, height: boxSize, borderRadius }}\n onError={() => setImgError(true)}\n accessibilityLabel={alt}\n />\n ) : (\n <Text\n style={{\n fontSize: fontSizeMap[size],\n fontWeight: \"500\",\n color: theme.surface,\n }}\n accessibilityElementsHidden\n >\n {fallbackLabel}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator as RNActivityIndicator,\n View,\n type StyleProp,\n type ViewStyle,\n type ViewProps,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type ActivityIndicatorSize = \"sm\" | \"md\" | \"lg\";\nexport type ActivityIndicatorColor = \"primary\" | \"surface\" | \"custom\";\n\nexport type ActivityIndicatorProps = Omit<ViewProps, \"style\"> & {\n /** Spinner size */\n size?: ActivityIndicatorSize;\n /** Color preset — use \"custom\" to provide a raw color via `color` prop */\n colorVariant?: ActivityIndicatorColor;\n /** Raw color value (used when colorVariant is \"custom\") */\n color?: string;\n /** Whether the indicator is visible */\n animating?: boolean;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst sizeMap: Record<ActivityIndicatorSize, number | \"small\" | \"large\"> = {\n sm: \"small\",\n md: \"large\",\n lg: 48,\n};\n\nexport const ActivityIndicator = forwardRef<View, ActivityIndicatorProps>(\n function ActivityIndicator(\n {\n size = \"md\",\n colorVariant = \"primary\",\n color,\n animating = true,\n style,\n accessibilityLabel = \"Carregando\",\n ...rest\n },\n ref,\n ) {\n const theme = useRehagroTheme();\n\n const resolvedColor =\n colorVariant === \"custom\" && color\n ? color\n : colorVariant === \"surface\"\n ? theme.surface\n : theme.primary;\n\n const spinnerSize = sizeMap[size];\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"progressbar\"\n accessibilityLabel={accessibilityLabel}\n accessibilityState={{ busy: animating }}\n style={style}\n {...rest}\n >\n <RNActivityIndicator\n animating={animating}\n size={spinnerSize as \"small\" | \"large\"}\n color={resolvedColor}\n />\n </View>\n );\n },\n);\n","import React, { forwardRef } from \"react\";\nimport {\n Text as RNText,\n type TextProps as RNTextProps,\n type StyleProp,\n type TextStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextVariant =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"body\"\n | \"bodyLg\"\n | \"caption\"\n | \"label\";\n\nexport type TextColor = \"default\" | \"muted\" | \"primary\" | \"danger\" | \"success\" | \"warning\";\n\nexport type TextProps = Omit<RNTextProps, \"style\"> & {\n /** Typographic variant */\n variant?: TextVariant;\n /** Color preset */\n color?: TextColor;\n /** Bold weight */\n bold?: boolean;\n /** Custom style */\n style?: StyleProp<TextStyle>;\n};\n\nconst variantStyles: Record<TextVariant, TextStyle> = {\n h1: { fontSize: 32, lineHeight: 40, fontWeight: \"700\" },\n h2: { fontSize: 24, lineHeight: 32, fontWeight: \"700\" },\n h3: { fontSize: 20, lineHeight: 28, fontWeight: \"600\" },\n h4: { fontSize: 18, lineHeight: 26, fontWeight: \"600\" },\n bodyLg: { fontSize: 16, lineHeight: 24, fontWeight: \"400\" },\n body: { fontSize: 14, lineHeight: 20, fontWeight: \"400\" },\n label: { fontSize: 14, lineHeight: 20, fontWeight: \"500\" },\n caption: { fontSize: 12, lineHeight: 16, fontWeight: \"400\" },\n};\n\nexport const Text = forwardRef<RNText, TextProps>(function Text(\n { variant = \"body\", color = \"default\", bold = false, style, children, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n\n const colorMap: Record<TextColor, string> = {\n default: theme.text,\n muted: theme.textMuted,\n primary: theme.primary,\n danger: theme.danger,\n success: theme.success,\n warning: theme.warning,\n };\n\n const resolvedStyle: TextStyle = {\n ...variantStyles[variant],\n color: colorMap[color],\n ...(bold ? { fontWeight: \"700\" } : {}),\n };\n\n return (\n <RNText ref={ref} style={[resolvedStyle, style]} {...rest}>\n {children}\n </RNText>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type TextStyle,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\nimport type { PresetColor } from \"../../types/colors.types\";\n\nexport type TagColor = PresetColor | (string & {});\nexport type TagSize = \"sm\" | \"md\" | \"lg\";\n\nexport type TagProps = Omit<PressableProps, \"style\"> & {\n /** Tag color — preset name or any CSS color (e.g., \"#c3c3c3\", \"red\") */\n color?: TagColor;\n /** Tag size */\n size?: TagSize;\n /** Active (selected) state */\n active?: boolean;\n /** Disabled state */\n disabled?: boolean;\n /** Tag label text */\n title: string;\n /** Optional icon rendered on the left side */\n leftIcon?: React.ReactNode;\n /** Optional icon rendered on the right side */\n rightIcon?: React.ReactNode;\n /** Custom style for the outer container */\n style?: StyleProp<ViewStyle>;\n};\n\nconst PRESET_COLORS = new Set<string>([\n \"primary\",\n \"secondary\",\n \"danger\",\n \"warning\",\n \"success\",\n \"info\",\n]);\n\nconst isPresetColor = (c: string): c is PresetColor => PRESET_COLORS.has(c);\n\n/** Appends a two-digit hex alpha to a 6-digit hex color string. */\nfunction hexAlpha(hex: string, alpha: string): string {\n return `${hex}${alpha}`;\n}\n\nexport const Tag = forwardRef<View, TagProps>(function Tag(\n {\n color = \"primary\",\n size = \"md\",\n active = false,\n disabled = false,\n title,\n leftIcon,\n rightIcon,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const clickable = !!rest.onPress && !disabled;\n\n const presetTokens: Record<PresetColor, { main: string; hover: string }> = {\n primary: { main: theme.primary, hover: theme.primaryHover },\n secondary: { main: theme.secondary, hover: theme.secondaryHover },\n danger: { main: theme.danger, hover: theme.dangerHover },\n warning: { main: theme.warning, hover: theme.warning },\n success: { main: theme.success, hover: theme.success },\n info: { main: theme.info, hover: theme.infoHover },\n };\n\n const preset = isPresetColor(color);\n const mainColor = preset ? presetTokens[color as PresetColor].main : color;\n const hoverColor = preset ? presetTokens[color as PresetColor].hover : color;\n\n const sizeStyleMap: Record<TagSize, ViewStyle> = {\n sm: { paddingHorizontal: 8, paddingVertical: 2, gap: 4 },\n md: { paddingHorizontal: 10, paddingVertical: 4, gap: 6 },\n lg: { paddingHorizontal: 12, paddingVertical: 6, gap: 6 },\n };\n\n const fontSizeMap: Record<TagSize, number> = {\n sm: 11,\n md: 12,\n lg: 13,\n };\n\n const baseStyle: ViewStyle = {\n flexDirection: \"row\",\n alignItems: \"center\",\n alignSelf: \"flex-start\",\n borderRadius: 9999,\n borderWidth: 1,\n opacity: disabled ? 0.5 : 1,\n ...sizeStyleMap[size],\n };\n\n function containerStyle(pressed: boolean): ViewStyle {\n const resolvedColor = pressed && clickable ? hoverColor : mainColor;\n\n if (active) {\n return {\n backgroundColor: resolvedColor,\n borderColor: resolvedColor,\n };\n }\n\n // inactive\n const bg = pressed && clickable\n ? hexAlpha(mainColor, \"33\") // ~20% on press\n : hexAlpha(mainColor, \"1a\"); // ~10% resting\n const border = hexAlpha(mainColor, \"4d\"); // ~30%\n\n return { backgroundColor: bg, borderColor: border };\n }\n\n function resolvedTextColor(pressed: boolean): string {\n if (active) return theme.surface;\n return pressed && clickable ? hoverColor : mainColor;\n }\n\n const textStyle = (pressed: boolean): TextStyle => ({\n color: resolvedTextColor(pressed),\n fontSize: fontSizeMap[size],\n fontWeight: \"500\",\n });\n\n if (!clickable) {\n return (\n <View\n ref={ref}\n accessibilityRole=\"text\"\n accessibilityLabel={accessibilityLabel ?? title}\n accessibilityState={{ disabled }}\n style={[baseStyle, containerStyle(false), style]}\n >\n {leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n <Text style={textStyle(false)}>{title}</Text>\n {rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </View>\n );\n }\n\n return (\n <Pressable\n ref={ref}\n disabled={disabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled, selected: active }}\n accessibilityLabel={accessibilityLabel ?? title}\n style={({ pressed }) => [baseStyle, containerStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) => (\n <>\n {leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n <Text style={textStyle(pressed)}>{title}</Text>\n {rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </>\n )}\n </Pressable>\n );\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rehagro/ui",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "author": "Rehagro's Development Team",
5
5
  "description": "Rehagro Design System - React component library",
6
6
  "main": "./dist/index.cjs",