@rehagro/ui 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/native.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React$1 from 'react';
3
- import { PressableProps, StyleProp, ViewStyle, View, TextInputProps as TextInputProps$1, TextInput as TextInput$1, ViewProps } from 'react-native';
3
+ import { PressableProps, StyleProp, ViewStyle, View, TextInputProps as TextInputProps$1, TextInput as TextInput$1, ViewProps, TextProps as TextProps$1, TextStyle, Text as Text$1 } from 'react-native';
4
4
 
5
5
  /** React Native theme — reuses the same token names as the web theme.
6
6
  * Color values are plain CSS hex strings (e.g. "#16a34a").
@@ -233,4 +233,54 @@ declare const Avatar: React$1.ForwardRefExoticComponent<Omit<ViewProps, "style">
233
233
  style?: StyleProp<ViewStyle>;
234
234
  } & React$1.RefAttributes<View>>;
235
235
 
236
- export { Avatar, type AvatarProps, type AvatarSize, type AvatarVariant, Button, type ButtonProps, type ButtonRadius, type ButtonSize, type ButtonVariant, Checkbox, type CheckboxProps, type CheckboxSize, IconButton, type IconButtonColor, type IconButtonProps, type IconButtonRadius, type IconButtonSize, type IconButtonVariant, RehagroNativeProvider, type RehagroNativeProviderProps, type RehagroNativeTheme, TextInput, type TextInputProps, type TextInputRadius, type TextInputSize, type TextInputStatus, useRehagroTheme };
236
+ type ActivityIndicatorSize = "sm" | "md" | "lg";
237
+ type ActivityIndicatorColor = "primary" | "surface" | "custom";
238
+ type ActivityIndicatorProps = Omit<ViewProps, "style"> & {
239
+ /** Spinner size */
240
+ size?: ActivityIndicatorSize;
241
+ /** Color preset — use "custom" to provide a raw color via `color` prop */
242
+ colorVariant?: ActivityIndicatorColor;
243
+ /** Raw color value (used when colorVariant is "custom") */
244
+ color?: string;
245
+ /** Whether the indicator is visible */
246
+ animating?: boolean;
247
+ /** Custom style for the outer wrapper */
248
+ style?: StyleProp<ViewStyle>;
249
+ };
250
+ declare const ActivityIndicator: React$1.ForwardRefExoticComponent<Omit<ViewProps, "style"> & {
251
+ /** Spinner size */
252
+ size?: ActivityIndicatorSize;
253
+ /** Color preset — use "custom" to provide a raw color via `color` prop */
254
+ colorVariant?: ActivityIndicatorColor;
255
+ /** Raw color value (used when colorVariant is "custom") */
256
+ color?: string;
257
+ /** Whether the indicator is visible */
258
+ animating?: boolean;
259
+ /** Custom style for the outer wrapper */
260
+ style?: StyleProp<ViewStyle>;
261
+ } & React$1.RefAttributes<View>>;
262
+
263
+ type TextVariant = "h1" | "h2" | "h3" | "h4" | "body" | "bodyLg" | "caption" | "label";
264
+ type TextColor = "default" | "muted" | "primary" | "danger" | "success" | "warning";
265
+ type TextProps = Omit<TextProps$1, "style"> & {
266
+ /** Typographic variant */
267
+ variant?: TextVariant;
268
+ /** Color preset */
269
+ color?: TextColor;
270
+ /** Bold weight */
271
+ bold?: boolean;
272
+ /** Custom style */
273
+ style?: StyleProp<TextStyle>;
274
+ };
275
+ declare const Text: React$1.ForwardRefExoticComponent<Omit<TextProps$1, "style"> & {
276
+ /** Typographic variant */
277
+ variant?: TextVariant;
278
+ /** Color preset */
279
+ color?: TextColor;
280
+ /** Bold weight */
281
+ bold?: boolean;
282
+ /** Custom style */
283
+ style?: StyleProp<TextStyle>;
284
+ } & React$1.RefAttributes<Text$1>>;
285
+
286
+ export { ActivityIndicator, type ActivityIndicatorColor, type ActivityIndicatorProps, type ActivityIndicatorSize, Avatar, type AvatarProps, type AvatarSize, type AvatarVariant, Button, type ButtonProps, type ButtonRadius, type ButtonSize, type ButtonVariant, Checkbox, type CheckboxProps, type CheckboxSize, IconButton, type IconButtonColor, type IconButtonProps, type IconButtonRadius, type IconButtonSize, type IconButtonVariant, RehagroNativeProvider, type RehagroNativeProviderProps, type RehagroNativeTheme, Text, type TextColor, TextInput, type TextInputProps, type TextInputRadius, type TextInputSize, type TextInputStatus, type TextProps, type TextVariant, useRehagroTheme };
package/dist/native.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React$1 from 'react';
3
- import { PressableProps, StyleProp, ViewStyle, View, TextInputProps as TextInputProps$1, TextInput as TextInput$1, ViewProps } from 'react-native';
3
+ import { PressableProps, StyleProp, ViewStyle, View, TextInputProps as TextInputProps$1, TextInput as TextInput$1, ViewProps, TextProps as TextProps$1, TextStyle, Text as Text$1 } from 'react-native';
4
4
 
5
5
  /** React Native theme — reuses the same token names as the web theme.
6
6
  * Color values are plain CSS hex strings (e.g. "#16a34a").
@@ -233,4 +233,54 @@ declare const Avatar: React$1.ForwardRefExoticComponent<Omit<ViewProps, "style">
233
233
  style?: StyleProp<ViewStyle>;
234
234
  } & React$1.RefAttributes<View>>;
235
235
 
236
- export { Avatar, type AvatarProps, type AvatarSize, type AvatarVariant, Button, type ButtonProps, type ButtonRadius, type ButtonSize, type ButtonVariant, Checkbox, type CheckboxProps, type CheckboxSize, IconButton, type IconButtonColor, type IconButtonProps, type IconButtonRadius, type IconButtonSize, type IconButtonVariant, RehagroNativeProvider, type RehagroNativeProviderProps, type RehagroNativeTheme, TextInput, type TextInputProps, type TextInputRadius, type TextInputSize, type TextInputStatus, useRehagroTheme };
236
+ type ActivityIndicatorSize = "sm" | "md" | "lg";
237
+ type ActivityIndicatorColor = "primary" | "surface" | "custom";
238
+ type ActivityIndicatorProps = Omit<ViewProps, "style"> & {
239
+ /** Spinner size */
240
+ size?: ActivityIndicatorSize;
241
+ /** Color preset — use "custom" to provide a raw color via `color` prop */
242
+ colorVariant?: ActivityIndicatorColor;
243
+ /** Raw color value (used when colorVariant is "custom") */
244
+ color?: string;
245
+ /** Whether the indicator is visible */
246
+ animating?: boolean;
247
+ /** Custom style for the outer wrapper */
248
+ style?: StyleProp<ViewStyle>;
249
+ };
250
+ declare const ActivityIndicator: React$1.ForwardRefExoticComponent<Omit<ViewProps, "style"> & {
251
+ /** Spinner size */
252
+ size?: ActivityIndicatorSize;
253
+ /** Color preset — use "custom" to provide a raw color via `color` prop */
254
+ colorVariant?: ActivityIndicatorColor;
255
+ /** Raw color value (used when colorVariant is "custom") */
256
+ color?: string;
257
+ /** Whether the indicator is visible */
258
+ animating?: boolean;
259
+ /** Custom style for the outer wrapper */
260
+ style?: StyleProp<ViewStyle>;
261
+ } & React$1.RefAttributes<View>>;
262
+
263
+ type TextVariant = "h1" | "h2" | "h3" | "h4" | "body" | "bodyLg" | "caption" | "label";
264
+ type TextColor = "default" | "muted" | "primary" | "danger" | "success" | "warning";
265
+ type TextProps = Omit<TextProps$1, "style"> & {
266
+ /** Typographic variant */
267
+ variant?: TextVariant;
268
+ /** Color preset */
269
+ color?: TextColor;
270
+ /** Bold weight */
271
+ bold?: boolean;
272
+ /** Custom style */
273
+ style?: StyleProp<TextStyle>;
274
+ };
275
+ declare const Text: React$1.ForwardRefExoticComponent<Omit<TextProps$1, "style"> & {
276
+ /** Typographic variant */
277
+ variant?: TextVariant;
278
+ /** Color preset */
279
+ color?: TextColor;
280
+ /** Bold weight */
281
+ bold?: boolean;
282
+ /** Custom style */
283
+ style?: StyleProp<TextStyle>;
284
+ } & React$1.RefAttributes<Text$1>>;
285
+
286
+ export { ActivityIndicator, type ActivityIndicatorColor, type ActivityIndicatorProps, type ActivityIndicatorSize, Avatar, type AvatarProps, type AvatarSize, type AvatarVariant, Button, type ButtonProps, type ButtonRadius, type ButtonSize, type ButtonVariant, Checkbox, type CheckboxProps, type CheckboxSize, IconButton, type IconButtonColor, type IconButtonProps, type IconButtonRadius, type IconButtonSize, type IconButtonVariant, RehagroNativeProvider, type RehagroNativeProviderProps, type RehagroNativeTheme, Text, type TextColor, TextInput, type TextInputProps, type TextInputRadius, type TextInputSize, type TextInputStatus, type TextProps, type TextVariant, useRehagroTheme };
package/dist/native.js CHANGED
@@ -484,12 +484,81 @@ var Avatar = react.forwardRef(function Avatar2({ src, alt = "", initials, size =
484
484
  }
485
485
  );
486
486
  });
487
+ var sizeMap = {
488
+ sm: "small",
489
+ md: "large",
490
+ lg: 48
491
+ };
492
+ var ActivityIndicator3 = react.forwardRef(
493
+ function ActivityIndicator4({
494
+ size = "md",
495
+ colorVariant = "primary",
496
+ color,
497
+ animating = true,
498
+ style,
499
+ accessibilityLabel = "Carregando",
500
+ ...rest
501
+ }, ref) {
502
+ const theme = useRehagroTheme();
503
+ const resolvedColor = colorVariant === "custom" && color ? color : colorVariant === "surface" ? theme.surface : theme.primary;
504
+ const spinnerSize = sizeMap[size];
505
+ return /* @__PURE__ */ jsxRuntime.jsx(
506
+ reactNative.View,
507
+ {
508
+ ref,
509
+ accessible: true,
510
+ accessibilityRole: "progressbar",
511
+ accessibilityLabel,
512
+ accessibilityState: { busy: animating },
513
+ style,
514
+ ...rest,
515
+ children: /* @__PURE__ */ jsxRuntime.jsx(
516
+ reactNative.ActivityIndicator,
517
+ {
518
+ animating,
519
+ size: spinnerSize,
520
+ color: resolvedColor
521
+ }
522
+ )
523
+ }
524
+ );
525
+ }
526
+ );
527
+ var variantStyles = {
528
+ h1: { fontSize: 32, lineHeight: 40, fontWeight: "700" },
529
+ h2: { fontSize: 24, lineHeight: 32, fontWeight: "700" },
530
+ h3: { fontSize: 20, lineHeight: 28, fontWeight: "600" },
531
+ h4: { fontSize: 18, lineHeight: 26, fontWeight: "600" },
532
+ bodyLg: { fontSize: 16, lineHeight: 24, fontWeight: "400" },
533
+ body: { fontSize: 14, lineHeight: 20, fontWeight: "400" },
534
+ label: { fontSize: 14, lineHeight: 20, fontWeight: "500" },
535
+ caption: { fontSize: 12, lineHeight: 16, fontWeight: "400" }
536
+ };
537
+ var Text5 = react.forwardRef(function Text6({ variant = "body", color = "default", bold = false, style, children, ...rest }, ref) {
538
+ const theme = useRehagroTheme();
539
+ const colorMap = {
540
+ default: theme.text,
541
+ muted: theme.textMuted,
542
+ primary: theme.primary,
543
+ danger: theme.danger,
544
+ success: theme.success,
545
+ warning: theme.warning
546
+ };
547
+ const resolvedStyle = {
548
+ ...variantStyles[variant],
549
+ color: colorMap[color],
550
+ ...bold ? { fontWeight: "700" } : {}
551
+ };
552
+ return /* @__PURE__ */ jsxRuntime.jsx(reactNative.Text, { ref, style: [resolvedStyle, style], ...rest, children });
553
+ });
487
554
 
