@rehagro/ui 1.0.13 → 1.0.15

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.
@@ -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","../src/components/Card/Card.native.tsx"],"names":["Button","jsx","PRESET_COLORS","isPresetColor","forwardRef","IconButton","Pressable","ActivityIndicator","View","TextInput","paddingMap","radiusMap","jsxs","Text","RNTextInput","Checkbox","useState","Avatar","useMemo","RNActivityIndicator","RNText","Tag","Fragment","Card","variantStyles","CardHeader","CardContent","CardFooter"],"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 // Typography — must be loaded by the app (e.g. via expo-font / useFonts)\n // Inter for body/labels, Sora for headings/display\n fontFamilyBody?: string;\n fontFamilyDisplay?: string;\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 fontFamilyBody: \"\",\n fontFamilyDisplay: \"\",\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 TextStyle,\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 /** Custom style applied to the inner text label (string children only) */\n labelStyle?: StyleProp<TextStyle>;\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 labelStyle,\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\", ...(theme.fontFamilyDisplay ? { fontFamily: theme.fontFamilyDisplay } : {}) }, labelStyle]}\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={[\n { flexDirection: \"row\", alignItems: \"center\", gap: 8, opacity: disabled ? 0.5 : 1 },\n style,\n ]}\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\n style={{\n fontSize: fontSizeMap[size],\n color: theme.text,\n ...(theme.fontFamilyBody ? { fontFamily: theme.fontFamilyBody } : {}),\n }}\n >\n {label}\n </Text>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef, useState, useMemo } 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\n// Paleta de cores para avatares\nconst AVATAR_COLORS = [\n { bg: \"#FBF1E6\", text: \"#D6822D\" }, // Laranja\n { bg: \"#EDF3FA\", text: \"#538CC6\" }, // Azul\n { bg: \"#F3E5F5\", text: \"#9C27B0\" }, // Roxo\n { bg: \"#E8F5E9\", text: \"#4CAF50\" }, // Verde\n { bg: \"#FFF3E0\", text: \"#FF9800\" }, // Amarelo\n { bg: \"#FFEBEE\", text: \"#F44336\" }, // Vermelho\n { bg: \"#E3F2FD\", text: \"#2196F3\" }, // Azul claro\n { bg: \"#F3E5F5\", text: \"#673AB7\" }, // Violeta\n { bg: \"#E0F2F1\", text: \"#009688\" }, // Teal\n { bg: \"#FBE9E7\", text: \"#FF5722\" }, // Deep Orange\n];\n\n/**\n * Gera cores de avatar baseadas em uma string (nome)\n * Usa hash simples para garantir consistência\n */\nfunction getAvatarColors(name: string): { bg: string; text: string } {\n const hash = name.split(\"\").reduce((acc, char) => acc + char.charCodeAt(0), 0);\n const index = hash % AVATAR_COLORS.length;\n return AVATAR_COLORS[index];\n}\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 /** Generate background and text color automatically based on name/alt */\n colorFromName?: boolean;\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\", colorFromName = false, style, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n const [imgError, setImgError] = useState(false);\n const showImage = !!src && !imgError;\n\n // Gera cores baseadas no nome se colorFromName estiver ativo\n const avatarColors = useMemo(() => {\n if (!colorFromName) return null;\n const name = initials || alt || \"\";\n return name ? getAvatarColors(name) : null;\n }, [colorFromName, initials, alt]);\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: avatarColors?.bg ?? 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: avatarColors?.text ?? 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 isDisplayVariant = variant === \"h1\" || variant === \"h2\" || variant === \"h3\" || variant === \"h4\";\n const fontFamily = isDisplayVariant ? theme.fontFamilyDisplay : theme.fontFamilyBody;\n\n const resolvedStyle: TextStyle = {\n ...variantStyles[variant],\n color: colorMap[color],\n ...(fontFamily ? { fontFamily } : {}),\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","import React, { forwardRef } from \"react\";\nimport {\n Pressable,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type CardVariant = \"elevated\" | \"outlined\" | \"filled\";\nexport type CardRadius = \"none\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type CardPadding = \"none\" | \"sm\" | \"md\" | \"lg\";\n\nexport type CardProps = Omit<PressableProps, \"style\"> & {\n /** Visual style variant */\n variant?: CardVariant;\n /** Border radius */\n radius?: CardRadius;\n /** Internal padding */\n padding?: CardPadding;\n /** Makes the card clickable with press effects */\n clickable?: boolean;\n /** Disabled state (only applies when clickable) */\n disabled?: boolean;\n /** Children content */\n children?: React.ReactNode;\n /** Custom style */\n style?: StyleProp<ViewStyle>;\n};\n\nconst radiusMap: Record<CardRadius, number> = {\n none: 0,\n xs: 2,\n sm: 4,\n md: 8,\n lg: 12,\n xl: 16,\n};\n\nconst paddingMap: Record<CardPadding, number> = {\n none: 0,\n sm: 12,\n md: 16,\n lg: 24,\n};\n\nexport const Card = forwardRef<View, CardProps>(function Card(\n {\n variant = \"outlined\",\n radius = \"sm\",\n padding = \"md\",\n clickable = false,\n disabled = false,\n children,\n style,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n\n const baseStyle: ViewStyle = {\n borderRadius: radiusMap[radius],\n padding: paddingMap[padding],\n opacity: disabled ? 0.5 : 1,\n };\n\n const variantStyles: Record<CardVariant, ViewStyle> = {\n elevated: {\n backgroundColor: theme.surface,\n shadowColor: \"#000\",\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.1,\n shadowRadius: 8,\n elevation: 4,\n },\n outlined: {\n backgroundColor: theme.surface,\n borderWidth: 1,\n borderColor: theme.border,\n },\n filled: {\n backgroundColor: theme.background,\n },\n };\n\n const containerStyle = (pressed: boolean): ViewStyle[] => {\n const styles: ViewStyle[] = [baseStyle, variantStyles[variant]];\n\n if (clickable && pressed) {\n styles.push({\n opacity: 0.8,\n transform: [{ scale: 0.99 }],\n });\n }\n\n return styles;\n };\n\n if (!clickable) {\n return (\n <View\n ref={ref}\n style={[baseStyle, variantStyles[variant], style]}\n accessibilityRole=\"none\"\n >\n {children}\n </View>\n );\n }\n\n return (\n <Pressable\n ref={ref}\n disabled={disabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled }}\n style={({ pressed }) => [containerStyle(pressed), style]}\n {...rest}\n >\n {children}\n </Pressable>\n );\n});\n\nexport type CardHeaderProps = {\n children?: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n};\n\nexport const CardHeader = forwardRef<View, CardHeaderProps>(function CardHeader(\n { children, style },\n ref,\n) {\n return (\n <View\n ref={ref}\n style={[\n {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 16,\n },\n style,\n ]}\n >\n {children}\n </View>\n );\n});\n\nexport type CardContentProps = {\n children?: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n};\n\nexport const CardContent = forwardRef<View, CardContentProps>(function CardContent(\n { children, style },\n ref,\n) {\n return (\n <View ref={ref} style={[{ marginTop: 8 }, style]}>\n {children}\n </View>\n );\n});\n\nexport type CardFooterProps = {\n children?: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n};\n\nexport const CardFooter = forwardRef<View, CardFooterProps>(function CardFooter(\n { children, style },\n ref,\n) {\n const theme = useRehagroTheme();\n\n return (\n <View\n ref={ref}\n style={[\n {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n gap: 8,\n marginTop: 16,\n paddingTop: 16,\n borderTopWidth: 1,\n borderTopColor: theme.border,\n },\n style,\n ]}\n >\n {children}\n </View>\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","../src/components/Card/Card.native.tsx"],"names":["Button","jsx","PRESET_COLORS","isPresetColor","forwardRef","IconButton","Pressable","ActivityIndicator","View","TextInput","paddingMap","radiusMap","jsxs","Text","RNTextInput","Checkbox","useState","Avatar","useMemo","RNActivityIndicator","RNText","Tag","Fragment","Card","CardHeader","CardContent","CardFooter"],"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 // Typography — must be loaded by the app (e.g. via expo-font / useFonts)\n // Inter for body/labels, Sora for headings/display\n fontFamilyBody?: string;\n fontFamilyDisplay?: string;\n\n // Text size scale (font size in dp)\n fontSizeXs?: number;\n fontSizeSm?: number;\n fontSizeMd?: number;\n fontSizeLg?: number;\n fontSizeXl?: number;\n fontSizeXxl?: number;\n fontSizeXxl2?: number;\n\n // Text line height scale (in dp)\n lineHeightXs?: number;\n lineHeightSm?: number;\n lineHeightMd?: number;\n lineHeightLg?: number;\n lineHeightXl?: number;\n lineHeightXxl?: number;\n lineHeightXxl2?: 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 fontFamilyBody: \"\",\n fontFamilyDisplay: \"\",\n\n fontSizeXs: 12,\n fontSizeSm: 14,\n fontSizeMd: 16,\n fontSizeLg: 18,\n fontSizeXl: 20,\n fontSizeXxl: 24,\n fontSizeXxl2: 32,\n\n lineHeightXs: 16,\n lineHeightSm: 20,\n lineHeightMd: 24,\n lineHeightLg: 26,\n lineHeightXl: 28,\n lineHeightXxl: 32,\n lineHeightXxl2: 40,\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 TextStyle,\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 /** Custom style applied to the inner text label (string children only) */\n labelStyle?: StyleProp<TextStyle>;\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 labelStyle,\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\", ...(theme.fontFamilyDisplay ? { fontFamily: theme.fontFamilyDisplay } : {}) }, labelStyle]}\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={[\n { flexDirection: \"row\", alignItems: \"center\", gap: 8, opacity: disabled ? 0.5 : 1 },\n style,\n ]}\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\n style={{\n fontSize: fontSizeMap[size],\n color: theme.text,\n ...(theme.fontFamilyBody ? { fontFamily: theme.fontFamilyBody } : {}),\n }}\n >\n {label}\n </Text>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef, useState, useMemo } 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\n// Paleta de cores para avatares\nconst AVATAR_COLORS = [\n { bg: \"#FBF1E6\", text: \"#D6822D\" }, // Laranja\n { bg: \"#EDF3FA\", text: \"#538CC6\" }, // Azul\n { bg: \"#F3E5F5\", text: \"#9C27B0\" }, // Roxo\n { bg: \"#E8F5E9\", text: \"#4CAF50\" }, // Verde\n { bg: \"#FFF3E0\", text: \"#FF9800\" }, // Amarelo\n { bg: \"#FFEBEE\", text: \"#F44336\" }, // Vermelho\n { bg: \"#E3F2FD\", text: \"#2196F3\" }, // Azul claro\n { bg: \"#F3E5F5\", text: \"#673AB7\" }, // Violeta\n { bg: \"#E0F2F1\", text: \"#009688\" }, // Teal\n { bg: \"#FBE9E7\", text: \"#FF5722\" }, // Deep Orange\n];\n\n/**\n * Gera cores de avatar baseadas em uma string (nome)\n * Usa hash simples para garantir consistência\n */\nfunction getAvatarColors(name: string): { bg: string; text: string } {\n const hash = name.split(\"\").reduce((acc, char) => acc + char.charCodeAt(0), 0);\n const index = hash % AVATAR_COLORS.length;\n return AVATAR_COLORS[index];\n}\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 /** Generate background and text color automatically based on name/alt */\n colorFromName?: boolean;\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\", colorFromName = false, style, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n const [imgError, setImgError] = useState(false);\n const showImage = !!src && !imgError;\n\n // Gera cores baseadas no nome se colorFromName estiver ativo\n const avatarColors = useMemo(() => {\n if (!colorFromName) return null;\n const name = initials || alt || \"\";\n return name ? getAvatarColors(name) : null;\n }, [colorFromName, initials, alt]);\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: avatarColors?.bg ?? 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: avatarColors?.text ?? 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 { 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 TextSize = \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"xxl\" | \"xxl2\";\n\nexport type TextColor = \"default\" | \"muted\" | \"primary\" | \"danger\" | \"success\" | \"warning\";\n\nexport type TextProps = Omit<RNTextProps, \"style\"> & {\n /** Font size scale */\n size?: TextSize;\n /** Color preset */\n color?: TextColor;\n /** Bold weight */\n bold?: boolean;\n /** Custom style */\n style?: StyleProp<TextStyle>;\n};\n\nconst sizeWeights: Record<TextSize, TextStyle[\"fontWeight\"]> = {\n xxl2: \"700\",\n xxl: \"700\",\n xl: \"600\",\n lg: \"600\",\n md: \"400\",\n sm: \"400\",\n xs: \"400\",\n};\n\nexport const Text = forwardRef<RNText, TextProps>(function Text(\n { size = \"sm\", 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 isDisplaySize = size === \"lg\" || size === \"xl\" || size === \"xxl\" || size === \"xxl2\";\n const fontFamily = isDisplaySize ? theme.fontFamilyDisplay : theme.fontFamilyBody;\n\n const fontSizeMap: Record<TextSize, number> = {\n xs: theme.fontSizeXs,\n sm: theme.fontSizeSm,\n md: theme.fontSizeMd,\n lg: theme.fontSizeLg,\n xl: theme.fontSizeXl,\n xxl: theme.fontSizeXxl,\n xxl2: theme.fontSizeXxl2,\n };\n\n const lineHeightMap: Record<TextSize, number> = {\n xs: theme.lineHeightXs,\n sm: theme.lineHeightSm,\n md: theme.lineHeightMd,\n lg: theme.lineHeightLg,\n xl: theme.lineHeightXl,\n xxl: theme.lineHeightXxl,\n xxl2: theme.lineHeightXxl2,\n };\n\n const resolvedStyle: TextStyle = {\n fontSize: fontSizeMap[size],\n lineHeight: lineHeightMap[size],\n fontWeight: sizeWeights[size],\n color: colorMap[color],\n ...(fontFamily ? { fontFamily } : {}),\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","import React, { forwardRef } from \"react\";\nimport {\n Pressable,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type CardVariant = \"elevated\" | \"outlined\" | \"filled\";\nexport type CardRadius = \"none\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type CardPadding = \"none\" | \"sm\" | \"md\" | \"lg\";\n\nexport type CardProps = Omit<PressableProps, \"style\"> & {\n /** Visual style variant */\n variant?: CardVariant;\n /** Border radius */\n radius?: CardRadius;\n /** Internal padding */\n padding?: CardPadding;\n /** Makes the card clickable with press effects */\n clickable?: boolean;\n /** Disabled state (only applies when clickable) */\n disabled?: boolean;\n /** Children content */\n children?: React.ReactNode;\n /** Custom style */\n style?: StyleProp<ViewStyle>;\n};\n\nconst radiusMap: Record<CardRadius, number> = {\n none: 0,\n xs: 2,\n sm: 4,\n md: 8,\n lg: 12,\n xl: 16,\n};\n\nconst paddingMap: Record<CardPadding, number> = {\n none: 0,\n sm: 12,\n md: 16,\n lg: 24,\n};\n\nexport const Card = forwardRef<View, CardProps>(function Card(\n {\n variant = \"outlined\",\n radius = \"sm\",\n padding = \"md\",\n clickable = false,\n disabled = false,\n children,\n style,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n\n const baseStyle: ViewStyle = {\n borderRadius: radiusMap[radius],\n padding: paddingMap[padding],\n opacity: disabled ? 0.5 : 1,\n };\n\n const variantStyles: Record<CardVariant, ViewStyle> = {\n elevated: {\n backgroundColor: theme.surface,\n shadowColor: \"#000\",\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.1,\n shadowRadius: 8,\n elevation: 4,\n },\n outlined: {\n backgroundColor: theme.surface,\n borderWidth: 1,\n borderColor: theme.border,\n },\n filled: {\n backgroundColor: theme.background,\n },\n };\n\n const containerStyle = (pressed: boolean): ViewStyle[] => {\n const styles: ViewStyle[] = [baseStyle, variantStyles[variant]];\n\n if (clickable && pressed) {\n styles.push({\n opacity: 0.8,\n transform: [{ scale: 0.99 }],\n });\n }\n\n return styles;\n };\n\n if (!clickable) {\n return (\n <View\n ref={ref}\n style={[baseStyle, variantStyles[variant], style]}\n accessibilityRole=\"none\"\n >\n {children}\n </View>\n );\n }\n\n return (\n <Pressable\n ref={ref}\n disabled={disabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled }}\n style={({ pressed }) => [containerStyle(pressed), style]}\n {...rest}\n >\n {children}\n </Pressable>\n );\n});\n\nexport type CardHeaderProps = {\n children?: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n};\n\nexport const CardHeader = forwardRef<View, CardHeaderProps>(function CardHeader(\n { children, style },\n ref,\n) {\n return (\n <View\n ref={ref}\n style={[\n {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n gap: 16,\n },\n style,\n ]}\n >\n {children}\n </View>\n );\n});\n\nexport type CardContentProps = {\n children?: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n};\n\nexport const CardContent = forwardRef<View, CardContentProps>(function CardContent(\n { children, style },\n ref,\n) {\n return (\n <View ref={ref} style={[{ marginTop: 8 }, style]}>\n {children}\n </View>\n );\n});\n\nexport type CardFooterProps = {\n children?: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n};\n\nexport const CardFooter = forwardRef<View, CardFooterProps>(function CardFooter(\n { children, style },\n ref,\n) {\n const theme = useRehagroTheme();\n\n return (\n <View\n ref={ref}\n style={[\n {\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n gap: 8,\n marginTop: 16,\n paddingTop: 16,\n borderTopWidth: 1,\n borderTopColor: theme.border,\n },\n style,\n ]}\n >\n {children}\n </View>\n );\n});\n"]}
package/dist/styles.css CHANGED
@@ -1,3 +1,3 @@
1
1
  :root{--rh-primary:34 120 90;--rh-primary-hover:28 100 75;--rh-secondary:55 65 81;--rh-secondary-hover:45 55 72;--rh-danger:211 47 47;--rh-danger-hover:183 28 28;--rh-warning:237 137 54;--rh-warning-hover:210 110 20;--rh-success:34 150 90;--rh-success-hover:28 125 75;--rh-info:2 132 199;--rh-info-hover:3 105 161;--rh-text:17 24 39;--rh-text-muted:107 114 128;--rh-surface:255 255 255;--rh-background:249 250 251;--rh-border:209 213 219;--rh-ring:34 120 90;--rh-space-1:4px;--rh-space-2:8px;--rh-space-3:12px;--rh-space-4:16px;--rh-space-5:20px;--rh-space-6:24px;--rh-radius-xxs:4px;--rh-radius-xs:8px;--rh-radius-sm:12px;--rh-radius-md:16px;--rh-radius-lg:24px;--rh-radius-xl:32px;--rh-radius-full:9999px;--rh-border-width-sm:1px;--rh-border-width-md:2px;--rh-border-width-lg:3px;--rh-input-height-sm:32px;--rh-input-height-md:40px;--rh-input-height-lg:48px;--rh-input-px-sm:10px;--rh-input-px-md:14px;--rh-input-px-lg:16px;--rh-font-family:"Inter",system-ui,-apple-system,sans-serif;--rh-font-family-display:"Sora",system-ui,-apple-system,sans-serif;--rh-font-size-xs:0.75rem;--rh-font-size-sm:0.875rem;--rh-font-size-md:1rem;--rh-font-size-lg:1.125rem;--rh-transition-fast:150ms ease;--rh-transition-normal:200ms ease;--rh-shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--rh-shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}.rh-root *,.rh-root :after,.rh-root :before{box-sizing:border-box}.rh-root button{cursor:pointer}.rh-root button,.rh-root input,.rh-root select,.rh-root textarea{font-family:inherit}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }
