@campxdev/react-native-blueprint 0.1.1 → 0.1.2

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.
Files changed (74) hide show
  1. package/global.css +417 -0
  2. package/lib/module/components/ui/index.js +1 -0
  3. package/lib/module/components/ui/index.js.map +1 -1
  4. package/lib/module/types/global.d.js +6 -0
  5. package/lib/module/types/global.d.js.map +1 -0
  6. package/lib/module/types/rn-primitives.d.js +6 -0
  7. package/lib/module/types/rn-primitives.d.js.map +1 -0
  8. package/lib/typescript/src/app/_layout.d.ts +7 -8
  9. package/lib/typescript/src/components/ui/Accordion.d.ts +103 -11
  10. package/lib/typescript/src/components/ui/Alert-Dialog.d.ts +167 -10
  11. package/lib/typescript/src/components/ui/Alert-Dialog.d.ts.map +1 -1
  12. package/lib/typescript/src/components/ui/Alert.d.ts +59 -10
  13. package/lib/typescript/src/components/ui/Avatar.d.ts +1350 -10
  14. package/lib/typescript/src/components/ui/Badge.d.ts +203 -10
  15. package/lib/typescript/src/components/ui/Bottom-Sheet.d.ts +43 -11
  16. package/lib/typescript/src/components/ui/Button.d.ts +175 -10
  17. package/lib/typescript/src/components/ui/Card.d.ts +853 -10
  18. package/lib/typescript/src/components/ui/Checkbox.d.ts +36 -11
  19. package/lib/typescript/src/components/ui/Collapsible.d.ts +1 -147
  20. package/lib/typescript/src/components/ui/Collapsible.d.ts.map +1 -1
  21. package/lib/typescript/src/components/ui/Context-Menu.d.ts +149 -10
  22. package/lib/typescript/src/components/ui/Context-Menu.d.ts.map +1 -1
  23. package/lib/typescript/src/components/ui/Custom-Card.d.ts +863 -10
  24. package/lib/typescript/src/components/ui/Dialog.d.ts +125 -10
  25. package/lib/typescript/src/components/ui/Dialog.d.ts.map +1 -1
  26. package/lib/typescript/src/components/ui/Dropdown-Menu.d.ts +283 -10
  27. package/lib/typescript/src/components/ui/Dropdown-Menu.d.ts.map +1 -1
  28. package/lib/typescript/src/components/ui/Greeting-Card.d.ts +152 -10
  29. package/lib/typescript/src/components/ui/Hover-Card.d.ts +67 -10
  30. package/lib/typescript/src/components/ui/Hover-Card.d.ts.map +1 -1
  31. package/lib/typescript/src/components/ui/Icon.d.ts +43 -11
  32. package/lib/typescript/src/components/ui/Input.d.ts +51 -10
  33. package/lib/typescript/src/components/ui/Label.d.ts +104 -10
  34. package/lib/typescript/src/components/ui/Menubar.d.ts +174 -10
  35. package/lib/typescript/src/components/ui/NavBar.d.ts +271 -9
  36. package/lib/typescript/src/components/ui/Popover.d.ts +70 -10
  37. package/lib/typescript/src/components/ui/Popover.d.ts.map +1 -1
  38. package/lib/typescript/src/components/ui/Progress.d.ts +27 -11
  39. package/lib/typescript/src/components/ui/Radio-Group.d.ts +47 -11
  40. package/lib/typescript/src/components/ui/Select.d.ts +106 -10
  41. package/lib/typescript/src/components/ui/Separator.d.ts +165 -10
  42. package/lib/typescript/src/components/ui/Skeleton.d.ts +40 -11
  43. package/lib/typescript/src/components/ui/Slider.d.ts +52 -8
  44. package/lib/typescript/src/components/ui/Switch.d.ts +34 -11
  45. package/lib/typescript/src/components/ui/Table.d.ts +69 -10
  46. package/lib/typescript/src/components/ui/Tabs.d.ts +51 -11
  47. package/lib/typescript/src/components/ui/Text.d.ts +115 -10
  48. package/lib/typescript/src/components/ui/Textarea.d.ts +60 -10
  49. package/lib/typescript/src/components/ui/Theme-Toggle.d.ts +193 -10
  50. package/lib/typescript/src/components/ui/Toast.d.ts +54 -10
  51. package/lib/typescript/src/components/ui/Toggle-Group.d.ts +48 -10
  52. package/lib/typescript/src/components/ui/Toggle.d.ts +52 -10
  53. package/lib/typescript/src/components/ui/Tooltip.d.ts +70 -10
  54. package/lib/typescript/src/components/ui/Tooltip.d.ts.map +1 -1
  55. package/lib/typescript/src/components/ui/index.d.ts +7 -2
  56. package/lib/typescript/src/components/ui/index.d.ts.map +1 -1
  57. package/lib/typescript/src/index.d.ts +7 -93
  58. package/lib/typescript/src/lib/ThemeProvider.d.ts +136 -13
  59. package/lib/typescript/src/lib/cornerRadius.d.ts +112 -21
  60. package/lib/typescript/src/lib/fonts.d.ts +21 -30
  61. package/lib/typescript/src/lib/theme.d.ts +86 -8
  62. package/lib/typescript/src/lib/utils.d.ts +111 -1
  63. package/package.json +3 -9
  64. package/src/components/ui/index.ts +1 -0
  65. package/src/types/global.d.ts +44 -0
  66. package/src/types/rn-primitives.d.ts +70 -0
  67. package/lib/typescript/babel.config.d.ts +0 -13
  68. package/lib/typescript/babel.config.d.ts.map +0 -1
  69. package/lib/typescript/metro.config.d.ts +0 -3
  70. package/lib/typescript/metro.config.d.ts.map +0 -1
  71. package/lib/typescript/src/components/ui/Floating-Action-Button.d.ts +0 -11
  72. package/lib/typescript/src/components/ui.d.ts +0 -49
  73. package/lib/typescript/tailwind.config.d.ts +0 -3
  74. package/lib/typescript/tailwind.config.d.ts.map +0 -1
