@blinkdotnew/mobile-ui 0.1.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,315 +1,327 @@
1
+ import { ClassValue } from 'clsx';
1
2
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
3
  import React, { ReactNode } from 'react';
3
- import { ViewStyle, TextStyle, ImageStyle, ImageSourcePropType, DimensionValue, PressableProps, EasingFunction, StyleProp } from 'react-native';
4
+ import { TextInputProps, EasingFunction, ScrollViewProps, Animated, ImageSourcePropType, ViewStyle } from 'react-native';
5
+ import { ActionSheetRef } from 'react-native-actions-sheet';
6
+ import { Ionicons } from '@expo/vector-icons';
4
7
 
5
- interface ColorPalette {
6
- primary: string;
7
- primaryDark: string;
8
- primaryLight: string;
9
- primaryTint: string;
10
- accent: string;
11
- background: string;
12
- surface: string;
13
- surfaceElevated: string;
14
- card: string;
8
+ declare function cn(...inputs: ClassValue[]): string;
9
+
10
+ declare function useAnimColors(): {
15
11
  text: string;
16
- textSecondary: string;
17
- textMuted: string;
18
- textInverse: string;
12
+ placeholder: string;
13
+ bg: string;
19
14
  border: string;
20
- borderLight: string;
21
- error: string;
22
- errorLight: string;
23
- success: string;
24
- successLight: string;
25
- warning: string;
26
- warningLight: string;
27
- overlay: string;
15
+ primary: string;
28
16
  highlight: string;
29
- }
30
- interface SpacingScale {
31
- xs: number;
32
- sm: number;
33
- md: number;
34
- lg: number;
35
- xl: number;
36
- xxl: number;
37
- xxxl: number;
38
- }
39
- interface TypographyStyle {
40
- fontSize: number;
41
- lineHeight: number;
42
- fontWeight: '400' | '500' | '600' | '700' | '800';
43
- letterSpacing?: number;
44
- }
45
- interface TypographyScale {
46
- display: TypographyStyle;
47
- h1: TypographyStyle;
48
- h2: TypographyStyle;
49
- h3: TypographyStyle;
50
- h4: TypographyStyle;
51
- body: TypographyStyle;
52
- bodySmall: TypographyStyle;
53
- caption: TypographyStyle;
54
- small: TypographyStyle;
55
- tiny: TypographyStyle;
56
- }
57
- interface ShadowStyle {
58
- shadowColor: string;
59
- shadowOffset: {
60
- width: number;
61
- height: number;
62
- };
63
- shadowOpacity: number;
64
- shadowRadius: number;
65
- elevation: number;
66
- }
67
- interface ShadowScale {
68
- none: ShadowStyle;
69
- xs: ShadowStyle;
70
- sm: ShadowStyle;
71
- md: ShadowStyle;
72
- lg: ShadowStyle;
73
- xl: ShadowStyle;
74
- }
75
- interface BorderRadiusScale {
76
- xs: number;
77
- sm: number;
78
- md: number;
79
- lg: number;
80
- xl: number;
81
- xxl: number;
82
- full: number;
83
- }
84
- interface ThemeTokens {
85
- colors: ColorPalette;
86
- dark: ColorPalette;
87
- spacing: SpacingScale;
88
- typography: TypographyScale;
89
- shadows: ShadowScale;
90
- borderRadius: BorderRadiusScale;
91
- touchTargets: {
92
- ios: number;
93
- android: number;
94
- };
95
- }
96
- type PaletteName = 'ocean' | 'coral' | 'violet' | 'midnight' | 'rose' | 'neon';
97
- type ColorScheme = 'light' | 'dark' | 'system';
98
-
99
- interface BlinkMobileUIContextValue {
100
- tokens: ThemeTokens;
101
- colors: ColorPalette;
102
- palette: PaletteName;
103
- colorScheme: ColorScheme;
104
- isDark: boolean;
105
- setPalette: (p: PaletteName) => void;
106
- setColorScheme: (s: ColorScheme) => void;
107
- }
108
- declare function useBlinkMobileUI(): BlinkMobileUIContextValue;
109
- declare function useThemeColors(): ColorPalette;
110
- interface Props {
111
- children: React.ReactNode;
112
- palette?: PaletteName;
113
- colorScheme?: ColorScheme;
114
- }
115
- declare function BlinkMobileUIProvider({ children, palette: initialPalette, colorScheme: initialScheme, }: Props): react_jsx_runtime.JSX.Element;
17
+ error: string;
18
+ secondary: string;
19
+ icon: string;
20
+ };
116
21
 
117
- declare const palettes: Record<string, ThemeTokens>;
118
- declare const defaultPalette: ThemeTokens;
22
+ type InputVariant = 'animated' | 'classic' | 'underlined';
23
+ interface InputProps extends Omit<TextInputProps, 'className'> {
24
+ label?: string;
25
+ error?: string;
26
+ hint?: string;
27
+ variant?: InputVariant;
28
+ left?: React.ReactNode;
29
+ right?: React.ReactNode;
30
+ clearable?: boolean;
31
+ disabled?: boolean;
32
+ className?: string;
33
+ }
34
+ declare function Input({ label, placeholder, value, onChangeText, error, hint, secureTextEntry, variant, left, right, clearable, multiline, disabled, className, ...props }: InputProps): react_jsx_runtime.JSX.Element;
119
35
 
120
- type Style = ViewStyle | TextStyle | ImageStyle;
121
- declare function mergeStyles(...styles: (Style | Style[] | undefined | null | false)[]): Style;
36
+ interface TextAreaProps extends Omit<InputProps, 'multiline'> {
37
+ }
38
+ declare function TextArea({ className, ...props }: TextAreaProps): react_jsx_runtime.JSX.Element;
122
39
 
123
- declare function applyShadow(shadow: ShadowStyle): object;
124
- declare const shadowPresets: {
125
- card: (isDark?: boolean) => object;
126
- elevated: (isDark?: boolean) => object;
127
- };
40
+ interface SearchInputProps {
41
+ value: string;
42
+ onChangeText: (text: string) => void;
43
+ placeholder?: string;
44
+ onClear?: () => void;
45
+ autoFocus?: boolean;
46
+ className?: string;
47
+ }
48
+ declare function SearchInput({ value, onChangeText, placeholder, onClear, autoFocus, className, }: SearchInputProps): react_jsx_runtime.JSX.Element;
128
49
 