555
+ exports.ActivityIndicator = ActivityIndicator3;
488
556
  exports.Avatar = Avatar;
489
557
  exports.Button = Button;
490
558
  exports.Checkbox = Checkbox;
491
559
  exports.IconButton = IconButton;
492
560
  exports.RehagroNativeProvider = RehagroNativeProvider;
561
+ exports.Text = Text5;
493
562
  exports.TextInput = TextInput;
494
563
  exports.useRehagroTheme = useRehagroTheme;
495
564
  //# sourceMappingURL=native.js.map
@@ -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"],"names":["createContext","useContext","useMemo","forwardRef","Button","jsx","Pressable","jsxs","Fragment","ActivityIndicator","View","Text","IconButton","TextInput","useState","RNTextInput","Checkbox","useCallback","Avatar","Image"],"mappings":"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","file":"native.js","sourcesContent":["import type { RehagroTheme } from \"./theme\";\n\n/** React Native theme — reuses the same token names as the web theme.\n * Color values are plain CSS hex strings (e.g. \"#16a34a\").\n * Spacing/radius/border values are numbers (device-independent pixels).\n */\nexport type RehagroNativeTheme = {\n // Brand colors\n primary?: string;\n primaryHover?: string;\n secondary?: string;\n secondaryHover?: string;\n danger?: string;\n dangerHover?: string;\n warning?: string;\n success?: string;\n\n // Semantic colors\n text?: string;\n textMuted?: string;\n surface?: string;\n background?: string;\n border?: string;\n\n // Border radius (numbers = dp)\n radiusXxs?: number;\n radiusXs?: number;\n radiusSm?: number;\n radiusMd?: number;\n radiusLg?: number;\n radiusXl?: number;\n\n // Border width\n borderWidthSm?: number;\n borderWidthMd?: number;\n borderWidthLg?: number;\n\n // Input sizes\n inputHeightSm?: number;\n inputHeightMd?: number;\n inputHeightLg?: number;\n};\n\nexport type RehagroNativeProviderProps = {\n /** Theme overrides — any token not provided keeps the default value */\n theme?: RehagroNativeTheme;\n children: React.ReactNode;\n};\n\nexport const DEFAULT_NATIVE_THEME: Required<RehagroNativeTheme> = {\n primary: \"#16a34a\",\n primaryHover: \"#15803d\",\n secondary: \"#6b7280\",\n secondaryHover: \"#4b5563\",\n danger: \"#dc2626\",\n dangerHover: \"#b91c1c\",\n warning: \"#d97706\",\n success: \"#16a34a\",\n\n text: \"#111827\",\n textMuted: \"#6b7280\",\n surface: \"#ffffff\",\n background: \"#f9fafb\",\n border: \"#d1d5db\",\n\n radiusXxs: 4,\n radiusXs: 8,\n radiusSm: 12,\n radiusMd: 16,\n radiusLg: 24,\n radiusXl: 32,\n\n borderWidthSm: 1,\n borderWidthMd: 2,\n borderWidthLg: 3,\n\n inputHeightSm: 36,\n inputHeightMd: 44,\n inputHeightLg: 52,\n};\n\n// Ensures RehagroNativeTheme color keys stay in sync with RehagroTheme\ntype _ColorKeysMatch = Pick<\n RehagroTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\ntype _NativeColorKeys = Pick<\n RehagroNativeTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\n// This line will error at compile time if the color keys diverge:\ntype _ColorKeysCheck = _ColorKeysMatch extends _NativeColorKeys ? true : never;\n","import { createContext, useContext } from \"react\";\nimport type { RehagroNativeTheme } from \"./theme.native\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\n\nexport const RehagroNativeContext = createContext<Required<RehagroNativeTheme>>(DEFAULT_NATIVE_THEME);\n\nexport function useRehagroTheme(): Required<RehagroNativeTheme> {\n return useContext(RehagroNativeContext);\n}\n","import React, { useMemo } from \"react\";\nimport { RehagroNativeContext } from \"./RehagroNativeContext\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\nimport type { RehagroNativeProviderProps, RehagroNativeTheme } from \"./theme.native\";\n\nexport function RehagroNativeProvider({ theme, children }: RehagroNativeProviderProps) {\n const resolvedTheme = useMemo<Required<RehagroNativeTheme>>(\n () => ({ ...DEFAULT_NATIVE_THEME, ...theme }),\n [theme],\n );\n\n return (\n <RehagroNativeContext.Provider value={resolvedTheme}>\n {children}\n </RehagroNativeContext.Provider>\n );\n}\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\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 /** Shows loading state and disables interaction */\n loading?: boolean;\n /** Icon rendered to the left of children (hidden when loading) */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of children (hidden when loading) */\n rightIcon?: React.ReactNode;\n /** Label text */\n children?: React.ReactNode;\n /** Custom style for the outer Pressable */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const Button = forwardRef<View, ButtonProps>(function Button(\n {\n variant = \"solid\",\n size = \"md\",\n radius = \"sm\",\n loading = false,\n disabled,\n leftIcon,\n rightIcon,\n children,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isDisabled = disabled || loading;\n\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 ? theme.primaryHover : theme.primary,\n borderColor: pressed ? theme.primaryHover : theme.primary,\n };\n }\n if (variant === \"outline\") {\n return {\n borderColor: theme.primary,\n backgroundColor: pressed ? theme.primary : \"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 : theme.primary;\n return theme.primary;\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 : theme.primary}\n />\n )}\n {!loading && leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n {typeof children === \"string\" ? (\n <Text\n style={{ color: textColor(pressed), fontSize: fontSizeMap[size], fontWeight: \"500\" }}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {!loading && rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\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 = \"primary\" | \"danger\" | \"warning\" | \"success\" | \"secondary\";\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 */\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 colorTokens: Record<IconButtonColor, { 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 };\n\n const { main, hover } = colorTokens[color];\n const boxSize = sizePxMap[size];\n\n const baseStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: radiusPxMap[radius],\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 1,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const variantStyle = (pressed: boolean): ViewStyle => {\n if (variant === \"solid\") {\n return { backgroundColor: pressed ? hover : main, borderColor: pressed ? hover : main };\n }\n if (variant === \"outline\") {\n return { borderColor: main, backgroundColor: pressed ? main : \"transparent\" };\n }\n return { borderColor: \"transparent\", backgroundColor: pressed ? `${main}1a` : \"transparent\" };\n };\n\n const iconColor = (pressed: boolean): string => {\n if (variant === \"solid\") return theme.surface;\n if (variant === \"outline\") return pressed ? theme.surface : main;\n return main;\n };\n\n return (\n <Pressable\n ref={ref}\n disabled={isDisabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n accessibilityLabel={accessibilityLabel}\n style={({ pressed }) => [baseStyle, variantStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) =>\n loading ? (\n <ActivityIndicator size=\"small\" color={variant === \"solid\" ? theme.surface : main} />\n ) : (\n <View style={{ tintColor: iconColor(pressed) } as ViewStyle}>\n {children}\n </View>\n )\n }\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport {\n TextInput as RNTextInput,\n Text,\n View,\n type TextInputProps as RNTextInputProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextInputStatus = \"default\" | \"error\";\nexport type TextInputSize = \"sm\" | \"md\" | \"lg\";\nexport type TextInputRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type TextInputProps = Omit<RNTextInputProps, \"style\"> & {\n /** Label text displayed above the input */\n label?: string;\n /** Subtitle displayed next to the label */\n subtitle?: string;\n /** Validation status */\n status?: TextInputStatus;\n /** Input size */\n size?: TextInputSize;\n /** Border radius */\n radius?: TextInputRadius;\n /** Icon rendered to the left of the input */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of the input */\n rightIcon?: React.ReactNode;\n /** Helper/error message displayed below the input */\n helperText?: React.ReactNode;\n /** Custom style for the outermost wrapper */\n wrapperStyle?: StyleProp<ViewStyle>;\n /** Custom style for the input container */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const TextInput = forwardRef<RNTextInput, TextInputProps>(function TextInput(\n {\n label,\n subtitle,\n status = \"default\",\n size = \"md\",\n radius = \"xs\",\n leftIcon,\n rightIcon,\n helperText,\n editable = true,\n wrapperStyle,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const [focused, setFocused] = useState(false);\n\n const isDisabled = editable === false;\n\n const heightMap: Record<TextInputSize, number> = {\n sm: theme.inputHeightSm,\n md: theme.inputHeightMd,\n lg: theme.inputHeightLg,\n };\n\n const paddingMap: Record<TextInputSize, number> = {\n sm: 12,\n md: 14,\n lg: 16,\n };\n\n const fontSizeMap: Record<TextInputSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const radiusMap: Record<TextInputRadius, number> = {\n none: 0,\n xxs: theme.radiusXxs,\n xs: theme.radiusXs,\n sm: theme.radiusSm,\n md: theme.radiusMd,\n lg: theme.radiusLg,\n xl: theme.radiusXl,\n full: 9999,\n };\n\n const borderColor =\n status === \"error\"\n ? theme.danger\n : focused\n ? theme.primary\n : theme.border;\n\n const containerStyle: ViewStyle = {\n height: heightMap[size],\n paddingHorizontal: paddingMap[size],\n borderRadius: radiusMap[radius],\n borderWidth: theme.borderWidthSm,\n borderColor,\n backgroundColor: isDisabled ? theme.background : theme.surface,\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 8,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const inputId = accessibilityLabel ?? label;\n\n return (\n <View style={[{ gap: 4 }, wrapperStyle]}>\n {/* Label + Subtitle */}\n {label && (\n <View style={{ flexDirection: \"row\", alignItems: \"baseline\", gap: 4 }}>\n <Text style={{ fontSize: 14, fontWeight: \"500\", color: theme.text }}>\n {label}\n </Text>\n {subtitle && (\n <Text style={{ fontSize: 14, color: theme.textMuted }}>{subtitle}</Text>\n )}\n </View>\n )}\n\n {/* Input container */}\n <View style={[containerStyle, style]}>\n {leftIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {leftIcon}\n </View>\n )}\n\n <RNTextInput\n ref={ref}\n editable={editable}\n accessibilityLabel={inputId}\n accessibilityState={{ disabled: isDisabled }}\n aria-invalid={status === \"error\"}\n onFocus={(e) => {\n setFocused(true);\n rest.onFocus?.(e);\n }}\n onBlur={(e) => {\n setFocused(false);\n rest.onBlur?.(e);\n }}\n style={{\n flex: 1,\n fontSize: fontSizeMap[size],\n color: theme.text,\n }}\n placeholderTextColor={theme.textMuted}\n {...rest}\n />\n\n {rightIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {rightIcon}\n </View>\n )}\n </View>\n\n {/* Helper text */}\n {helperText && (\n <Text\n style={{\n fontSize: 12,\n color: status === \"error\" ? theme.danger : theme.textMuted,\n }}\n >\n {helperText}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef, useCallback, useState } from \"react\";\nimport {\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type CheckboxSize = \"sm\" | \"md\" | \"lg\";\n\nexport type CheckboxProps = Omit<PressableProps, \"style\" | \"onPress\"> & {\n /** Checkbox size */\n size?: CheckboxSize;\n /** Label text displayed next to the checkbox */\n label?: string;\n /** Controlled checked state */\n checked?: boolean;\n /** Default checked state (uncontrolled) */\n defaultChecked?: boolean;\n /** Indeterminate state (partially checked) */\n indeterminate?: boolean;\n /** Callback fired when the value changes */\n onChange?: (checked: boolean) => void;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst CheckIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size,\n height: size,\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n {/* Simple checkmark drawn with two Views rotated — no SVG dep needed */}\n <View\n style={{\n position: \"absolute\",\n width: size * 0.55,\n height: size * 0.3,\n borderLeftWidth: 2,\n borderBottomWidth: 2,\n borderColor: color,\n transform: [{ rotate: \"-45deg\" }, { translateY: -size * 0.05 }],\n }}\n />\n </View>\n);\n\nconst MinusIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size * 0.7,\n height: 2,\n backgroundColor: color,\n }}\n />\n);\n\nexport const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox(\n {\n size = \"md\",\n label,\n checked: controlledChecked,\n defaultChecked = false,\n indeterminate = false,\n disabled,\n onChange,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n\n const isChecked = isControlled ? controlledChecked : internalChecked;\n const isActive = isChecked || indeterminate;\n\n const handlePress = useCallback(() => {\n if (disabled) return;\n const next = !isChecked;\n if (!isControlled) setInternalChecked(next);\n onChange?.(next);\n }, [disabled, isChecked, isControlled, onChange]);\n\n const boxSizeMap: Record<CheckboxSize, number> = {\n sm: 16,\n md: 20,\n lg: 24,\n };\n\n const iconSizeMap: Record<CheckboxSize, number> = {\n sm: 10,\n md: 12,\n lg: 14,\n };\n\n const fontSizeMap: Record<CheckboxSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const boxSize = boxSizeMap[size];\n const iconSize = iconSizeMap[size];\n\n const boxStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: theme.radiusXxs,\n borderWidth: theme.borderWidthSm,\n borderColor: isActive ? theme.primary : theme.border,\n backgroundColor: isActive ? theme.primary : theme.surface,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n return (\n <Pressable\n ref={ref}\n onPress={handlePress}\n disabled={disabled}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked: indeterminate ? \"mixed\" : isChecked, disabled: !!disabled }}\n accessibilityLabel={accessibilityLabel ?? label}\n style={[{ flexDirection: \"row\", alignItems: \"center\", gap: 8, opacity: disabled ? 0.5 : 1 }, style]}\n {...rest}\n >\n <View style={boxStyle}>\n {indeterminate ? (\n <MinusIcon size={iconSize} color={theme.surface} />\n ) : isChecked ? (\n <CheckIcon size={iconSize} color={theme.surface} />\n ) : null}\n </View>\n\n {label && (\n <Text style={{ fontSize: fontSizeMap[size], color: theme.text }}>\n {label}\n </Text>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport { Image, Text, View, type StyleProp, type ViewStyle, type ViewProps } from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type AvatarVariant = \"circle\" | \"square\";\n\nexport type AvatarProps = Omit<ViewProps, \"style\"> & {\n /** Image source URL */\n src?: string;\n /** Alt text (used as accessibility label and initials fallback) */\n alt?: string;\n /** Fallback initials shown when image is unavailable */\n initials?: string;\n /** Avatar size */\n size?: AvatarSize;\n /** Shape variant */\n variant?: AvatarVariant;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const Avatar = forwardRef<View, AvatarProps>(function Avatar(\n { src, alt = \"\", initials, size = \"md\", variant = \"circle\", style, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n const [imgError, setImgError] = useState(false);\n const showImage = !!src && !imgError;\n\n const fallbackLabel = initials\n ? initials.slice(0, 2).toUpperCase()\n : alt\n ? alt\n .split(\" \")\n .slice(0, 2)\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()\n : \"?\";\n\n const sizePxMap: Record<AvatarSize, number> = {\n sm: 32,\n md: 40,\n lg: 48,\n xl: 64,\n };\n\n const fontSizeMap: Record<AvatarSize, number> = {\n sm: 12,\n md: 14,\n lg: 18,\n xl: 20,\n };\n\n const boxSize = sizePxMap[size];\n const borderRadius = variant === \"circle\" ? boxSize / 2 : theme.radiusSm;\n\n const containerStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius,\n backgroundColor: theme.primary,\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n };\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"image\"\n accessibilityLabel={alt || initials || fallbackLabel}\n style={[containerStyle, style]}\n {...rest}\n >\n {showImage ? (\n <Image\n source={{ uri: src }}\n style={{ width: boxSize, height: boxSize, borderRadius }}\n onError={() => setImgError(true)}\n accessibilityLabel={alt}\n />\n ) : (\n <Text\n style={{\n fontSize: fontSizeMap[size],\n fontWeight: \"500\",\n color: theme.surface,\n }}\n accessibilityElementsHidden\n >\n {fallbackLabel}\n </Text>\n )}\n </View>\n );\n});\n"]}
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"],"names":["createContext","useContext","useMemo","forwardRef","Button","jsx","Pressable","jsxs","Fragment","ActivityIndicator","View","Text","IconButton","TextInput","useState","RNTextInput","Checkbox","useCallback","Avatar","Image","RNActivityIndicator","RNText"],"mappings":"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","file":"native.js","sourcesContent":["import type { RehagroTheme } from \"./theme\";\n\n/** React Native theme — reuses the same token names as the web theme.\n * Color values are plain CSS hex strings (e.g. \"#16a34a\").\n * Spacing/radius/border values are numbers (device-independent pixels).\n */\nexport type RehagroNativeTheme = {\n // Brand colors\n primary?: string;\n primaryHover?: string;\n secondary?: string;\n secondaryHover?: string;\n danger?: string;\n dangerHover?: string;\n warning?: string;\n success?: string;\n\n // Semantic colors\n text?: string;\n textMuted?: string;\n surface?: string;\n background?: string;\n border?: string;\n\n // Border radius (numbers = dp)\n radiusXxs?: number;\n radiusXs?: number;\n radiusSm?: number;\n radiusMd?: number;\n radiusLg?: number;\n radiusXl?: number;\n\n // Border width\n borderWidthSm?: number;\n borderWidthMd?: number;\n borderWidthLg?: number;\n\n // Input sizes\n inputHeightSm?: number;\n inputHeightMd?: number;\n inputHeightLg?: number;\n};\n\nexport type RehagroNativeProviderProps = {\n /** Theme overrides — any token not provided keeps the default value */\n theme?: RehagroNativeTheme;\n children: React.ReactNode;\n};\n\nexport const DEFAULT_NATIVE_THEME: Required<RehagroNativeTheme> = {\n primary: \"#16a34a\",\n primaryHover: \"#15803d\",\n secondary: \"#6b7280\",\n secondaryHover: \"#4b5563\",\n danger: \"#dc2626\",\n dangerHover: \"#b91c1c\",\n warning: \"#d97706\",\n success: \"#16a34a\",\n\n text: \"#111827\",\n textMuted: \"#6b7280\",\n surface: \"#ffffff\",\n background: \"#f9fafb\",\n border: \"#d1d5db\",\n\n radiusXxs: 4,\n radiusXs: 8,\n radiusSm: 12,\n radiusMd: 16,\n radiusLg: 24,\n radiusXl: 32,\n\n borderWidthSm: 1,\n borderWidthMd: 2,\n borderWidthLg: 3,\n\n inputHeightSm: 36,\n inputHeightMd: 44,\n inputHeightLg: 52,\n};\n\n// Ensures RehagroNativeTheme color keys stay in sync with RehagroTheme\ntype _ColorKeysMatch = Pick<\n RehagroTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\ntype _NativeColorKeys = Pick<\n RehagroNativeTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\n// This line will error at compile time if the color keys diverge:\ntype _ColorKeysCheck = _ColorKeysMatch extends _NativeColorKeys ? true : never;\n","import { createContext, useContext } from \"react\";\nimport type { RehagroNativeTheme } from \"./theme.native\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\n\nexport const RehagroNativeContext = createContext<Required<RehagroNativeTheme>>(DEFAULT_NATIVE_THEME);\n\nexport function useRehagroTheme(): Required<RehagroNativeTheme> {\n return useContext(RehagroNativeContext);\n}\n","import React, { useMemo } from \"react\";\nimport { RehagroNativeContext } from \"./RehagroNativeContext\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\nimport type { RehagroNativeProviderProps, RehagroNativeTheme } from \"./theme.native\";\n\nexport function RehagroNativeProvider({ theme, children }: RehagroNativeProviderProps) {\n const resolvedTheme = useMemo<Required<RehagroNativeTheme>>(\n () => ({ ...DEFAULT_NATIVE_THEME, ...theme }),\n [theme],\n );\n\n return (\n <RehagroNativeContext.Provider value={resolvedTheme}>\n {children}\n </RehagroNativeContext.Provider>\n );\n}\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\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 /** Shows loading state and disables interaction */\n loading?: boolean;\n /** Icon rendered to the left of children (hidden when loading) */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of children (hidden when loading) */\n rightIcon?: React.ReactNode;\n /** Label text */\n children?: React.ReactNode;\n /** Custom style for the outer Pressable */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const Button = forwardRef<View, ButtonProps>(function Button(\n {\n variant = \"solid\",\n size = \"md\",\n radius = \"sm\",\n loading = false,\n disabled,\n leftIcon,\n rightIcon,\n children,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isDisabled = disabled || loading;\n\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 ? theme.primaryHover : theme.primary,\n borderColor: pressed ? theme.primaryHover : theme.primary,\n };\n }\n if (variant === \"outline\") {\n return {\n borderColor: theme.primary,\n backgroundColor: pressed ? theme.primary : \"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 : theme.primary;\n return theme.primary;\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 : theme.primary}\n />\n )}\n {!loading && leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n {typeof children === \"string\" ? (\n <Text\n style={{ color: textColor(pressed), fontSize: fontSizeMap[size], fontWeight: \"500\" }}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {!loading && rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\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 = \"primary\" | \"danger\" | \"warning\" | \"success\" | \"secondary\";\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 */\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 colorTokens: Record<IconButtonColor, { 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 };\n\n const { main, hover } = colorTokens[color];\n const boxSize = sizePxMap[size];\n\n const baseStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: radiusPxMap[radius],\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 1,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const variantStyle = (pressed: boolean): ViewStyle => {\n if (variant === \"solid\") {\n return { backgroundColor: pressed ? hover : main, borderColor: pressed ? hover : main };\n }\n if (variant === \"outline\") {\n return { borderColor: main, backgroundColor: pressed ? main : \"transparent\" };\n }\n return { borderColor: \"transparent\", backgroundColor: pressed ? `${main}1a` : \"transparent\" };\n };\n\n const iconColor = (pressed: boolean): string => {\n if (variant === \"solid\") return theme.surface;\n if (variant === \"outline\") return pressed ? theme.surface : main;\n return main;\n };\n\n return (\n <Pressable\n ref={ref}\n disabled={isDisabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n accessibilityLabel={accessibilityLabel}\n style={({ pressed }) => [baseStyle, variantStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) =>\n loading ? (\n <ActivityIndicator size=\"small\" color={variant === \"solid\" ? theme.surface : main} />\n ) : (\n <View style={{ tintColor: iconColor(pressed) } as ViewStyle}>\n {children}\n </View>\n )\n }\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport {\n TextInput as RNTextInput,\n Text,\n View,\n type TextInputProps as RNTextInputProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextInputStatus = \"default\" | \"error\";\nexport type TextInputSize = \"sm\" | \"md\" | \"lg\";\nexport type TextInputRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type TextInputProps = Omit<RNTextInputProps, \"style\"> & {\n /** Label text displayed above the input */\n label?: string;\n /** Subtitle displayed next to the label */\n subtitle?: string;\n /** Validation status */\n status?: TextInputStatus;\n /** Input size */\n size?: TextInputSize;\n /** Border radius */\n radius?: TextInputRadius;\n /** Icon rendered to the left of the input */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of the input */\n rightIcon?: React.ReactNode;\n /** Helper/error message displayed below the input */\n helperText?: React.ReactNode;\n /** Custom style for the outermost wrapper */\n wrapperStyle?: StyleProp<ViewStyle>;\n /** Custom style for the input container */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const TextInput = forwardRef<RNTextInput, TextInputProps>(function TextInput(\n {\n label,\n subtitle,\n status = \"default\",\n size = \"md\",\n radius = \"xs\",\n leftIcon,\n rightIcon,\n helperText,\n editable = true,\n wrapperStyle,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const [focused, setFocused] = useState(false);\n\n const isDisabled = editable === false;\n\n const heightMap: Record<TextInputSize, number> = {\n sm: theme.inputHeightSm,\n md: theme.inputHeightMd,\n lg: theme.inputHeightLg,\n };\n\n const paddingMap: Record<TextInputSize, number> = {\n sm: 12,\n md: 14,\n lg: 16,\n };\n\n const fontSizeMap: Record<TextInputSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const radiusMap: Record<TextInputRadius, number> = {\n none: 0,\n xxs: theme.radiusXxs,\n xs: theme.radiusXs,\n sm: theme.radiusSm,\n md: theme.radiusMd,\n lg: theme.radiusLg,\n xl: theme.radiusXl,\n full: 9999,\n };\n\n const borderColor =\n status === \"error\"\n ? theme.danger\n : focused\n ? theme.primary\n : theme.border;\n\n const containerStyle: ViewStyle = {\n height: heightMap[size],\n paddingHorizontal: paddingMap[size],\n borderRadius: radiusMap[radius],\n borderWidth: theme.borderWidthSm,\n borderColor,\n backgroundColor: isDisabled ? theme.background : theme.surface,\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 8,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const inputId = accessibilityLabel ?? label;\n\n return (\n <View style={[{ gap: 4 }, wrapperStyle]}>\n {/* Label + Subtitle */}\n {label && (\n <View style={{ flexDirection: \"row\", alignItems: \"baseline\", gap: 4 }}>\n <Text style={{ fontSize: 14, fontWeight: \"500\", color: theme.text }}>\n {label}\n </Text>\n {subtitle && (\n <Text style={{ fontSize: 14, color: theme.textMuted }}>{subtitle}</Text>\n )}\n </View>\n )}\n\n {/* Input container */}\n <View style={[containerStyle, style]}>\n {leftIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {leftIcon}\n </View>\n )}\n\n <RNTextInput\n ref={ref}\n editable={editable}\n accessibilityLabel={inputId}\n accessibilityState={{ disabled: isDisabled }}\n aria-invalid={status === \"error\"}\n onFocus={(e) => {\n setFocused(true);\n rest.onFocus?.(e);\n }}\n onBlur={(e) => {\n setFocused(false);\n rest.onBlur?.(e);\n }}\n style={{\n flex: 1,\n fontSize: fontSizeMap[size],\n color: theme.text,\n }}\n placeholderTextColor={theme.textMuted}\n {...rest}\n />\n\n {rightIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {rightIcon}\n </View>\n )}\n </View>\n\n {/* Helper text */}\n {helperText && (\n <Text\n style={{\n fontSize: 12,\n color: status === \"error\" ? theme.danger : theme.textMuted,\n }}\n >\n {helperText}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef, useCallback, useState } from \"react\";\nimport {\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type CheckboxSize = \"sm\" | \"md\" | \"lg\";\n\nexport type CheckboxProps = Omit<PressableProps, \"style\" | \"onPress\"> & {\n /** Checkbox size */\n size?: CheckboxSize;\n /** Label text displayed next to the checkbox */\n label?: string;\n /** Controlled checked state */\n checked?: boolean;\n /** Default checked state (uncontrolled) */\n defaultChecked?: boolean;\n /** Indeterminate state (partially checked) */\n indeterminate?: boolean;\n /** Callback fired when the value changes */\n onChange?: (checked: boolean) => void;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst CheckIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size,\n height: size,\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n {/* Simple checkmark drawn with two Views rotated — no SVG dep needed */}\n <View\n style={{\n position: \"absolute\",\n width: size * 0.55,\n height: size * 0.3,\n borderLeftWidth: 2,\n borderBottomWidth: 2,\n borderColor: color,\n transform: [{ rotate: \"-45deg\" }, { translateY: -size * 0.05 }],\n }}\n />\n </View>\n);\n\nconst MinusIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size * 0.7,\n height: 2,\n backgroundColor: color,\n }}\n />\n);\n\nexport const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox(\n {\n size = \"md\",\n label,\n checked: controlledChecked,\n defaultChecked = false,\n indeterminate = false,\n disabled,\n onChange,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n\n const isChecked = isControlled ? controlledChecked : internalChecked;\n const isActive = isChecked || indeterminate;\n\n const handlePress = useCallback(() => {\n if (disabled) return;\n const next = !isChecked;\n if (!isControlled) setInternalChecked(next);\n onChange?.(next);\n }, [disabled, isChecked, isControlled, onChange]);\n\n const boxSizeMap: Record<CheckboxSize, number> = {\n sm: 16,\n md: 20,\n lg: 24,\n };\n\n const iconSizeMap: Record<CheckboxSize, number> = {\n sm: 10,\n md: 12,\n lg: 14,\n };\n\n const fontSizeMap: Record<CheckboxSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const boxSize = boxSizeMap[size];\n const iconSize = iconSizeMap[size];\n\n const boxStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: theme.radiusXxs,\n borderWidth: theme.borderWidthSm,\n borderColor: isActive ? theme.primary : theme.border,\n backgroundColor: isActive ? theme.primary : theme.surface,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n return (\n <Pressable\n ref={ref}\n onPress={handlePress}\n disabled={disabled}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked: indeterminate ? \"mixed\" : isChecked, disabled: !!disabled }}\n accessibilityLabel={accessibilityLabel ?? label}\n style={[{ flexDirection: \"row\", alignItems: \"center\", gap: 8, opacity: disabled ? 0.5 : 1 }, style]}\n {...rest}\n >\n <View style={boxStyle}>\n {indeterminate ? (\n <MinusIcon size={iconSize} color={theme.surface} />\n ) : isChecked ? (\n <CheckIcon size={iconSize} color={theme.surface} />\n ) : null}\n </View>\n\n {label && (\n <Text style={{ fontSize: fontSizeMap[size], color: theme.text }}>\n {label}\n </Text>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport { Image, Text, View, type StyleProp, type ViewStyle, type ViewProps } from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type AvatarVariant = \"circle\" | \"square\";\n\nexport type AvatarProps = Omit<ViewProps, \"style\"> & {\n /** Image source URL */\n src?: string;\n /** Alt text (used as accessibility label and initials fallback) */\n alt?: string;\n /** Fallback initials shown when image is unavailable */\n initials?: string;\n /** Avatar size */\n size?: AvatarSize;\n /** Shape variant */\n variant?: AvatarVariant;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const Avatar = forwardRef<View, AvatarProps>(function Avatar(\n { src, alt = \"\", initials, size = \"md\", variant = \"circle\", style, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n const [imgError, setImgError] = useState(false);\n const showImage = !!src && !imgError;\n\n const fallbackLabel = initials\n ? initials.slice(0, 2).toUpperCase()\n : alt\n ? alt\n .split(\" \")\n .slice(0, 2)\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()\n : \"?\";\n\n const sizePxMap: Record<AvatarSize, number> = {\n sm: 32,\n md: 40,\n lg: 48,\n xl: 64,\n };\n\n const fontSizeMap: Record<AvatarSize, number> = {\n sm: 12,\n md: 14,\n lg: 18,\n xl: 20,\n };\n\n const boxSize = sizePxMap[size];\n const borderRadius = variant === \"circle\" ? boxSize / 2 : theme.radiusSm;\n\n const containerStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius,\n backgroundColor: theme.primary,\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n };\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"image\"\n accessibilityLabel={alt || initials || fallbackLabel}\n style={[containerStyle, style]}\n {...rest}\n >\n {showImage ? (\n <Image\n source={{ uri: src }}\n style={{ width: boxSize, height: boxSize, borderRadius }}\n onError={() => setImgError(true)}\n accessibilityLabel={alt}\n />\n ) : (\n <Text\n style={{\n fontSize: fontSizeMap[size],\n fontWeight: \"500\",\n color: theme.surface,\n }}\n accessibilityElementsHidden\n >\n {fallbackLabel}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator as RNActivityIndicator,\n View,\n type StyleProp,\n type ViewStyle,\n type ViewProps,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type ActivityIndicatorSize = \"sm\" | \"md\" | \"lg\";\nexport type ActivityIndicatorColor = \"primary\" | \"surface\" | \"custom\";\n\nexport type ActivityIndicatorProps = Omit<ViewProps, \"style\"> & {\n /** Spinner size */\n size?: ActivityIndicatorSize;\n /** Color preset — use \"custom\" to provide a raw color via `color` prop */\n colorVariant?: ActivityIndicatorColor;\n /** Raw color value (used when colorVariant is \"custom\") */\n color?: string;\n /** Whether the indicator is visible */\n animating?: boolean;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst sizeMap: Record<ActivityIndicatorSize, number | \"small\" | \"large\"> = {\n sm: \"small\",\n md: \"large\",\n lg: 48,\n};\n\nexport const ActivityIndicator = forwardRef<View, ActivityIndicatorProps>(\n function ActivityIndicator(\n {\n size = \"md\",\n colorVariant = \"primary\",\n color,\n animating = true,\n style,\n accessibilityLabel = \"Carregando\",\n ...rest\n },\n ref,\n ) {\n const theme = useRehagroTheme();\n\n const resolvedColor =\n colorVariant === \"custom\" && color\n ? color\n : colorVariant === \"surface\"\n ? theme.surface\n : theme.primary;\n\n const spinnerSize = sizeMap[size];\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"progressbar\"\n accessibilityLabel={accessibilityLabel}\n accessibilityState={{ busy: animating }}\n style={style}\n {...rest}\n >\n <RNActivityIndicator\n animating={animating}\n size={spinnerSize as \"small\" | \"large\"}\n color={resolvedColor}\n />\n </View>\n );\n },\n);\n","import React, { forwardRef } from \"react\";\nimport {\n Text as RNText,\n type TextProps as RNTextProps,\n type StyleProp,\n type TextStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextVariant =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"body\"\n | \"bodyLg\"\n | \"caption\"\n | \"label\";\n\nexport type TextColor = \"default\" | \"muted\" | \"primary\" | \"danger\" | \"success\" | \"warning\";\n\nexport type TextProps = Omit<RNTextProps, \"style\"> & {\n /** Typographic variant */\n variant?: TextVariant;\n /** Color preset */\n color?: TextColor;\n /** Bold weight */\n bold?: boolean;\n /** Custom style */\n style?: StyleProp<TextStyle>;\n};\n\nconst variantStyles: Record<TextVariant, TextStyle> = {\n h1: { fontSize: 32, lineHeight: 40, fontWeight: \"700\" },\n h2: { fontSize: 24, lineHeight: 32, fontWeight: \"700\" },\n h3: { fontSize: 20, lineHeight: 28, fontWeight: \"600\" },\n h4: { fontSize: 18, lineHeight: 26, fontWeight: \"600\" },\n bodyLg: { fontSize: 16, lineHeight: 24, fontWeight: \"400\" },\n body: { fontSize: 14, lineHeight: 20, fontWeight: \"400\" },\n label: { fontSize: 14, lineHeight: 20, fontWeight: \"500\" },\n caption: { fontSize: 12, lineHeight: 16, fontWeight: \"400\" },\n};\n\nexport const Text = forwardRef<RNText, TextProps>(function Text(\n { variant = \"body\", color = \"default\", bold = false, style, children, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n\n const colorMap: Record<TextColor, string> = {\n default: theme.text,\n muted: theme.textMuted,\n primary: theme.primary,\n danger: theme.danger,\n success: theme.success,\n warning: theme.warning,\n };\n\n const resolvedStyle: TextStyle = {\n ...variantStyles[variant],\n color: colorMap[color],\n ...(bold ? { fontWeight: \"700\" } : {}),\n };\n\n return (\n <RNText ref={ref} style={[resolvedStyle, style]} {...rest}>\n {children}\n </RNText>\n );\n});\n"]}
package/dist/native.mjs CHANGED
@@ -482,7 +482,74 @@ var Avatar = forwardRef(function Avatar2({ src, alt = "", initials, size = "md",
482
482
  }
483
483
  );
484
484
  });