@@ -1,11 +1,273 @@
1
1
  import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface NavBarProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
2
+ import type { ImageSourcePropType } from 'react-native';
3
+ /**
4
+ * Props for individual navigation bar items
5
+ *
6
+ * Defines the structure for each item displayed in the NavBar component.
7
+ * Each item can have both active and inactive states with different icons.
8
+ *
9
+ * @interface NavBarItem
10
+ *
11
+ * @property {ImageSourcePropType | React.ReactElement} icon - Icon displayed when item is inactive
12
+ * - Can be an image source from require() or { uri: 'url' }
13
+ * - Can be a React element like lucide-react-native icons
14
+ * @property {ImageSourcePropType | React.ReactElement} activeIcon - Icon displayed when item is active
15
+ * - Same types as icon property
16
+ * - Typically a different color or style variant
17
+ * @property {string} label - Text label displayed below the icon
18
+ * @property {() => void} onPress - Callback function invoked when item is pressed
19
+ * @property {boolean} [disabled] - Optional flag to disable the item interaction
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * // Using image sources
24
+ * const homeItem: NavBarItem = {
25
+ * icon: require('./assets/home-inactive.png'),
26
+ * activeIcon: require('./assets/home-active.png'),
27
+ * label: 'Home',
28
+ * onPress: () => console.log('Home pressed'),
29
+ * };
30
+ *
31
+ * // Using React elements (lucide icons)
32
+ * import { Home } from 'lucide-react-native';
33
+ * const homeItem: NavBarItem = {
34
+ * icon: <Icon as={Home} color="#666" />,
35
+ * activeIcon: <Icon as={Home} color="#000" />,
36
+ * label: 'Home',
37
+ * onPress: () => navigation.navigate('Home'),
38
+ * };
39
+ * ```
40
+ */
41
+ export interface NavBarItem {
42
+ icon: ImageSourcePropType | React.ReactElement;
43
+ activeIcon: ImageSourcePropType | React.ReactElement;
44
+ label: string;
45
+ onPress: () => void;
46
+ disabled?: boolean;
8
47
  }
