@blinkdotnew/mobile-ui 0.1.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 +1102 -0
- package/dist/index.d.ts +1102 -0
- package/dist/index.js +5762 -0
- package/dist/index.mjs +5647 -0
- package/package.json +103 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,1102 @@
|
|
|
1
|
+
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
+
import React, { ReactNode } from 'react';
|
|
3
|
+
import { ViewStyle, TextStyle, ImageStyle, ImageSourcePropType, DimensionValue, PressableProps, EasingFunction, StyleProp } from 'react-native';
|
|
4
|
+
|
|
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;
|
|
15
|
+
text: string;
|
|
16
|
+
textSecondary: string;
|
|
17
|
+
textMuted: string;
|
|
18
|
+
textInverse: string;
|
|
19
|
+
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;
|
|
28
|
+
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;
|
|
116
|
+
|
|
117
|
+
declare const palettes: Record<string, ThemeTokens>;
|
|
118
|
+
declare const defaultPalette: ThemeTokens;
|
|
119
|
+
|
|
120
|
+
type Style = ViewStyle | TextStyle | ImageStyle;
|
|
121
|
+
declare function mergeStyles(...styles: (Style | Style[] | undefined | null | false)[]): Style;
|
|
122
|
+
|
|
123
|
+
declare function applyShadow(shadow: ShadowStyle): object;
|
|
124
|
+
declare const shadowPresets: {
|
|
125
|
+
card: (isDark?: boolean) => object;
|
|
126
|
+
elevated: (isDark?: boolean) => object;
|
|
127
|
+
};
|
|
128
|
+
|
|
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;
|
|
149
|
+
onPress?: () => void;
|
|
150
|
+
}
|
|
151
|
+
declare function Text({ variant, color, weight, center, muted, inverse, numberOfLines, children, style, onPress, }: TextProps): react_jsx_runtime.JSX.Element;
|
|
152
|
+
|
|
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;
|
|
159
|
+
disabled?: boolean;
|
|
160
|
+
iconLeft?: React.ReactNode;
|
|
161
|
+
iconRight?: React.ReactNode;
|
|
162
|
+
fullWidth?: boolean;
|
|
163
|
+
children?: React.ReactNode;
|
|
164
|
+
onPress?: () => void;
|
|
165
|
+
style?: ViewStyle;
|
|
166
|
+
}
|
|
167
|
+
declare function Button({ variant, size, loading, disabled, iconLeft, iconRight, fullWidth, children, onPress, style, }: ButtonProps): react_jsx_runtime.JSX.Element;
|
|
168
|
+
|
|
169
|
+
type IconButtonVariant = 'primary' | 'secondary' | 'ghost';
|
|
170
|
+
type IconButtonSize = 'sm' | 'md' | 'lg';
|
|
171
|
+
interface IconButtonProps {
|
|
172
|
+
variant?: IconButtonVariant;
|
|
173
|
+
size?: IconButtonSize;
|
|
174
|
+
disabled?: boolean;
|
|
175
|
+
onPress?: () => void;
|
|
176
|
+
style?: ViewStyle;
|
|
177
|
+
children: React.ReactNode;
|
|
178
|
+
}
|
|
179
|
+
declare function IconButton({ variant, size, disabled, onPress, style, children, }: IconButtonProps): react_jsx_runtime.JSX.Element;
|
|
180
|
+
|
|
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;
|
|
189
|
+
}
|
|
190
|
+
declare function Avatar({ uri, initials, size, badge, style }: AvatarProps): react_jsx_runtime.JSX.Element;
|
|
191
|
+
|
|
192
|
+
type ChipVariant = 'default' | 'primary' | 'secondary';
|
|
193
|
+
interface ChipProps {
|
|
194
|
+
label: string;
|
|
195
|
+
selected?: boolean;
|
|
196
|
+
variant?: ChipVariant;
|
|
197
|
+
icon?: React.ReactNode;
|
|
198
|
+
onPress?: () => void;
|
|
199
|
+
onRemove?: () => void;
|
|
200
|
+
disabled?: boolean;
|
|
201
|
+
style?: ViewStyle;
|
|
202
|
+
}
|
|
203
|
+
declare function Chip({ label, selected, variant, icon, onPress, onRemove, disabled, style, }: ChipProps): react_jsx_runtime.JSX.Element;
|
|
204
|
+
|
|
205
|
+
type BadgeVariant = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info';
|
|
206
|
+
type BadgeSize = 'sm' | 'md';
|
|
207
|
+
interface BadgeProps {
|
|
208
|
+
label?: string;
|
|
209
|
+
variant?: BadgeVariant;
|
|
210
|
+
size?: BadgeSize;
|
|
211
|
+
dot?: boolean;
|
|
212
|
+
style?: ViewStyle;
|
|
213
|
+
}
|
|
214
|
+
declare function Badge({ label, variant, size, dot, style }: BadgeProps): react_jsx_runtime.JSX.Element;
|
|
215
|
+
|
|
216
|
+
type CardVariant = 'flat' | 'elevated' | 'outlined';
|
|
217
|
+
interface CardProps {
|
|
218
|
+
variant?: CardVariant;
|
|
219
|
+
onPress?: () => void;
|
|
220
|
+
style?: ViewStyle;
|
|
221
|
+
children?: React.ReactNode;
|
|
222
|
+
}
|
|
223
|
+
interface CardImageProps {
|
|
224
|
+
source: ImageSourcePropType;
|
|
225
|
+
height?: number;
|
|
226
|
+
style?: ImageStyle;
|
|
227
|
+
}
|
|
228
|
+
interface SubViewProps {
|
|
229
|
+
children?: React.ReactNode;
|
|
230
|
+
style?: ViewStyle;
|
|
231
|
+
}
|
|
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;
|
|
249
|
+
}
|
|
250
|
+
declare function Divider({ orientation, spacing, label, style }: DividerProps): react_jsx_runtime.JSX.Element;
|
|
251
|
+
|
|
252
|
+
interface IconProps {
|
|
253
|
+
name: string;
|
|
254
|
+
size?: number;
|
|
255
|
+
color?: string;
|
|
256
|
+
strokeWidth?: number;
|
|
257
|
+
}
|
|
258
|
+
declare function Icon({ name, size, color, strokeWidth }: IconProps): react_jsx_runtime.JSX.Element | null;
|
|
259
|
+
|
|
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;
|
|
268
|
+
}
|
|
269
|
+
declare function Skeleton({ variant, width, height, borderRadius, style, lines, }: SkeletonProps): react_jsx_runtime.JSX.Element;
|
|
270
|
+
|
|
271
|
+
interface ProgressBarProps {
|
|
272
|
+
value?: number;
|
|
273
|
+
indeterminate?: boolean;
|
|
274
|
+
height?: number;
|
|
275
|
+
color?: string;
|
|
276
|
+
trackColor?: string;
|
|
277
|
+
borderRadius?: number;
|
|
278
|
+
style?: ViewStyle;
|
|
279
|
+
}
|
|
280
|
+
declare function ProgressBar({ value, indeterminate, height, color, trackColor, borderRadius, style, }: ProgressBarProps): react_jsx_runtime.JSX.Element;
|
|
281
|
+
|
|
282
|
+
interface ToggleProps {
|
|
283
|
+
value: boolean;
|
|
284
|
+
onValueChange: (value: boolean) => void;
|
|
285
|
+
label?: string;
|
|
286
|
+
disabled?: boolean;
|
|
287
|
+
style?: ViewStyle;
|
|
288
|
+
}
|
|
289
|
+
declare function Toggle({ value, onValueChange, label, disabled, style }: ToggleProps): react_jsx_runtime.JSX.Element;
|
|
290
|
+
|
|
291
|
+
type TagColor = 'default' | 'primary' | 'success' | 'warning' | 'error' | 'info' | 'purple';
|
|
292
|
+
interface TagProps {
|
|
293
|
+
label: string;
|
|
294
|
+
color?: TagColor;
|
|
295
|
+
style?: ViewStyle;
|
|
296
|
+
}
|
|
297
|
+
declare function Tag({ label, color, style }: TagProps): react_jsx_runtime.JSX.Element;
|
|
298
|
+
|
|
299
|
+
interface BlinkPressableProps extends Omit<PressableProps, 'style'> {
|
|
300
|
+
activeScale?: number;
|
|
301
|
+
haptic?: boolean;
|
|
302
|
+
style?: ViewStyle | ViewStyle[];
|
|
303
|
+
children?: React.ReactNode;
|
|
304
|
+
}
|
|
305
|
+
declare function BlinkPressable({ activeScale, haptic, style, children, onPress, ...rest }: BlinkPressableProps): react_jsx_runtime.JSX.Element;
|
|
306
|
+
|
|
307
|
+
interface SafeWrapperProps {
|
|
308
|
+
children?: React.ReactNode;
|
|
309
|
+
avoidKeyboard?: boolean;
|
|
310
|
+
style?: ViewStyle;
|
|
311
|
+
}
|
|
312
|
+
declare function SafeWrapper({ children, avoidKeyboard, style }: SafeWrapperProps): react_jsx_runtime.JSX.Element;
|
|
313
|
+
|
|
314
|
+
type AnimationType = 'fadeIn' | 'scaleIn' | 'slideInBottom' | 'slideInRight' | 'slideInLeft' | 'slideInTop' | 'bounceIn' | 'flipInX' | 'zoomInRotate' | 'rotateIn' | 'slideOutBottom' | 'slideOutRight' | 'slideOutLeft' | 'slideOutTop' | 'scaleOut';
|
|
315
|
+
interface AnimatedViewProps {
|
|
316
|
+
children?: React.ReactNode;
|
|
317
|
+
animation: AnimationType;
|
|
318
|
+
duration?: number;
|
|
319
|
+
delay?: number;
|
|
320
|
+
easing?: EasingFunction;
|
|
321
|
+
style?: StyleProp<ViewStyle>;
|
|
322
|
+
className?: string;
|
|
323
|
+
playOnlyOnce?: boolean;
|
|
324
|
+
triggerOnVisible?: boolean;
|
|
325
|
+
visibilityThreshold?: number;
|
|
326
|
+
shouldResetAnimation?: boolean;
|
|
327
|
+
}
|
|
328
|
+
declare function AnimatedViewComponent({ children, animation, duration, delay, easing, style, className, playOnlyOnce, triggerOnVisible, visibilityThreshold, shouldResetAnimation, }: AnimatedViewProps): react_jsx_runtime.JSX.Element;
|
|
329
|
+
declare const AnimatedView: React.MemoExoticComponent<typeof AnimatedViewComponent>;
|
|
330
|
+
|
|
331
|
+
interface FabAction {
|
|
332
|
+
icon: React.ReactNode;
|
|
333
|
+
label: string;
|
|
334
|
+
onPress: () => void;
|
|
335
|
+
}
|
|
336
|
+
interface AnimatedFabProps {
|
|
337
|
+
icon: React.ReactNode;
|
|
338
|
+
label?: string;
|
|
339
|
+
onPress?: () => void;
|
|
340
|
+
expanded?: boolean;
|
|
341
|
+
actions?: FabAction[];
|
|
342
|
+
style?: ViewStyle;
|
|
343
|
+
}
|
|
344
|
+
declare function AnimatedFab({ icon, label, onPress, expanded, actions, style }: AnimatedFabProps): react_jsx_runtime.JSX.Element;
|
|
345
|
+
|
|
346
|
+
interface StepProps {
|
|
347
|
+
title?: string;
|
|
348
|
+
children: ReactNode;
|
|
349
|
+
}
|
|
350
|
+
interface MultiStepProps {
|
|
351
|
+
children: ReactNode;
|
|
352
|
+
onComplete?: () => void;
|
|
353
|
+
showProgress?: boolean;
|
|
354
|
+
showSkip?: boolean;
|
|
355
|
+
nextLabel?: string;
|
|
356
|
+
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;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
interface TransitionProps {
|
|
365
|
+
children: React.ReactNode;
|
|
366
|
+
duration?: number;
|
|
367
|
+
delay?: number;
|
|
368
|
+
style?: ViewStyle;
|
|
369
|
+
}
|
|
370
|
+
declare const FadeIn: React.FC<TransitionProps>;
|
|
371
|
+
declare const SlideUp: React.FC<TransitionProps>;
|
|
372
|
+
interface SlideInProps extends TransitionProps {
|
|
373
|
+
from?: 'left' | 'right' | 'bottom' | 'top';
|
|
374
|
+
}
|
|
375
|
+
declare const SlideIn: React.FC<SlideInProps>;
|
|
376
|
+
declare const ScaleIn: React.FC<TransitionProps>;
|
|
377
|
+
|
|
378
|
+
interface PlanOption {
|
|
379
|
+
id: string;
|
|
380
|
+
period: 'monthly' | 'annual' | 'weekly' | 'lifetime';
|
|
381
|
+
price: string;
|
|
382
|
+
priceSubtext?: string;
|
|
383
|
+
badge?: string;
|
|
384
|
+
trialDays?: number;
|
|
385
|
+
}
|
|
386
|
+
interface PlanCardProps {
|
|
387
|
+
plan: PlanOption;
|
|
388
|
+
selected: boolean;
|
|
389
|
+
onSelect: () => void;
|
|
390
|
+
}
|
|
391
|
+
declare function PlanCard({ plan, selected, onSelect }: PlanCardProps): react_jsx_runtime.JSX.Element;
|
|
392
|
+
|
|
393
|
+
interface FeatureItem {
|
|
394
|
+
label: string;
|
|
395
|
+
free?: boolean;
|
|
396
|
+
pro: boolean;
|
|
397
|
+
}
|
|
398
|
+
interface PaywallScreenProps {
|
|
399
|
+
appName: string;
|
|
400
|
+
tagline?: string;
|
|
401
|
+
features: FeatureItem[];
|
|
402
|
+
plans: PlanOption[];
|
|
403
|
+
onSubscribe: (planId: string) => void | Promise<void>;
|
|
404
|
+
onDismiss?: () => void;
|
|
405
|
+
loading?: boolean;
|
|
406
|
+
selectedPlan?: string;
|
|
407
|
+
style?: ViewStyle;
|
|
408
|
+
}
|
|
409
|
+
declare function PaywallScreen({ appName, tagline, features, plans, onSubscribe, onDismiss, loading, selectedPlan: controlledPlan, style, }: PaywallScreenProps): react_jsx_runtime.JSX.Element;
|
|
410
|
+
|
|
411
|
+
type PaywallSoftProps = Omit<PaywallScreenProps, 'onDismiss'> & {
|
|
412
|
+
visible: boolean;
|
|
413
|
+
onDismiss: () => void;
|
|
414
|
+
};
|
|
415
|
+
declare function PaywallSoft({ visible, onDismiss, ...rest }: PaywallSoftProps): react_jsx_runtime.JSX.Element;
|
|
416
|
+
|
|
417
|
+
type PaywallHardProps = Omit<PaywallScreenProps, 'onDismiss'> & {
|
|
418
|
+
visible: boolean;
|
|
419
|
+
};
|
|
420
|
+
declare function PaywallHard({ visible, ...rest }: PaywallHardProps): react_jsx_runtime.JSX.Element;
|
|
421
|
+
|
|
422
|
+
interface ComparisonFeature {
|
|
423
|
+
label: string;
|
|
424
|
+
free?: boolean;
|
|
425
|
+
pro: boolean;
|
|
426
|
+
enterprise?: boolean;
|
|
427
|
+
}
|
|
428
|
+
interface PlanComparisonProps {
|
|
429
|
+
features: ComparisonFeature[];
|
|
430
|
+
plans?: string[];
|
|
431
|
+
}
|
|
432
|
+
declare function PlanComparison({ features, plans }: PlanComparisonProps): react_jsx_runtime.JSX.Element;
|
|
433
|
+
|
|
434
|
+
interface FeatureRowProps {
|
|
435
|
+
label: string;
|
|
436
|
+
available?: boolean;
|
|
437
|
+
highlighted?: boolean;
|
|
438
|
+
}
|
|
439
|
+
declare function FeatureRow({ label, available, highlighted }: FeatureRowProps): react_jsx_runtime.JSX.Element;
|
|
440
|
+
|
|
441
|
+
interface TrialBannerProps {
|
|
442
|
+
days: number;
|
|
443
|
+
onClaim?: () => void;
|
|
444
|
+
dismissible?: boolean;
|
|
445
|
+
style?: ViewStyle;
|
|
446
|
+
}
|
|
447
|
+
declare function TrialBanner({ days, onClaim, dismissible, style }: TrialBannerProps): react_jsx_runtime.JSX.Element | null;
|
|
448
|
+
|
|
449
|
+
interface SocialProofBarProps {
|
|
450
|
+
userCount?: string;
|
|
451
|
+
rating?: number;
|
|
452
|
+
reviewCount?: string;
|
|
453
|
+
logos?: React.ReactNode[];
|
|
454
|
+
style?: ViewStyle;
|
|
455
|
+
}
|
|
456
|
+
declare function SocialProofBar({ userCount, rating, reviewCount, logos, style }: SocialProofBarProps): react_jsx_runtime.JSX.Element;
|
|
457
|
+
|
|
458
|
+
interface OnboardingSlide {
|
|
459
|
+
id: string;
|
|
460
|
+
title: string;
|
|
461
|
+
description?: string;
|
|
462
|
+
image?: React.ReactNode;
|
|
463
|
+
backgroundColor?: string;
|
|
464
|
+
}
|
|
465
|
+
interface OnboardingCarouselProps {
|
|
466
|
+
slides: OnboardingSlide[];
|
|
467
|
+
onComplete: () => void;
|
|
468
|
+
onSkip?: () => void;
|
|
469
|
+
showSkip?: boolean;
|
|
470
|
+
showDots?: boolean;
|
|
471
|
+
nextLabel?: string;
|
|
472
|
+
completeLabel?: string;
|
|
473
|
+
autoPlay?: boolean;
|
|
474
|
+
autoPlayInterval?: number;
|
|
475
|
+
style?: ViewStyle;
|
|
476
|
+
}
|
|
477
|
+
declare function OnboardingCarousel({ slides, onComplete, onSkip, showSkip, showDots, nextLabel, completeLabel, autoPlay, autoPlayInterval, style, }: OnboardingCarouselProps): react_jsx_runtime.JSX.Element;
|
|
478
|
+
|
|
479
|
+
interface SocialButton {
|
|
480
|
+
icon: React.ReactNode;
|
|
481
|
+
label: string;
|
|
482
|
+
onPress: () => void;
|
|
483
|
+
}
|
|
484
|
+
interface OnboardingHeroProps {
|
|
485
|
+
title: string;
|
|
486
|
+
subtitle?: string;
|
|
487
|
+
description?: string;
|
|
488
|
+
visual?: React.ReactNode;
|
|
489
|
+
ctaLabel?: string;
|
|
490
|
+
onCta?: () => void;
|
|
491
|
+
secondaryLabel?: string;
|
|
492
|
+
onSecondary?: () => void;
|
|
493
|
+
socialButtons?: SocialButton[];
|
|
494
|
+
style?: ViewStyle;
|
|
495
|
+
}
|
|
496
|
+
declare function OnboardingHero({ title, subtitle, description, visual, ctaLabel, onCta, secondaryLabel, onSecondary, socialButtons, style, }: OnboardingHeroProps): react_jsx_runtime.JSX.Element;
|
|
497
|
+
|
|
498
|
+
interface PermissionStepProps {
|
|
499
|
+
icon?: React.ReactNode;
|
|
500
|
+
title: string;
|
|
501
|
+
description: string;
|
|
502
|
+
allowLabel?: string;
|
|
503
|
+
skipLabel?: string;
|
|
504
|
+
onAllow: () => void | Promise<void>;
|
|
505
|
+
onSkip?: () => void;
|
|
506
|
+
loading?: boolean;
|
|
507
|
+
style?: ViewStyle;
|
|
508
|
+
}
|
|
509
|
+
declare function PermissionStep({ icon, title, description, allowLabel, skipLabel, onAllow, onSkip, loading: externalLoading, style, }: PermissionStepProps): react_jsx_runtime.JSX.Element;
|
|
510
|
+
|
|
511
|
+
interface QuizOption {
|
|
512
|
+
value: string;
|
|
513
|
+
label: string;
|
|
514
|
+
icon?: React.ReactNode;
|
|
515
|
+
description?: string;
|
|
516
|
+
}
|
|
517
|
+
interface QuizStepProps {
|
|
518
|
+
question: string;
|
|
519
|
+
subtitle?: string;
|
|
520
|
+
options: QuizOption[];
|
|
521
|
+
value?: string | string[];
|
|
522
|
+
onChange: (v: string | string[]) => void;
|
|
523
|
+
multiSelect?: boolean;
|
|
524
|
+
minSelect?: number;
|
|
525
|
+
maxSelect?: number;
|
|
526
|
+
style?: ViewStyle;
|
|
527
|
+
}
|
|
528
|
+
declare function QuizStep({ question, subtitle, options, value, onChange, multiSelect, maxSelect, style, }: QuizStepProps): react_jsx_runtime.JSX.Element;
|
|
529
|
+
|
|
530
|
+
interface OnboardingStep {
|
|
531
|
+
id: string;
|
|
532
|
+
component: React.ReactNode;
|
|
533
|
+
}
|
|
534
|
+
interface OnboardingFlowProps {
|
|
535
|
+
steps: OnboardingStep[];
|
|
536
|
+
onComplete: () => void;
|
|
537
|
+
showProgress?: boolean;
|
|
538
|
+
style?: ViewStyle;
|
|
539
|
+
}
|
|
540
|
+
declare function OnboardingFlow({ steps, onComplete, showProgress, style }: OnboardingFlowProps): react_jsx_runtime.JSX.Element;
|
|
541
|
+
|
|
542
|
+
interface SwipeDeckProps<T> {
|
|
543
|
+
data: T[];
|
|
544
|
+
renderCard: (item: T, index: number) => React.ReactNode;
|
|
545
|
+
onSwipeLeft?: (item: T) => void;
|
|
546
|
+
onSwipeRight?: (item: T) => void;
|
|
547
|
+
onSwipeUp?: (item: T) => void;
|
|
548
|
+
onEmpty?: () => void;
|
|
549
|
+
swipeThreshold?: number;
|
|
550
|
+
rotationFactor?: number;
|
|
551
|
+
stackDepth?: number;
|
|
552
|
+
style?: ViewStyle;
|
|
553
|
+
}
|
|
554
|
+
declare function SwipeDeck<T>(props: SwipeDeckProps<T>): react_jsx_runtime.JSX.Element;
|
|
555
|
+
|
|
556
|
+
interface SwipeCardProps {
|
|
557
|
+
children: React.ReactNode;
|
|
558
|
+
likeLabel?: string;
|
|
559
|
+
nopeLabel?: string;
|
|
560
|
+
superLabel?: string;
|
|
561
|
+
swipeDirection?: 'left' | 'right' | 'up' | null;
|
|
562
|
+
swipeIntensity?: number;
|
|
563
|
+
style?: ViewStyle;
|
|
564
|
+
}
|
|
565
|
+
declare function SwipeCard({ children, swipeDirection, swipeIntensity, style, }: SwipeCardProps): react_jsx_runtime.JSX.Element;
|
|
566
|
+
|
|
567
|
+
interface SwipeActionsProps {
|
|
568
|
+
onNope?: () => void;
|
|
569
|
+
onLike?: () => void;
|
|
570
|
+
onSuperLike?: () => void;
|
|
571
|
+
onRewind?: () => void;
|
|
572
|
+
style?: ViewStyle;
|
|
573
|
+
}
|
|
574
|
+
declare function SwipeActions({ onNope, onLike, onSuperLike, onRewind, style }: SwipeActionsProps): react_jsx_runtime.JSX.Element;
|
|
575
|
+
|
|
576
|
+
interface SwipeOverlayProps {
|
|
577
|
+
direction: 'left' | 'right' | 'up' | null;
|
|
578
|
+
intensity: number;
|
|
579
|
+
}
|
|
580
|
+
declare function SwipeOverlay({ direction, intensity }: SwipeOverlayProps): react_jsx_runtime.JSX.Element | null;
|
|
581
|
+
|
|
582
|
+
interface VerticalReelProps<T> {
|
|
583
|
+
data: T[];
|
|
584
|
+
renderItem: (item: T, index: number, isActive: boolean) => React.ReactNode;
|
|
585
|
+
onActiveChange?: (index: number) => void;
|
|
586
|
+
preloadCount?: number;
|
|
587
|
+
style?: ViewStyle;
|
|
588
|
+
}
|
|
589
|
+
declare function VerticalReel<T extends {
|
|
590
|
+
id?: string | number;
|
|
591
|
+
}>({ data, renderItem, onActiveChange, preloadCount, style, }: VerticalReelProps<T>): react_jsx_runtime.JSX.Element;
|
|
592
|
+
|
|
593
|
+
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;
|
|
860
|
+
}
|
|
861
|
+
declare const Slider: React.FC<SliderProps>;
|
|
862
|
+
|
|
863
|
+
interface SelectOption {
|
|
864
|
+
label: string;
|
|
865
|
+
value: string;
|
|
866
|
+
}
|
|
867
|
+
interface SelectProps {
|
|
868
|
+
options: SelectOption[];
|
|
869
|
+
value?: string;
|
|
870
|
+
onChange: (value: string) => void;
|
|
871
|
+
placeholder?: string;
|
|
872
|
+
style?: ViewStyle;
|
|
873
|
+
}
|
|
874
|
+
declare const Select: React.FC<SelectProps>;
|
|
875
|
+
|
|
876
|
+
interface DatePickerProps {
|
|
877
|
+
value?: Date;
|
|
878
|
+
onChange: (date: Date) => void;
|
|
879
|
+
placeholder?: string;
|
|
880
|
+
mode?: 'date' | 'time' | 'datetime';
|
|
881
|
+
style?: ViewStyle;
|
|
882
|
+
}
|
|
883
|
+
declare const DatePicker: React.FC<DatePickerProps>;
|
|
884
|
+
|
|
885
|
+
interface CounterProps {
|
|
886
|
+
value: number;
|
|
887
|
+
onChange: (v: number) => void;
|
|
888
|
+
min?: number;
|
|
889
|
+
max?: number;
|
|
890
|
+
step?: number;
|
|
891
|
+
}
|
|
892
|
+
declare const Counter: React.FC<CounterProps>;
|
|
893
|
+
|
|
894
|
+
interface HeaderProps {
|
|
895
|
+
title?: string;
|
|
896
|
+
subtitle?: string;
|
|
897
|
+
left?: React.ReactNode;
|
|
898
|
+
right?: React.ReactNode;
|
|
899
|
+
variant?: 'default' | 'blurred' | 'transparent' | 'collapsible';
|
|
900
|
+
large?: boolean;
|
|
901
|
+
style?: ViewStyle;
|
|
902
|
+
}
|
|
903
|
+
declare const Header: React.FC<HeaderProps>;
|
|
904
|
+
|
|
905
|
+
interface HeaderIconProps {
|
|
906
|
+
icon: React.ReactNode;
|
|
907
|
+
onPress?: () => void;
|
|
908
|
+
label?: string;
|
|
909
|
+
}
|
|
910
|
+
declare const HeaderIcon: React.FC<HeaderIconProps>;
|
|
911
|
+
|
|
912
|
+
interface TabItem {
|
|
913
|
+
key: string;
|
|
914
|
+
label: string;
|
|
915
|
+
icon: React.ReactNode;
|
|
916
|
+
activeIcon?: React.ReactNode;
|
|
917
|
+
}
|
|
918
|
+
interface TabBarProps {
|
|
919
|
+
tabs: TabItem[];
|
|
920
|
+
activeKey: string;
|
|
921
|
+
onChange: (key: string) => void;
|
|
922
|
+
style?: ViewStyle;
|
|
923
|
+
}
|
|
924
|
+
declare const TabBar: React.FC<TabBarProps>;
|
|
925
|
+
|
|
926
|
+
interface TabButtonProps {
|
|
927
|
+
icon: React.ReactNode;
|
|
928
|
+
label: string;
|
|
929
|
+
active: boolean;
|
|
930
|
+
onPress: () => void;
|
|
931
|
+
}
|
|
932
|
+
declare const TabButton: React.FC<TabButtonProps>;
|
|
933
|
+
|
|
934
|
+
interface Segment {
|
|
935
|
+
value: string;
|
|
936
|
+
label: string;
|
|
937
|
+
}
|
|
938
|
+
interface SegmentedControlProps {
|
|
939
|
+
segments: Segment[];
|
|
940
|
+
value: string;
|
|
941
|
+
onChange: (v: string) => void;
|
|
942
|
+
style?: ViewStyle;
|
|
943
|
+
}
|
|
944
|
+
declare const SegmentedControl: React.FC<SegmentedControlProps>;
|
|
945
|
+
|
|
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;
|
|
955
|
+
}
|
|
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
|
+
};
|
|
962
|
+
|
|
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;
|
|
971
|
+
}
|
|
972
|
+
declare const BlinkModal: React.FC<BlinkModalProps>;
|
|
973
|
+
|
|
974
|
+
interface ConfirmationSheetProps {
|
|
975
|
+
title: string;
|
|
976
|
+
message?: string;
|
|
977
|
+
confirmLabel?: string;
|
|
978
|
+
cancelLabel?: string;
|
|
979
|
+
onConfirm: () => void;
|
|
980
|
+
onCancel: () => void;
|
|
981
|
+
destructive?: boolean;
|
|
982
|
+
}
|
|
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
|
+
};
|
|
988
|
+
|
|
989
|
+
interface ActionItem {
|
|
990
|
+
label: string;
|
|
991
|
+
icon?: React.ReactNode;
|
|
992
|
+
onPress: () => void;
|
|
993
|
+
destructive?: boolean;
|
|
994
|
+
disabled?: boolean;
|
|
995
|
+
}
|
|
996
|
+
interface BlinkActionSheetProps {
|
|
997
|
+
title?: string;
|
|
998
|
+
items: ActionItem[];
|
|
999
|
+
cancelLabel?: string;
|
|
1000
|
+
onClose?: () => void;
|
|
1001
|
+
}
|
|
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
|
+
};
|
|
1007
|
+
|
|
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;
|
|
1015
|
+
}
|
|
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
|
+
};
|
|
1024
|
+
|
|
1025
|
+
interface PageLoaderProps {
|
|
1026
|
+
message?: string;
|
|
1027
|
+
transparent?: boolean;
|
|
1028
|
+
}
|
|
1029
|
+
declare const PageLoader: React.FC<PageLoaderProps>;
|
|
1030
|
+
|
|
1031
|
+
interface EmptyStateProps {
|
|
1032
|
+
icon?: React.ReactNode;
|
|
1033
|
+
title: string;
|
|
1034
|
+
description?: string;
|
|
1035
|
+
action?: {
|
|
1036
|
+
label: string;
|
|
1037
|
+
onPress: () => void;
|
|
1038
|
+
};
|
|
1039
|
+
style?: ViewStyle;
|
|
1040
|
+
}
|
|
1041
|
+
declare const EmptyState: React.FC<EmptyStateProps>;
|
|
1042
|
+
|
|
1043
|
+
interface PlaceholderProps {
|
|
1044
|
+
width?: number | string;
|
|
1045
|
+
height?: number;
|
|
1046
|
+
borderRadius?: number;
|
|
1047
|
+
style?: ViewStyle;
|
|
1048
|
+
}
|
|
1049
|
+
declare const Placeholder: React.FC<PlaceholderProps>;
|
|
1050
|
+
|
|
1051
|
+
interface TextSkeletonProps {
|
|
1052
|
+
lines?: number;
|
|
1053
|
+
style?: ViewStyle;
|
|
1054
|
+
}
|
|
1055
|
+
interface CardSkeletonProps {
|
|
1056
|
+
style?: ViewStyle;
|
|
1057
|
+
}
|
|
1058
|
+
interface ListSkeletonProps {
|
|
1059
|
+
rows?: number;
|
|
1060
|
+
style?: ViewStyle;
|
|
1061
|
+
}
|
|
1062
|
+
interface AvatarSkeletonProps {
|
|
1063
|
+
size?: number;
|
|
1064
|
+
style?: ViewStyle;
|
|
1065
|
+
}
|
|
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
|
+
};
|
|
1072
|
+
|
|
1073
|
+
interface HorizontalScrollerProps {
|
|
1074
|
+
children: React.ReactNode;
|
|
1075
|
+
snap?: boolean;
|
|
1076
|
+
snapInterval?: number;
|
|
1077
|
+
paddingHorizontal?: number;
|
|
1078
|
+
gap?: number;
|
|
1079
|
+
style?: ViewStyle;
|
|
1080
|
+
}
|
|
1081
|
+
declare const HorizontalScroller: React.FC<HorizontalScrollerProps>;
|
|
1082
|
+
|
|
1083
|
+
interface CardScrollerProps {
|
|
1084
|
+
children: React.ReactNode;
|
|
1085
|
+
cardWidth?: number;
|
|
1086
|
+
gap?: number;
|
|
1087
|
+
snapEnabled?: boolean;
|
|
1088
|
+
paddingHorizontal?: number;
|
|
1089
|
+
style?: ViewStyle;
|
|
1090
|
+
}
|
|
1091
|
+
declare const CardScroller: React.FC<CardScrollerProps>;
|
|
1092
|
+
|
|
1093
|
+
interface ImageCarouselProps {
|
|
1094
|
+
images: string[];
|
|
1095
|
+
height?: number;
|
|
1096
|
+
borderRadius?: number;
|
|
1097
|
+
onIndexChange?: (index: number) => void;
|
|
1098
|
+
style?: ViewStyle;
|
|
1099
|
+
}
|
|
1100
|
+
declare const ImageCarousel: React.FC<ImageCarouselProps>;
|
|
1101
|
+
|
|
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 };
|