485
+ var sizeMap = {
486
+ sm: "small",
487
+ md: "large",
488
+ lg: 48
489
+ };
490
+ var ActivityIndicator3 = forwardRef(
491
+ function ActivityIndicator4({
492
+ size = "md",
493
+ colorVariant = "primary",
494
+ color,
495
+ animating = true,
496
+ style,
497
+ accessibilityLabel = "Carregando",
498
+ ...rest
499
+ }, ref) {
500
+ const theme = useRehagroTheme();
501
+ const resolvedColor = colorVariant === "custom" && color ? color : colorVariant === "surface" ? theme.surface : theme.primary;
502
+ const spinnerSize = sizeMap[size];
503
+ return /* @__PURE__ */ jsx(
504
+ View,
505
+ {
506
+ ref,
507
+ accessible: true,
508
+ accessibilityRole: "progressbar",
509
+ accessibilityLabel,
510
+ accessibilityState: { busy: animating },
511
+ style,
512
+ ...rest,
513
+ children: /* @__PURE__ */ jsx(
514
+ ActivityIndicator,
515
+ {
516
+ animating,
517
+ size: spinnerSize,
518
+ color: resolvedColor
519
+ }
520
+ )
521
+ }
522
+ );
523
+ }
524
+ );
525
+ var variantStyles = {
526
+ h1: { fontSize: 32, lineHeight: 40, fontWeight: "700" },
527
+ h2: { fontSize: 24, lineHeight: 32, fontWeight: "700" },
528
+ h3: { fontSize: 20, lineHeight: 28, fontWeight: "600" },
529
+ h4: { fontSize: 18, lineHeight: 26, fontWeight: "600" },
530
+ bodyLg: { fontSize: 16, lineHeight: 24, fontWeight: "400" },
531
+ body: { fontSize: 14, lineHeight: 20, fontWeight: "400" },
532
+ label: { fontSize: 14, lineHeight: 20, fontWeight: "500" },
533
+ caption: { fontSize: 12, lineHeight: 16, fontWeight: "400" }
534
+ };
535
+ var Text5 = forwardRef(function Text6({ variant = "body", color = "default", bold = false, style, children, ...rest }, ref) {
536
+ const theme = useRehagroTheme();
537
+ const colorMap = {
538
+ default: theme.text,
539
+ muted: theme.textMuted,
540
+ primary: theme.primary,
541
+ danger: theme.danger,
542
+ success: theme.success,
543
+ warning: theme.warning
544
+ };
545
+ const resolvedStyle = {
546
+ ...variantStyles[variant],
547
+ color: colorMap[color],
548
+ ...bold ? { fontWeight: "700" } : {}
549
+ };
550
+ return /* @__PURE__ */ jsx(Text, { ref, style: [resolvedStyle, style], ...rest, children });
551
+ });
485
552
 