9
-
10
- export const NavBar: React.ComponentType<NavBarProps>;
11
- export default NavBar;
48
+ /**
49
+ * Props for NavBar component
50
+ *
51
+ * Configuration options for customizing the NavBar appearance and behavior.
52
+ * Provides fine-grained control over styling for different states and elements.
53
+ *
54
+ * @interface NavBarProps
55
+ *
56
+ * @property {NavBarItem[]} items - Array of navigation items to display in the bar
57
+ * @property {number} activeIndex - Zero-based index of the currently active item
58
+ *
59
+ * @property {string} [className] - Additional Tailwind classes for the main container
60
+ * @property {string} [itemClassName] - Additional Tailwind classes applied to all items
61
+ * @property {string} [activeItemClassName] - Additional Tailwind classes for the active item only
62
+ * @property {string} [labelClassName] - Additional Tailwind classes for all labels
63
+ * @property {string} [activeLabelClassName] - Additional Tailwind classes for the active label only
64
+ * @property {string} [backgroundColor] - Custom background color classes (overrides default)
65
+ * @property {number} [iconSize] - Size of icons in pixels (default: 24)
66
+ *
67
+ * @example
68
+ * ```tsx
69
+ * const navBarProps: NavBarProps = {
70
+ * items: navigationItems,
71
+ * activeIndex: 0,
72
+ * iconSize: 28,
73
+ * className: 'px-4',
74
+ * activeItemClassName: 'scale-110',
75
+ * backgroundColor: 'bg-white dark:bg-gray-900',
76
+ * };
77
+ * ```
78
+ */
79
+ export interface NavBarProps {
80
+ items: NavBarItem[];
81
+ activeIndex: number;
82
+ className?: string;
83
+ itemClassName?: string;
84
+ activeItemClassName?: string;
85
+ labelClassName?: string;
86
+ activeLabelClassName?: string;
87
+ backgroundColor?: string;
88
+ iconSize?: number;
89
+ }
90
+ /**
91
+ * NavBar - Bottom navigation bar component
92
+ *
93
+ * A navigation component designed for mobile applications that displays at the bottom
94
+ * of the screen with proper safe area handling. Similar to Flutter's BottomNavigationBar,
95
+ * it provides an intuitive way to switch between different sections of your app.
96
+ *
97
+ * Features:
98
+ * - Automatic safe area handling for devices with notches/home indicators
99
+ * - Support for both image and React element icons
100
+ * - Active/inactive state management with visual feedback
101
+ * - Customizable styling through Tailwind classes
102
+ * - Full dark mode support
103
+ * - Accessibility features built-in
104
+ * - Disabled state support for items
105
+ *
106
+ * @component
107
+ *
108
+ * @example
109
+ * // Basic usage with state management
110
+ * ```tsx
111
+ * import { useState } from 'react';
112
+ * import { NavBar, NavBarItem } from 'react-native-blueprint';
113
+ *
114
+ * function App() {
115
+ * const [activeIndex, setActiveIndex] = useState(0);
116
+ *
117
+ * const navItems: NavBarItem[] = [
118
+ * {
119
+ * icon: require('./assets/home-inactive.png'),
120
+ * activeIcon: require('./assets/home-active.png'),
121
+ * label: 'Home',
122
+ * onPress: () => setActiveIndex(0),
123
+ * },
124
+ * {
125
+ * icon: require('./assets/browse-inactive.png'),
126
+ * activeIcon: require('./assets/browse-active.png'),
127
+ * label: 'Browse',
128
+ * onPress: () => setActiveIndex(1),
129
+ * },
130
+ * {
131
+ * icon: require('./assets/feed-inactive.png'),
132
+ * activeIcon: require('./assets/feed-active.png'),
133
+ * label: 'Feed',
134
+ * onPress: () => setActiveIndex(2),
135
+ * },
136
+ * {
137
+ * icon: require('./assets/chat-inactive.png'),
138
+ * activeIcon: require('./assets/chat-active.png'),
139
+ * label: 'Chat',
140
+ * onPress: () => setActiveIndex(3),
141
+ * },
142
+ * ];
143
+ *
144
+ * return (
145
+ * <View style={{ flex: 1 }}>
146
+ * <View style={{ flex: 1 }}>
147
+ * {renderScreen(activeIndex)}
148
+ * </View>
149
+ * <NavBar items={navItems} activeIndex={activeIndex} />
150
+ * </View>
151
+ * );
152
+ * }
153
+ * ```
154
+ *
155
+ * @example
156
+ * // With React Navigation
157
+ * ```tsx
158
+ * import { useNavigation, useRoute } from '@react-navigation/native';
159
+ * import { Home, Search, Bell, MessageCircle } from 'lucide-react-native';
160
+ * import { Icon } from 'react-native-blueprint';
161
+ *
162
+ * function BottomTabBar() {
163
+ * const navigation = useNavigation();
164
+ * const route = useRoute();
165
+ * const [activeIndex, setActiveIndex] = useState(0);
166
+ *
167
+ * const navItems: NavBarItem[] = [
168
+ * {
169
+ * icon: <Icon as={Home} size={24} color="#666" />,
170
+ * activeIcon: <Icon as={Home} size={24} color="#000" />,
171
+ * label: 'Home',
172
+ * onPress: () => {
173
+ * setActiveIndex(0);
174
+ * navigation.navigate('Home');
175
+ * },
176
+ * },
177
+ * {
178
+ * icon: <Icon as={Search} size={24} color="#666" />,
179
+ * activeIcon: <Icon as={Search} size={24} color="#000" />,
180
+ * label: 'Browse',
181
+ * onPress: () => {
182
+ * setActiveIndex(1);
183
+ * navigation.navigate('Browse');
184
+ * },
185
+ * },
186
+ * {
187
+ * icon: <Icon as={Bell} size={24} color="#666" />,
188
+ * activeIcon: <Icon as={Bell} size={24} color="#000" />,
189
+ * label: 'Feed',
190
+ * onPress: () => {
191
+ * setActiveIndex(2);
192
+ * navigation.navigate('Feed');
193
+ * },
194
+ * },
195
+ * {
196
+ * icon: <Icon as={MessageCircle} size={24} color="#666" />,
197
+ * activeIcon: <Icon as={MessageCircle} size={24} color="#000" />,
198
+ * label: 'Chat',
199
+ * onPress: () => {
200
+ * setActiveIndex(3);
201
+ * navigation.navigate('Chat');
202
+ * },
203
+ * },
204
+ * ];
205
+ *
206
+ * return <NavBar items={navItems} activeIndex={activeIndex} />;
207
+ * }
208
+ * ```
209
+ *
210
+ * @example
211
+ * // With custom styling and theming
212
+ * ```tsx
213
+ * import { useTheme } from 'react-native-blueprint';
214
+ *
215
+ * function ThemedNavBar() {
216
+ * const { isDark } = useTheme();
217
+ * const [activeIndex, setActiveIndex] = useState(0);
218
+ *
219
+ * return (
220
+ * <NavBar
221
+ * items={navItems}
222
+ * activeIndex={activeIndex}
223
+ * backgroundColor="bg-gray-100 dark:bg-gray-900"
224
+ * iconSize={28}
225
+ * className="py-2 px-4"
226
+ * activeItemClassName="scale-110 transition-transform"
227
+ * activeLabelClassName="text-blue-600 dark:text-blue-400 font-bold"
228
+ * labelClassName="text-gray-500 dark:text-gray-400"
229
+ * />
230
+ * );
231
+ * }
232
+ * ```
233
+ *
234
+ * @example
235
+ * // With disabled items
236
+ * ```tsx
237
+ * const navItems: NavBarItem[] = [
238
+ * {
239
+ * icon: require('./assets/home-inactive.png'),
240
+ * activeIcon: require('./assets/home-active.png'),
241
+ * label: 'Home',
242
+ * onPress: () => setActiveIndex(0),
243
+ * },
244
+ * {
245
+ * icon: require('./assets/premium-inactive.png'),
246
+ * activeIcon: require('./assets/premium-active.png'),
247
+ * label: 'Premium',
248
+ * onPress: () => showUpgradeModal(),
249
+ * disabled: !user.isPremium, // Disable if user is not premium
250
+ * },
251
+ * ];
252
+ * ```
253
+ *
254
+ * @param {NavBarProps} props - Component props
255
+ * @param {React.Ref<ViewRef>} ref - Forwarded ref to the container View
256
+ *
257
+ * @returns {React.ReactElement} The rendered NavBar component
258
+ *
259
+ * @accessibility
260
+ * - Sets role="navigation" on the container for proper semantic structure
261
+ * - Each item has role="button" with appropriate labels
262
+ * - Uses aria-label for screen reader support
263
+ * - Indicates selected state with aria-selected
264
+ * - Respects and communicates disabled state
265
+ * - Provides accessibilityRole and accessibilityLabel for React Native
266
+ * - Includes accessibilityState for selected and disabled states
267
+ *
268
+ * @see {@link NavBarItem} for item configuration
269
+ * @see {@link NavBarProps} for all available props
270
+ */
271
+ declare const NavBar: React.ForwardRefExoticComponent<NavBarProps & React.RefAttributes<import("react-native/types_generated/src/private/types/HostInstance").LegacyHostInstanceMethods>>;
272
+ export { NavBar };
273
+ //# sourceMappingURL=NavBar.d.ts.map
@@ -1,11 +1,71 @@
1
+ import * as PopoverPrimitive from '@rn-primitives/popover';
1
2
  import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface PopoverProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