2
2
 
3
- /*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.rh-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.rh-pointer-events-none{pointer-events:none}.rh-pointer-events-auto{pointer-events:auto}.rh-fixed{position:fixed}.rh-absolute{position:absolute}.rh-relative{position:relative}.rh-sticky{position:sticky}.rh-bottom-0{bottom:0}.rh-bottom-3{bottom:.75rem}.rh-bottom-4{bottom:1rem}.rh-bottom-full{bottom:100%}.rh-left-0{left:0}.rh-left-1\/2{left:50%}.rh-left-4{left:1rem}.rh-left-full{left:100%}.rh-right-0{right:0}.rh-right-4{right:1rem}.rh-right-full{right:100%}.rh-top-0{top:0}.rh-top-1\/2{top:50%}.rh-top-3{top:.75rem}.rh-top-4{top:1rem}.rh-top-full{top:100%}.rh-z-10{z-index:10}.rh-z-50{z-index:50}.rh-z-\[9999\]{z-index:9999}.rh-col-span-1{grid-column:span 1/span 1}.rh-col-span-2{grid-column:span 2/span 2}.rh-col-span-3{grid-column:span 3/span 3}.rh-col-span-4{grid-column:span 4/span 4}.rh-mx-auto{margin-left:auto;margin-right:auto}.rh-mb-2{margin-bottom:.5rem}.rh-mb-4{margin-bottom:1rem}.rh-mb-6{margin-bottom:1.5rem}.rh-ml-1{margin-left:.25rem}.rh-ml-2{margin-left:.5rem}.rh-mr-2{margin-right:.5rem}.rh-mt-0\.5{margin-top:.125rem}.rh-mt-1{margin-top:.25rem}.rh-mt-2{margin-top:.5rem}.rh-mt-4{margin-top:1rem}.rh-inline-block{display:inline-block}.rh-flex{display:flex}.rh-inline-flex{display:inline-flex}.rh-grid{display:grid}.rh-h-1{height:.25rem}.rh-h-10{height:2.5rem}.rh-h-12{height:3rem}.rh-h-16{height:4rem}.rh-h-2\.5{height:.625rem}.rh-h-3{height:.75rem}.rh-h-3\.5{height:.875rem}.rh-h-4{height:1rem}.rh-h-5{height:1.25rem}.rh-h-6{height:1.5rem}.rh-h-8{height:2rem}.rh-h-9{height:2.25rem}.rh-h-\[12px\]{height:12px}.rh-h-\[28px\]{height:28px}.rh-h-\[44px\]{height:44px}.rh-h-\[8px\]{height:8px}.rh-h-full{height:100%}.rh-h-input-lg{height:var(--rh-input-height-lg,48px)}.rh-h-input-md{height:var(--rh-input-height-md,40px)}.rh-h-input-sm{height:var(--rh-input-height-sm,32px)}.rh-max-h-60{max-height:15rem}.rh-max-h-\[200px\]{max-height:200px}.rh-min-h-\[32px\]{min-height:32px}.rh-min-h-\[36px\]{min-height:36px}.rh-min-h-\[40px\]{min-height:40px}.rh-min-h-\[48px\]{min-height:48px}.rh-min-h-\[52px\]{min-height:52px}.rh-min-h-\[60px\]{min-height:60px}.rh-min-h-screen{min-height:100vh}.rh-w-10{width:2.5rem}.rh-w-12{width:3rem}.rh-w-16{width:4rem}.rh-w-2\.5{width:.625rem}.rh-w-3{width:.75rem}.rh-w-3\.5{width:.875rem}.rh-w-4{width:1rem}.rh-w-5{width:1.25rem}.rh-w-6{width:1.5rem}.rh-w-8{width:2rem}.rh-w-80{width:20rem}.rh-w-\[12px\]{width:12px}.rh-w-\[180px\]{width:180px}.rh-w-\[8px\]{width:8px}.rh-w-full{width:100%}.rh-w-max{width:-moz-max-content;width:max-content}.rh-min-w-0{min-width:0}.rh-min-w-\[40px\]{min-width:40px}.rh-max-w-\[1440px\]{max-width:1440px}.rh-max-w-xs{max-width:20rem}.rh-flex-1{flex:1 1 0%}.rh-flex-shrink-0,.rh-shrink-0{flex-shrink:0}.rh-border-collapse{border-collapse:collapse}.rh--translate-x-1\/2{--tw-translate-x:-50%}.rh--translate-x-1\/2,.rh--translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rh--translate-y-1\/2{--tw-translate-y:-50%}.rh-translate-x-1\/2{--tw-translate-x:50%}.rh-translate-x-1\/2,.rh-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rh-translate-y-1\/2{--tw-translate-y:50%}.rh-rotate-180{--tw-rotate:180deg}.rh-rotate-180,.rh-rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rh-rotate-45{--tw-rotate:45deg}@keyframes rh-spin{to{transform:rotate(1turn)}}.rh-animate-spin{animation:rh-spin 1s linear infinite}@keyframes rh-toast-in-bottom{0%{opacity:0;transform:translateY(110%)}to{opacity:1;transform:translateY(0)}}.rh-animate-toast-in-bottom{animation:rh-toast-in-bottom .25s ease forwards}@keyframes rh-toast-in-left{0%{opacity:0;transform:translateX(-110%)}to{opacity:1;transform:translateX(0)}}.rh-animate-toast-in-left{animation:rh-toast-in-left .25s ease forwards}@keyframes rh-toast-in-right{0%{opacity:0;transform:translateX(110%)}to{opacity:1;transform:translateX(0)}}.rh-animate-toast-in-right{animation:rh-toast-in-right .25s ease forwards}@keyframes rh-toast-in-top{0%{opacity:0;transform:translateY(-110%)}to{opacity:1;transform:translateY(0)}}.rh-animate-toast-in-top{animation:rh-toast-in-top .25s ease forwards}@keyframes rh-toast-out-bottom{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(110%)}}.rh-animate-toast-out-bottom{animation:rh-toast-out-bottom .2s ease forwards}@keyframes rh-toast-out-left{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-110%)}}.rh-animate-toast-out-left{animation:rh-toast-out-left .2s ease forwards}@keyframes rh-toast-out-right{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(110%)}}.rh-animate-toast-out-right{animation:rh-toast-out-right .2s ease forwards}@keyframes rh-toast-out-top{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-110%)}}.rh-animate-toast-out-top{animation:rh-toast-out-top .2s ease forwards}.rh-cursor-not-allowed{cursor:not-allowed}.rh-cursor-pointer{cursor:pointer}.rh-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rh-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.rh-grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.rh-grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.rh-grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.rh-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rh-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.rh-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.rh-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.rh-grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.rh-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.rh-grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.rh-grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.rh-flex-row{flex-direction:row}.rh-flex-col{flex-direction:column}.rh-flex-wrap{flex-wrap:wrap}.rh-items-start{align-items:flex-start}.rh-items-end{align-items:flex-end}.rh-items-center{align-items:center}.rh-items-baseline{align-items:baseline}.rh-justify-end{justify-content:flex-end}.rh-justify-center{justify-content:center}.rh-justify-between{justify-content:space-between}.rh-gap-0\.5{gap:.125rem}.rh-gap-1{gap:.25rem}.rh-gap-1\.5{gap:.375rem}.rh-gap-2{gap:.5rem}.rh-gap-3{gap:.75rem}.rh-gap-4{gap:1rem}.rh-gap-6{gap:1.5rem}.rh-gap-8{gap:2rem}.rh-gap-\[0\.5rem\]{gap:.5rem}.rh-gap-grid-gutter-mobile{gap:16px}.rh-overflow-auto{overflow:auto}.rh-overflow-hidden{overflow:hidden}.rh-overflow-x-auto{overflow-x:auto}.rh-overflow-y-auto{overflow-y:auto}.rh-truncate{overflow:hidden;text-overflow:ellipsis}.rh-truncate,.rh-whitespace-nowrap{white-space:nowrap}.rh-rounded{border-radius:.25rem}.rh-rounded-\[40px\]{border-radius:40px}.rh-rounded-\[4px\]{border-radius:4px}.rh-rounded-\[8px\]{border-radius:8px}.rh-rounded-full{border-radius:9999px}.rh-rounded-lg{border-radius:var(--rh-radius-lg,24px)}.rh-rounded-md{border-radius:var(--rh-radius-md,16px)}.rh-rounded-none{border-radius:0}.rh-rounded-sm{border-radius:var(--rh-radius-sm,12px)}.rh-rounded-xl{border-radius:var(--rh-radius-xl,32px)}.rh-rounded-xs{border-radius:var(--rh-radius-xs,8px)}.rh-rounded-xxs{border-radius:var(--rh-radius-xxs,4px)}.rh-border{border-width:1px}.rh-border-0{border-width:0}.rh-border-2{border-width:2px}.rh-border-b{border-bottom-width:1px}.rh-border-r{border-right-width:1px}.rh-border-t{border-top-width:1px}.rh-border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.rh-border-border{--tw-border-opacity:1;border-color:rgb(var(--rh-border)/var(--tw-border-opacity,1))}.rh-border-border\/50{border-color:rgb(var(--rh-border)/.5)}.rh-border-danger{--tw-border-opacity:1;border-color:rgb(var(--rh-danger)/var(--tw-border-opacity,1))}.rh-border-danger\/30{border-color:rgb(var(--rh-danger)/.3)}.rh-border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.rh-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.rh-border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.rh-border-info{--tw-border-opacity:1;border-color:rgb(var(--rh-info)/var(--tw-border-opacity,1))}.rh-border-info\/30{border-color:rgb(var(--rh-info)/.3)}.rh-border-primary{--tw-border-opacity:1;border-color:rgb(var(--rh-primary)/var(--tw-border-opacity,1))}.rh-border-primary\/20{border-color:rgb(var(--rh-primary)/.2)}.rh-border-primary\/30{border-color:rgb(var(--rh-primary)/.3)}.rh-border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.rh-border-secondary{--tw-border-opacity:1;border-color:rgb(var(--rh-secondary)/var(--tw-border-opacity,1))}.rh-border-secondary\/30{border-color:rgb(var(--rh-secondary)/.3)}.rh-border-success{--tw-border-opacity:1;border-color:rgb(var(--rh-success)/var(--tw-border-opacity,1))}.rh-border-success\/30{border-color:rgb(var(--rh-success)/.3)}.rh-border-transparent{border-color:transparent}.rh-border-warning{--tw-border-opacity:1;border-color:rgb(var(--rh-warning)/var(--tw-border-opacity,1))}.rh-border-warning\/30{border-color:rgb(var(--rh-warning)/.3)}.rh-border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138/var(--tw-border-opacity,1))}.rh-bg-\[rgb\(var\(--rh-danger\)\)\]{background-color:rgb(var(--rh-danger))}.rh-bg-\[rgb\(var\(--rh-success\)\)\]{background-color:rgb(var(--rh-success))}.rh-bg-background{--tw-bg-opacity:1;background-color:rgb(var(--rh-background)/var(--tw-bg-opacity,1))}.rh-bg-background\/50{background-color:rgb(var(--rh-background)/.5)}.rh-bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.rh-bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.rh-bg-danger{--tw-bg-opacity:1;background-color:rgb(var(--rh-danger)/var(--tw-bg-opacity,1))}.rh-bg-danger\/10{background-color:rgb(var(--rh-danger)/.1)}.rh-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.rh-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.rh-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.rh-bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.rh-bg-info{--tw-bg-opacity:1;background-color:rgb(var(--rh-info)/var(--tw-bg-opacity,1))}.rh-bg-info\/10{background-color:rgb(var(--rh-info)/.1)}.rh-bg-primary{--tw-bg-opacity:1;background-color:rgb(var(--rh-primary)/var(--tw-bg-opacity,1))}.rh-bg-primary\/10{background-color:rgb(var(--rh-primary)/.1)}.rh-bg-primary\/5{background-color:rgb(var(--rh-primary)/.05)}.rh-bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.rh-bg-secondary{--tw-bg-opacity:1;background-color:rgb(var(--rh-secondary)/var(--tw-bg-opacity,1))}.rh-bg-secondary\/10{background-color:rgb(var(--rh-secondary)/.1)}.rh-bg-success{--tw-bg-opacity:1;background-color:rgb(var(--rh-success)/var(--tw-bg-opacity,1))}.rh-bg-success\/10{background-color:rgb(var(--rh-success)/.1)}.rh-bg-surface{--tw-bg-opacity:1;background-color:rgb(var(--rh-surface)/var(--tw-bg-opacity,1))}.rh-bg-transparent{background-color:transparent}.rh-bg-warning{--tw-bg-opacity:1;background-color:rgb(var(--rh-warning)/var(--tw-bg-opacity,1))}.rh-bg-warning\/10{background-color:rgb(var(--rh-warning)/.1)}.rh-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.rh-bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.rh-bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.rh-object-cover{-o-object-fit:cover;object-fit:cover}.rh-p-0{padding:0}.rh-p-0\.5{padding:.125rem}.rh-p-1{padding:.25rem}.rh-p-3{padding:.75rem}.rh-p-4{padding:1rem}.rh-p-5{padding:1.25rem}.rh-p-6{padding:1.5rem}.rh-p-8{padding:2rem}.rh-px-1\.5{padding-left:.375rem;padding-right:.375rem}.rh-px-2{padding-left:.5rem;padding-right:.5rem}.rh-px-2\.5{padding-left:.625rem;padding-right:.625rem}.rh-px-3{padding-left:.75rem;padding-right:.75rem}.rh-px-4{padding-left:1rem;padding-right:1rem}.rh-px-5{padding-left:1.25rem;padding-right:1.25rem}.rh-px-8{padding-left:2rem;padding-right:2rem}.rh-px-\[6px\]{padding-left:6px;padding-right:6px}.rh-px-grid-margin-mobile{padding-left:24px;padding-right:24px}.rh-px-input-x-lg{padding-left:var(--rh-input-px-lg,16px);padding-right:var(--rh-input-px-lg,16px)}.rh-px-input-x-md{padding-left:var(--rh-input-px-md,14px);padding-right:var(--rh-input-px-md,14px)}.rh-px-input-x-sm{padding-left:var(--rh-input-px-sm,10px);padding-right:var(--rh-input-px-sm,10px)}.rh-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.rh-py-1{padding-top:.25rem;padding-bottom:.25rem}.rh-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.rh-py-2{padding-top:.5rem;padding-bottom:.5rem}.rh-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.rh-py-3{padding-top:.75rem;padding-bottom:.75rem}.rh-py-4{padding-top:1rem;padding-bottom:1rem}.rh-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.rh-py-8{padding-top:2rem;padding-bottom:2rem}.rh-py-\[2px\]{padding-top:2px;padding-bottom:2px}.rh-py-\[6px\]{padding-top:6px;padding-bottom:6px}.rh-pt-4{padding-top:1rem}.rh-text-left{text-align:left}.rh-text-center{text-align:center}.rh-text-right{text-align:right}.rh-font-body{font-family:var(--rh-font-family)}.rh-font-display{font-family:var(--rh-font-family-display)}.rh-text-\[10px\]{font-size:10px}.rh-text-base{font-size:1rem;line-height:1.5rem}.rh-text-lg{font-size:1.125rem;line-height:1.75rem}.rh-text-sm{font-size:.875rem;line-height:1.25rem}.rh-text-xl{font-size:1.25rem;line-height:1.75rem}.rh-text-xs{font-size:.75rem;line-height:1rem}.rh-font-bold{font-weight:700}.rh-font-medium{font-weight:500}.rh-font-normal{font-weight:400}.rh-font-semibold{font-weight:600}.rh-uppercase{text-transform:uppercase}.rh-leading-5{line-height:1.25rem}.rh-leading-6{line-height:1.5rem}.rh-leading-normal{line-height:1.5}.rh-leading-tight{line-height:1.25}.rh-tracking-\[0\.025em\]{letter-spacing:.025em}.rh-tracking-widest{letter-spacing:.1em}.rh-text-\[\#374151\]{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.rh-text-\[\#9CA3AF\]{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.rh-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.rh-text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.rh-text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.rh-text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.rh-text-danger{--tw-text-opacity:1;color:rgb(var(--rh-danger)/var(--tw-text-opacity,1))}.rh-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.rh-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.rh-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.rh-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.rh-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.rh-text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.rh-text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.rh-text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.rh-text-info{--tw-text-opacity:1;color:rgb(var(--rh-info)/var(--tw-text-opacity,1))}.rh-text-primary{--tw-text-opacity:1;color:rgb(var(--rh-primary)/var(--tw-text-opacity,1))}.rh-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.rh-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.rh-text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.rh-text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.rh-text-secondary{--tw-text-opacity:1;color:rgb(var(--rh-secondary)/var(--tw-text-opacity,1))}.rh-text-success{--tw-text-opacity:1;color:rgb(var(--rh-success)/var(--tw-text-opacity,1))}.rh-text-surface{--tw-text-opacity:1;color:rgb(var(--rh-surface)/var(--tw-text-opacity,1))}.rh-text-surface\/80{color:rgb(var(--rh-surface)/.8)}.rh-text-text{--tw-text-opacity:1;color:rgb(var(--rh-text)/var(--tw-text-opacity,1))}.rh-text-text-muted{--tw-text-opacity:1;color:rgb(var(--rh-text-muted)/var(--tw-text-opacity,1))}.rh-text-transparent{color:transparent}.rh-text-warning{--tw-text-opacity:1;color:rgb(var(--rh-warning)/var(--tw-text-opacity,1))}.rh-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rh-text-white\/80{color:hsla(0,0%,100%,.8)}.rh-text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.rh-text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.rh-text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.rh-text-yellow-900{--tw-text-opacity:1;color:rgb(113 63 18/var(--tw-text-opacity,1))}.rh-underline{text-decoration-line:underline}.rh-opacity-25{opacity:.25}.rh-opacity-50{opacity:.5}.rh-opacity-75{opacity:.75}.rh-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.rh-shadow-lg,.rh-shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rh-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.rh-shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.rh-shadow-none,.rh-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rh-shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.rh-outline-none{outline:2px solid transparent;outline-offset:2px}.rh-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.rh-ring-surface{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--rh-surface)/var(--tw-ring-opacity,1))}.rh-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rh-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rh-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rh-duration-150{transition-duration:.15s}.rh-duration-300{transition-duration:.3s}.btn-custom-hover:hover{background-color:var(--btn-hover-bg)!important;border-color:var(--btn-hover-border,var(--btn-hover-bg))!important;color:var(--btn-hover-color)!important}.placeholder\:rh-text-text-muted::-moz-placeholder{--tw-text-opacity:1;color:rgb(var(--rh-text-muted)/var(--tw-text-opacity,1))}.placeholder\:rh-text-text-muted::placeholder{--tw-text-opacity:1;color:rgb(var(--rh-text-muted)/var(--tw-text-opacity,1))}.last\:rh-border-b-0:last-child{border-bottom-width:0}.focus-within\:rh-ring-2:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:rh-ring-danger:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--rh-danger)/var(--tw-ring-opacity,1))}.focus-within\:rh-ring-ring:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--rh-ring)/var(--tw-ring-opacity,1))}.focus-within\:rh-ring-offset-2:focus-within{--tw-ring-offset-width:2px}.hover\:rh-scale-\[1\.01\]:hover{--tw-scale-x:1.01;--tw-scale-y:1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:rh-border-danger-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-danger-hover)/var(--tw-border-opacity,1))}.hover\:rh-border-danger\/50:hover{border-color:rgb(var(--rh-danger)/.5)}.hover\:rh-border-info-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-info-hover)/var(--tw-border-opacity,1))}.hover\:rh-border-info\/50:hover{border-color:rgb(var(--rh-info)/.5)}.hover\:rh-border-primary:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-primary)/var(--tw-border-opacity,1))}.hover\:rh-border-primary-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-primary-hover)/var(--tw-border-opacity,1))}.hover\:rh-border-primary\/50:hover{border-color:rgb(var(--rh-primary)/.5)}.hover\:rh-border-secondary-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-secondary-hover)/var(--tw-border-opacity,1))}.hover\:rh-border-secondary\/50:hover{border-color:rgb(var(--rh-secondary)/.5)}.hover\:rh-border-success-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-success-hover)/var(--tw-border-opacity,1))}.hover\:rh-border-success\/50:hover{border-color:rgb(var(--rh-success)/.5)}.hover\:rh-border-warning-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-warning-hover)/var(--tw-border-opacity,1))}.hover\:rh-border-warning\/50:hover{border-color:rgb(var(--rh-warning)/.5)}.hover\:rh-bg-background:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-background)/var(--tw-bg-opacity,1))}.hover\:rh-bg-danger:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-danger)/var(--tw-bg-opacity,1))}.hover\:rh-bg-danger-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-danger-hover)/var(--tw-bg-opacity,1))}.hover\:rh-bg-danger\/10:hover{background-color:rgb(var(--rh-danger)/.1)}.hover\:rh-bg-danger\/20:hover{background-color:rgb(var(--rh-danger)/.2)}.hover\:rh-bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:rh-bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:rh-bg-info:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-info)/var(--tw-bg-opacity,1))}.hover\:rh-bg-info-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-info-hover)/var(--tw-bg-opacity,1))}.hover\:rh-bg-info\/10:hover{background-color:rgb(var(--rh-info)/.1)}.hover\:rh-bg-info\/20:hover{background-color:rgb(var(--rh-info)/.2)}.hover\:rh-bg-primary:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-primary)/var(--tw-bg-opacity,1))}.hover\:rh-bg-primary-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-primary-hover)/var(--tw-bg-opacity,1))}.hover\:rh-bg-primary\/10:hover{background-color:rgb(var(--rh-primary)/.1)}.hover\:rh-bg-primary\/20:hover{background-color:rgb(var(--rh-primary)/.2)}.hover\:rh-bg-secondary:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-secondary)/var(--tw-bg-opacity,1))}.hover\:rh-bg-secondary-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-secondary-hover)/var(--tw-bg-opacity,1))}.hover\:rh-bg-secondary\/10:hover{background-color:rgb(var(--rh-secondary)/.1)}.hover\:rh-bg-secondary\/20:hover{background-color:rgb(var(--rh-secondary)/.2)}.hover\:rh-bg-success:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-success)/var(--tw-bg-opacity,1))}.hover\:rh-bg-success-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-success-hover)/var(--tw-bg-opacity,1))}.hover\:rh-bg-success\/10:hover{background-color:rgb(var(--rh-success)/.1)}.hover\:rh-bg-success\/20:hover{background-color:rgb(var(--rh-success)/.2)}.hover\:rh-bg-surface\/50:hover{background-color:rgb(var(--rh-surface)/.5)}.hover\:rh-bg-warning:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-warning)/var(--tw-bg-opacity,1))}.hover\:rh-bg-warning-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-warning-hover)/var(--tw-bg-opacity,1))}.hover\:rh-bg-warning\/10:hover{background-color:rgb(var(--rh-warning)/.1)}.hover\:rh-bg-warning\/20:hover{background-color:rgb(var(--rh-warning)/.2)}.hover\:rh-text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.hover\:rh-text-blue-900:hover{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.hover\:rh-text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\:rh-text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:rh-text-green-800:hover{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.hover\:rh-text-green-900:hover{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.hover\:rh-text-red-800:hover{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.hover\:rh-text-red-900:hover{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.hover\:rh-text-surface:hover{--tw-text-opacity:1;color:rgb(var(--rh-surface)/var(--tw-text-opacity,1))}.hover\:rh-text-text:hover{--tw-text-opacity:1;color:rgb(var(--rh-text)/var(--tw-text-opacity,1))}.hover\:rh-text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:rh-text-white\/80:hover{color:hsla(0,0%,100%,.8)}.hover\:rh-text-yellow-800:hover{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.hover\:rh-text-yellow-900:hover{--tw-text-opacity:1;color:rgb(113 63 18/var(--tw-text-opacity,1))}.hover\:rh-shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:rh-brightness-90:hover{--tw-brightness:brightness(.9)}.hover\:rh-brightness-90:hover,.hover\:rh-brightness-95:hover{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:rh-brightness-95:hover{--tw-brightness:brightness(.95)}.focus-visible\:rh-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:rh-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:rh-ring-ring:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--rh-ring)/var(--tw-ring-opacity,1))}.focus-visible\:rh-ring-offset-1:focus-visible{--tw-ring-offset-width:1px}.focus-visible\:rh-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.active\:rh-scale-\[0\.99\]:active{--tw-scale-x:0.99;--tw-scale-y:0.99;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:rh-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:rh-opacity-50:disabled{opacity:.5}.rh-peer:focus-visible~.peer-focus-visible\:rh-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.rh-peer:focus-visible~.peer-focus-visible\:rh-ring-ring{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--rh-ring)/var(--tw-ring-opacity,1))}.rh-peer:focus-visible~.peer-focus-visible\:rh-ring-offset-2{--tw-ring-offset-width:2px}@media (min-width:360px){.mobile-sm\:rh-col-span-1{grid-column:span 1/span 1}.mobile-sm\:rh-col-span-2{grid-column:span 2/span 2}.mobile-sm\:rh-col-span-3{grid-column:span 3/span 3}.mobile-sm\:rh-col-span-4{grid-column:span 4/span 4}}@media (min-width:390px){.mobile-md\:rh-col-span-1{grid-column:span 1/span 1}.mobile-md\:rh-col-span-2{grid-column:span 2/span 2}.mobile-md\:rh-col-span-3{grid-column:span 3/span 3}.mobile-md\:rh-col-span-4{grid-column:span 4/span 4}}@media (min-width:430px){.mobile-lg\:rh-col-span-1{grid-column:span 1/span 1}.mobile-lg\:rh-col-span-2{grid-column:span 2/span 2}.mobile-lg\:rh-col-span-3{grid-column:span 3/span 3}.mobile-lg\:rh-col-span-4{grid-column:span 4/span 4}}@media (min-width:640px){.sm\:rh-col-span-2{grid-column:span 2/span 2}.sm\:rh-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.desktop-xs\:rh-col-span-1{grid-column:span 1/span 1}.desktop-xs\:rh-col-span-10{grid-column:span 10/span 10}.desktop-xs\:rh-col-span-11{grid-column:span 11/span 11}.desktop-xs\:rh-col-span-12{grid-column:span 12/span 12}.desktop-xs\:rh-col-span-2{grid-column:span 2/span 2}.desktop-xs\:rh-col-span-3{grid-column:span 3/span 3}.desktop-xs\:rh-col-span-4{grid-column:span 4/span 4}.desktop-xs\:rh-col-span-5{grid-column:span 5/span 5}.desktop-xs\:rh-col-span-6{grid-column:span 6/span 6}.desktop-xs\:rh-col-span-7{grid-column:span 7/span 7}.desktop-xs\:rh-col-span-8{grid-column:span 8/span 8}.desktop-xs\:rh-col-span-9{grid-column:span 9/span 9}.desktop-xs\:rh-grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.desktop-xs\:rh-gap-grid-gutter-desktop{gap:24px}.desktop-xs\:rh-px-grid-margin-desktop{padding-left:72px;padding-right:72px}}@media (min-width:1024px){.desktop-sm\:rh-col-span-1{grid-column:span 1/span 1}.desktop-sm\:rh-col-span-10{grid-column:span 10/span 10}.desktop-sm\:rh-col-span-11{grid-column:span 11/span 11}.desktop-sm\:rh-col-span-12{grid-column:span 12/span 12}.desktop-sm\:rh-col-span-2{grid-column:span 2/span 2}.desktop-sm\:rh-col-span-3{grid-column:span 3/span 3}.desktop-sm\:rh-col-span-4{grid-column:span 4/span 4}.desktop-sm\:rh-col-span-5{grid-column:span 5/span 5}.desktop-sm\:rh-col-span-6{grid-column:span 6/span 6}.desktop-sm\:rh-col-span-7{grid-column:span 7/span 7}.desktop-sm\:rh-col-span-8{grid-column:span 8/span 8}.desktop-sm\:rh-col-span-9{grid-column:span 9/span 9}}@media (min-width:1280px){.xl\:rh-col-span-3{grid-column:span 3/span 3}.xl\:rh-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.desktop-md\:rh-col-span-1{grid-column:span 1/span 1}.desktop-md\:rh-col-span-10{grid-column:span 10/span 10}.desktop-md\:rh-col-span-11{grid-column:span 11/span 11}.desktop-md\:rh-col-span-12{grid-column:span 12/span 12}.desktop-md\:rh-col-span-2{grid-column:span 2/span 2}.desktop-md\:rh-col-span-3{grid-column:span 3/span 3}.desktop-md\:rh-col-span-4{grid-column:span 4/span 4}.desktop-md\:rh-col-span-5{grid-column:span 5/span 5}.desktop-md\:rh-col-span-6{grid-column:span 6/span 6}.desktop-md\:rh-col-span-7{grid-column:span 7/span 7}.desktop-md\:rh-col-span-8{grid-column:span 8/span 8}.desktop-md\:rh-col-span-9{grid-column:span 9/span 9}}@media (min-width:1440px){.desktop-lg\:rh-col-span-1{grid-column:span 1/span 1}.desktop-lg\:rh-col-span-10{grid-column:span 10/span 10}.desktop-lg\:rh-col-span-11{grid-column:span 11/span 11}.desktop-lg\:rh-col-span-12{grid-column:span 12/span 12}.desktop-lg\:rh-col-span-2{grid-column:span 2/span 2}.desktop-lg\:rh-col-span-3{grid-column:span 3/span 3}.desktop-lg\:rh-col-span-4{grid-column:span 4/span 4}.desktop-lg\:rh-col-span-5{grid-column:span 5/span 5}.desktop-lg\:rh-col-span-6{grid-column:span 6/span 6}.desktop-lg\:rh-col-span-7{grid-column:span 7/span 7}.desktop-lg\:rh-col-span-8{grid-column:span 8/span 8}.desktop-lg\:rh-col-span-9{grid-column:span 9/span 9}}
3
+ /*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.rh-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.rh-pointer-events-none{pointer-events:none}.rh-pointer-events-auto{pointer-events:auto}.rh-fixed{position:fixed}.rh-absolute{position:absolute}.rh-relative{position:relative}.rh-sticky{position:sticky}.rh-bottom-0{bottom:0}.rh-bottom-3{bottom:.75rem}.rh-bottom-4{bottom:1rem}.rh-bottom-full{bottom:100%}.rh-left-0{left:0}.rh-left-1\/2{left:50%}.rh-left-4{left:1rem}.rh-left-full{left:100%}.rh-right-0{right:0}.rh-right-4{right:1rem}.rh-right-full{right:100%}.rh-top-0{top:0}.rh-top-1\/2{top:50%}.rh-top-3{top:.75rem}.rh-top-4{top:1rem}.rh-top-full{top:100%}.rh-z-10{z-index:10}.rh-z-50{z-index:50}.rh-z-\[9999\]{z-index:9999}.rh-col-span-1{grid-column:span 1/span 1}.rh-col-span-2{grid-column:span 2/span 2}.rh-col-span-3{grid-column:span 3/span 3}.rh-col-span-4{grid-column:span 4/span 4}.rh-mx-auto{margin-left:auto;margin-right:auto}.rh-mb-2{margin-bottom:.5rem}.rh-mb-4{margin-bottom:1rem}.rh-mb-6{margin-bottom:1.5rem}.rh-ml-1{margin-left:.25rem}.rh-ml-2{margin-left:.5rem}.rh-mr-2{margin-right:.5rem}.rh-mt-0\.5{margin-top:.125rem}.rh-mt-1{margin-top:.25rem}.rh-mt-2{margin-top:.5rem}.rh-mt-4{margin-top:1rem}.rh-inline-block{display:inline-block}.rh-flex{display:flex}.rh-inline-flex{display:inline-flex}.rh-grid{display:grid}.rh-h-1{height:.25rem}.rh-h-10{height:2.5rem}.rh-h-12{height:3rem}.rh-h-16{height:4rem}.rh-h-2\.5{height:.625rem}.rh-h-3{height:.75rem}.rh-h-3\.5{height:.875rem}.rh-h-4{height:1rem}.rh-h-5{height:1.25rem}.rh-h-6{height:1.5rem}.rh-h-8{height:2rem}.rh-h-9{height:2.25rem}.rh-h-\[12px\]{height:12px}.rh-h-\[28px\]{height:28px}.rh-h-\[44px\]{height:44px}.rh-h-\[8px\]{height:8px}.rh-h-full{height:100%}.rh-h-input-lg{height:var(--rh-input-height-lg,48px)}.rh-h-input-md{height:var(--rh-input-height-md,40px)}.rh-h-input-sm{height:var(--rh-input-height-sm,32px)}.rh-max-h-60{max-height:15rem}.rh-max-h-\[200px\]{max-height:200px}.rh-min-h-\[32px\]{min-height:32px}.rh-min-h-\[36px\]{min-height:36px}.rh-min-h-\[40px\]{min-height:40px}.rh-min-h-\[48px\]{min-height:48px}.rh-min-h-\[52px\]{min-height:52px}.rh-min-h-\[60px\]{min-height:60px}.rh-min-h-screen{min-height:100vh}.rh-w-10{width:2.5rem}.rh-w-12{width:3rem}.rh-w-16{width:4rem}.rh-w-2\.5{width:.625rem}.rh-w-3{width:.75rem}.rh-w-3\.5{width:.875rem}.rh-w-4{width:1rem}.rh-w-5{width:1.25rem}.rh-w-6{width:1.5rem}.rh-w-8{width:2rem}.rh-w-80{width:20rem}.rh-w-\[12px\]{width:12px}.rh-w-\[180px\]{width:180px}.rh-w-\[8px\]{width:8px}.rh-w-full{width:100%}.rh-w-max{width:-moz-max-content;width:max-content}.rh-min-w-0{min-width:0}.rh-min-w-\[40px\]{min-width:40px}.rh-max-w-\[1440px\]{max-width:1440px}.rh-max-w-xs{max-width:20rem}.rh-flex-1{flex:1 1 0%}.rh-flex-shrink-0,.rh-shrink-0{flex-shrink:0}.rh-border-collapse{border-collapse:collapse}.rh--translate-x-1\/2{--tw-translate-x:-50%}.rh--translate-x-1\/2,.rh--translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rh--translate-y-1\/2{--tw-translate-y:-50%}.rh-translate-x-1\/2{--tw-translate-x:50%}.rh-translate-x-1\/2,.rh-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rh-translate-y-1\/2{--tw-translate-y:50%}.rh-rotate-180{--tw-rotate:180deg}.rh-rotate-180,.rh-rotate-45{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rh-rotate-45{--tw-rotate:45deg}@keyframes rh-spin{to{transform:rotate(1turn)}}.rh-animate-spin{animation:rh-spin 1s linear infinite}@keyframes rh-toast-in-bottom{0%{opacity:0;transform:translateY(110%)}to{opacity:1;transform:translateY(0)}}.rh-animate-toast-in-bottom{animation:rh-toast-in-bottom .25s ease forwards}@keyframes rh-toast-in-left{0%{opacity:0;transform:translateX(-110%)}to{opacity:1;transform:translateX(0)}}.rh-animate-toast-in-left{animation:rh-toast-in-left .25s ease forwards}@keyframes rh-toast-in-right{0%{opacity:0;transform:translateX(110%)}to{opacity:1;transform:translateX(0)}}.rh-animate-toast-in-right{animation:rh-toast-in-right .25s ease forwards}@keyframes rh-toast-in-top{0%{opacity:0;transform:translateY(-110%)}to{opacity:1;transform:translateY(0)}}.rh-animate-toast-in-top{animation:rh-toast-in-top .25s ease forwards}@keyframes rh-toast-out-bottom{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(110%)}}.rh-animate-toast-out-bottom{animation:rh-toast-out-bottom .2s ease forwards}@keyframes rh-toast-out-left{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-110%)}}.rh-animate-toast-out-left{animation:rh-toast-out-left .2s ease forwards}@keyframes rh-toast-out-right{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(110%)}}.rh-animate-toast-out-right{animation:rh-toast-out-right .2s ease forwards}@keyframes rh-toast-out-top{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-110%)}}.rh-animate-toast-out-top{animation:rh-toast-out-top .2s ease forwards}.rh-cursor-not-allowed{cursor:not-allowed}.rh-cursor-pointer{cursor:pointer}.rh-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.rh-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.rh-grid-cols-10{grid-template-columns:repeat(10,minmax(0,1fr))}.rh-grid-cols-11{grid-template-columns:repeat(11,minmax(0,1fr))}.rh-grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.rh-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.rh-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.rh-grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.rh-grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.rh-grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.rh-grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.rh-grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.rh-grid-cols-9{grid-template-columns:repeat(9,minmax(0,1fr))}.rh-flex-row{flex-direction:row}.rh-flex-col{flex-direction:column}.rh-flex-wrap{flex-wrap:wrap}.rh-items-start{align-items:flex-start}.rh-items-end{align-items:flex-end}.rh-items-center{align-items:center}.rh-items-baseline{align-items:baseline}.rh-justify-end{justify-content:flex-end}.rh-justify-center{justify-content:center}.rh-justify-between{justify-content:space-between}.rh-gap-0\.5{gap:.125rem}.rh-gap-1{gap:.25rem}.rh-gap-1\.5{gap:.375rem}.rh-gap-2{gap:.5rem}.rh-gap-3{gap:.75rem}.rh-gap-4{gap:1rem}.rh-gap-6{gap:1.5rem}.rh-gap-8{gap:2rem}.rh-gap-\[0\.5rem\]{gap:.5rem}.rh-gap-grid-gutter-mobile{gap:16px}.rh-overflow-auto{overflow:auto}.rh-overflow-hidden{overflow:hidden}.rh-overflow-x-auto{overflow-x:auto}.rh-overflow-y-auto{overflow-y:auto}.rh-truncate{overflow:hidden;text-overflow:ellipsis}.rh-truncate,.rh-whitespace-nowrap{white-space:nowrap}.rh-rounded{border-radius:.25rem}.rh-rounded-\[40px\]{border-radius:40px}.rh-rounded-\[4px\]{border-radius:4px}.rh-rounded-\[8px\]{border-radius:8px}.rh-rounded-full{border-radius:9999px}.rh-rounded-lg{border-radius:var(--rh-radius-lg,24px)}.rh-rounded-md{border-radius:var(--rh-radius-md,16px)}.rh-rounded-none{border-radius:0}.rh-rounded-sm{border-radius:var(--rh-radius-sm,12px)}.rh-rounded-xl{border-radius:var(--rh-radius-xl,32px)}.rh-rounded-xs{border-radius:var(--rh-radius-xs,8px)}.rh-rounded-xxs{border-radius:var(--rh-radius-xxs,4px)}.rh-border{border-width:1px}.rh-border-0{border-width:0}.rh-border-2{border-width:2px}.rh-border-b{border-bottom-width:1px}.rh-border-r{border-right-width:1px}.rh-border-t{border-top-width:1px}.rh-border-blue-200{--tw-border-opacity:1;border-color:rgb(191 219 254/var(--tw-border-opacity,1))}.rh-border-border{--tw-border-opacity:1;border-color:rgb(var(--rh-border)/var(--tw-border-opacity,1))}.rh-border-border\/50{border-color:rgb(var(--rh-border)/.5)}.rh-border-danger{--tw-border-opacity:1;border-color:rgb(var(--rh-danger)/var(--tw-border-opacity,1))}.rh-border-danger\/30{border-color:rgb(var(--rh-danger)/.3)}.rh-border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235/var(--tw-border-opacity,1))}.rh-border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.rh-border-green-200{--tw-border-opacity:1;border-color:rgb(187 247 208/var(--tw-border-opacity,1))}.rh-border-info{--tw-border-opacity:1;border-color:rgb(var(--rh-info)/var(--tw-border-opacity,1))}.rh-border-info\/30{border-color:rgb(var(--rh-info)/.3)}.rh-border-primary{--tw-border-opacity:1;border-color:rgb(var(--rh-primary)/var(--tw-border-opacity,1))}.rh-border-primary\/20{border-color:rgb(var(--rh-primary)/.2)}.rh-border-primary\/30{border-color:rgb(var(--rh-primary)/.3)}.rh-border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202/var(--tw-border-opacity,1))}.rh-border-secondary{--tw-border-opacity:1;border-color:rgb(var(--rh-secondary)/var(--tw-border-opacity,1))}.rh-border-secondary\/30{border-color:rgb(var(--rh-secondary)/.3)}.rh-border-success{--tw-border-opacity:1;border-color:rgb(var(--rh-success)/var(--tw-border-opacity,1))}.rh-border-success\/30{border-color:rgb(var(--rh-success)/.3)}.rh-border-transparent{border-color:transparent}.rh-border-warning{--tw-border-opacity:1;border-color:rgb(var(--rh-warning)/var(--tw-border-opacity,1))}.rh-border-warning\/30{border-color:rgb(var(--rh-warning)/.3)}.rh-border-yellow-200{--tw-border-opacity:1;border-color:rgb(254 240 138/var(--tw-border-opacity,1))}.rh-bg-\[rgb\(var\(--rh-danger\)\)\]{background-color:rgb(var(--rh-danger))}.rh-bg-\[rgb\(var\(--rh-success\)\)\]{background-color:rgb(var(--rh-success))}.rh-bg-background{--tw-bg-opacity:1;background-color:rgb(var(--rh-background)/var(--tw-bg-opacity,1))}.rh-bg-background\/50{background-color:rgb(var(--rh-background)/.5)}.rh-bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.rh-bg-blue-600{--tw-bg-opacity:1;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.rh-bg-danger{--tw-bg-opacity:1;background-color:rgb(var(--rh-danger)/var(--tw-bg-opacity,1))}.rh-bg-danger\/10{background-color:rgb(var(--rh-danger)/.1)}.rh-bg-gray-100{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.rh-bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity,1))}.rh-bg-gray-900{--tw-bg-opacity:1;background-color:rgb(17 24 39/var(--tw-bg-opacity,1))}.rh-bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.rh-bg-info{--tw-bg-opacity:1;background-color:rgb(var(--rh-info)/var(--tw-bg-opacity,1))}.rh-bg-info\/10{background-color:rgb(var(--rh-info)/.1)}.rh-bg-primary{--tw-bg-opacity:1;background-color:rgb(var(--rh-primary)/var(--tw-bg-opacity,1))}.rh-bg-primary\/10{background-color:rgb(var(--rh-primary)/.1)}.rh-bg-primary\/5{background-color:rgb(var(--rh-primary)/.05)}.rh-bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242/var(--tw-bg-opacity,1))}.rh-bg-secondary{--tw-bg-opacity:1;background-color:rgb(var(--rh-secondary)/var(--tw-bg-opacity,1))}.rh-bg-secondary\/10{background-color:rgb(var(--rh-secondary)/.1)}.rh-bg-success{--tw-bg-opacity:1;background-color:rgb(var(--rh-success)/var(--tw-bg-opacity,1))}.rh-bg-success\/10{background-color:rgb(var(--rh-success)/.1)}.rh-bg-surface{--tw-bg-opacity:1;background-color:rgb(var(--rh-surface)/var(--tw-bg-opacity,1))}.rh-bg-transparent{background-color:transparent}.rh-bg-warning{--tw-bg-opacity:1;background-color:rgb(var(--rh-warning)/var(--tw-bg-opacity,1))}.rh-bg-warning\/10{background-color:rgb(var(--rh-warning)/.1)}.rh-bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.rh-bg-yellow-50{--tw-bg-opacity:1;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.rh-bg-yellow-500{--tw-bg-opacity:1;background-color:rgb(234 179 8/var(--tw-bg-opacity,1))}.rh-object-cover{-o-object-fit:cover;object-fit:cover}.rh-p-0{padding:0}.rh-p-0\.5{padding:.125rem}.rh-p-1{padding:.25rem}.rh-p-3{padding:.75rem}.rh-p-4{padding:1rem}.rh-p-5{padding:1.25rem}.rh-p-6{padding:1.5rem}.rh-p-8{padding:2rem}.rh-px-1\.5{padding-left:.375rem;padding-right:.375rem}.rh-px-2{padding-left:.5rem;padding-right:.5rem}.rh-px-2\.5{padding-left:.625rem;padding-right:.625rem}.rh-px-3{padding-left:.75rem;padding-right:.75rem}.rh-px-4{padding-left:1rem;padding-right:1rem}.rh-px-5{padding-left:1.25rem;padding-right:1.25rem}.rh-px-8{padding-left:2rem;padding-right:2rem}.rh-px-\[6px\]{padding-left:6px;padding-right:6px}.rh-px-grid-margin-mobile{padding-left:24px;padding-right:24px}.rh-px-input-x-lg{padding-left:var(--rh-input-px-lg,16px);padding-right:var(--rh-input-px-lg,16px)}.rh-px-input-x-md{padding-left:var(--rh-input-px-md,14px);padding-right:var(--rh-input-px-md,14px)}.rh-px-input-x-sm{padding-left:var(--rh-input-px-sm,10px);padding-right:var(--rh-input-px-sm,10px)}.rh-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.rh-py-1{padding-top:.25rem;padding-bottom:.25rem}.rh-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.rh-py-2{padding-top:.5rem;padding-bottom:.5rem}.rh-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.rh-py-3{padding-top:.75rem;padding-bottom:.75rem}.rh-py-4{padding-top:1rem;padding-bottom:1rem}.rh-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.rh-py-8{padding-top:2rem;padding-bottom:2rem}.rh-py-\[2px\]{padding-top:2px;padding-bottom:2px}.rh-py-\[6px\]{padding-top:6px;padding-bottom:6px}.rh-pt-4{padding-top:1rem}.rh-text-left{text-align:left}.rh-text-center{text-align:center}.rh-text-right{text-align:right}.rh-font-body{font-family:var(--rh-font-family)}.rh-font-display{font-family:var(--rh-font-family-display)}.rh-text-2xl{font-size:1.5rem;line-height:2rem}.rh-text-4xl{font-size:2.25rem;line-height:2.5rem}.rh-text-\[10px\]{font-size:10px}.rh-text-base{font-size:1rem;line-height:1.5rem}.rh-text-lg{font-size:1.125rem;line-height:1.75rem}.rh-text-sm{font-size:.875rem;line-height:1.25rem}.rh-text-xl{font-size:1.25rem;line-height:1.75rem}.rh-text-xs{font-size:.75rem;line-height:1rem}.rh-font-bold{font-weight:700}.rh-font-medium{font-weight:500}.rh-font-normal{font-weight:400}.rh-font-semibold{font-weight:600}.rh-uppercase{text-transform:uppercase}.rh-leading-5{line-height:1.25rem}.rh-leading-6{line-height:1.5rem}.rh-leading-normal{line-height:1.5}.rh-leading-snug{line-height:1.375}.rh-leading-tight{line-height:1.25}.rh-tracking-\[0\.025em\]{letter-spacing:.025em}.rh-tracking-widest{letter-spacing:.1em}.rh-text-\[\#374151\]{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.rh-text-\[\#9CA3AF\]{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity,1))}.rh-text-blue-500{--tw-text-opacity:1;color:rgb(59 130 246/var(--tw-text-opacity,1))}.rh-text-blue-600{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity,1))}.rh-text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.rh-text-blue-900{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.rh-text-danger{--tw-text-opacity:1;color:rgb(var(--rh-danger)/var(--tw-text-opacity,1))}.rh-text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.rh-text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.rh-text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity,1))}.rh-text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.rh-text-green-500{--tw-text-opacity:1;color:rgb(34 197 94/var(--tw-text-opacity,1))}.rh-text-green-600{--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity,1))}.rh-text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.rh-text-green-900{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.rh-text-info{--tw-text-opacity:1;color:rgb(var(--rh-info)/var(--tw-text-opacity,1))}.rh-text-primary{--tw-text-opacity:1;color:rgb(var(--rh-primary)/var(--tw-text-opacity,1))}.rh-text-red-500{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity,1))}.rh-text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.rh-text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.rh-text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.rh-text-secondary{--tw-text-opacity:1;color:rgb(var(--rh-secondary)/var(--tw-text-opacity,1))}.rh-text-success{--tw-text-opacity:1;color:rgb(var(--rh-success)/var(--tw-text-opacity,1))}.rh-text-surface{--tw-text-opacity:1;color:rgb(var(--rh-surface)/var(--tw-text-opacity,1))}.rh-text-surface\/80{color:rgb(var(--rh-surface)/.8)}.rh-text-text{--tw-text-opacity:1;color:rgb(var(--rh-text)/var(--tw-text-opacity,1))}.rh-text-text-muted{--tw-text-opacity:1;color:rgb(var(--rh-text-muted)/var(--tw-text-opacity,1))}.rh-text-transparent{color:transparent}.rh-text-warning{--tw-text-opacity:1;color:rgb(var(--rh-warning)/var(--tw-text-opacity,1))}.rh-text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.rh-text-white\/80{color:hsla(0,0%,100%,.8)}.rh-text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.rh-text-yellow-600{--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity,1))}.rh-text-yellow-700{--tw-text-opacity:1;color:rgb(161 98 7/var(--tw-text-opacity,1))}.rh-text-yellow-900{--tw-text-opacity:1;color:rgb(113 63 18/var(--tw-text-opacity,1))}.rh-underline{text-decoration-line:underline}.rh-opacity-25{opacity:.25}.rh-opacity-50{opacity:.5}.rh-opacity-75{opacity:.75}.rh-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.rh-shadow-lg,.rh-shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rh-shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.rh-shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000}.rh-shadow-none,.rh-shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.rh-shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.rh-outline-none{outline:2px solid transparent;outline-offset:2px}.rh-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.rh-ring-surface{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--rh-surface)/var(--tw-ring-opacity,1))}.rh-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rh-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rh-transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.rh-duration-150{transition-duration:.15s}.rh-duration-300{transition-duration:.3s}.btn-custom-hover:hover{background-color:var(--btn-hover-bg)!important;border-color:var(--btn-hover-border,var(--btn-hover-bg))!important;color:var(--btn-hover-color)!important}.placeholder\:rh-text-text-muted::-moz-placeholder{--tw-text-opacity:1;color:rgb(var(--rh-text-muted)/var(--tw-text-opacity,1))}.placeholder\:rh-text-text-muted::placeholder{--tw-text-opacity:1;color:rgb(var(--rh-text-muted)/var(--tw-text-opacity,1))}.last\:rh-border-b-0:last-child{border-bottom-width:0}.focus-within\:rh-ring-2:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-within\:rh-ring-danger:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--rh-danger)/var(--tw-ring-opacity,1))}.focus-within\:rh-ring-ring:focus-within{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--rh-ring)/var(--tw-ring-opacity,1))}.focus-within\:rh-ring-offset-2:focus-within{--tw-ring-offset-width:2px}.hover\:rh-scale-\[1\.01\]:hover{--tw-scale-x:1.01;--tw-scale-y:1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:rh-border-danger-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-danger-hover)/var(--tw-border-opacity,1))}.hover\:rh-border-danger\/50:hover{border-color:rgb(var(--rh-danger)/.5)}.hover\:rh-border-info-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-info-hover)/var(--tw-border-opacity,1))}.hover\:rh-border-info\/50:hover{border-color:rgb(var(--rh-info)/.5)}.hover\:rh-border-primary:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-primary)/var(--tw-border-opacity,1))}.hover\:rh-border-primary-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-primary-hover)/var(--tw-border-opacity,1))}.hover\:rh-border-primary\/50:hover{border-color:rgb(var(--rh-primary)/.5)}.hover\:rh-border-secondary-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-secondary-hover)/var(--tw-border-opacity,1))}.hover\:rh-border-secondary\/50:hover{border-color:rgb(var(--rh-secondary)/.5)}.hover\:rh-border-success-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-success-hover)/var(--tw-border-opacity,1))}.hover\:rh-border-success\/50:hover{border-color:rgb(var(--rh-success)/.5)}.hover\:rh-border-warning-hover:hover{--tw-border-opacity:1;border-color:rgb(var(--rh-warning-hover)/var(--tw-border-opacity,1))}.hover\:rh-border-warning\/50:hover{border-color:rgb(var(--rh-warning)/.5)}.hover\:rh-bg-background:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-background)/var(--tw-bg-opacity,1))}.hover\:rh-bg-danger:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-danger)/var(--tw-bg-opacity,1))}.hover\:rh-bg-danger-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-danger-hover)/var(--tw-bg-opacity,1))}.hover\:rh-bg-danger\/10:hover{background-color:rgb(var(--rh-danger)/.1)}.hover\:rh-bg-danger\/20:hover{background-color:rgb(var(--rh-danger)/.2)}.hover\:rh-bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:rh-bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.hover\:rh-bg-info:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-info)/var(--tw-bg-opacity,1))}.hover\:rh-bg-info-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-info-hover)/var(--tw-bg-opacity,1))}.hover\:rh-bg-info\/10:hover{background-color:rgb(var(--rh-info)/.1)}.hover\:rh-bg-info\/20:hover{background-color:rgb(var(--rh-info)/.2)}.hover\:rh-bg-primary:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-primary)/var(--tw-bg-opacity,1))}.hover\:rh-bg-primary-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-primary-hover)/var(--tw-bg-opacity,1))}.hover\:rh-bg-primary\/10:hover{background-color:rgb(var(--rh-primary)/.1)}.hover\:rh-bg-primary\/20:hover{background-color:rgb(var(--rh-primary)/.2)}.hover\:rh-bg-secondary:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-secondary)/var(--tw-bg-opacity,1))}.hover\:rh-bg-secondary-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-secondary-hover)/var(--tw-bg-opacity,1))}.hover\:rh-bg-secondary\/10:hover{background-color:rgb(var(--rh-secondary)/.1)}.hover\:rh-bg-secondary\/20:hover{background-color:rgb(var(--rh-secondary)/.2)}.hover\:rh-bg-success:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-success)/var(--tw-bg-opacity,1))}.hover\:rh-bg-success-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-success-hover)/var(--tw-bg-opacity,1))}.hover\:rh-bg-success\/10:hover{background-color:rgb(var(--rh-success)/.1)}.hover\:rh-bg-success\/20:hover{background-color:rgb(var(--rh-success)/.2)}.hover\:rh-bg-surface\/50:hover{background-color:rgb(var(--rh-surface)/.5)}.hover\:rh-bg-warning:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-warning)/var(--tw-bg-opacity,1))}.hover\:rh-bg-warning-hover:hover{--tw-bg-opacity:1;background-color:rgb(var(--rh-warning-hover)/var(--tw-bg-opacity,1))}.hover\:rh-bg-warning\/10:hover{background-color:rgb(var(--rh-warning)/.1)}.hover\:rh-bg-warning\/20:hover{background-color:rgb(var(--rh-warning)/.2)}.hover\:rh-text-blue-800:hover{--tw-text-opacity:1;color:rgb(30 64 175/var(--tw-text-opacity,1))}.hover\:rh-text-blue-900:hover{--tw-text-opacity:1;color:rgb(30 58 138/var(--tw-text-opacity,1))}.hover\:rh-text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity,1))}.hover\:rh-text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity,1))}.hover\:rh-text-green-800:hover{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.hover\:rh-text-green-900:hover{--tw-text-opacity:1;color:rgb(20 83 45/var(--tw-text-opacity,1))}.hover\:rh-text-red-800:hover{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.hover\:rh-text-red-900:hover{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.hover\:rh-text-surface:hover{--tw-text-opacity:1;color:rgb(var(--rh-surface)/var(--tw-text-opacity,1))}.hover\:rh-text-text:hover{--tw-text-opacity:1;color:rgb(var(--rh-text)/var(--tw-text-opacity,1))}.hover\:rh-text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:rh-text-white\/80:hover{color:hsla(0,0%,100%,.8)}.hover\:rh-text-yellow-800:hover{--tw-text-opacity:1;color:rgb(133 77 14/var(--tw-text-opacity,1))}.hover\:rh-text-yellow-900:hover{--tw-text-opacity:1;color:rgb(113 63 18/var(--tw-text-opacity,1))}.hover\:rh-shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:rh-brightness-90:hover{--tw-brightness:brightness(.9)}.hover\:rh-brightness-90:hover,.hover\:rh-brightness-95:hover{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:rh-brightness-95:hover{--tw-brightness:brightness(.95)}.focus-visible\:rh-outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:rh-ring-2:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus-visible\:rh-ring-ring:focus-visible{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--rh-ring)/var(--tw-ring-opacity,1))}.focus-visible\:rh-ring-offset-1:focus-visible{--tw-ring-offset-width:1px}.focus-visible\:rh-ring-offset-2:focus-visible{--tw-ring-offset-width:2px}.active\:rh-scale-\[0\.99\]:active{--tw-scale-x:0.99;--tw-scale-y:0.99;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:rh-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:rh-opacity-50:disabled{opacity:.5}.rh-peer:focus-visible~.peer-focus-visible\:rh-ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.rh-peer:focus-visible~.peer-focus-visible\:rh-ring-ring{--tw-ring-opacity:1;--tw-ring-color:rgb(var(--rh-ring)/var(--tw-ring-opacity,1))}.rh-peer:focus-visible~.peer-focus-visible\:rh-ring-offset-2{--tw-ring-offset-width:2px}@media (min-width:360px){.mobile-sm\:rh-col-span-1{grid-column:span 1/span 1}.mobile-sm\:rh-col-span-2{grid-column:span 2/span 2}.mobile-sm\:rh-col-span-3{grid-column:span 3/span 3}.mobile-sm\:rh-col-span-4{grid-column:span 4/span 4}}@media (min-width:390px){.mobile-md\:rh-col-span-1{grid-column:span 1/span 1}.mobile-md\:rh-col-span-2{grid-column:span 2/span 2}.mobile-md\:rh-col-span-3{grid-column:span 3/span 3}.mobile-md\:rh-col-span-4{grid-column:span 4/span 4}}@media (min-width:430px){.mobile-lg\:rh-col-span-1{grid-column:span 1/span 1}.mobile-lg\:rh-col-span-2{grid-column:span 2/span 2}.mobile-lg\:rh-col-span-3{grid-column:span 3/span 3}.mobile-lg\:rh-col-span-4{grid-column:span 4/span 4}}@media (min-width:640px){.sm\:rh-col-span-2{grid-column:span 2/span 2}.sm\:rh-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:768px){.desktop-xs\:rh-col-span-1{grid-column:span 1/span 1}.desktop-xs\:rh-col-span-10{grid-column:span 10/span 10}.desktop-xs\:rh-col-span-11{grid-column:span 11/span 11}.desktop-xs\:rh-col-span-12{grid-column:span 12/span 12}.desktop-xs\:rh-col-span-2{grid-column:span 2/span 2}.desktop-xs\:rh-col-span-3{grid-column:span 3/span 3}.desktop-xs\:rh-col-span-4{grid-column:span 4/span 4}.desktop-xs\:rh-col-span-5{grid-column:span 5/span 5}.desktop-xs\:rh-col-span-6{grid-column:span 6/span 6}.desktop-xs\:rh-col-span-7{grid-column:span 7/span 7}.desktop-xs\:rh-col-span-8{grid-column:span 8/span 8}.desktop-xs\:rh-col-span-9{grid-column:span 9/span 9}.desktop-xs\:rh-grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.desktop-xs\:rh-gap-grid-gutter-desktop{gap:24px}.desktop-xs\:rh-px-grid-margin-desktop{padding-left:72px;padding-right:72px}}@media (min-width:1024px){.desktop-sm\:rh-col-span-1{grid-column:span 1/span 1}.desktop-sm\:rh-col-span-10{grid-column:span 10/span 10}.desktop-sm\:rh-col-span-11{grid-column:span 11/span 11}.desktop-sm\:rh-col-span-12{grid-column:span 12/span 12}.desktop-sm\:rh-col-span-2{grid-column:span 2/span 2}.desktop-sm\:rh-col-span-3{grid-column:span 3/span 3}.desktop-sm\:rh-col-span-4{grid-column:span 4/span 4}.desktop-sm\:rh-col-span-5{grid-column:span 5/span 5}.desktop-sm\:rh-col-span-6{grid-column:span 6/span 6}.desktop-sm\:rh-col-span-7{grid-column:span 7/span 7}.desktop-sm\:rh-col-span-8{grid-column:span 8/span 8}.desktop-sm\:rh-col-span-9{grid-column:span 9/span 9}}@media (min-width:1280px){.xl\:rh-col-span-3{grid-column:span 3/span 3}.xl\:rh-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.desktop-md\:rh-col-span-1{grid-column:span 1/span 1}.desktop-md\:rh-col-span-10{grid-column:span 10/span 10}.desktop-md\:rh-col-span-11{grid-column:span 11/span 11}.desktop-md\:rh-col-span-12{grid-column:span 12/span 12}.desktop-md\:rh-col-span-2{grid-column:span 2/span 2}.desktop-md\:rh-col-span-3{grid-column:span 3/span 3}.desktop-md\:rh-col-span-4{grid-column:span 4/span 4}.desktop-md\:rh-col-span-5{grid-column:span 5/span 5}.desktop-md\:rh-col-span-6{grid-column:span 6/span 6}.desktop-md\:rh-col-span-7{grid-column:span 7/span 7}.desktop-md\:rh-col-span-8{grid-column:span 8/span 8}.desktop-md\:rh-col-span-9{grid-column:span 9/span 9}}@media (min-width:1440px){.desktop-lg\:rh-col-span-1{grid-column:span 1/span 1}.desktop-lg\:rh-col-span-10{grid-column:span 10/span 10}.desktop-lg\:rh-col-span-11{grid-column:span 11/span 11}.desktop-lg\:rh-col-span-12{grid-column:span 12/span 12}.desktop-lg\:rh-col-span-2{grid-column:span 2/span 2}.desktop-lg\:rh-col-span-3{grid-column:span 3/span 3}.desktop-lg\:rh-col-span-4{grid-column:span 4/span 4}.desktop-lg\:rh-col-span-5{grid-column:span 5/span 5}.desktop-lg\:rh-col-span-6{grid-column:span 6/span 6}.desktop-lg\:rh-col-span-7{grid-column:span 7/span 7}.desktop-lg\:rh-col-span-8{grid-column:span 8/span 8}.desktop-lg\:rh-col-span-9{grid-column:span 9/span 9}}
@@ -0,0 +1 @@
1
+ h1,h2,h3,h4{font-family:var(--rh-font-family-display)}a,blockquote,button,h5,h6,input,label,li,p,select,span,td,textarea,th{font-family:var(--rh-font-family)}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rehagro/ui",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "author": "Rehagro's Development Team",
5
5
  "description": "Rehagro Design System - React component library",
6
6
  "main": "./dist/index.cjs",
@@ -17,7 +17,8 @@
17
17
  "import": "./dist/native.js",
18
18
  "require": "./dist/native.cjs"
19
19
  },
20
- "./styles.css": "./dist/styles.css"
20
+ "./styles.css": "./dist/styles.css",
21
+ "./typography.css": "./dist/typography.css"
21
22
  },
22
23
  "files": [
23
24
  "dist"
@@ -67,7 +68,7 @@
67
68
  "vitest": "^2.1.0"
68
69
  },
69
70
  "scripts": {
70
- "build": "tsup && node scripts/add-use-client.mjs && tailwindcss -i src/styles/styles.css -o dist/styles.css --minify",
71
+ "build": "tsup && node scripts/add-use-client.mjs && tailwindcss -i src/styles/styles.css -o dist/styles.css --minify && tailwindcss -i src/styles/typography.css -o dist/typography.css --minify",
71
72
  "typecheck": "tsc --noEmit",
72
73
  "lint": "eslint src/",
73
74
  "format": "prettier --write src/",