486
- export { Avatar, Button, Checkbox, IconButton, RehagroNativeProvider, TextInput, useRehagroTheme };
553
+ export { ActivityIndicator3 as ActivityIndicator, Avatar, Button, Checkbox, IconButton, RehagroNativeProvider, Text5 as Text, TextInput, useRehagroTheme };
487
554
  //# sourceMappingURL=native.mjs.map
488
555
  //# sourceMappingURL=native.mjs.map
@@ -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"],"names":["Button","jsx","forwardRef","IconButton","Pressable","ActivityIndicator","View","TextInput","jsxs","Text","RNTextInput","Checkbox","useState","Avatar"],"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\n // Semantic colors\n text?: string;\n textMuted?: string;\n surface?: string;\n background?: string;\n border?: string;\n\n // Border radius (numbers = dp)\n radiusXxs?: number;\n radiusXs?: number;\n radiusSm?: number;\n radiusMd?: number;\n radiusLg?: number;\n radiusXl?: number;\n\n // Border width\n borderWidthSm?: number;\n borderWidthMd?: number;\n borderWidthLg?: number;\n\n // Input sizes\n inputHeightSm?: number;\n inputHeightMd?: number;\n inputHeightLg?: number;\n};\n\nexport type RehagroNativeProviderProps = {\n /** Theme overrides — any token not provided keeps the default value */\n theme?: RehagroNativeTheme;\n children: React.ReactNode;\n};\n\nexport const DEFAULT_NATIVE_THEME: Required<RehagroNativeTheme> = {\n primary: \"#16a34a\",\n primaryHover: \"#15803d\",\n secondary: \"#6b7280\",\n secondaryHover: \"#4b5563\",\n danger: \"#dc2626\",\n dangerHover: \"#b91c1c\",\n warning: \"#d97706\",\n success: \"#16a34a\",\n\n text: \"#111827\",\n textMuted: \"#6b7280\",\n surface: \"#ffffff\",\n background: \"#f9fafb\",\n border: \"#d1d5db\",\n\n radiusXxs: 4,\n radiusXs: 8,\n radiusSm: 12,\n radiusMd: 16,\n radiusLg: 24,\n radiusXl: 32,\n\n borderWidthSm: 1,\n borderWidthMd: 2,\n borderWidthLg: 3,\n\n inputHeightSm: 36,\n inputHeightMd: 44,\n inputHeightLg: 52,\n};\n\n// Ensures RehagroNativeTheme color keys stay in sync with RehagroTheme\ntype _ColorKeysMatch = Pick<\n RehagroTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\ntype _NativeColorKeys = Pick<\n RehagroNativeTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\n// This line will error at compile time if the color keys diverge:\ntype _ColorKeysCheck = _ColorKeysMatch extends _NativeColorKeys ? true : never;\n","import { createContext, useContext } from \"react\";\nimport type { RehagroNativeTheme } from \"./theme.native\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\n\nexport const RehagroNativeContext = createContext<Required<RehagroNativeTheme>>(DEFAULT_NATIVE_THEME);\n\nexport function useRehagroTheme(): Required<RehagroNativeTheme> {\n return useContext(RehagroNativeContext);\n}\n","import React, { useMemo } from \"react\";\nimport { RehagroNativeContext } from \"./RehagroNativeContext\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\nimport type { RehagroNativeProviderProps, RehagroNativeTheme } from \"./theme.native\";\n\nexport function RehagroNativeProvider({ theme, children }: RehagroNativeProviderProps) {\n const resolvedTheme = useMemo<Required<RehagroNativeTheme>>(\n () => ({ ...DEFAULT_NATIVE_THEME, ...theme }),\n [theme],\n );\n\n return (\n <RehagroNativeContext.Provider value={resolvedTheme}>\n {children}\n </RehagroNativeContext.Provider>\n );\n}\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\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 /** Shows loading state and disables interaction */\n loading?: boolean;\n /** Icon rendered to the left of children (hidden when loading) */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of children (hidden when loading) */\n rightIcon?: React.ReactNode;\n /** Label text */\n children?: React.ReactNode;\n /** Custom style for the outer Pressable */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const Button = forwardRef<View, ButtonProps>(function Button(\n {\n variant = \"solid\",\n size = \"md\",\n radius = \"sm\",\n loading = false,\n disabled,\n leftIcon,\n rightIcon,\n children,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isDisabled = disabled || loading;\n\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 ? theme.primaryHover : theme.primary,\n borderColor: pressed ? theme.primaryHover : theme.primary,\n };\n }\n if (variant === \"outline\") {\n return {\n borderColor: theme.primary,\n backgroundColor: pressed ? theme.primary : \"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 : theme.primary;\n return theme.primary;\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 : theme.primary}\n />\n )}\n {!loading && leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n {typeof children === \"string\" ? (\n <Text\n style={{ color: textColor(pressed), fontSize: fontSizeMap[size], fontWeight: \"500\" }}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {!loading && rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\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 = \"primary\" | \"danger\" | \"warning\" | \"success\" | \"secondary\";\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 */\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 colorTokens: Record<IconButtonColor, { 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 };\n\n const { main, hover } = colorTokens[color];\n const boxSize = sizePxMap[size];\n\n const baseStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: radiusPxMap[radius],\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 1,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const variantStyle = (pressed: boolean): ViewStyle => {\n if (variant === \"solid\") {\n return { backgroundColor: pressed ? hover : main, borderColor: pressed ? hover : main };\n }\n if (variant === \"outline\") {\n return { borderColor: main, backgroundColor: pressed ? main : \"transparent\" };\n }\n return { borderColor: \"transparent\", backgroundColor: pressed ? `${main}1a` : \"transparent\" };\n };\n\n const iconColor = (pressed: boolean): string => {\n if (variant === \"solid\") return theme.surface;\n if (variant === \"outline\") return pressed ? theme.surface : main;\n return main;\n };\n\n return (\n <Pressable\n ref={ref}\n disabled={isDisabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n accessibilityLabel={accessibilityLabel}\n style={({ pressed }) => [baseStyle, variantStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) =>\n loading ? (\n <ActivityIndicator size=\"small\" color={variant === \"solid\" ? theme.surface : main} />\n ) : (\n <View style={{ tintColor: iconColor(pressed) } as ViewStyle}>\n {children}\n </View>\n )\n }\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport {\n TextInput as RNTextInput,\n Text,\n View,\n type TextInputProps as RNTextInputProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextInputStatus = \"default\" | \"error\";\nexport type TextInputSize = \"sm\" | \"md\" | \"lg\";\nexport type TextInputRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type TextInputProps = Omit<RNTextInputProps, \"style\"> & {\n /** Label text displayed above the input */\n label?: string;\n /** Subtitle displayed next to the label */\n subtitle?: string;\n /** Validation status */\n status?: TextInputStatus;\n /** Input size */\n size?: TextInputSize;\n /** Border radius */\n radius?: TextInputRadius;\n /** Icon rendered to the left of the input */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of the input */\n rightIcon?: React.ReactNode;\n /** Helper/error message displayed below the input */\n helperText?: React.ReactNode;\n /** Custom style for the outermost wrapper */\n wrapperStyle?: StyleProp<ViewStyle>;\n /** Custom style for the input container */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const TextInput = forwardRef<RNTextInput, TextInputProps>(function TextInput(\n {\n label,\n subtitle,\n status = \"default\",\n size = \"md\",\n radius = \"xs\",\n leftIcon,\n rightIcon,\n helperText,\n editable = true,\n wrapperStyle,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const [focused, setFocused] = useState(false);\n\n const isDisabled = editable === false;\n\n const heightMap: Record<TextInputSize, number> = {\n sm: theme.inputHeightSm,\n md: theme.inputHeightMd,\n lg: theme.inputHeightLg,\n };\n\n const paddingMap: Record<TextInputSize, number> = {\n sm: 12,\n md: 14,\n lg: 16,\n };\n\n const fontSizeMap: Record<TextInputSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const radiusMap: Record<TextInputRadius, number> = {\n none: 0,\n xxs: theme.radiusXxs,\n xs: theme.radiusXs,\n sm: theme.radiusSm,\n md: theme.radiusMd,\n lg: theme.radiusLg,\n xl: theme.radiusXl,\n full: 9999,\n };\n\n const borderColor =\n status === \"error\"\n ? theme.danger\n : focused\n ? theme.primary\n : theme.border;\n\n const containerStyle: ViewStyle = {\n height: heightMap[size],\n paddingHorizontal: paddingMap[size],\n borderRadius: radiusMap[radius],\n borderWidth: theme.borderWidthSm,\n borderColor,\n backgroundColor: isDisabled ? theme.background : theme.surface,\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 8,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const inputId = accessibilityLabel ?? label;\n\n return (\n <View style={[{ gap: 4 }, wrapperStyle]}>\n {/* Label + Subtitle */}\n {label && (\n <View style={{ flexDirection: \"row\", alignItems: \"baseline\", gap: 4 }}>\n <Text style={{ fontSize: 14, fontWeight: \"500\", color: theme.text }}>\n {label}\n </Text>\n {subtitle && (\n <Text style={{ fontSize: 14, color: theme.textMuted }}>{subtitle}</Text>\n )}\n </View>\n )}\n\n {/* Input container */}\n <View style={[containerStyle, style]}>\n {leftIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {leftIcon}\n </View>\n )}\n\n <RNTextInput\n ref={ref}\n editable={editable}\n accessibilityLabel={inputId}\n accessibilityState={{ disabled: isDisabled }}\n aria-invalid={status === \"error\"}\n onFocus={(e) => {\n setFocused(true);\n rest.onFocus?.(e);\n }}\n onBlur={(e) => {\n setFocused(false);\n rest.onBlur?.(e);\n }}\n style={{\n flex: 1,\n fontSize: fontSizeMap[size],\n color: theme.text,\n }}\n placeholderTextColor={theme.textMuted}\n {...rest}\n />\n\n {rightIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {rightIcon}\n </View>\n )}\n </View>\n\n {/* Helper text */}\n {helperText && (\n <Text\n style={{\n fontSize: 12,\n color: status === \"error\" ? theme.danger : theme.textMuted,\n }}\n >\n {helperText}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef, useCallback, useState } from \"react\";\nimport {\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type CheckboxSize = \"sm\" | \"md\" | \"lg\";\n\nexport type CheckboxProps = Omit<PressableProps, \"style\" | \"onPress\"> & {\n /** Checkbox size */\n size?: CheckboxSize;\n /** Label text displayed next to the checkbox */\n label?: string;\n /** Controlled checked state */\n checked?: boolean;\n /** Default checked state (uncontrolled) */\n defaultChecked?: boolean;\n /** Indeterminate state (partially checked) */\n indeterminate?: boolean;\n /** Callback fired when the value changes */\n onChange?: (checked: boolean) => void;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst CheckIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size,\n height: size,\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n {/* Simple checkmark drawn with two Views rotated — no SVG dep needed */}\n <View\n style={{\n position: \"absolute\",\n width: size * 0.55,\n height: size * 0.3,\n borderLeftWidth: 2,\n borderBottomWidth: 2,\n borderColor: color,\n transform: [{ rotate: \"-45deg\" }, { translateY: -size * 0.05 }],\n }}\n />\n </View>\n);\n\nconst MinusIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size * 0.7,\n height: 2,\n backgroundColor: color,\n }}\n />\n);\n\nexport const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox(\n {\n size = \"md\",\n label,\n checked: controlledChecked,\n defaultChecked = false,\n indeterminate = false,\n disabled,\n onChange,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n\n const isChecked = isControlled ? controlledChecked : internalChecked;\n const isActive = isChecked || indeterminate;\n\n const handlePress = useCallback(() => {\n if (disabled) return;\n const next = !isChecked;\n if (!isControlled) setInternalChecked(next);\n onChange?.(next);\n }, [disabled, isChecked, isControlled, onChange]);\n\n const boxSizeMap: Record<CheckboxSize, number> = {\n sm: 16,\n md: 20,\n lg: 24,\n };\n\n const iconSizeMap: Record<CheckboxSize, number> = {\n sm: 10,\n md: 12,\n lg: 14,\n };\n\n const fontSizeMap: Record<CheckboxSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const boxSize = boxSizeMap[size];\n const iconSize = iconSizeMap[size];\n\n const boxStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: theme.radiusXxs,\n borderWidth: theme.borderWidthSm,\n borderColor: isActive ? theme.primary : theme.border,\n backgroundColor: isActive ? theme.primary : theme.surface,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n return (\n <Pressable\n ref={ref}\n onPress={handlePress}\n disabled={disabled}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked: indeterminate ? \"mixed\" : isChecked, disabled: !!disabled }}\n accessibilityLabel={accessibilityLabel ?? label}\n style={[{ flexDirection: \"row\", alignItems: \"center\", gap: 8, opacity: disabled ? 0.5 : 1 }, style]}\n {...rest}\n >\n <View style={boxStyle}>\n {indeterminate ? (\n <MinusIcon size={iconSize} color={theme.surface} />\n ) : isChecked ? (\n <CheckIcon size={iconSize} color={theme.surface} />\n ) : null}\n </View>\n\n {label && (\n <Text style={{ fontSize: fontSizeMap[size], color: theme.text }}>\n {label}\n </Text>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport { Image, Text, View, type StyleProp, type ViewStyle, type ViewProps } from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type AvatarVariant = \"circle\" | \"square\";\n\nexport type AvatarProps = Omit<ViewProps, \"style\"> & {\n /** Image source URL */\n src?: string;\n /** Alt text (used as accessibility label and initials fallback) */\n alt?: string;\n /** Fallback initials shown when image is unavailable */\n initials?: string;\n /** Avatar size */\n size?: AvatarSize;\n /** Shape variant */\n variant?: AvatarVariant;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const Avatar = forwardRef<View, AvatarProps>(function Avatar(\n { src, alt = \"\", initials, size = \"md\", variant = \"circle\", style, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n const [imgError, setImgError] = useState(false);\n const showImage = !!src && !imgError;\n\n const fallbackLabel = initials\n ? initials.slice(0, 2).toUpperCase()\n : alt\n ? alt\n .split(\" \")\n .slice(0, 2)\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()\n : \"?\";\n\n const sizePxMap: Record<AvatarSize, number> = {\n sm: 32,\n md: 40,\n lg: 48,\n xl: 64,\n };\n\n const fontSizeMap: Record<AvatarSize, number> = {\n sm: 12,\n md: 14,\n lg: 18,\n xl: 20,\n };\n\n const boxSize = sizePxMap[size];\n const borderRadius = variant === \"circle\" ? boxSize / 2 : theme.radiusSm;\n\n const containerStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius,\n backgroundColor: theme.primary,\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n };\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"image\"\n accessibilityLabel={alt || initials || fallbackLabel}\n style={[containerStyle, style]}\n {...rest}\n >\n {showImage ? (\n <Image\n source={{ uri: src }}\n style={{ width: boxSize, height: boxSize, borderRadius }}\n onError={() => setImgError(true)}\n accessibilityLabel={alt}\n />\n ) : (\n <Text\n style={{\n fontSize: fontSizeMap[size],\n fontWeight: \"500\",\n color: theme.surface,\n }}\n accessibilityElementsHidden\n >\n {fallbackLabel}\n </Text>\n )}\n </View>\n );\n});\n"]}
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"],"names":["Button","jsx","forwardRef","IconButton","Pressable","ActivityIndicator","View","TextInput","jsxs","Text","RNTextInput","Checkbox","useState","Avatar","RNActivityIndicator","RNText"],"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\n // Semantic colors\n text?: string;\n textMuted?: string;\n surface?: string;\n background?: string;\n border?: string;\n\n // Border radius (numbers = dp)\n radiusXxs?: number;\n radiusXs?: number;\n radiusSm?: number;\n radiusMd?: number;\n radiusLg?: number;\n radiusXl?: number;\n\n // Border width\n borderWidthSm?: number;\n borderWidthMd?: number;\n borderWidthLg?: number;\n\n // Input sizes\n inputHeightSm?: number;\n inputHeightMd?: number;\n inputHeightLg?: number;\n};\n\nexport type RehagroNativeProviderProps = {\n /** Theme overrides — any token not provided keeps the default value */\n theme?: RehagroNativeTheme;\n children: React.ReactNode;\n};\n\nexport const DEFAULT_NATIVE_THEME: Required<RehagroNativeTheme> = {\n primary: \"#16a34a\",\n primaryHover: \"#15803d\",\n secondary: \"#6b7280\",\n secondaryHover: \"#4b5563\",\n danger: \"#dc2626\",\n dangerHover: \"#b91c1c\",\n warning: \"#d97706\",\n success: \"#16a34a\",\n\n text: \"#111827\",\n textMuted: \"#6b7280\",\n surface: \"#ffffff\",\n background: \"#f9fafb\",\n border: \"#d1d5db\",\n\n radiusXxs: 4,\n radiusXs: 8,\n radiusSm: 12,\n radiusMd: 16,\n radiusLg: 24,\n radiusXl: 32,\n\n borderWidthSm: 1,\n borderWidthMd: 2,\n borderWidthLg: 3,\n\n inputHeightSm: 36,\n inputHeightMd: 44,\n inputHeightLg: 52,\n};\n\n// Ensures RehagroNativeTheme color keys stay in sync with RehagroTheme\ntype _ColorKeysMatch = Pick<\n RehagroTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\ntype _NativeColorKeys = Pick<\n RehagroNativeTheme,\n \"primary\" | \"primaryHover\" | \"secondary\" | \"secondaryHover\" | \"danger\" | \"dangerHover\" | \"warning\" | \"success\" | \"text\" | \"textMuted\" | \"surface\" | \"background\" | \"border\"\n>;\n// This line will error at compile time if the color keys diverge:\ntype _ColorKeysCheck = _ColorKeysMatch extends _NativeColorKeys ? true : never;\n","import { createContext, useContext } from \"react\";\nimport type { RehagroNativeTheme } from \"./theme.native\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\n\nexport const RehagroNativeContext = createContext<Required<RehagroNativeTheme>>(DEFAULT_NATIVE_THEME);\n\nexport function useRehagroTheme(): Required<RehagroNativeTheme> {\n return useContext(RehagroNativeContext);\n}\n","import React, { useMemo } from \"react\";\nimport { RehagroNativeContext } from \"./RehagroNativeContext\";\nimport { DEFAULT_NATIVE_THEME } from \"./theme.native\";\nimport type { RehagroNativeProviderProps, RehagroNativeTheme } from \"./theme.native\";\n\nexport function RehagroNativeProvider({ theme, children }: RehagroNativeProviderProps) {\n const resolvedTheme = useMemo<Required<RehagroNativeTheme>>(\n () => ({ ...DEFAULT_NATIVE_THEME, ...theme }),\n [theme],\n );\n\n return (\n <RehagroNativeContext.Provider value={resolvedTheme}>\n {children}\n </RehagroNativeContext.Provider>\n );\n}\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\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 /** Shows loading state and disables interaction */\n loading?: boolean;\n /** Icon rendered to the left of children (hidden when loading) */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of children (hidden when loading) */\n rightIcon?: React.ReactNode;\n /** Label text */\n children?: React.ReactNode;\n /** Custom style for the outer Pressable */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const Button = forwardRef<View, ButtonProps>(function Button(\n {\n variant = \"solid\",\n size = \"md\",\n radius = \"sm\",\n loading = false,\n disabled,\n leftIcon,\n rightIcon,\n children,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isDisabled = disabled || loading;\n\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 ? theme.primaryHover : theme.primary,\n borderColor: pressed ? theme.primaryHover : theme.primary,\n };\n }\n if (variant === \"outline\") {\n return {\n borderColor: theme.primary,\n backgroundColor: pressed ? theme.primary : \"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 : theme.primary;\n return theme.primary;\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 : theme.primary}\n />\n )}\n {!loading && leftIcon && <View accessibilityElementsHidden>{leftIcon}</View>}\n {typeof children === \"string\" ? (\n <Text\n style={{ color: textColor(pressed), fontSize: fontSizeMap[size], fontWeight: \"500\" }}\n >\n {children}\n </Text>\n ) : (\n children\n )}\n {!loading && rightIcon && <View accessibilityElementsHidden>{rightIcon}</View>}\n </>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator,\n Pressable,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\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 = \"primary\" | \"danger\" | \"warning\" | \"success\" | \"secondary\";\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 */\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 colorTokens: Record<IconButtonColor, { 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 };\n\n const { main, hover } = colorTokens[color];\n const boxSize = sizePxMap[size];\n\n const baseStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: radiusPxMap[radius],\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 1,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const variantStyle = (pressed: boolean): ViewStyle => {\n if (variant === \"solid\") {\n return { backgroundColor: pressed ? hover : main, borderColor: pressed ? hover : main };\n }\n if (variant === \"outline\") {\n return { borderColor: main, backgroundColor: pressed ? main : \"transparent\" };\n }\n return { borderColor: \"transparent\", backgroundColor: pressed ? `${main}1a` : \"transparent\" };\n };\n\n const iconColor = (pressed: boolean): string => {\n if (variant === \"solid\") return theme.surface;\n if (variant === \"outline\") return pressed ? theme.surface : main;\n return main;\n };\n\n return (\n <Pressable\n ref={ref}\n disabled={isDisabled}\n accessibilityRole=\"button\"\n accessibilityState={{ disabled: !!isDisabled, busy: loading }}\n accessibilityLabel={accessibilityLabel}\n style={({ pressed }) => [baseStyle, variantStyle(pressed), style]}\n {...rest}\n >\n {({ pressed }) =>\n loading ? (\n <ActivityIndicator size=\"small\" color={variant === \"solid\" ? theme.surface : main} />\n ) : (\n <View style={{ tintColor: iconColor(pressed) } as ViewStyle}>\n {children}\n </View>\n )\n }\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport {\n TextInput as RNTextInput,\n Text,\n View,\n type TextInputProps as RNTextInputProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextInputStatus = \"default\" | \"error\";\nexport type TextInputSize = \"sm\" | \"md\" | \"lg\";\nexport type TextInputRadius = \"none\" | \"xxs\" | \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport type TextInputProps = Omit<RNTextInputProps, \"style\"> & {\n /** Label text displayed above the input */\n label?: string;\n /** Subtitle displayed next to the label */\n subtitle?: string;\n /** Validation status */\n status?: TextInputStatus;\n /** Input size */\n size?: TextInputSize;\n /** Border radius */\n radius?: TextInputRadius;\n /** Icon rendered to the left of the input */\n leftIcon?: React.ReactNode;\n /** Icon rendered to the right of the input */\n rightIcon?: React.ReactNode;\n /** Helper/error message displayed below the input */\n helperText?: React.ReactNode;\n /** Custom style for the outermost wrapper */\n wrapperStyle?: StyleProp<ViewStyle>;\n /** Custom style for the input container */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const TextInput = forwardRef<RNTextInput, TextInputProps>(function TextInput(\n {\n label,\n subtitle,\n status = \"default\",\n size = \"md\",\n radius = \"xs\",\n leftIcon,\n rightIcon,\n helperText,\n editable = true,\n wrapperStyle,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const [focused, setFocused] = useState(false);\n\n const isDisabled = editable === false;\n\n const heightMap: Record<TextInputSize, number> = {\n sm: theme.inputHeightSm,\n md: theme.inputHeightMd,\n lg: theme.inputHeightLg,\n };\n\n const paddingMap: Record<TextInputSize, number> = {\n sm: 12,\n md: 14,\n lg: 16,\n };\n\n const fontSizeMap: Record<TextInputSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const radiusMap: Record<TextInputRadius, number> = {\n none: 0,\n xxs: theme.radiusXxs,\n xs: theme.radiusXs,\n sm: theme.radiusSm,\n md: theme.radiusMd,\n lg: theme.radiusLg,\n xl: theme.radiusXl,\n full: 9999,\n };\n\n const borderColor =\n status === \"error\"\n ? theme.danger\n : focused\n ? theme.primary\n : theme.border;\n\n const containerStyle: ViewStyle = {\n height: heightMap[size],\n paddingHorizontal: paddingMap[size],\n borderRadius: radiusMap[radius],\n borderWidth: theme.borderWidthSm,\n borderColor,\n backgroundColor: isDisabled ? theme.background : theme.surface,\n flexDirection: \"row\",\n alignItems: \"center\",\n gap: 8,\n opacity: isDisabled ? 0.5 : 1,\n };\n\n const inputId = accessibilityLabel ?? label;\n\n return (\n <View style={[{ gap: 4 }, wrapperStyle]}>\n {/* Label + Subtitle */}\n {label && (\n <View style={{ flexDirection: \"row\", alignItems: \"baseline\", gap: 4 }}>\n <Text style={{ fontSize: 14, fontWeight: \"500\", color: theme.text }}>\n {label}\n </Text>\n {subtitle && (\n <Text style={{ fontSize: 14, color: theme.textMuted }}>{subtitle}</Text>\n )}\n </View>\n )}\n\n {/* Input container */}\n <View style={[containerStyle, style]}>\n {leftIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {leftIcon}\n </View>\n )}\n\n <RNTextInput\n ref={ref}\n editable={editable}\n accessibilityLabel={inputId}\n accessibilityState={{ disabled: isDisabled }}\n aria-invalid={status === \"error\"}\n onFocus={(e) => {\n setFocused(true);\n rest.onFocus?.(e);\n }}\n onBlur={(e) => {\n setFocused(false);\n rest.onBlur?.(e);\n }}\n style={{\n flex: 1,\n fontSize: fontSizeMap[size],\n color: theme.text,\n }}\n placeholderTextColor={theme.textMuted}\n {...rest}\n />\n\n {rightIcon && (\n <View accessibilityElementsHidden style={{ width: fontSizeMap[size], height: fontSizeMap[size] }}>\n {rightIcon}\n </View>\n )}\n </View>\n\n {/* Helper text */}\n {helperText && (\n <Text\n style={{\n fontSize: 12,\n color: status === \"error\" ? theme.danger : theme.textMuted,\n }}\n >\n {helperText}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef, useCallback, useState } from \"react\";\nimport {\n Pressable,\n Text,\n View,\n type PressableProps,\n type StyleProp,\n type ViewStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type CheckboxSize = \"sm\" | \"md\" | \"lg\";\n\nexport type CheckboxProps = Omit<PressableProps, \"style\" | \"onPress\"> & {\n /** Checkbox size */\n size?: CheckboxSize;\n /** Label text displayed next to the checkbox */\n label?: string;\n /** Controlled checked state */\n checked?: boolean;\n /** Default checked state (uncontrolled) */\n defaultChecked?: boolean;\n /** Indeterminate state (partially checked) */\n indeterminate?: boolean;\n /** Callback fired when the value changes */\n onChange?: (checked: boolean) => void;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst CheckIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size,\n height: size,\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n {/* Simple checkmark drawn with two Views rotated — no SVG dep needed */}\n <View\n style={{\n position: \"absolute\",\n width: size * 0.55,\n height: size * 0.3,\n borderLeftWidth: 2,\n borderBottomWidth: 2,\n borderColor: color,\n transform: [{ rotate: \"-45deg\" }, { translateY: -size * 0.05 }],\n }}\n />\n </View>\n);\n\nconst MinusIcon = ({ size, color }: { size: number; color: string }) => (\n <View\n style={{\n width: size * 0.7,\n height: 2,\n backgroundColor: color,\n }}\n />\n);\n\nexport const Checkbox = forwardRef<View, CheckboxProps>(function Checkbox(\n {\n size = \"md\",\n label,\n checked: controlledChecked,\n defaultChecked = false,\n indeterminate = false,\n disabled,\n onChange,\n style,\n accessibilityLabel,\n ...rest\n },\n ref,\n) {\n const theme = useRehagroTheme();\n const isControlled = controlledChecked !== undefined;\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n\n const isChecked = isControlled ? controlledChecked : internalChecked;\n const isActive = isChecked || indeterminate;\n\n const handlePress = useCallback(() => {\n if (disabled) return;\n const next = !isChecked;\n if (!isControlled) setInternalChecked(next);\n onChange?.(next);\n }, [disabled, isChecked, isControlled, onChange]);\n\n const boxSizeMap: Record<CheckboxSize, number> = {\n sm: 16,\n md: 20,\n lg: 24,\n };\n\n const iconSizeMap: Record<CheckboxSize, number> = {\n sm: 10,\n md: 12,\n lg: 14,\n };\n\n const fontSizeMap: Record<CheckboxSize, number> = {\n sm: 14,\n md: 14,\n lg: 16,\n };\n\n const boxSize = boxSizeMap[size];\n const iconSize = iconSizeMap[size];\n\n const boxStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius: theme.radiusXxs,\n borderWidth: theme.borderWidthSm,\n borderColor: isActive ? theme.primary : theme.border,\n backgroundColor: isActive ? theme.primary : theme.surface,\n alignItems: \"center\",\n justifyContent: \"center\",\n };\n\n return (\n <Pressable\n ref={ref}\n onPress={handlePress}\n disabled={disabled}\n accessibilityRole=\"checkbox\"\n accessibilityState={{ checked: indeterminate ? \"mixed\" : isChecked, disabled: !!disabled }}\n accessibilityLabel={accessibilityLabel ?? label}\n style={[{ flexDirection: \"row\", alignItems: \"center\", gap: 8, opacity: disabled ? 0.5 : 1 }, style]}\n {...rest}\n >\n <View style={boxStyle}>\n {indeterminate ? (\n <MinusIcon size={iconSize} color={theme.surface} />\n ) : isChecked ? (\n <CheckIcon size={iconSize} color={theme.surface} />\n ) : null}\n </View>\n\n {label && (\n <Text style={{ fontSize: fontSizeMap[size], color: theme.text }}>\n {label}\n </Text>\n )}\n </Pressable>\n );\n});\n","import React, { forwardRef, useState } from \"react\";\nimport { Image, Text, View, type StyleProp, type ViewStyle, type ViewProps } from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type AvatarSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\nexport type AvatarVariant = \"circle\" | \"square\";\n\nexport type AvatarProps = Omit<ViewProps, \"style\"> & {\n /** Image source URL */\n src?: string;\n /** Alt text (used as accessibility label and initials fallback) */\n alt?: string;\n /** Fallback initials shown when image is unavailable */\n initials?: string;\n /** Avatar size */\n size?: AvatarSize;\n /** Shape variant */\n variant?: AvatarVariant;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nexport const Avatar = forwardRef<View, AvatarProps>(function Avatar(\n { src, alt = \"\", initials, size = \"md\", variant = \"circle\", style, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n const [imgError, setImgError] = useState(false);\n const showImage = !!src && !imgError;\n\n const fallbackLabel = initials\n ? initials.slice(0, 2).toUpperCase()\n : alt\n ? alt\n .split(\" \")\n .slice(0, 2)\n .map((w) => w[0])\n .join(\"\")\n .toUpperCase()\n : \"?\";\n\n const sizePxMap: Record<AvatarSize, number> = {\n sm: 32,\n md: 40,\n lg: 48,\n xl: 64,\n };\n\n const fontSizeMap: Record<AvatarSize, number> = {\n sm: 12,\n md: 14,\n lg: 18,\n xl: 20,\n };\n\n const boxSize = sizePxMap[size];\n const borderRadius = variant === \"circle\" ? boxSize / 2 : theme.radiusSm;\n\n const containerStyle: ViewStyle = {\n width: boxSize,\n height: boxSize,\n borderRadius,\n backgroundColor: theme.primary,\n alignItems: \"center\",\n justifyContent: \"center\",\n overflow: \"hidden\",\n };\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"image\"\n accessibilityLabel={alt || initials || fallbackLabel}\n style={[containerStyle, style]}\n {...rest}\n >\n {showImage ? (\n <Image\n source={{ uri: src }}\n style={{ width: boxSize, height: boxSize, borderRadius }}\n onError={() => setImgError(true)}\n accessibilityLabel={alt}\n />\n ) : (\n <Text\n style={{\n fontSize: fontSizeMap[size],\n fontWeight: \"500\",\n color: theme.surface,\n }}\n accessibilityElementsHidden\n >\n {fallbackLabel}\n </Text>\n )}\n </View>\n );\n});\n","import React, { forwardRef } from \"react\";\nimport {\n ActivityIndicator as RNActivityIndicator,\n View,\n type StyleProp,\n type ViewStyle,\n type ViewProps,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type ActivityIndicatorSize = \"sm\" | \"md\" | \"lg\";\nexport type ActivityIndicatorColor = \"primary\" | \"surface\" | \"custom\";\n\nexport type ActivityIndicatorProps = Omit<ViewProps, \"style\"> & {\n /** Spinner size */\n size?: ActivityIndicatorSize;\n /** Color preset — use \"custom\" to provide a raw color via `color` prop */\n colorVariant?: ActivityIndicatorColor;\n /** Raw color value (used when colorVariant is \"custom\") */\n color?: string;\n /** Whether the indicator is visible */\n animating?: boolean;\n /** Custom style for the outer wrapper */\n style?: StyleProp<ViewStyle>;\n};\n\nconst sizeMap: Record<ActivityIndicatorSize, number | \"small\" | \"large\"> = {\n sm: \"small\",\n md: \"large\",\n lg: 48,\n};\n\nexport const ActivityIndicator = forwardRef<View, ActivityIndicatorProps>(\n function ActivityIndicator(\n {\n size = \"md\",\n colorVariant = \"primary\",\n color,\n animating = true,\n style,\n accessibilityLabel = \"Carregando\",\n ...rest\n },\n ref,\n ) {\n const theme = useRehagroTheme();\n\n const resolvedColor =\n colorVariant === \"custom\" && color\n ? color\n : colorVariant === \"surface\"\n ? theme.surface\n : theme.primary;\n\n const spinnerSize = sizeMap[size];\n\n return (\n <View\n ref={ref}\n accessible\n accessibilityRole=\"progressbar\"\n accessibilityLabel={accessibilityLabel}\n accessibilityState={{ busy: animating }}\n style={style}\n {...rest}\n >\n <RNActivityIndicator\n animating={animating}\n size={spinnerSize as \"small\" | \"large\"}\n color={resolvedColor}\n />\n </View>\n );\n },\n);\n","import React, { forwardRef } from \"react\";\nimport {\n Text as RNText,\n type TextProps as RNTextProps,\n type StyleProp,\n type TextStyle,\n} from \"react-native\";\nimport { useRehagroTheme } from \"../../provider/RehagroNativeContext\";\n\nexport type TextVariant =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"body\"\n | \"bodyLg\"\n | \"caption\"\n | \"label\";\n\nexport type TextColor = \"default\" | \"muted\" | \"primary\" | \"danger\" | \"success\" | \"warning\";\n\nexport type TextProps = Omit<RNTextProps, \"style\"> & {\n /** Typographic variant */\n variant?: TextVariant;\n /** Color preset */\n color?: TextColor;\n /** Bold weight */\n bold?: boolean;\n /** Custom style */\n style?: StyleProp<TextStyle>;\n};\n\nconst variantStyles: Record<TextVariant, TextStyle> = {\n h1: { fontSize: 32, lineHeight: 40, fontWeight: \"700\" },\n h2: { fontSize: 24, lineHeight: 32, fontWeight: \"700\" },\n h3: { fontSize: 20, lineHeight: 28, fontWeight: \"600\" },\n h4: { fontSize: 18, lineHeight: 26, fontWeight: \"600\" },\n bodyLg: { fontSize: 16, lineHeight: 24, fontWeight: \"400\" },\n body: { fontSize: 14, lineHeight: 20, fontWeight: \"400\" },\n label: { fontSize: 14, lineHeight: 20, fontWeight: \"500\" },\n caption: { fontSize: 12, lineHeight: 16, fontWeight: \"400\" },\n};\n\nexport const Text = forwardRef<RNText, TextProps>(function Text(\n { variant = \"body\", color = \"default\", bold = false, style, children, ...rest },\n ref,\n) {\n const theme = useRehagroTheme();\n\n const colorMap: Record<TextColor, string> = {\n default: theme.text,\n muted: theme.textMuted,\n primary: theme.primary,\n danger: theme.danger,\n success: theme.success,\n warning: theme.warning,\n };\n\n const resolvedStyle: TextStyle = {\n ...variantStyles[variant],\n color: colorMap[color],\n ...(bold ? { fontWeight: \"700\" } : {}),\n };\n\n return (\n <RNText ref={ref} style={[resolvedStyle, style]} {...rest}>\n {children}\n </RNText>\n );\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rehagro/ui",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "author": "Rehagro's Development Team",
5
5
  "description": "Rehagro Design System - React component library",
6
6
  "main": "./dist/index.cjs",