8
- }
9
-
10
- export const Popover: React.ComponentType<PopoverProps>;
11
- export default Popover;
3
+ /**
4
+ * Root component for popover - provides context for trigger and content
5
+ *
6
+ * @component
7
+ * @example
8
+ * ```tsx
9
+ * <Popover>
10
+ * <PopoverTrigger>
11
+ * <Button variant="outline">
12
+ * <Text>Open Popover</Text>
13
+ * </Button>
14
+ * </PopoverTrigger>
15
+ * <PopoverContent>
16
+ * <Text>Popover content goes here</Text>
17
+ * </PopoverContent>
18
+ * </Popover>
19
+ * ```
20
+ */
21
+ declare const Popover: React.ForwardRefExoticComponent<import("react-native").ViewProps & {
22
+ asChild?: boolean;
23
+ } & {
24
+ onOpenChange?: (open: boolean) => void;
25
+ } & React.RefAttributes<(props: Omit<import("react-native/types_generated/Libraries/Components/View/ViewPropTypes").ViewProps, keyof {
26
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
27
+ }> & {
28
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
29
+ }) => React.ReactNode>>;
30
+ /**
31
+ * Trigger component that opens the popover when pressed
32
+ *
33
+ * @component
34
+ */
35
+ declare const PopoverTrigger: React.ForwardRefExoticComponent<Omit<import("react-native").PressableProps & React.RefAttributes<(props: Omit<import("react-native/types_generated/Libraries/Components/View/ViewPropTypes").ViewProps, keyof {
36
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
37
+ }> & {
38
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
39
+ }) => React.ReactNode>, "ref"> & {
40
+ asChild?: boolean;
41
+ } & {
42
+ onKeyDown?: (ev: React.KeyboardEvent) => void;
43
+ onKeyUp?: (ev: React.KeyboardEvent) => void;
44
+ } & React.RefAttributes<import("@rn-primitives/popover").TriggerRef>>;
45
+ /**
46
+ * Content container for popover
47
+ *
48
+ * Displays content in a floating panel anchored to the trigger.
49
+ * Includes smooth animations and proper positioning.
50
+ *
51
+ * @component
52
+ * @example
53
+ * ```tsx
54
+ * <PopoverContent align="start" sideOffset={8}>
55
+ * <View className="gap-2">
56
+ * <Text className="font-semibold">Dimensions</Text>
57
+ * <Text className="text-sm">Set the dimensions for the layer</Text>
58
+ * </View>
59
+ * </PopoverContent>
60
+ * ```
61
+ *
62
+ * @accessibility
63
+ * - Content is announced by screen readers
64
+ * - Dismissible with escape key on web
65
+ * - Proper focus management
66
+ */
67
+ declare function PopoverContent({ className, align, sideOffset, portalHost, ...props }: PopoverPrimitive.ContentProps & React.RefAttributes<PopoverPrimitive.ContentRef> & {
68
+ portalHost?: string;
69
+ }): import("react/jsx-runtime").JSX.Element;
70
+ export { Popover, PopoverContent, PopoverTrigger };
71
+ //# sourceMappingURL=Popover.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/Popover.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,OAAO;;;;;OAAC,CAAA;;OAG8B,CAAA;uBAHP,CAAC;AAEtC;;;;GAIG;AACH,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAPN,CAAA;;OAG8B,CAAA;;;;;;qEAIG,CAAC;AAQhD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,KAAgB,EAChB,UAAc,EACd,UAAU,EACV,GAAG,KAAK,EACT,EAAE,gBAAgB,CAAC,YAAY,GAC9B,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,2CAkCF;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"Popover.d.ts","sourceRoot":"","sources":["../../../../../src/components/ui/Popover.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,gBAAgB,MAAM,wBAAwB,CAAC;AAC3D,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,OAAO;;;;;OAAC,CAAA;;OAG8B,CAAA;uBAHP,CAAC;AAEtC;;;;GAIG;AACH,QAAA,MAAM,cAAc;OAPN,CAAA;;OAG8B,CAAA;;;;;;qEAIG,CAAC;AAQhD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,iBAAS,cAAc,CAAC,EACtB,SAAS,EACT,KAAgB,EAChB,UAAc,EACd,UAAU,EACV,GAAG,KAAK,EACT,EAAE,gBAAgB,CAAC,YAAY,GAC9B,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,UAAU,CAAC,GAAG;IACjD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,2CAkCF;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
@@ -1,11 +1,27 @@
1
- import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface ProgressProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
8
- }
9
-
10
- export const Progress: React.ComponentType<ProgressProps>;
11
- export default Progress;
1
+ import * as ProgressPrimitive from '@rn-primitives/progress';
2
+ /**
3
+ * Progress bar component for displaying task completion
4
+ *
5
+ * Displays an animated progress indicator with customizable styles.
6
+ * Uses spring animations on native platforms for smooth transitions.
7
+ *
8
+ * @component
9
+ * @example
10
+ * ```tsx
11
+ * <Progress value={60} className="w-full" />
12
+ *
13
+ * <Progress
14
+ * value={progress}
15
+ * indicatorClassName="bg-green-500"
16
+ * />
17
+ * ```
18
+ *
19
+ * @accessibility
20
+ * - Uses proper ARIA attributes for progress indication
21
+ * - Value changes are announced by screen readers
22
+ */
23
+ declare function Progress({ className, value, indicatorClassName, ...props }: ProgressPrimitive.RootProps & React.RefAttributes<ProgressPrimitive.RootRef> & {
24
+ indicatorClassName?: string;
25
+ }): import("react/jsx-runtime").JSX.Element;
26
+ export { Progress };
27
+ //# sourceMappingURL=Progress.d.ts.map
@@ -1,11 +1,47 @@
1
- import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface Radio-GroupProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
8
- }
9
-
10
- export const Radio-Group: React.ComponentType<Radio-GroupProps>;
11
- export default Radio-Group;
1
+ import * as RadioGroupPrimitive from '@rn-primitives/radio-group';
2
+ /**
3
+ * Radio group component for single-choice selection
4
+ *
5
+ * Groups radio buttons together to ensure only one can be selected at a time.
6
+ *
7
+ * @component
8
+ * @example
9
+ * ```tsx
10
+ * <RadioGroup value={selectedValue} onValueChange={setSelectedValue}>
11
+ * <View className="flex-row items-center gap-2">
12
+ * <RadioGroupItem value="option1" />
13
+ * <Label>Option 1</Label>
14
+ * </View>
15
+ * <View className="flex-row items-center gap-2">
16
+ * <RadioGroupItem value="option2" />
17
+ * <Label>Option 2</Label>
18
+ * </View>
19
+ * </RadioGroup>
20
+ * ```
21
+ *
22
+ * @accessibility
23
+ * - Uses proper ARIA role for radio group
24
+ * - Keyboard navigation support (arrow keys)
25
+ * - Screen reader friendly with proper labeling
26
+ */
27
+ declare function RadioGroup({ className, ...props }: RadioGroupPrimitive.RootProps & React.RefAttributes<RadioGroupPrimitive.RootRef>): import("react/jsx-runtime").JSX.Element;
28
+ /**
29
+ * Individual radio button item
30
+ *
31
+ * Displays as a circular button with an inner indicator when selected.
32
+ *
33
+ * @component
34
+ * @example
35
+ * ```tsx
36
+ * <RadioGroupItem value="dark" />
37
+ * <RadioGroupItem value="light" disabled />
38
+ * ```
39
+ *
40
+ * @accessibility
41
+ * - Disabled state prevents interaction
42
+ * - Focus visible states on web
43
+ * - Invalid state styling for form validation
44
+ */
45
+ declare function RadioGroupItem({ className, ...props }: RadioGroupPrimitive.ItemProps & React.RefAttributes<RadioGroupPrimitive.ItemRef>): import("react/jsx-runtime").JSX.Element;
46
+ export { RadioGroup, RadioGroupItem };
47
+ //# sourceMappingURL=Radio-Group.d.ts.map
@@ -1,11 +1,107 @@
1
+ import * as SelectPrimitive from '@rn-primitives/select';
1
2
  import * as React from 'react';