129
- declare const isIOS: boolean;
130
- declare const isAndroid: boolean;
131
- declare const isWeb: boolean;
132
- declare const SCREEN_WIDTH: number;
133
- declare const SCREEN_HEIGHT: number;
134
- declare const platformTouchTarget: number;
135
- declare function platformValue<T>(ios: T, android: T, web?: T): T;
136
- declare const hapticAvailable: boolean;
137
-
138
- type VariantKey = 'display' | 'h1' | 'h2' | 'h3' | 'h4' | 'body' | 'bodySmall' | 'caption' | 'small' | 'tiny';
139
- interface TextProps {
140
- variant?: VariantKey;
141
- color?: string;
142
- weight?: '400' | '500' | '600' | '700' | '800';
143
- center?: boolean;
144
- muted?: boolean;
145
- inverse?: boolean;
146
- numberOfLines?: number;
147
- children?: React.ReactNode;
148
- style?: TextStyle;
50
+ interface SearchPillProps {
51
+ placeholder?: string;
149
52
  onPress?: () => void;
53
+ className?: string;
150
54
  }
151
- declare function Text({ variant, color, weight, center, muted, inverse, numberOfLines, children, style, onPress, }: TextProps): react_jsx_runtime.JSX.Element;
55
+ declare function SearchPill({ placeholder, onPress, className, }: SearchPillProps): react_jsx_runtime.JSX.Element;
152
56
 
153
- type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive';
154
- type ButtonSize = 'sm' | 'md' | 'lg';
155
- interface ButtonProps {
156
- variant?: ButtonVariant;
157
- size?: ButtonSize;
158
- loading?: boolean;
57
+ interface CheckboxProps {
58
+ checked?: boolean;
59
+ onToggle?: (checked: boolean) => void;
60
+ label?: string;
159
61
  disabled?: boolean;
160
- iconLeft?: React.ReactNode;
161
- iconRight?: React.ReactNode;
162
- fullWidth?: boolean;
163
- children?: React.ReactNode;
164
- onPress?: () => void;
165
- style?: ViewStyle;
62
+ error?: string;
63
+ className?: string;
166
64
  }
167
- declare function Button({ variant, size, loading, disabled, iconLeft, iconRight, fullWidth, children, onPress, style, }: ButtonProps): react_jsx_runtime.JSX.Element;
65
+ declare function Checkbox({ checked, onToggle, label, disabled, error, className, }: CheckboxProps): react_jsx_runtime.JSX.Element;
168
66
 
169
- type IconButtonVariant = 'primary' | 'secondary' | 'ghost';
170
- type IconButtonSize = 'sm' | 'md' | 'lg';
171
- interface IconButtonProps {
172
- variant?: IconButtonVariant;
173
- size?: IconButtonSize;
67
+ interface RadioOption {
68
+ value: string;
69
+ label: string;
174
70
  disabled?: boolean;
175
- onPress?: () => void;
176
- style?: ViewStyle;
177
- children: React.ReactNode;
178
71
  }
179
- declare function IconButton({ variant, size, disabled, onPress, style, children, }: IconButtonProps): react_jsx_runtime.JSX.Element;
72
+ interface RadioGroupProps {
73
+ options: RadioOption[];
74
+ value: string;
75
+ onChange: (value: string) => void;
76
+ direction?: 'vertical' | 'horizontal';
77
+ className?: string;
78
+ }
79
+ declare function RadioGroup({ options, value, onChange, direction, className, }: RadioGroupProps): react_jsx_runtime.JSX.Element;
180
80
 
181
- type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
182
- type StatusDot = 'online' | 'offline' | 'busy' | 'away';
183
- interface AvatarProps {
184
- uri?: string;
185
- initials?: string;
186
- size?: AvatarSize;
187
- badge?: StatusDot;
188
- style?: ViewStyle;
81
+ interface BlinkSwitchProps {
82
+ value?: boolean;
83
+ onValueChange?: (value: boolean) => void;
84
+ label?: string;
85
+ description?: string;
86
+ disabled?: boolean;
87
+ className?: string;
88
+ }
89
+ declare function BlinkSwitch({ value, onValueChange, label, description, disabled, className, }: BlinkSwitchProps): react_jsx_runtime.JSX.Element;
90
+
91
+ interface SliderProps {
92
+ value: number;
93
+ onValueChange: (v: number) => void;
94
+ min?: number;
95
+ max?: number;
96
+ step?: number;
97
+ showValue?: boolean;
98
+ className?: string;
189
99
  }
190
- declare function Avatar({ uri, initials, size, badge, style }: AvatarProps): react_jsx_runtime.JSX.Element;
100
+ declare function Slider({ value, onValueChange, min, max, step, showValue, className, }: SliderProps): react_jsx_runtime.JSX.Element;
191
101
 
192
- type ChipVariant = 'default' | 'primary' | 'secondary';
193
- interface ChipProps {
102
+ interface SelectOption {
194
103
  label: string;
195
- selected?: boolean;
196
- variant?: ChipVariant;
197
- icon?: React.ReactNode;
198
- onPress?: () => void;
199
- onRemove?: () => void;
200
- disabled?: boolean;
201
- style?: ViewStyle;
104
+ value: string;
105
+ }
106
+ interface SelectProps {
107
+ options: SelectOption[];
108
+ value?: string;
109
+ onChange: (value: string) => void;
110
+ label?: string;
111
+ placeholder?: string;
112
+ error?: string;
113
+ variant?: InputVariant;
114
+ className?: string;
202
115
  }
203
- declare function Chip({ label, selected, variant, icon, onPress, onRemove, disabled, style, }: ChipProps): react_jsx_runtime.JSX.Element;
116
+ declare function Select({ options, value, onChange, label, placeholder, error, variant, className, }: SelectProps): react_jsx_runtime.JSX.Element;
204
117
 
205
- type BadgeVariant = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info';
206
- type BadgeSize = 'sm' | 'md';
207
- interface BadgeProps {
118
+ interface CounterProps {
119
+ value?: number;
120
+ onChange?: (value: number) => void;
121
+ min?: number;
122
+ max?: number;
123
+ step?: number;
208
124
  label?: string;
209
- variant?: BadgeVariant;
210
- size?: BadgeSize;
211
- dot?: boolean;
212
- style?: ViewStyle;
125
+ className?: string;
213
126
  }
214
- declare function Badge({ label, variant, size, dot, style }: BadgeProps): react_jsx_runtime.JSX.Element;
127
+ declare function Counter({ value: controlledValue, onChange, min, max, step, label, className, }: CounterProps): react_jsx_runtime.JSX.Element;
215
128
 
216
- type CardVariant = 'flat' | 'elevated' | 'outlined';
217
- interface CardProps {
218
- variant?: CardVariant;
219
- onPress?: () => void;
220
- style?: ViewStyle;
129
+ type HeaderVariant = 'default' | 'blurred' | 'transparent' | 'collapsible';
130
+ interface HeaderProps {
131
+ title?: string;
132
+ subtitle?: string;
133
+ left?: React.ReactNode;
134
+ right?: React.ReactNode;
135
+ variant?: HeaderVariant;
136
+ large?: boolean;
137
+ showBackButton?: boolean;
138
+ onBackPress?: () => void;
139
+ visible?: boolean;
221
140
  children?: React.ReactNode;
141
+ className?: string;
222
142
  }
223
- interface CardImageProps {
224
- source: ImageSourcePropType;
225
- height?: number;
226
- style?: ImageStyle;
143
+ declare function Header({ title, subtitle, left, right, variant, large, showBackButton, onBackPress, visible, children, className, }: HeaderProps): react_jsx_runtime.JSX.Element;
144
+
145
+ interface HeaderIconProps {
146
+ onPress?: () => void;
147
+ badge?: boolean;
148
+ children: React.ReactNode;
149
+ className?: string;
227
150
  }
228
- interface SubViewProps {
229
- children?: React.ReactNode;
230
- style?: ViewStyle;
151
+ declare function HeaderIcon({ onPress, badge, children, className, }: HeaderIconProps): react_jsx_runtime.JSX.Element;
152
+
153
+ interface TabItem {
154
+ key: string;
155
+ label: string;
156
+ icon: React.ReactNode;
157
+ activeIcon?: React.ReactNode;
158
+ badge?: number;
231
159
  }
232
- declare function CardImage({ source, height, style }: CardImageProps): react_jsx_runtime.JSX.Element;
233
- declare function CardHeader({ children, style }: SubViewProps): react_jsx_runtime.JSX.Element;
234
- declare function CardContent({ children, style }: SubViewProps): react_jsx_runtime.JSX.Element;
235
- declare function CardFooter({ children, style }: SubViewProps): react_jsx_runtime.JSX.Element;
236
- declare function Card({ variant, onPress, style, children }: CardProps): react_jsx_runtime.JSX.Element;
237
- declare namespace Card {
238
- var Image: typeof CardImage;
239
- var Header: typeof CardHeader;
240
- var Content: typeof CardContent;
241
- var Footer: typeof CardFooter;
242
- }
243
-
244
- interface DividerProps {
245
- orientation?: 'horizontal' | 'vertical';
246
- spacing?: number;
247
- label?: string;
248
- style?: ViewStyle;
160
+ interface TabBarProps {
161
+ tabs: TabItem[];
162
+ activeKey: string;
163
+ onChange: (key: string) => void;
164
+ className?: string;
249
165
  }
250
- declare function Divider({ orientation, spacing, label, style }: DividerProps): react_jsx_runtime.JSX.Element;
166
+ declare function TabBar({ tabs, activeKey, onChange, className }: TabBarProps): react_jsx_runtime.JSX.Element;
251
167
 
252
- interface IconProps {
253
- name: string;
254
- size?: number;
255
- color?: string;
256
- strokeWidth?: number;
168
+ interface TabButtonProps {
169
+ icon: React.ReactNode;
170
+ label: string;
171
+ active: boolean;
172
+ badge?: number;
173
+ onPress: () => void;
174
+ className?: string;
257
175
  }
258
- declare function Icon({ name, size, color, strokeWidth }: IconProps): react_jsx_runtime.JSX.Element | null;
176
+ declare function TabButton({ icon, label, active, badge, onPress, className, }: TabButtonProps): react_jsx_runtime.JSX.Element;
259
177
 
260
- type SkeletonVariant = 'rect' | 'circle' | 'text';
261
- interface SkeletonProps {
262
- variant?: SkeletonVariant;
263
- width?: DimensionValue;
264
- height?: number;
265
- borderRadius?: number;
266
- style?: ViewStyle;
267
- lines?: number;
178
+ interface Segment {
179
+ value: string;
180
+ label: string;
268
181
  }
269
- declare function Skeleton({ variant, width, height, borderRadius, style, lines, }: SkeletonProps): react_jsx_runtime.JSX.Element;
182
+ interface SegmentedControlProps {
183
+ segments: Segment[];
184
+ value: string;
185
+ onChange: (value: string) => void;
186
+ className?: string;
187
+ }
188
+ declare function SegmentedControl({ segments, value, onChange, className, }: SegmentedControlProps): react_jsx_runtime.JSX.Element;
270
189
 
271
- interface ProgressBarProps {
272
- value?: number;
273
- indeterminate?: boolean;
274
- height?: number;
275
- color?: string;
276
- trackColor?: string;
277
- borderRadius?: number;
278
- style?: ViewStyle;
190
+ interface BottomSheetProps {
191
+ children: React.ReactNode;
192
+ title?: string;
193
+ className?: string;
279
194
  }
280
- declare function ProgressBar({ value, indeterminate, height, color, trackColor, borderRadius, style, }: ProgressBarProps): react_jsx_runtime.JSX.Element;
195
+ declare const BottomSheet: React.ForwardRefExoticComponent<BottomSheetProps & React.RefAttributes<ActionSheetRef>>;
281
196
 
282
- interface ToggleProps {
283
- value: boolean;
284
- onValueChange: (value: boolean) => void;
285
- label?: string;
286
- disabled?: boolean;
287
- style?: ViewStyle;
197
+ interface BlinkModalProps {
198
+ visible: boolean;
199
+ onClose: () => void;
200
+ title?: string;
201
+ description?: string;
202
+ children?: React.ReactNode;
203
+ showCloseButton?: boolean;
204
+ className?: string;
288
205
  }
289
- declare function Toggle({ value, onValueChange, label, disabled, style }: ToggleProps): react_jsx_runtime.JSX.Element;
206
+ declare function BlinkModal({ visible, onClose, title, description, children, showCloseButton, className, }: BlinkModalProps): react_jsx_runtime.JSX.Element;
290
207
 
291
- type TagColor = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info' | 'purple';
292
- interface TagProps {
208
+ interface ConfirmationSheetProps {
209
+ title: string;
210
+ message?: string;
211
+ confirmLabel?: string;
212
+ cancelLabel?: string;
213
+ onConfirm: () => void;
214
+ onCancel: () => void;
215
+ destructive?: boolean;
216
+ className?: string;
217
+ }
218
+ declare function ConfirmationSheet({ title, message, confirmLabel, cancelLabel, onConfirm, onCancel, destructive, className, }: ConfirmationSheetProps): react_jsx_runtime.JSX.Element;
219
+ declare function useConfirmationSheet(): {
220
+ show: (p: ConfirmationSheetProps) => void;
221
+ Sheet: react_jsx_runtime.JSX.Element | null;
222
+ };
223
+
224
+ interface ActionItem {
293
225
  label: string;
294
- color?: TagColor;
295
- style?: ViewStyle;
226
+ icon?: React.ReactNode;
227
+ onPress: () => void;
228
+ destructive?: boolean;
229
+ disabled?: boolean;
230
+ }
231
+ interface BlinkActionSheetProps {
232
+ title?: string;
233
+ items: ActionItem[];
234
+ cancelLabel?: string;
235
+ onClose?: () => void;
236
+ className?: string;
296
237
  }
297
- declare function Tag({ label, color, style }: TagProps): react_jsx_runtime.JSX.Element;
238
+ declare function BlinkActionSheet({ title, items, cancelLabel, onClose, className, }: BlinkActionSheetProps): react_jsx_runtime.JSX.Element;
239
+ declare function useActionSheet(): {
240
+ show: (p: BlinkActionSheetProps) => void;
241
+ Sheet: react_jsx_runtime.JSX.Element | null;
242
+ };
298
243
 
299
- interface BlinkPressableProps extends Omit<PressableProps, 'style'> {
300
- activeScale?: number;
301
- haptic?: boolean;
302
- style?: ViewStyle | ViewStyle[];
303
- children?: React.ReactNode;
244
+ type ToastType = 'success' | 'error' | 'info' | 'warning';
245
+ type ToastPosition = 'top' | 'bottom';
246
+ interface ToastOptions {
247
+ message: string;
248
+ type?: ToastType;
249
+ duration?: number;
250
+ position?: ToastPosition;
304
251
  }
305
- declare function BlinkPressable({ activeScale, haptic, style, children, onPress, ...rest }: BlinkPressableProps): react_jsx_runtime.JSX.Element;
252
+ declare const Toast: React.FC<{
253
+ className?: string;
254
+ }>;
255
+ declare const toast: {
256
+ show: (opts: ToastOptions) => void | undefined;
257
+ success: (message: string, opts?: Partial<ToastOptions>) => void | undefined;
258
+ error: (message: string, opts?: Partial<ToastOptions>) => void | undefined;
259
+ info: (message: string, opts?: Partial<ToastOptions>) => void | undefined;
260
+ warning: (message: string, opts?: Partial<ToastOptions>) => void | undefined;
261
+ };
306
262
 
307
- interface SafeWrapperProps {
308
- children?: React.ReactNode;
309
- avoidKeyboard?: boolean;
310
- style?: ViewStyle;
263
+ interface PageLoaderProps {
264
+ message?: string;
265
+ transparent?: boolean;
266
+ className?: string;
267
+ }
268
+ declare function PageLoader({ message, transparent, className, }: PageLoaderProps): react_jsx_runtime.JSX.Element;
269
+
270
+ interface EmptyStateProps {
271
+ icon?: React.ReactNode;
272
+ title: string;
273
+ description?: string;
274
+ action?: {
275
+ label: string;
276
+ onPress: () => void;
277
+ };
278
+ className?: string;
279
+ }
280
+ declare function EmptyState({ icon, title, description, action, className, }: EmptyStateProps): react_jsx_runtime.JSX.Element;
281
+
282
+ interface PlaceholderProps {
283
+ width?: number | string;
284
+ height?: number;
285
+ className?: string;
311
286
  }
312
- declare function SafeWrapper({ children, avoidKeyboard, style }: SafeWrapperProps): react_jsx_runtime.JSX.Element;
287
+ declare function Placeholder({ width, height, className, }: PlaceholderProps): react_jsx_runtime.JSX.Element;
288
+
289
+ interface TextSkeletonProps {
290
+ lines?: number;
291
+ className?: string;
292
+ }
293
+ declare function TextSkeleton({ lines, className }: TextSkeletonProps): react_jsx_runtime.JSX.Element;
294
+ interface CardSkeletonProps {
295
+ className?: string;
296
+ }
297
+ declare function CardSkeleton({ className }: CardSkeletonProps): react_jsx_runtime.JSX.Element;
298
+ interface ListSkeletonProps {
299
+ rows?: number;
300
+ className?: string;
301
+ }
302
+ declare function ListSkeleton({ rows, className }: ListSkeletonProps): react_jsx_runtime.JSX.Element;
303
+ interface ChatSkeletonProps {
304
+ className?: string;
305
+ }
306
+ declare function ChatSkeleton({ className }: ChatSkeletonProps): react_jsx_runtime.JSX.Element;
307
+ interface ArticleSkeletonProps {
308
+ className?: string;
309
+ }
310
+ declare function ArticleSkeleton({ className }: ArticleSkeletonProps): react_jsx_runtime.JSX.Element;
311
+ interface GridSkeletonProps {
312
+ columns?: number;
313
+ count?: number;
314
+ className?: string;
315
+ }
316
+ declare function GridSkeleton({ columns, count, className }: GridSkeletonProps): react_jsx_runtime.JSX.Element;
317
+ declare const SkeletonLoader: {
318
+ Text: typeof TextSkeleton;
319
+ Card: typeof CardSkeleton;
320
+ List: typeof ListSkeleton;
321
+ Chat: typeof ChatSkeleton;
322
+ Article: typeof ArticleSkeleton;
323
+ Grid: typeof GridSkeleton;
324
+ };
313
325
 
314
326
  type AnimationType = 'fadeIn' | 'scaleIn' | 'slideInBottom' | 'slideInRight' | 'slideInLeft' | 'slideInTop' | 'bounceIn' | 'flipInX' | 'zoomInRotate' | 'rotateIn' | 'slideOutBottom' | 'slideOutRight' | 'slideOutLeft' | 'slideOutTop' | 'scaleOut';
315
327
  interface AnimatedViewProps {
@@ -318,14 +330,13 @@ interface AnimatedViewProps {
318
330
  duration?: number;
319
331
  delay?: number;
320
332
  easing?: EasingFunction;
321
- style?: StyleProp<ViewStyle>;
322
333
  className?: string;
323
334
  playOnlyOnce?: boolean;
324
335
  triggerOnVisible?: boolean;
325
336
  visibilityThreshold?: number;
326
337
  shouldResetAnimation?: boolean;
327
338
  }
328
- declare function AnimatedViewComponent({ children, animation, duration, delay, easing, style, className, playOnlyOnce, triggerOnVisible, visibilityThreshold, shouldResetAnimation, }: AnimatedViewProps): react_jsx_runtime.JSX.Element;
339
+ declare function AnimatedViewComponent({ children, animation, duration, delay, easing, className, playOnlyOnce, triggerOnVisible, visibilityThreshold, shouldResetAnimation, }: AnimatedViewProps): react_jsx_runtime.JSX.Element;
329
340
  declare const AnimatedView: React.MemoExoticComponent<typeof AnimatedViewComponent>;
330
341
 
331
342
  interface FabAction {
@@ -335,18 +346,17 @@ interface FabAction {
335
346
  }
336
347
  interface AnimatedFabProps {
337
348
  icon: React.ReactNode;
338
- label?: string;
339
- onPress?: () => void;
340
- expanded?: boolean;
341
349
  actions?: FabAction[];
342
- style?: ViewStyle;
350
+ onPress?: () => void;
351
+ className?: string;
343
352
  }
344
- declare function AnimatedFab({ icon, label, onPress, expanded, actions, style }: AnimatedFabProps): react_jsx_runtime.JSX.Element;
353
+ declare function AnimatedFab({ icon, actions, onPress, className, }: AnimatedFabProps): react_jsx_runtime.JSX.Element;
345
354
 
346
355
  interface StepProps {
347
356
  title?: string;
348
357
  children: ReactNode;
349
358
  }
359
+ declare function Step({ children }: StepProps): react_jsx_runtime.JSX.Element;
350
360
  interface MultiStepProps {
351
361
  children: ReactNode;
352
362
  onComplete?: () => void;
@@ -354,43 +364,69 @@ interface MultiStepProps {
354
364
  showSkip?: boolean;
355
365
  nextLabel?: string;
356
366
  completeLabel?: string;
357
- style?: ViewStyle;
358
- }
359
- declare function MultiStep({ children, onComplete, showProgress, showSkip, nextLabel, completeLabel, style, }: MultiStepProps): react_jsx_runtime.JSX.Element | null;
360
- declare namespace MultiStep {
361
- var Step: any;
367
+ className?: string;
362
368
  }
369
+ declare function MultiStepRoot({ children, onComplete, showProgress, showSkip, nextLabel, completeLabel, className, }: MultiStepProps): react_jsx_runtime.JSX.Element | null;
370
+ declare const MultiStep: typeof MultiStepRoot & {
371
+ Step: typeof Step;
372
+ };
363
373
 
364
374
  interface TransitionProps {
365
375
  children: React.ReactNode;
366
376
  duration?: number;
367
377
  delay?: number;
368
- style?: ViewStyle;
378
+ className?: string;
369
379
  }
370
380
  declare const FadeIn: React.FC<TransitionProps>;
371
381
  declare const SlideUp: React.FC<TransitionProps>;
372
382
  interface SlideInProps extends TransitionProps {
373
383
  from?: 'left' | 'right' | 'bottom' | 'top';
374
384
  }
375
- declare const SlideIn: React.FC<SlideInProps>;
376
- declare const ScaleIn: React.FC<TransitionProps>;
385
+ declare const SlideIn: React.FC<SlideInProps>;
386
+ declare const ScaleIn: React.FC<TransitionProps>;
387
+
388
+ interface ThemeScrollerProps extends ScrollViewProps {
389
+ children: React.ReactNode;
390
+ topOffset?: number;
391
+ className?: string;
392
+ }
393
+ declare function ThemeScroller({ children, topOffset, className, contentContainerStyle, ...props }: ThemeScrollerProps): react_jsx_runtime.JSX.Element;
394
+
395
+ interface CardScrollerProps {
396
+ children: React.ReactNode;
397
+ cardWidth?: number;
398
+ gap?: number;
399
+ snapEnabled?: boolean;
400
+ className?: string;
401
+ }
402
+ declare function CardScroller({ children, cardWidth, gap, snapEnabled, className, }: CardScrollerProps): react_jsx_runtime.JSX.Element;
403
+
404
+ interface ImageCarouselProps {
405
+ images: string[];
406
+ height?: number;
407
+ borderRadius?: number;
408
+ onIndexChange?: (index: number) => void;
409
+ className?: string;
410
+ }
411
+ declare function ImageCarousel({ images, height, borderRadius, onIndexChange, className, }: ImageCarouselProps): react_jsx_runtime.JSX.Element;
377
412
 
378
413
  interface PlanOption {
379
414
  id: string;
380
- period: 'monthly' | 'annual' | 'weekly' | 'lifetime';
415
+ label: string;
381
416
  price: string;
382
- priceSubtext?: string;
417
+ period: string;
383
418
  badge?: string;
384
- trialDays?: number;
419
+ savings?: string;
385
420
  }
386
421
  interface PlanCardProps {
387
422
  plan: PlanOption;
388
423
  selected: boolean;
389
- onSelect: () => void;
424
+ onSelect: (plan: PlanOption) => void;
425
+ className?: string;
390
426
  }
391
- declare function PlanCard({ plan, selected, onSelect }: PlanCardProps): react_jsx_runtime.JSX.Element;
427
+ declare function PlanCard({ plan, selected, onSelect, className }: PlanCardProps): react_jsx_runtime.JSX.Element;
392
428
 
393
- interface FeatureItem {
429
+ interface PaywallFeature {
394
430
  label: string;
395
431
  free?: boolean;
396
432
  pro: boolean;
@@ -398,69 +434,66 @@ interface FeatureItem {
398
434
  interface PaywallScreenProps {
399
435
  appName: string;
400
436
  tagline?: string;
401
- features: FeatureItem[];
437
+ features: PaywallFeature[];
402
438
  plans: PlanOption[];
403
- onSubscribe: (planId: string) => void | Promise<void>;
439
+ selectedPlan: string;
440
+ onSubscribe: (planId: string) => void;
441
+ onSelectPlan?: (plan: PlanOption) => void;
404
442
  onDismiss?: () => void;
405
443
  loading?: boolean;
406
- selectedPlan?: string;
407
- style?: ViewStyle;
444
+ ctaLabel?: string;
445
+ disclaimer?: string;
446
+ className?: string;
408
447
  }
409
- declare function PaywallScreen({ appName, tagline, features, plans, onSubscribe, onDismiss, loading, selectedPlan: controlledPlan, style, }: PaywallScreenProps): react_jsx_runtime.JSX.Element;
448
+ declare function PaywallScreen({ appName, tagline, features, plans, selectedPlan, onSubscribe, onSelectPlan, onDismiss, loading, ctaLabel, disclaimer, className, }: PaywallScreenProps): react_jsx_runtime.JSX.Element;
410
449
 
411
450
  type PaywallSoftProps = Omit<PaywallScreenProps, 'onDismiss'> & {
412
- visible: boolean;
413
451
  onDismiss: () => void;
452
+ className?: string;
414
453
  };
415
- declare function PaywallSoft({ visible, onDismiss, ...rest }: PaywallSoftProps): react_jsx_runtime.JSX.Element;
454
+ declare function PaywallSoft({ className, ...props }: PaywallSoftProps): react_jsx_runtime.JSX.Element;
416
455
 
417
456
  type PaywallHardProps = Omit<PaywallScreenProps, 'onDismiss'> & {
418
- visible: boolean;
457
+ className?: string;
419
458
  };
420
- declare function PaywallHard({ visible, ...rest }: PaywallHardProps): react_jsx_runtime.JSX.Element;
459
+ declare function PaywallHard({ className, ...props }: PaywallHardProps): react_jsx_runtime.JSX.Element;
421
460
 
422
- interface ComparisonFeature {
461
+ interface FeatureRowProps {
423
462
  label: string;
424
463
  free?: boolean;
425
- pro: boolean;
426
- enterprise?: boolean;
427
- }
428
- interface PlanComparisonProps {
429
- features: ComparisonFeature[];
430
- plans?: string[];
464
+ pro?: boolean;
465
+ className?: string;
431
466
  }
432
- declare function PlanComparison({ features, plans }: PlanComparisonProps): react_jsx_runtime.JSX.Element;
467
+ declare function FeatureRow({ label, free, pro, className }: FeatureRowProps): react_jsx_runtime.JSX.Element;
433
468
 
434
- interface FeatureRowProps {
435
- label: string;
436
- available?: boolean;
437
- highlighted?: boolean;
469
+ interface PlanComparisonProps {
470
+ features: Omit<FeatureRowProps, 'className'>[];
471
+ freeLabel?: string;
472
+ proLabel?: string;
473
+ className?: string;
438
474
  }
439
- declare function FeatureRow({ label, available, highlighted }: FeatureRowProps): react_jsx_runtime.JSX.Element;
475
+ declare function PlanComparison({ features, freeLabel, proLabel, className, }: PlanComparisonProps): react_jsx_runtime.JSX.Element;
440
476
 
441
477
  interface TrialBannerProps {
442
478
  days: number;
443
- onClaim?: () => void;
444
- dismissible?: boolean;
445
- style?: ViewStyle;
479
+ message?: string;
480
+ className?: string;
446
481
  }
447
- declare function TrialBanner({ days, onClaim, dismissible, style }: TrialBannerProps): react_jsx_runtime.JSX.Element | null;
482
+ declare function TrialBanner({ days, message, className }: TrialBannerProps): react_jsx_runtime.JSX.Element;
448
483
 
449
484
  interface SocialProofBarProps {
450
485
  userCount?: string;
451
486
  rating?: number;
452
487
  reviewCount?: string;
453
- logos?: React.ReactNode[];
454
- style?: ViewStyle;
488
+ className?: string;
455
489
  }
456
- declare function SocialProofBar({ userCount, rating, reviewCount, logos, style }: SocialProofBarProps): react_jsx_runtime.JSX.Element;
490
+ declare function SocialProofBar({ userCount, rating, reviewCount, className, }: SocialProofBarProps): react_jsx_runtime.JSX.Element;
457
491
 
458
492
  interface OnboardingSlide {
459
493
  id: string;
460
494
  title: string;
461
- description?: string;
462
- image?: React.ReactNode;
463
- backgroundColor?: string;
495
+ description: string;
496
+ visual?: React.ReactNode;
464
497
  }
465
498
  interface OnboardingCarouselProps {
466
499
  slides: OnboardingSlide[];
@@ -470,633 +503,479 @@ interface OnboardingCarouselProps {
470
503
  showDots?: boolean;
471
504
  nextLabel?: string;
472
505
  completeLabel?: string;
473
- autoPlay?: boolean;
474
- autoPlayInterval?: number;
475
- style?: ViewStyle;
506
+ className?: string;
476
507
  }
477
- declare function OnboardingCarousel({ slides, onComplete, onSkip, showSkip, showDots, nextLabel, completeLabel, autoPlay, autoPlayInterval, style, }: OnboardingCarouselProps): react_jsx_runtime.JSX.Element;
508
+ declare function OnboardingCarousel({ slides, onComplete, onSkip, showSkip, showDots, nextLabel, completeLabel, className, }: OnboardingCarouselProps): react_jsx_runtime.JSX.Element;
478
509
 
479
- interface SocialButton {
480
- icon: React.ReactNode;
481
- label: string;
482
- onPress: () => void;
510
+ interface ParallaxLayer {
511
+ content: React.ReactNode;
512
+ speed?: number;
513
+ }
514
+ interface ParallaxSlide {
515
+ id: string;
516
+ title: string;
517
+ description: string;
518
+ layers: ParallaxLayer[];
519
+ }
520
+ interface OnboardingParallaxProps {
521
+ slides: ParallaxSlide[];
522
+ onComplete: () => void;
523
+ onSkip?: () => void;
524
+ showSkip?: boolean;
525
+ completeLabel?: string;
526
+ nextLabel?: string;
527
+ className?: string;
483
528
  }
529
+ declare function OnboardingParallax({ slides, onComplete, onSkip, showSkip, completeLabel, nextLabel, className, }: OnboardingParallaxProps): react_jsx_runtime.JSX.Element;
530
+
484
531
  interface OnboardingHeroProps {
485
532
  title: string;
486
- subtitle?: string;
487
- description?: string;
533
+ description: string;
488
534
  visual?: React.ReactNode;
489
535
  ctaLabel?: string;
490
- onCta?: () => void;
536
+ onCta: () => void;
491
537
  secondaryLabel?: string;
492
538
  onSecondary?: () => void;
493
- socialButtons?: SocialButton[];
494
- style?: ViewStyle;
539
+ className?: string;
495
540
  }
496
- declare function OnboardingHero({ title, subtitle, description, visual, ctaLabel, onCta, secondaryLabel, onSecondary, socialButtons, style, }: OnboardingHeroProps): react_jsx_runtime.JSX.Element;
541
+ declare function OnboardingHero({ title, description, visual, ctaLabel, onCta, secondaryLabel, onSecondary, className, }: OnboardingHeroProps): react_jsx_runtime.JSX.Element;
497
542
 
498
543
  interface PermissionStepProps {
499
- icon?: React.ReactNode;
544
+ icon: React.ReactNode;
500
545
  title: string;
501
546
  description: string;
502
547
  allowLabel?: string;
503
548
  skipLabel?: string;
504
- onAllow: () => void | Promise<void>;
505
- onSkip?: () => void;
506
- loading?: boolean;
507
- style?: ViewStyle;
549
+ onAllow: () => void;
550
+ onSkip: () => void;
551
+ className?: string;
508
552
  }
509
- declare function PermissionStep({ icon, title, description, allowLabel, skipLabel, onAllow, onSkip, loading: externalLoading, style, }: PermissionStepProps): react_jsx_runtime.JSX.Element;
553
+ declare function PermissionStep({ icon, title, description, allowLabel, skipLabel, onAllow, onSkip, className, }: PermissionStepProps): react_jsx_runtime.JSX.Element;
510
554
 
511
555
  interface QuizOption {
512
- value: string;
556
+ id: string;
513
557
  label: string;
514
558
  icon?: React.ReactNode;
515
- description?: string;
516
559
  }
517
560
  interface QuizStepProps {
518
- question: string;
519
- subtitle?: string;
561
+ title: string;
562
+ description?: string;
520
563
  options: QuizOption[];
521
- value?: string | string[];
522
- onChange: (v: string | string[]) => void;
523
564
  multiSelect?: boolean;
524
- minSelect?: number;
525
- maxSelect?: number;
526
- style?: ViewStyle;
565
+ onSubmit: (selected: string[]) => void;
566
+ submitLabel?: string;
567
+ className?: string;
527
568
  }
528
- declare function QuizStep({ question, subtitle, options, value, onChange, multiSelect, maxSelect, style, }: QuizStepProps): react_jsx_runtime.JSX.Element;
569
+ declare function QuizStep({ title, description, options, multiSelect, onSubmit, submitLabel, className, }: QuizStepProps): react_jsx_runtime.JSX.Element;
529
570
 
530
- interface OnboardingStep {
571
+ interface OnboardingFlowStep {
531
572
  id: string;
532
573
  component: React.ReactNode;
533
574
  }
534
575
  interface OnboardingFlowProps {
535
- steps: OnboardingStep[];
576
+ steps: OnboardingFlowStep[];
536
577
  onComplete: () => void;
537
578
  showProgress?: boolean;
538
- style?: ViewStyle;
579
+ className?: string;
539
580
  }
540
- declare function OnboardingFlow({ steps, onComplete, showProgress, style }: OnboardingFlowProps): react_jsx_runtime.JSX.Element;
581
+ declare function OnboardingFlow({ steps, onComplete, showProgress, className, }: OnboardingFlowProps): react_jsx_runtime.JSX.Element;
541
582
 
583
+ interface AuthProvider {
584
+ id: 'google' | 'apple' | 'email' | string;
585
+ label?: string;
586
+ icon?: React.ReactNode;
587
+ }
588
+ interface AuthButtonsProps {
589
+ providers?: AuthProvider[];
590
+ onAuth: (providerId: string) => void;
591
+ className?: string;
592
+ }
593
+ declare function AuthButtons({ providers, onAuth, className, }: AuthButtonsProps): react_jsx_runtime.JSX.Element;
594
+
595
+ type SwipeDirection = 'left' | 'right' | 'up';
542
596
  interface SwipeDeckProps<T> {
543
597
  data: T[];
544
598
  renderCard: (item: T, index: number) => React.ReactNode;
545
599
  onSwipeLeft?: (item: T) => void;
546
600
  onSwipeRight?: (item: T) => void;
547
601
  onSwipeUp?: (item: T) => void;
548
- onEmpty?: () => void;
602
+ onEmpty?: () => React.ReactNode;
549
603
  swipeThreshold?: number;
550
604
  rotationFactor?: number;
551
605
  stackDepth?: number;
552
- style?: ViewStyle;
606
+ className?: string;
553
607
  }
554
- declare function SwipeDeck<T>(props: SwipeDeckProps<T>): react_jsx_runtime.JSX.Element;
608
+ declare function SwipeDeck<T>({ data, renderCard, onSwipeLeft, onSwipeRight, onSwipeUp, onEmpty, swipeThreshold, rotationFactor, stackDepth, className, }: SwipeDeckProps<T>): react_jsx_runtime.JSX.Element;
555
609
 
556
610
  interface SwipeCardProps {
557
611
  children: React.ReactNode;
558
- likeLabel?: string;
559
- nopeLabel?: string;
560
- superLabel?: string;
561
- swipeDirection?: 'left' | 'right' | 'up' | null;
562
- swipeIntensity?: number;
563
- style?: ViewStyle;
612
+ className?: string;
564
613
  }
565
- declare function SwipeCard({ children, swipeDirection, swipeIntensity, style, }: SwipeCardProps): react_jsx_runtime.JSX.Element;
614
+ declare function SwipeCard({ children, className }: SwipeCardProps): react_jsx_runtime.JSX.Element;
566
615
 
567
616
  interface SwipeActionsProps {
568
617
  onNope?: () => void;
569
- onLike?: () => void;
570
618
  onSuperLike?: () => void;
571
- onRewind?: () => void;
572
- style?: ViewStyle;
619
+ onLike?: () => void;
620
+ className?: string;
573
621
  }
574
- declare function SwipeActions({ onNope, onLike, onSuperLike, onRewind, style }: SwipeActionsProps): react_jsx_runtime.JSX.Element;
622
+ declare function SwipeActions({ onNope, onSuperLike, onLike, className }: SwipeActionsProps): react_jsx_runtime.JSX.Element;
575
623
 
576
624
  interface SwipeOverlayProps {
577
- direction: 'left' | 'right' | 'up' | null;
578
- intensity: number;
625
+ position: Animated.ValueXY;
626
+ swipeThreshold: number;
627
+ className?: string;
579
628
  }
580
- declare function SwipeOverlay({ direction, intensity }: SwipeOverlayProps): react_jsx_runtime.JSX.Element | null;
629
+ declare function SwipeOverlay({ position, swipeThreshold }: SwipeOverlayProps): react_jsx_runtime.JSX.Element;
581
630
 
582
631
  interface VerticalReelProps<T> {
583
632
  data: T[];
584
633
  renderItem: (item: T, index: number, isActive: boolean) => React.ReactNode;
585
634
  onActiveChange?: (index: number) => void;
586
- preloadCount?: number;
587
- style?: ViewStyle;
635
+ keyExtractor: (item: T, index: number) => string;
636
+ className?: string;
588
637
  }
589
- declare function VerticalReel<T extends {
590
- id?: string | number;
591
- }>({ data, renderItem, onActiveChange, preloadCount, style, }: VerticalReelProps<T>): react_jsx_runtime.JSX.Element;
638
+ declare function VerticalReel<T>({ data, renderItem, onActiveChange, keyExtractor, className, }: VerticalReelProps<T>): react_jsx_runtime.JSX.Element;
592
639
 
593
640
  interface ReelItemProps {
594
- background?: React.ReactNode;
595
- children?: React.ReactNode;
596
- style?: ViewStyle;
597
- }
598
- declare function ReelItem({ background, children, style }: ReelItemProps): react_jsx_runtime.JSX.Element;
599
-
600
- interface ReelOverlayProps {
601
- username?: string;
602
- avatar?: string;
603
- description?: string;
604
- rightActions?: React.ReactNode;
605
- bottomContent?: React.ReactNode;
606
- style?: ViewStyle;
607
- }
608
- declare function ReelOverlay({ username, avatar, description, rightActions, bottomContent, style, }: ReelOverlayProps): react_jsx_runtime.JSX.Element;
609
-
610
- interface GlassViewProps {
611
- children?: React.ReactNode;
612
- intensity?: number;
613
- tint?: 'light' | 'dark' | 'default' | 'extraLight' | 'systemUltraThinMaterial' | 'systemThinMaterial' | 'systemMaterial';
614
- borderRadius?: number;
615
- borderWidth?: number;
616
- borderColor?: string;
617
- style?: StyleProp<ViewStyle>;
618
- }
619
- declare function GlassView({ children, intensity, tint, borderRadius, borderWidth, borderColor, style, }: GlassViewProps): react_jsx_runtime.JSX.Element;
620
-
621
- interface GlassCardProps {
622
- children?: React.ReactNode;
623
- onPress?: () => void;
624
- intensity?: number;
625
- padding?: number;
626
- style?: StyleProp<ViewStyle>;
627
- }
628
- declare function GlassCard({ children, onPress, intensity, padding, style, }: GlassCardProps): react_jsx_runtime.JSX.Element;
629
-
630
- interface GlassHeaderProps {
631
- title?: string;
632
- left?: React.ReactNode;
633
- right?: React.ReactNode;
634
- intensity?: number;
635
- style?: StyleProp<ViewStyle>;
636
- }
637
- declare function GlassHeader({ title, left, right, intensity, style }: GlassHeaderProps): react_jsx_runtime.JSX.Element;
638
-
639
- interface GlassSheetProps {
640
- children: React.ReactNode;
641
- visible: boolean;
642
- onClose: () => void;
643
- title?: string;
644
- intensity?: number;
645
- snapPoints?: number[];
646
- style?: StyleProp<ViewStyle>;
647
- }
648
- declare function GlassSheet({ children, visible, onClose, title, intensity, style, }: GlassSheetProps): react_jsx_runtime.JSX.Element;
649
-
650
- interface TabItem$1 {
651
- key: string;
652
- label: string;
653
- icon: React.ReactNode;
654
- badge?: number;
655
- }
656
- interface GlassTabBarProps {
657
- tabs: TabItem$1[];
658
- activeKey: string;
659
- onChange: (key: string) => void;
660
- intensity?: number;
661
- style?: StyleProp<ViewStyle>;
662
- }
663
- declare function GlassTabBar({ tabs, activeKey, onChange, intensity, style }: GlassTabBarProps): react_jsx_runtime.JSX.Element;
664
-
665
- interface ChatBubbleProps {
666
- message: string;
667
- type: 'sent' | 'received';
668
- timestamp?: string;
669
- status?: 'sending' | 'sent' | 'delivered' | 'read';
670
- avatar?: string;
671
- style?: ViewStyle;
672
- }
673
- declare function ChatBubble({ message, type, timestamp, status, avatar, style }: ChatBubbleProps): react_jsx_runtime.JSX.Element;
674
-
675
- interface ChatInputProps {
676
- value: string;
677
- onChangeText: (t: string) => void;
678
- onSend: () => void;
679
- onAttach?: () => void;
680
- onVoice?: () => void;
681
- placeholder?: string;
682
- disabled?: boolean;
683
- style?: ViewStyle;
684
- }
685
- declare function ChatInput({ value, onChangeText, onSend, onAttach, onVoice, placeholder, disabled, style, }: ChatInputProps): react_jsx_runtime.JSX.Element;
686
-
687
- interface ChatMessage {
688
- id: string;
689
- message: string;
690
- type: 'sent' | 'received';
691
- timestamp?: string;
692
- status?: 'sending' | 'sent' | 'delivered' | 'read';
693
- avatar?: string;
694
- }
695
- interface ChatListProps {
696
- messages: ChatMessage[];
697
- style?: ViewStyle;
698
- }
699
- declare function ChatList({ messages, style }: ChatListProps): react_jsx_runtime.JSX.Element;
700
-
701
- declare function TypingIndicator(): react_jsx_runtime.JSX.Element;
702
-
703
- interface ContainerProps {
704
- children: React.ReactNode;
705
- padded?: boolean;
706
- paddingHorizontal?: number;
707
- style?: ViewStyle;
708
- }
709
- declare const Container: React.FC<ContainerProps>;
710
-
711
- interface ScreenContentProps {
712
- children: React.ReactNode;
713
- onRefresh?: () => void;
714
- refreshing?: boolean;
715
- padded?: boolean;
716
- scrollEnabled?: boolean;
717
- style?: ViewStyle;
718
- contentStyle?: ViewStyle;
719
- }
720
- declare const ScreenContent: React.FC<ScreenContentProps>;
721
-
722
- interface SectionProps {
723
- title?: string;
724
- subtitle?: string;
725
- right?: React.ReactNode;
726
- children: React.ReactNode;
727
- spacing?: boolean;
728
- style?: ViewStyle;
729
- }
730
- declare const Section: React.FC<SectionProps>;
731
-
732
- type Align = 'start' | 'center' | 'end' | 'stretch';
733
- type Justify = 'start' | 'center' | 'end' | 'between' | 'around';
734
- interface StackProps {
735
- children: React.ReactNode;
736
- gap?: number;
737
- align?: Align;
738
- justify?: Justify;
739
- wrap?: boolean;
740
- style?: ViewStyle;
741
- }
742
- declare const VStack: React.FC<StackProps>;
743
- declare const HStack: React.FC<StackProps>;
744
- declare const Stack: React.FC<StackProps>;
745
-
746
- interface GridProps {
747
- children: React.ReactNode;
748
- columns?: number;
749
- gap?: number;
750
- style?: ViewStyle;
751
- }
752
- declare const Grid: React.FC<GridProps>;
753
-
754
- interface ListProps<T> {
755
- data: T[];
756
- renderItem: (item: T, index: number) => React.ReactNode;
757
- keyExtractor?: (item: T, index: number) => string;
758
- onRefresh?: () => void;
759
- refreshing?: boolean;
760
- emptyText?: string;
761
- emptyComponent?: React.ReactNode;
762
- style?: ViewStyle;
763
- contentStyle?: ViewStyle;
764
- separator?: boolean;
765
- }
766
- declare function List<T>({ data, renderItem, keyExtractor, onRefresh, refreshing, emptyText, emptyComponent, style, contentStyle, separator, }: ListProps<T>): react_jsx_runtime.JSX.Element;
767
-
768
- interface ListItemProps {
769
- title: string;
770
- subtitle?: string;
771
- left?: React.ReactNode;
772
- right?: React.ReactNode;
773
- onPress?: () => void;
774
- destructive?: boolean;
775
- style?: ViewStyle;
776
- }
777
- declare const ListItem: React.FC<ListItemProps>;
778
-
779
- interface SpacerProps {
780
- height?: number;
781
- width?: number;
782
- flex?: boolean;
783
- }
784
- declare const Spacer: React.FC<SpacerProps>;
785
-
786
- interface InputProps {
787
- label?: string;
788
- placeholder?: string;
789
- value?: string;
790
- onChangeText?: (text: string) => void;
791
- error?: string;
792
- hint?: string;
793
- left?: React.ReactNode;
794
- right?: React.ReactNode;
795
- clearable?: boolean;
796
- secureTextEntry?: boolean;
797
- multiline?: boolean;
798
- numberOfLines?: number;
799
- variant?: 'default' | 'filled' | 'underline';
800
- disabled?: boolean;
801
- style?: ViewStyle;
802
- inputStyle?: TextStyle;
803
- }
804
- declare const Input: React.FC<InputProps>;
805
-
806
- interface TextAreaProps extends Omit<InputProps, 'multiline' | 'numberOfLines'> {
807
- minHeight?: number;
808
- maxHeight?: number;
809
- style?: ViewStyle;
810
- inputStyle?: TextStyle;
811
- }
812
- declare const TextArea: React.FC<TextAreaProps>;
813
-
814
- interface SearchInputProps {
815
- value: string;
816
- onChangeText: (text: string) => void;
817
- placeholder?: string;
818
- onClear?: () => void;
819
- style?: ViewStyle;
820
- }
821
- declare const SearchInput: React.FC<SearchInputProps>;
822
-
823
- interface CheckboxProps {
824
- checked: boolean;
825
- onToggle: (v: boolean) => void;
826
- label?: string;
827
- disabled?: boolean;
828
- }
829
- declare const Checkbox: React.FC<CheckboxProps>;
830
-
831
- interface RadioOption {
832
- value: string;
833
- label: string;
834
- disabled?: boolean;
835
- }
836
- interface RadioGroupProps {
837
- options: RadioOption[];
838
- value: string;
839
- onChange: (v: string) => void;
840
- direction?: 'vertical' | 'horizontal';
841
- }
842
- declare const RadioGroup: React.FC<RadioGroupProps>;
843
-
844
- interface BlinkSwitchProps {
845
- value: boolean;
846
- onValueChange: (v: boolean) => void;
847
- label?: string;
848
- disabled?: boolean;
849
- }
850
- declare const BlinkSwitch: React.FC<BlinkSwitchProps>;
851
-
852
- interface SliderProps {
853
- value: number;
854
- onValueChange: (v: number) => void;
855
- min?: number;
856
- max?: number;
857
- step?: number;
858
- showValue?: boolean;
859
- style?: ViewStyle;
641
+ backgroundSource?: string | ImageSourcePropType;
642
+ backgroundColor?: string;
643
+ children?: React.ReactNode;
644
+ className?: string;
860
645
  }
861
- declare const Slider: React.FC<SliderProps>;
646
+ declare function ReelItem({ backgroundSource, backgroundColor, children, className, }: ReelItemProps): react_jsx_runtime.JSX.Element;
862
647
 
863
- interface SelectOption {
864
- label: string;
865
- value: string;
648
+ interface ReelAction {
649
+ key: string;
650
+ icon: React.ReactNode;
651
+ label?: string;
652
+ count?: number;
653
+ onPress?: () => void;
866
654
  }
867
- interface SelectProps {
868
- options: SelectOption[];
869
- value?: string;
870
- onChange: (value: string) => void;
871
- placeholder?: string;
872
- style?: ViewStyle;
655
+ interface ReelOverlayProps {
656
+ username: string;
657
+ description?: string;
658
+ actions?: ReelAction[];
659
+ avatar?: React.ReactNode;
660
+ children?: React.ReactNode;
661
+ className?: string;
873
662
  }
874
- declare const Select: React.FC<SelectProps>;
663
+ declare function ReelOverlay({ username, description, actions, avatar, children, className, }: ReelOverlayProps): react_jsx_runtime.JSX.Element;
875
664
 
876
- interface DatePickerProps {
877
- value?: Date;
878
- onChange: (date: Date) => void;
879
- placeholder?: string;
880
- mode?: 'date' | 'time' | 'datetime';
881
- style?: ViewStyle;
665
+ type GlassTint = 'light' | 'dark' | 'default' | 'extraLight' | 'prominent' | 'systemMaterial';
666
+ interface GlassViewProps {
667
+ intensity?: number;
668
+ tint?: GlassTint;
669
+ borderRadius?: number;
670
+ children?: React.ReactNode;
671
+ className?: string;
882
672
  }
883
- declare const DatePicker: React.FC<DatePickerProps>;
673
+ declare function GlassView({ intensity, tint, borderRadius, children, className, }: GlassViewProps): react_jsx_runtime.JSX.Element;
884
674
 
885
- interface CounterProps {
886
- value: number;
887
- onChange: (v: number) => void;
888
- min?: number;
889
- max?: number;
890
- step?: number;
675
+ interface GlassCardProps {
676
+ intensity?: number;
677
+ tint?: GlassTint;
678
+ onPress?: () => void;
679
+ style?: ViewStyle;
680
+ children?: React.ReactNode;
681
+ className?: string;
891
682
  }
892
- declare const Counter: React.FC<CounterProps>;
683
+ declare function GlassCard({ intensity, tint, onPress, style, children, className, }: GlassCardProps): react_jsx_runtime.JSX.Element;
893
684
 
894
- interface HeaderProps {
685
+ interface GlassHeaderProps {
895
686
  title?: string;
896
687
  subtitle?: string;
897
688
  left?: React.ReactNode;
898
689
  right?: React.ReactNode;
899
- variant?: 'default' | 'blurred' | 'transparent' | 'collapsible';
900
- large?: boolean;
901
- style?: ViewStyle;
690
+ intensity?: number;
691
+ tint?: GlassTint;
692
+ showBackButton?: boolean;
693
+ onBackPress?: () => void;
694
+ backIcon?: React.ReactNode;
695
+ children?: React.ReactNode;
696
+ className?: string;
902
697
  }
903
- declare const Header: React.FC<HeaderProps>;
698
+ declare function GlassHeader({ title, subtitle, left, right, intensity, tint, showBackButton, onBackPress, backIcon, children, className, }: GlassHeaderProps): react_jsx_runtime.JSX.Element;
904
699
 
905
- interface HeaderIconProps {
906
- icon: React.ReactNode;
907
- onPress?: () => void;
908
- label?: string;
700
+ interface GlassSheetProps {
701
+ visible: boolean;
702
+ onClose: () => void;
703
+ title?: string;
704
+ height?: number;
705
+ intensity?: number;
706
+ tint?: GlassTint;
707
+ children?: React.ReactNode;
708
+ className?: string;
909
709
  }
910
- declare const HeaderIcon: React.FC<HeaderIconProps>;
710
+ declare function GlassSheet({ visible, onClose, title, height, intensity, tint, children, className, }: GlassSheetProps): react_jsx_runtime.JSX.Element;
911
711
 
912
- interface TabItem {
712
+ interface GlassTab {
913
713
  key: string;
914
714
  label: string;
915
715
  icon: React.ReactNode;
916
716
  activeIcon?: React.ReactNode;
717
+ badge?: number;
917
718
  }
918
- interface TabBarProps {
919
- tabs: TabItem[];
719
+ interface GlassTabBarProps {
720
+ tabs: GlassTab[];
920
721
  activeKey: string;
921
722
  onChange: (key: string) => void;
922
- style?: ViewStyle;
723
+ intensity?: number;
724
+ tint?: GlassTint;
725
+ className?: string;
923
726
  }
924
- declare const TabBar: React.FC<TabBarProps>;
727
+ declare function GlassTabBar({ tabs, activeKey, onChange, intensity, tint, className, }: GlassTabBarProps): react_jsx_runtime.JSX.Element;
925
728
 
926
- interface TabButtonProps {
927
- icon: React.ReactNode;
928
- label: string;
929
- active: boolean;
930
- onPress: () => void;
729
+ type BubbleStatus = 'sending' | 'sent' | 'delivered' | 'read';
730
+ interface ChatBubbleProps {
731
+ content: string;
732
+ variant: 'sent' | 'received';
733
+ timestamp?: string;
734
+ status?: BubbleStatus;
735
+ renderMarkdown?: (content: string) => React.ReactNode;
736
+ children?: React.ReactNode;
737
+ className?: string;
931
738
  }
932
- declare const TabButton: React.FC<TabButtonProps>;
739
+ declare function ChatBubble({ content, variant, timestamp, status, renderMarkdown, children, className, }: ChatBubbleProps): react_jsx_runtime.JSX.Element;
933
740
 
934
- interface Segment {
935
- value: string;
936
- label: string;
741
+ interface ChatInputProps {
742
+ onSend?: (text: string) => void;
743
+ placeholder?: string;
744
+ attachButton?: React.ReactNode;
745
+ voiceButton?: React.ReactNode;
746
+ onAttach?: () => void;
747
+ onVoice?: () => void;
748
+ disabled?: boolean;
749
+ className?: string;
937
750
  }
938
- interface SegmentedControlProps {
939
- segments: Segment[];
940
- value: string;
941
- onChange: (v: string) => void;
942
- style?: ViewStyle;
751
+ declare function ChatInput({ onSend, placeholder, attachButton, voiceButton, onAttach, onVoice, disabled, className, }: ChatInputProps): react_jsx_runtime.JSX.Element;
752
+
753
+ interface ChatMessage {
754
+ id: string;
755
+ type: 'sent' | 'received' | 'system';
756
+ date?: string;
757
+ }
758
+ interface ChatListProps<T extends ChatMessage> {
759
+ messages: T[];
760
+ renderMessage: (item: T, index: number) => React.ReactNode;
761
+ renderDateSeparator?: (date: string) => React.ReactNode;
762
+ className?: string;
943
763
  }
944
- declare const SegmentedControl: React.FC<SegmentedControlProps>;
764
+ declare function ChatList<T extends ChatMessage>({ messages, renderMessage, renderDateSeparator, className, }: ChatListProps<T>): react_jsx_runtime.JSX.Element;
945
765
 
946
- type BottomSheetRef = {
947
- show: () => void;
948
- hide: () => void;
949
- };
950
- interface BottomSheetProps {
951
- children: React.ReactNode;
952
- title?: string;
953
- snapPoints?: number[];
954
- style?: ViewStyle;
766
+ interface TypingIndicatorProps {
767
+ label?: React.ReactNode;
768
+ className?: string;
955
769
  }
956
- declare const BottomSheet: React.ForwardRefExoticComponent<BottomSheetProps & React.RefAttributes<BottomSheetRef>>;
957
- declare function useBottomSheet(): {
958
- ref: React.RefObject<BottomSheetRef>;
959
- show: () => void | undefined;
960
- hide: () => void | undefined;
961
- };
770
+ declare function TypingIndicator({ label, className }: TypingIndicatorProps): react_jsx_runtime.JSX.Element;
962
771
 
963
- interface BlinkModalProps {
964
- visible: boolean;
965
- onClose: () => void;
966
- title?: string;
967
- description?: string;
968
- children?: React.ReactNode;
969
- showCloseButton?: boolean;
970
- style?: ViewStyle;
772
+ interface ListingCardProps {
773
+ image: ImageSourcePropType | string;
774
+ title: string;
775
+ subtitle?: string;
776
+ price: string;
777
+ priceSuffix?: string;
778
+ rating?: number;
779
+ favorite?: boolean;
780
+ badge?: string;
781
+ imageHeight?: number;
782
+ onPress?: () => void;
783
+ onFavorite?: () => void;
784
+ className?: string;
971
785
  }
972
- declare const BlinkModal: React.FC<BlinkModalProps>;
786
+ declare function ListingCard({ image, title, subtitle, price, priceSuffix, rating, favorite, badge, imageHeight, onPress, onFavorite, className, }: ListingCardProps): react_jsx_runtime.JSX.Element;
973
787
 
974
- interface ConfirmationSheetProps {
788
+ interface ProductCardProps {
789
+ image: ImageSourcePropType | string;
975
790
  title: string;
976
- message?: string;
977
- confirmLabel?: string;
978
- cancelLabel?: string;
979
- onConfirm: () => void;
980
- onCancel: () => void;
981
- destructive?: boolean;
791
+ price: string;
792
+ originalPrice?: string;
793
+ badge?: string;
794
+ favorite?: boolean;
795
+ onPress?: () => void;
796
+ onFavorite?: () => void;
797
+ className?: string;
982
798
  }
983
- declare const ConfirmationSheet: React.FC<ConfirmationSheetProps>;
984
- declare function useConfirmationSheet(): {
985
- show: (p: ConfirmationSheetProps) => void;
986
- Sheet: react_jsx_runtime.JSX.Element | null;
987
- };
799
+ declare function ProductCard({ image, title, price, originalPrice, badge, favorite, onPress, onFavorite, className, }: ProductCardProps): react_jsx_runtime.JSX.Element;
988
800
 
989
- interface ActionItem {
990
- label: string;
991
- icon?: React.ReactNode;
992
- onPress: () => void;
993
- destructive?: boolean;
994
- disabled?: boolean;
801
+ interface CartItemProps {
802
+ image: ImageSourcePropType | string;
803
+ title: string;
804
+ subtitle?: string;
805
+ price: string;
806
+ quantity: number;
807
+ onIncrement?: () => void;
808
+ onDecrement?: () => void;
809
+ onRemove?: () => void;
810
+ className?: string;
995
811
  }
996
- interface BlinkActionSheetProps {
997
- title?: string;
998
- items: ActionItem[];
999
- cancelLabel?: string;
1000
- onClose?: () => void;
812
+ declare function CartItem({ image, title, subtitle, price, quantity, onIncrement, onDecrement, onRemove, className, }: CartItemProps): react_jsx_runtime.JSX.Element;
813
+
814
+ interface PriceTagProps {
815
+ price: string;
816
+ originalPrice?: string;
817
+ suffix?: string;
818
+ className?: string;
1001
819
  }
1002
- declare const BlinkActionSheet: React.FC<BlinkActionSheetProps>;
1003
- declare function useActionSheet(): {
1004
- show: (p: BlinkActionSheetProps) => void;
1005
- Sheet: react_jsx_runtime.JSX.Element | null;
1006
- };
820
+ declare function PriceTag({ price, originalPrice, suffix, className }: PriceTagProps): react_jsx_runtime.JSX.Element;
1007
821
 
1008
- type ToastType = 'success' | 'error' | 'info' | 'warning';
1009
- type ToastPosition = 'top' | 'bottom';
1010
- interface ToastOptions {
1011
- message: string;
1012
- type?: ToastType;
1013
- duration?: number;
1014
- position?: ToastPosition;
822
+ interface RatingStarsProps {
823
+ rating: number;
824
+ maxStars?: number;
825
+ count?: number;
826
+ size?: number;
827
+ className?: string;
1015
828
  }
1016
- declare const Toast: React.FC;
1017
- declare const toast: {
1018
- show: (opts: ToastOptions) => void | undefined;
1019
- success: (message: string, opts?: Partial<ToastOptions>) => void | undefined;
1020
- error: (message: string, opts?: Partial<ToastOptions>) => void | undefined;
1021
- info: (message: string, opts?: Partial<ToastOptions>) => void | undefined;
1022
- warning: (message: string, opts?: Partial<ToastOptions>) => void | undefined;
1023
- };
829
+ declare function RatingStars({ rating, maxStars, count, size, className, }: RatingStarsProps): react_jsx_runtime.JSX.Element;
1024
830
 
1025
- interface PageLoaderProps {
1026
- message?: string;
1027
- transparent?: boolean;
831
+ interface CategoryTileProps {
832
+ icon: keyof typeof Ionicons.glyphMap;
833
+ label: string;
834
+ iconColor?: string;
835
+ onPress?: () => void;
836
+ className?: string;
1028
837
  }
1029
- declare const PageLoader: React.FC<PageLoaderProps>;
838
+ declare function CategoryTile({ icon, label, iconColor, onPress, className, }: CategoryTileProps): react_jsx_runtime.JSX.Element;
1030
839
 
1031
- interface EmptyStateProps {
1032
- icon?: React.ReactNode;
840
+ interface BalanceDisplayProps {
841
+ label?: string;
842
+ amount: string;
843
+ currency?: string;
844
+ changePercent?: number;
845
+ className?: string;
846
+ }
847
+ declare function BalanceDisplay({ label, amount, currency, changePercent, className, }: BalanceDisplayProps): react_jsx_runtime.JSX.Element;
848
+
849
+ interface CardPreviewProps {
850
+ cardNumber?: string;
851
+ expiryDate?: string;
852
+ brand?: string;
853
+ gradientColors?: [string, string];
854
+ className?: string;
855
+ }
856
+ declare function CardPreview({ cardNumber, expiryDate, brand, gradientColors, className, }: CardPreviewProps): react_jsx_runtime.JSX.Element;
857
+
858
+ interface TransactionItemProps {
1033
859
  title: string;
1034
- description?: string;
1035
- action?: {
1036
- label: string;
1037
- onPress: () => void;
1038
- };
1039
- style?: ViewStyle;
860
+ amount: string;
861
+ time: string;
862
+ method?: string;
863
+ isIncome?: boolean;
864
+ icon?: keyof typeof Ionicons.glyphMap;
865
+ avatar?: ImageSourcePropType | string;
866
+ onPress?: () => void;
867
+ className?: string;
1040
868
  }
1041
- declare const EmptyState: React.FC<EmptyStateProps>;
869
+ declare function TransactionItem({ title, amount, time, method, isIncome, icon, avatar, onPress, className, }: TransactionItemProps): react_jsx_runtime.JSX.Element;
1042
870
 
1043
- interface PlaceholderProps {
1044
- width?: number | string;
1045
- height?: number;
1046
- borderRadius?: number;
1047
- style?: ViewStyle;
871
+ interface StoryCircleProps {
872
+ image: ImageSourcePropType | string;
873
+ size?: number;
874
+ seen?: boolean;
875
+ gradientColors?: string[];
876
+ onPress?: () => void;
877
+ className?: string;
878
+ }
879
+ declare function StoryCircle({ image, size, seen, gradientColors, onPress, className, }: StoryCircleProps): react_jsx_runtime.JSX.Element;
880
+
881
+ interface FeedCardProps {
882
+ userName: string;
883
+ userAvatar: ImageSourcePropType | string;
884
+ timeAgo: string;
885
+ content?: string;
886
+ image?: ImageSourcePropType | string;
887
+ liked?: boolean;
888
+ likeCount?: number;
889
+ commentCount?: number;
890
+ bookmarked?: boolean;
891
+ onLike?: () => void;
892
+ onComment?: () => void;
893
+ onShare?: () => void;
894
+ onBookmark?: () => void;
895
+ onMore?: () => void;
896
+ onUserPress?: () => void;
897
+ className?: string;
1048
898
  }
1049
- declare const Placeholder: React.FC<PlaceholderProps>;
899
+ declare function FeedCard({ userName, userAvatar, timeAgo, content, image, liked, likeCount, commentCount, bookmarked, onLike, onComment, onShare, onBookmark, onMore, onUserPress, className, }: FeedCardProps): react_jsx_runtime.JSX.Element;
1050
900
 
1051
- interface TextSkeletonProps {
1052
- lines?: number;
1053
- style?: ViewStyle;
901
+ interface ProviderCardProps {
902
+ heroImage: ImageSourcePropType | string;
903
+ avatar: ImageSourcePropType | string;
904
+ name: string;
905
+ rating?: number;
906
+ location?: string;
907
+ description?: string;
908
+ onPress?: () => void;
909
+ className?: string;
1054
910
  }
1055
- interface CardSkeletonProps {
1056
- style?: ViewStyle;
911
+ declare function ProviderCard({ heroImage, avatar, name, rating, location, description, onPress, className, }: ProviderCardProps): react_jsx_runtime.JSX.Element;
912
+
913
+ interface Reaction {
914
+ emoji: string;
915
+ count: number;
916
+ active?: boolean;
1057
917
  }
1058
- interface ListSkeletonProps {
1059
- rows?: number;
1060
- style?: ViewStyle;
918
+ interface ReactionBarProps {
919
+ reactions: Reaction[];
920
+ onReact?: (emoji: string) => void;
921
+ className?: string;
1061
922
  }
1062
- interface AvatarSkeletonProps {
1063
- size?: number;
1064
- style?: ViewStyle;
923
+ declare function ReactionBar({ reactions, onReact, className }: ReactionBarProps): react_jsx_runtime.JSX.Element;
924
+
925
+ interface SearchBarProps {
926
+ placeholder?: string;
927
+ value?: string;
928
+ onChangeText?: (text: string) => void;
929
+ onSubmit?: (text: string) => void;
930
+ autoFocus?: boolean;
931
+ /** When true, renders as a pressable pill that opens full-screen overlay */
932
+ asTrigger?: boolean;
933
+ className?: string;
1065
934
  }
1066
- declare const SkeletonLoader: {
1067
- Text: React.FC<TextSkeletonProps>;
1068
- Card: React.FC<CardSkeletonProps>;
1069
- List: React.FC<ListSkeletonProps>;
1070
- Avatar: React.FC<AvatarSkeletonProps>;
1071
- };
935
+ declare function SearchBar({ placeholder, value: controlledValue, onChangeText, onSubmit, autoFocus, asTrigger, className, }: SearchBarProps): react_jsx_runtime.JSX.Element;
1072
936
 
1073
- interface HorizontalScrollerProps {
1074
- children: React.ReactNode;
1075
- snap?: boolean;
1076
- snapInterval?: number;
1077
- paddingHorizontal?: number;
1078
- gap?: number;
1079
- style?: ViewStyle;
937
+ interface FilterChip {
938
+ id: string;
939
+ label: string;
940
+ }
941
+ interface FilterChipRowProps {
942
+ chips: FilterChip[];
943
+ activeId?: string;
944
+ onSelect?: (id: string) => void;
945
+ className?: string;
1080
946
  }
1081
- declare const HorizontalScroller: React.FC<HorizontalScrollerProps>;
947
+ declare function FilterChipRow({ chips, activeId, onSelect, className, }: FilterChipRowProps): react_jsx_runtime.JSX.Element;
1082
948
 
1083
- interface CardScrollerProps {
1084
- children: React.ReactNode;
1085
- cardWidth?: number;
1086
- gap?: number;
1087
- snapEnabled?: boolean;
1088
- paddingHorizontal?: number;
1089
- style?: ViewStyle;
949
+ type SectionTitleSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl';
950
+ interface SectionHeaderProps {
951
+ title: string;
952
+ titleSize?: SectionTitleSize;
953
+ linkText?: string;
954
+ onLinkPress?: () => void;
955
+ className?: string;
1090
956
  }
1091
- declare const CardScroller: React.FC<CardScrollerProps>;
957
+ declare function SectionHeader({ title, titleSize, linkText, onLinkPress, className, }: SectionHeaderProps): react_jsx_runtime.JSX.Element;
1092
958
 
1093
- interface ImageCarouselProps {
1094
- images: string[];
1095
- height?: number;
1096
- borderRadius?: number;
1097
- onIndexChange?: (index: number) => void;
1098
- style?: ViewStyle;
959
+ interface CheckoutStep {
960
+ key: string;
961
+ label: string;
962
+ content: React.ReactNode;
963
+ }
964
+ interface CheckoutFlowProps {
965
+ steps: CheckoutStep[];
966
+ onComplete?: () => void;
967
+ nextLabel?: string;
968
+ completeLabel?: string;
969
+ className?: string;
970
+ }
971
+ declare function CheckoutFlow({ steps, onComplete, nextLabel, completeLabel, className, }: CheckoutFlowProps): react_jsx_runtime.JSX.Element;
972
+
973
+ interface DateRangePickerProps {
974
+ startDate?: Date;
975
+ endDate?: Date;
976
+ onSelect?: (start: Date, end: Date | null) => void;
977
+ className?: string;
1099
978
  }
1100
- declare const ImageCarousel: React.FC<ImageCarouselProps>;
979
+ declare function DateRangePicker({ startDate: initialStart, endDate: initialEnd, onSelect, className, }: DateRangePickerProps): react_jsx_runtime.JSX.Element;
1101
980
 
1102
- export { type ActionItem, AnimatedFab, AnimatedView, AnimatedView as AnimatedViewNamed, type AnimationType, Avatar, type AvatarProps, Badge, type BadgeProps, BlinkActionSheet, type BlinkActionSheetProps, BlinkMobileUIProvider, BlinkModal, type BlinkModalProps, BlinkPressable, type BlinkPressableProps, BlinkSwitch, type BlinkSwitchProps, type BorderRadiusScale, BottomSheet, type BottomSheetProps, type BottomSheetRef, Button, type ButtonProps, Card, type CardProps, CardScroller, type CardScrollerProps, ChatBubble, ChatInput, ChatList, Checkbox, type CheckboxProps, Chip, type ChipProps, type ColorPalette, type ColorScheme, ConfirmationSheet, type ConfirmationSheetProps, Container, type ContainerProps, Counter, type CounterProps, DatePicker, type DatePickerProps, Divider, type DividerProps, EmptyState, type EmptyStateProps, FadeIn, FeatureRow, GlassCard, GlassHeader, GlassSheet, GlassTabBar, GlassView, Grid, type GridProps, HStack, Header, HeaderIcon, type HeaderIconProps, type HeaderProps, HorizontalScroller, type HorizontalScrollerProps, Icon, IconButton, type IconButtonProps, type IconProps, ImageCarousel, type ImageCarouselProps, Input, type InputProps, List, ListItem, type ListItemProps, type ListProps, MultiStep, type MultiStepProps, OnboardingCarousel, type OnboardingCarouselProps, OnboardingFlow, OnboardingHero, type OnboardingSlide, PageLoader, type PageLoaderProps, type PaletteName, PaywallHard, PaywallScreen, type PaywallScreenProps, PaywallSoft, PermissionStep, Placeholder, type PlaceholderProps, PlanCard, PlanComparison, type PlanOption, ProgressBar, type ProgressBarProps, type QuizOption, QuizStep, type QuizStepProps, RadioGroup, type RadioGroupProps, ReelItem, ReelOverlay, SCREEN_HEIGHT, SCREEN_WIDTH, SafeWrapper, type SafeWrapperProps, ScaleIn, ScreenContent, type ScreenContentProps, SearchInput, type SearchInputProps, Section, type SectionProps, SegmentedControl, type SegmentedControlProps, Select, type SelectProps, type ShadowScale, Skeleton, SkeletonLoader, type SkeletonProps, SlideIn, SlideUp, Slider, SocialProofBar, Spacer, type SpacerProps, type SpacingScale, Stack, type StackProps, type StepProps, SwipeActions, SwipeCard, SwipeDeck, SwipeOverlay, TabBar, type TabBarProps, TabButton, type TabButtonProps, Tag, type TagProps, Text, TextArea, type TextProps, type ThemeTokens, Toast, Toggle, type ToggleProps, TrialBanner, TypingIndicator, type TypographyScale, VStack, VerticalReel, applyShadow, mergeStyles as cn, defaultPalette, hapticAvailable, isAndroid, isIOS, isWeb, mergeStyles, palettes, platformTouchTarget, platformValue, shadowPresets, toast, useActionSheet, useBlinkMobileUI, useBottomSheet, useConfirmationSheet, useThemeColors };
981
+ export { type ActionItem, AnimatedFab, AnimatedView, type AnimationType, AuthButtons, type AuthButtonsProps, type AuthProvider, BalanceDisplay, type BalanceDisplayProps, BlinkActionSheet, type BlinkActionSheetProps, BlinkModal, BlinkSwitch, type BlinkSwitchProps, BottomSheet, CardPreview, type CardPreviewProps, CardScroller, CartItem, type CartItemProps, CategoryTile, type CategoryTileProps, ChatBubble, type ChatBubbleProps, ChatInput, type ChatInputProps, ChatList, type ChatListProps, type ChatMessage, Checkbox, type CheckboxProps, CheckoutFlow, type CheckoutFlowProps, type CheckoutStep, ConfirmationSheet, type ConfirmationSheetProps, Counter, type CounterProps, DateRangePicker, type DateRangePickerProps, EmptyState, FadeIn, FeatureRow, type FeatureRowProps, FeedCard, type FeedCardProps, type FilterChip, FilterChipRow, type FilterChipRowProps, GlassCard, type GlassCardProps, GlassHeader, type GlassHeaderProps, GlassSheet, type GlassSheetProps, type GlassTab, GlassTabBar, type GlassTabBarProps, type GlassTint, GlassView, type GlassViewProps, Header, HeaderIcon, type HeaderIconProps, type HeaderProps, type HeaderVariant, ImageCarousel, Input, type InputProps, type InputVariant, ListingCard, type ListingCardProps, MultiStep, OnboardingCarousel, type OnboardingCarouselProps, OnboardingFlow, type OnboardingFlowProps, type OnboardingFlowStep, OnboardingHero, type OnboardingHeroProps, OnboardingParallax, type OnboardingParallaxProps, type OnboardingSlide, PageLoader, type ParallaxLayer, type ParallaxSlide, type PaywallFeature, PaywallHard, type PaywallHardProps, PaywallScreen, type PaywallScreenProps, PaywallSoft, type PaywallSoftProps, PermissionStep, type PermissionStepProps, Placeholder, PlanCard, type PlanCardProps, PlanComparison, type PlanComparisonProps, type PlanOption, PriceTag, type PriceTagProps, ProductCard, type ProductCardProps, ProviderCard, type ProviderCardProps, type QuizOption, QuizStep, type QuizStepProps, RadioGroup, type RadioGroupProps, type RadioOption, RatingStars, type RatingStarsProps, type Reaction, ReactionBar, type ReactionBarProps, type ReelAction, ReelItem, type ReelItemProps, ReelOverlay, type ReelOverlayProps, ScaleIn, SearchBar, type SearchBarProps, SearchInput, type SearchInputProps, SearchPill, type SearchPillProps, SectionHeader, type SectionHeaderProps, type SectionTitleSize, type Segment, SegmentedControl, type SegmentedControlProps, Select, type SelectOption, type SelectProps, SkeletonLoader, SlideIn, SlideUp, Slider, type SliderProps, SocialProofBar, type SocialProofBarProps, StoryCircle, type StoryCircleProps, SwipeActions, type SwipeActionsProps, SwipeCard, type SwipeCardProps, SwipeDeck, type SwipeDeckProps, type SwipeDirection, SwipeOverlay, type SwipeOverlayProps, TabBar, type TabBarProps, TabButton, type TabButtonProps, type TabItem, TextArea, type TextAreaProps, ThemeScroller, Toast, TransactionItem, type TransactionItemProps, TrialBanner, type TrialBannerProps, TypingIndicator, type TypingIndicatorProps, VerticalReel, type VerticalReelProps, cn, toast, useActionSheet, useAnimColors, useConfirmationSheet };