2
- import { ViewProps } from 'react-native';
3
-
4
- export interface SelectProps extends ViewProps {
5
- className?: string;
6
- children?: React.ReactNode;
7
- [key: string]: any;
8
- }
9
-
10
- export const Select: React.ComponentType<SelectProps>;
11
- export default Select;
3
+ import { ScrollView } from 'react-native';
4
+ /**
5
+ * Option type for select items
6
+ */
7
+ type Option = SelectPrimitive.Option;
8
+ /**
9
+ * Root select component for dropdown selection
10
+ *
11
+ * @component
12
+ * @example
13
+ * ```tsx
14
+ * <Select value={value} onValueChange={setValue}>
15
+ * <SelectTrigger>
16
+ * <SelectValue placeholder="Select an option" />
17
+ * </SelectTrigger>
18
+ * <SelectContent>
19
+ * <SelectItem value="option1">
20
+ * <Text>Option 1</Text>
21
+ * </SelectItem>
22
+ * </SelectContent>
23
+ * </Select>
24
+ * ```
25
+ */
26
+ declare const Select: React.ForwardRefExoticComponent<import("react-native").ViewProps & {
27
+ asChild?: boolean;
28
+ } & {
29
+ value?: import("@rn-primitives/select").Option;
30
+ defaultValue?: import("@rn-primitives/select").Option;
31
+ onValueChange?: (option: import("@rn-primitives/select").Option) => void;
32
+ onOpenChange?: (open: boolean) => void;
33
+ disabled?: boolean;
34
+ dir?: "ltr" | "rtl";
35
+ name?: string;
36
+ required?: boolean;
37
+ } & React.RefAttributes<(props: Omit<import("react-native/types_generated/Libraries/Components/View/ViewPropTypes").ViewProps, keyof {
38
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
39
+ }> & {
40
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
41
+ }) => React.ReactNode>>;
42
+ /**
43
+ * Groups related select items together
44
+ * @component
45
+ */
46
+ declare const SelectGroup: React.ForwardRefExoticComponent<import("react-native").ViewProps & {
47
+ asChild?: boolean;
48
+ } & React.RefAttributes<(props: Omit<import("react-native/types_generated/Libraries/Components/View/ViewPropTypes").ViewProps, keyof {
49
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
50
+ }> & {
51
+ ref?: React.Ref<React.ComponentRef<typeof import("react-native/types_generated/Libraries/Components/View/ViewNativeComponent").default>>;
52
+ }) => React.ReactNode>>;
53
+ /**
54
+ * Displays the selected value or placeholder text
55
+ * @component
56
+ */
57
+ declare function SelectValue({ ref, className, ...props }: SelectPrimitive.ValueProps & React.RefAttributes<SelectPrimitive.ValueRef> & {
58
+ className?: string;
59
+ }): import("react/jsx-runtime").JSX.Element;
60
+ /**
61
+ * Trigger button that opens the select dropdown
62
+ * @component
63
+ */
64
+ declare function SelectTrigger({ ref, className, children, size, ...props }: SelectPrimitive.TriggerProps & React.RefAttributes<SelectPrimitive.TriggerRef> & {
65
+ children?: React.ReactNode;
66
+ size?: 'default' | 'sm';
67
+ }): import("react/jsx-runtime").JSX.Element;
68
+ /**
69
+ * Content container for select items
70
+ * @component
71
+ */
72
+ declare function SelectContent({ className, children, position, portalHost, ...props }: SelectPrimitive.ContentProps & React.RefAttributes<SelectPrimitive.ContentRef> & {
73
+ className?: string;
74
+ portalHost?: string;
75
+ }): import("react/jsx-runtime").JSX.Element;
76
+ /**
77
+ * Label for grouping select items
78
+ * @component
79
+ */
80
+ declare function SelectLabel({ className, ...props }: SelectPrimitive.LabelProps & React.RefAttributes<SelectPrimitive.LabelRef>): import("react/jsx-runtime").JSX.Element;
81
+ /**
82
+ * Individual selectable item
83
+ * @component
84
+ */
85
+ declare function SelectItem({ className, children: _children, ...props }: SelectPrimitive.ItemProps & React.RefAttributes<SelectPrimitive.ItemRef>): import("react/jsx-runtime").JSX.Element;
86
+ /**
87
+ * Visual separator between select items
88
+ * @component
89
+ */
90
+ declare function SelectSeparator({ className, ...props }: SelectPrimitive.SeparatorProps & React.RefAttributes<SelectPrimitive.SeparatorRef>): import("react/jsx-runtime").JSX.Element;
91
+ /**
92
+ * @platform Web only
93
+ * Returns null on native platforms
94
+ */
95
+ declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>): import("react/jsx-runtime").JSX.Element;
96
+ /**
97
+ * @platform Web only
98
+ * Returns null on native platforms
99
+ */
100
+ declare function SelectScrollDownButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>): import("react/jsx-runtime").JSX.Element;
101
+ /**
102
+ * @platform Native only
103
+ * Returns the children on the web
104
+ */
105
+ declare function NativeSelectScrollView({ className, ...props }: React.ComponentProps<typeof ScrollView>): import("react/jsx-runtime").JSX.Element;
106
+ export { NativeSelectScrollView, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, type Option, };
107
+ //# sourceMappingURL=Select.d.ts.map